- PlayerCard: read-only portrait, name, class, level, XP (the sidebar holds the editors for this data) - PreparedSpells: growable slot list; a vacant slot has a free-text input and '+' to fill it, an occupied slot shows name/level/ description and '×' to empty it; '+ слот' appends a vacant slot - Attunements: three slots, free-text entry and per-slot clear - rows are plain functions called from For's let(...) children — component tags are not allowed directly inside them (view macro) - Field<...> conversions for the Subfield prop types, state-in-key keys so changed rows re-render (same convention as sidebar pips) - SCSS: _character.scss with card, slot rows, buttons (mixins) |
||
|---|---|---|
| .. | ||
| _character.scss | ||
| _header.scss | ||
| _inventory.scss | ||
| _mixins.scss | ||
| _modal.scss | ||
| _nav.scss | ||
| _sidebar.scss | ||
| _vars.scss | ||
| main.scss | ||
| reset.scss | ||