diff --git a/job-tracker-ui/src/components/DashboardView.tsx b/job-tracker-ui/src/components/DashboardView.tsx index 47128ed..d09d333 100644 --- a/job-tracker-ui/src/components/DashboardView.tsx +++ b/job-tracker-ui/src/components/DashboardView.tsx @@ -359,7 +359,13 @@ export default function DashboardView() { {!summaryResource.loading && !summaryResource.error && prefs.cards ? ( {metricCards.map((card) => ( - + {card.label} {card.value} {card.trend || card.caption ? ( diff --git a/job-tracker-ui/src/components/KanbanBoard.tsx b/job-tracker-ui/src/components/KanbanBoard.tsx index 03e5141..b06fa1d 100644 --- a/job-tracker-ui/src/components/KanbanBoard.tsx +++ b/job-tracker-ui/src/components/KanbanBoard.tsx @@ -199,6 +199,9 @@ export default function KanbanBoard() { cursor: "grab", borderRadius: 2.5, borderLeft: `4px solid ${c}`, + transition: "box-shadow .15s, transform .15s", + "&:hover": { boxShadow: 4, transform: "translateY(-1px)" }, + "&:active": { cursor: "grabbing" }, }} > diff --git a/job-tracker-ui/src/theme.ts b/job-tracker-ui/src/theme.ts index e8d143f..68d03f2 100644 --- a/job-tracker-ui/src/theme.ts +++ b/job-tracker-ui/src/theme.ts @@ -254,6 +254,18 @@ export const getTheme = (_mode: "light" | "dark") => { WebkitFontSmoothing: "antialiased", MozOsxFontSmoothing: "grayscale", }, + // A global floor under every animation added this session (card hover-lift, + // MUI's own Dialog/Menu/Collapse transitions, ripple) -- users who set this OS/ + // browser preference get near-instant, non-animated interactions everywhere at + // once, rather than each component needing its own reduced-motion check. + "@media (prefers-reduced-motion: reduce)": { + "*, *::before, *::after": { + animationDuration: "0.01ms !important", + animationIterationCount: "1 !important", + transitionDuration: "0.01ms !important", + scrollBehavior: "auto !important", + }, + }, }, }, MuiPaper: {