From c951fb2f020ce34df7b705a27fa8bd40b73cf307 Mon Sep 17 00:00:00 2001 From: Chris0Jeky Date: Sun, 29 Mar 2026 04:30:10 +0100 Subject: [PATCH 1/8] polish: standardize board card visual states with design tokens Replace hardcoded shadows, borders, and colors in CardItem with token-based CSS custom properties. Add clear visual distinction for hover, focus, selected, disabled, and dragging states. Normalize badge, label, and metadata typography hierarchy using the font scale. --- .../src/components/board/CardItem.vue | 173 ++++++++++++++++-- 1 file changed, 155 insertions(+), 18 deletions(-) diff --git a/frontend/taskdeck-web/src/components/board/CardItem.vue b/frontend/taskdeck-web/src/components/board/CardItem.vue index 737194192..6c5084c8c 100644 --- a/frontend/taskdeck-web/src/components/board/CardItem.vue +++ b/frontend/taskdeck-web/src/components/board/CardItem.vue @@ -58,14 +58,19 @@ function isOverdue(dateString: string | null): boolean { draggable="false" :data-card-id="card.id" :class="[ - 'group rounded-lg p-3 shadow-[0_2px_8px_rgba(0,0,0,0.3)] hover:shadow-[0_4px_12px_rgba(0,0,0,0.4)] transition-all cursor-pointer border-[0.5px] relative', - isSelected ? 'border-primary-container ring-4 ring-primary-container/30 shadow-xl bg-primary-container/10 scale-105' : 'bg-surface-container-low border-outline-variant/15', - isDragging ? 'opacity-50 scale-95' : '' + 'td-board-card group relative cursor-pointer', + isSelected ? 'td-board-card--selected' : '', + isDragging ? 'td-board-card--dragging' : '' ]" + tabindex="0" + :aria-selected="isSelected" @click.stop="emit('click', card)" @dragstart="handleDragStart" @dragend="handleDragEnd" > + +