)
}
```
## Rule Details
### Skeleton Loading
Content-shaped placeholders that match the final layout. Use skeleton for lists, cards, and text blocks.
> **Load**: `rules/interaction-skeleton-loading.md`
### Infinite Scroll
Accessible infinite scroll with IntersectionObserver, screen reader announcements, and "Load more" fallback.
> **Load**: `rules/interaction-infinite-scroll.md`
### Progressive Disclosure
Reveal complexity progressively: tooltip, accordion, wizard, contextual panel.
> **Load**: `rules/interaction-progressive-disclosure.md`
### Modal / Drawer / Inline
Choose the right overlay pattern: modal for confirmations, drawer for detail views, inline for simple toggles.
> **Load**: `rules/interaction-modal-drawer-inline.md`
### Drag & Drop
Drag-and-drop with mandatory keyboard alternatives using `@dnd-kit/core`.
> **Load**: `rules/interaction-drag-drop.md`
### Tabs Overflow
Scrollable tab bars with overflow menus for dynamic or numerous tabs.
> **Load**: `rules/interaction-tabs-overflow.md`
### Toast Notifications
Positioned, auto-dismissing notifications with ARIA roles and stacking.
> **Load**: `rules/interaction-toast-notifications.md`
### Cognitive Load Thresholds
Miller's Law (max 7 items per group), Hick's Law (max 1 primary CTA), and Doherty Threshold (400ms feedback) with specific, countable limits.
> **Load**: `rules/interaction-cognitive-load-thresholds.md`
### Form UX
Fitts's Law touch targets (44px mobile), top-aligned labels, Poka-Yoke error prevention with blur-only validation, and smart defaults.
> **Load**: `rules/interaction-form-ux.md`
### Persuasion Ethics
13 dark pattern red flags to detect and reject, the Hook Model ethical test (aware, reversible, user-benefits), and EU DSA Art. 25 compliance.
> **Load**: `rules/interaction-persuasion-ethics.md`
## Key Principles
1. **Keyboard parity** — Every mouse interaction MUST have a keyboard equivalent. No drag-only, no hover-only.
2. **Skeleton over spinner** — Use content-shaped placeholders for data loading; reserve spinners for indeterminate actions.
3. **Native HTML first** — Prefer `