diff options
| author | Mistivia <i@mistivia.com> | 2025-02-04 21:13:02 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2025-02-04 21:13:02 +0800 |
| commit | 781917675a1f7a81d61dca8e5134fb4867750685 (patch) | |
| tree | 6156b81e42d46fddc8ad2e518cf070c0891224bc /src/components/MainPanel.svelte | |
init
Diffstat (limited to 'src/components/MainPanel.svelte')
| -rw-r--r-- | src/components/MainPanel.svelte | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/src/components/MainPanel.svelte b/src/components/MainPanel.svelte new file mode 100644 index 0000000..10f18d8 --- /dev/null +++ b/src/components/MainPanel.svelte @@ -0,0 +1,104 @@ +<script lang="ts"> + +import CardThumb from './CardThumb.svelte'; + +let mainDeck = $state([]); +let extraDeck = $state([]); +let sideDeck = $state([]); +let mainNum = $derived(mainDeck.length); +let extraNum = $derived(extraDeck.length); +let sideNum = $derived(sideDeck.length); + +</script> + +<div class="middle-panel"> + <div class="control-bar"> + <button class="btn">打开</button> + <button class="btn">保存</button> + </div> + <div class="deck-section"> + <div class="deck-group"> + <h3>主卡组({mainNum})</h3> + <div class="card-grid main-deck"> + {#each mainDeck as card} + <div class="card-grid-thumb"> + <CardThumb id={card} /> + </div> + {/each} + </div> + </div> + <div class="deck-group"> + <h3>额外卡组({extraNum})</h3> + <div class="card-grid extra-deck"> + {#each extraDeck as card} + <div class="card-grid-thumb"> + <CardThumb id={card} /> + </div> + {/each} + </div> + </div> + <div class="deck-group"> + <h3>副卡组({sideNum})</h3> + <div class="card-grid side-deck"> + {#each sideDeck as card} + <div class="card-grid-thumb"> + <CardThumb id={card} /> + </div> + {/each} + </div> + </div> + </div> +</div> + +<style> + +.middle-panel { + width: 55%; + padding: 20px; + background-color: #fff; + overflow-y: auto; +} + +.control-bar { + margin-bottom: 20px; +} + +.btn { + padding: 8px 20px; + margin-right: 10px; + background-color: #4CAF50; + color: white; + border: none; + border-radius: 4px; + cursor: pointer; +} + +.deck-group { + margin-bottom: 30px; +} + +.deck-group h3 { + margin-bottom: 10px; + color: #333; +} + +.card-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(52px, 1fr)); + gap: 5px; + grid-auto-flow: dense; + overflow-y: auto; + padding: 10px; + border: 1px solid #ddd; + border-radius: 4px; + min-height: 80px; +} + +.card-grid-thumb { + background-color: #eee; + aspect-ratio: 1/1.4; + border-radius: 5px; +} + + +</style> |
