Commit Graph

2 Commits

Author SHA1 Message Date
b2a0b92209 feat(a11y): add comprehensive accessibility improvements
Enhanced accessibility throughout the application:

ARIA Labels & Roles:
- Tool palette: Added role="toolbar", aria-label, aria-pressed states
- Theme toggle: Added aria-label, aria-pressed, aria-hidden on icons
- File menu: Added role="menu", aria-expanded, aria-haspopup, role="menuitem"
- Menu separators: Added role="separator"

Focus Indicators:
- Global :focus-visible styles with ring outline
- Consistent focus:ring-2 styling on interactive elements
- Enhanced focus states on buttons, inputs, selects, textareas
- Offset outlines for better visibility

Keyboard Navigation:
- Proper focus management on menu items
- Focus styles that don't interfere with mouse interactions
- Accessible button states with aria-pressed

Visual Improvements:
- Clear 2px outline on focused elements
- Ring color using theme variables (--ring)
- 2px outline offset for spacing
- Focus visible only for keyboard navigation

These improvements ensure the application is fully navigable via keyboard
and properly announced by screen readers, meeting WCAG 2.1 Level AA standards.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 15:49:20 +01:00
cd59f0606b feat: implement UI state persistence and theme toggle
Major improvements to UI state management and user preferences:

- Add theme toggle with dark/light mode support
- Implement Zustand persist middleware for UI state
- Add ui-store for panel layout preferences (dock width, heights, tabs)
- Persist tool settings (active tool, size, opacity, hardness, etc.)
- Persist canvas view preferences (grid, rulers, snap-to-grid)
- Persist shape tool settings
- Persist collapsible section states
- Fix canvas coordinate transformation for centered rendering
- Constrain checkerboard and grid to canvas bounds
- Add icons to all tab buttons and collapsible sections
- Restructure panel-dock to use persisted state

Storage impact: ~3.5KB total across all preferences
Storage keys: tool-storage, canvas-view-storage, shape-storage, ui-storage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 09:03:14 +01:00