Fixes + UX: combat HP, char delete, dice animation, compendium filters, import/export
- Combat: relabel HP controls Dmg/Heal, disabled at 0 (were silent no-ops) - Characters: per-card Delete (confirm) + Export; header Import from JSON - Dice: tumbling roll animation that settles on the result (a11y-safe) - Compendium: per-category filters (monster type/CR, spell level/school, item rarity/type) + Clear - Character import/export to portable JSON (reassigns id, validates on import) - New: 4 io unit tests, e2e fixes spec (HP damage, delete, CR filter) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -84,3 +84,43 @@ body {
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: var(--app-line) transparent;
|
||||
}
|
||||
|
||||
/* Dice roll animations */
|
||||
@keyframes dice-tumble {
|
||||
0% {
|
||||
transform: scale(0.7) rotate(-12deg);
|
||||
opacity: 0.5;
|
||||
}
|
||||
50% {
|
||||
transform: scale(1.12) rotate(8deg);
|
||||
}
|
||||
75% {
|
||||
transform: scale(0.96) rotate(-3deg);
|
||||
}
|
||||
100% {
|
||||
transform: scale(1) rotate(0deg);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
.animate-dice-settle {
|
||||
animation: dice-tumble 0.45s cubic-bezier(0.22, 1, 0.36, 1);
|
||||
}
|
||||
|
||||
@keyframes dice-shake {
|
||||
0%,
|
||||
100% {
|
||||
transform: translate(0, 0) rotate(0deg);
|
||||
}
|
||||
25% {
|
||||
transform: translate(-2px, 1px) rotate(-3deg);
|
||||
}
|
||||
50% {
|
||||
transform: translate(2px, -1px) rotate(3deg);
|
||||
}
|
||||
75% {
|
||||
transform: translate(-1px, 2px) rotate(-2deg);
|
||||
}
|
||||
}
|
||||
.animate-dice-rolling {
|
||||
animation: dice-shake 0.12s linear infinite;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user