Focus State Design

Keyboard focus indicator design, focus management, and accessible focus patterns.

dragoon0x 3318bf9 1.1 KB Updated

File contents

Focus State Design

Focus Ring Design

Requirements

  • Visible on all backgrounds (light and dark).
  • Minimum 3:1 contrast ratio against surrounding area.
  • Must not rely on color alone (use outline, not just color change).

Recommended Style

:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

/* Remove default only when providing custom */
:focus:not(:focus-visible) {
  outline: none;
}

Focus Management

  • Modal opens: focus moves to first interactive element inside.
  • Modal closes: focus returns to the element that opened it.
  • Dynamic content: focus moves to new content (toast, expanded section).
  • Page navigation: focus moves to main content area.

Anti-Patterns

  • outline: none without replacement (accessibility violation).
  • Focus rings that are invisible on some backgrounds.
  • Focus order that doesn't match visual order.
  • No focus management in dynamic content (modals, drawers).

dragoon0x/everything-design-taste/tree/main/skills/focus-state-design commit 3318bf9e48

Frequently asked questions

npx skillmds@latest add dragoon0x/focus-state-design