Adaptive Interfaces
Good design does not force everyone through the same experience. It adapts. This skill ensures interfaces respect user preferences, system settings, and individual needs — not as optional extras, but as fundamental design requirements.
When to Use
- Designing themes (dark mode, high contrast, custom colour schemes)
- Implementing motion or animation
- Building flexible typography or layout systems
- Designing for varying information density needs
- Any time the interface could benefit from adapting to the user
Process
Step 1: Identify Adaptable Properties
Review the design and map what should adapt:
| Property |
User Preference |
CSS/System Signal |
| Colour scheme |
Light/dark/custom |
prefers-color-scheme |
| Contrast |
Standard/high |
prefers-contrast |
| Motion |
Full/reduced/none |
prefers-reduced-motion |
| Text size |
System font size settings |
rem/em units, viewport scaling |
| Information density |
Compact/comfortable/spacious |
User setting or breakpoint |
| Transparency |
Standard/reduced |
prefers-reduced-transparency |
Step 2: Motion Sensitivity
Motion is the most commonly harmful interface property. Handle it rigorously:
Default behaviour:
- All animations and transitions are wrapped in a motion preference check
prefers-reduced-motion: reduce disables non-essential animation
- Essential motion (e.g., a progress bar filling) uses reduced, simpler alternatives
Implementation pattern:
/* Full motion (default) */
.element { transition: transform 300ms ease-out; }
/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
.element { transition: none; }
}
Never autoplay:
- Video, carousel, or animated content must not play automatically
- If autoplay is a business requirement, provide immediate pause/stop controls AND respect prefers-reduced-motion
Step 3: Colour Scheme Adaptation
Dark mode is not "invert the colours." It is a separate design exercise:
- Backgrounds: dark grey (not pure black) reduces eye strain
- Text: off-white (not pure white) on dark backgrounds
- Elevation: lighter shades indicate higher elevation in dark mode (opposite of light mode shadows)
- Semantic colours: error red, success green — these may need different shades in dark mode to maintain contrast
- Images and illustrations: may need dark-mode variants or reduced brightness
Step 4: Typography Flexibility
Text must be resizable without breaking the layout:
- Use
rem or em units, never fixed px for font sizes
- Test at 200% browser zoom — content must remain usable
- Support system-level large text settings
- Line spacing, letter spacing, and word spacing should be adjustable (WCAG 1.4.12)
- Do not clip or overflow text when sizes change
Step 5: Information Density
Different users need different densities:
- Spacious: more whitespace, larger touch targets, fewer items visible — beneficial for motor impairments, cognitive load, mobile use
- Comfortable: balanced — the default for most users
- Compact: denser information, smaller elements — beneficial for power users, large dataset work
If offering density controls:
- Persist the user's choice across sessions
- Ensure all density levels maintain accessibility requirements (touch targets, contrast, readability)
Step 6: Respect and Persist Preferences
- System-level preferences (via media queries) should be respected automatically with no opt-in required
- Application-level preferences (density, layout) should be easy to find, easy to change, and persisted
- Never override system preferences without explicit user action
- Never require users to justify their preferences (no "Are you sure you want dark mode?")
Step 7: Document Adaptive Behaviour
For each adaptive property, document:
- What adapts and why
- The default behaviour
- The adapted behaviour for each preference
- How the preference is detected and respected
- Fallback behaviour when preference detection is unavailable
Integration
- Called by:
ui-composition, interaction-design
- Pairs with:
cognitive-accessibility (density and simplification), inclusive-personas (preference awareness)
- Reviewed by:
designpowers-critique
1---2name: adaptive-interfaces3description: Use when designing for user preferences — motion sensitivity, contrast needs, colour schemes, text sizing, information density, or any interface behaviour that should adapt to individual needs4---56# Adaptive Interfaces78Good design does not force everyone through the same experience. It adapts. This skill ensures interfaces respect user preferences, system settings, and individual needs — not as optional extras, but as fundamental design requirements.910## When to Use1112- Designing themes (dark mode, high contrast, custom colour schemes)13- Implementing motion or animation14- Building flexible typography or layout systems15- Designing for varying information density needs16- Any time the interface could benefit from adapting to the user1718## Process1920### Step 1: Identify Adaptable Properties2122Review the design and map what should adapt:2324| Property | User Preference | CSS/System Signal |25|----------|----------------|------------------|26| Colour scheme | Light/dark/custom | `prefers-color-scheme` |27| Contrast | Standard/high | `prefers-contrast` |28| Motion | Full/reduced/none | `prefers-reduced-motion` |29| Text size | System font size settings | `rem`/`em` units, viewport scaling |30| Information density | Compact/comfortable/spacious | User setting or breakpoint |31| Transparency | Standard/reduced | `prefers-reduced-transparency` |3233### Step 2: Motion Sensitivity3435Motion is the most commonly harmful interface property. Handle it rigorously:3637**Default behaviour:**38- All animations and transitions are wrapped in a motion preference check39- `prefers-reduced-motion: reduce` disables non-essential animation40- Essential motion (e.g., a progress bar filling) uses reduced, simpler alternatives4142**Implementation pattern:**43```css44/* Full motion (default) */45.element { transition: transform 300ms ease-out; }4647/* Reduced motion */48@media (prefers-reduced-motion: reduce) {49 .element { transition: none; }50}51```5253**Never autoplay:**54- Video, carousel, or animated content must not play automatically55- If autoplay is a business requirement, provide immediate pause/stop controls AND respect prefers-reduced-motion5657### Step 3: Colour Scheme Adaptation5859Dark mode is not "invert the colours." It is a separate design exercise:6061- **Backgrounds:** dark grey (not pure black) reduces eye strain62- **Text:** off-white (not pure white) on dark backgrounds63- **Elevation:** lighter shades indicate higher elevation in dark mode (opposite of light mode shadows)64- **Semantic colours:** error red, success green — these may need different shades in dark mode to maintain contrast65- **Images and illustrations:** may need dark-mode variants or reduced brightness6667### Step 4: Typography Flexibility6869Text must be resizable without breaking the layout:7071- Use `rem` or `em` units, never fixed `px` for font sizes72- Test at 200% browser zoom — content must remain usable73- Support system-level large text settings74- Line spacing, letter spacing, and word spacing should be adjustable (WCAG 1.4.12)75- Do not clip or overflow text when sizes change7677### Step 5: Information Density7879Different users need different densities:8081- **Spacious:** more whitespace, larger touch targets, fewer items visible — beneficial for motor impairments, cognitive load, mobile use82- **Comfortable:** balanced — the default for most users83- **Compact:** denser information, smaller elements — beneficial for power users, large dataset work8485If offering density controls:86- Persist the user's choice across sessions87- Ensure all density levels maintain accessibility requirements (touch targets, contrast, readability)8889### Step 6: Respect and Persist Preferences9091- **System-level preferences** (via media queries) should be respected automatically with no opt-in required92- **Application-level preferences** (density, layout) should be easy to find, easy to change, and persisted93- **Never override system preferences** without explicit user action94- **Never require users to justify** their preferences (no "Are you sure you want dark mode?")9596### Step 7: Document Adaptive Behaviour9798For each adaptive property, document:99- What adapts and why100- The default behaviour101- The adapted behaviour for each preference102- How the preference is detected and respected103- Fallback behaviour when preference detection is unavailable104105## Integration106107- **Called by:** `ui-composition`, `interaction-design`108- **Pairs with:** `cognitive-accessibility` (density and simplification), `inclusive-personas` (preference awareness)109- **Reviewed by:** `designpowers-critique`