SpecificationDefault
color var(--muted-foreground)
text-decoration none
Hover
color var(--foreground)
text-decoration none (NO underline!)
transition color 150ms ease
Active State
color var(--foreground)
font-weight 500
May have animated underline element (separate span)
3. Card Links
Clickable containers. Visual feedback through transform and border, NEVER underline.
Focus Ring Specification:focus-visible
outline 2px solid var(--accent)
outline-offset 2px
:focus:not(:focus-visible)
outline none
(Hides focus ring for mouse clicks, shows for keyboard)
Why focus-visible?
— Shows focus ring only for keyboard users
— Mouse users don't see focus ring on click
— Better UX while maintaining accessibility
Transition Timing Reference
Consistent timing creates a cohesive feel across the interface.