Split motion packs from accessibility overrides

This commit is contained in:
2026-03-20 12:03:46 +08:00
parent 010638503f
commit e5434bada9
8 changed files with 320 additions and 64 deletions
+15 -5
View File
@@ -422,19 +422,27 @@ Minimum contract:
```ts
type ThemeName = "light" | "dark" | "brand" | "minimal";
type SkinName = "minimal" | "glass" | "pixel";
type MotionName = "system" | "reduced" | "micro" | "spring";
type MotionPackName = "calm" | "snappy" | "spring";
type MotionAccessibilityName = "system" | "full" | "reduced";
```
Likely helpers:
- `setTheme(theme, root?)`
- `setSkin(skin, root?)`
- `setMotionMode(mode, root?)`
- `setMotionPack(pack, root?)`
- `setMotionAccessibility(mode, root?)`
- `setMotionMode(mode, root?)` as a backward-compatible alias for accessibility mode
Provider shape if needed:
```tsx
<StyleProvider theme="minimal" skin="glass" motion="micro">
<StyleProvider
theme="minimal"
skin="glass"
motionPack="spring"
motionAccessibility="system"
>
<App />
</StyleProvider>
```
@@ -587,8 +595,8 @@ proven inside this repo.
recommendation is `@ai-ui/ui`.
- Should the runtime API expose a `StyleProvider`, or should root attributes remain the
only public contract at first?
- Should motion packs beyond `system` and `reduced` ship in the first skin milestone, or
should additional motion packs wait until after the pilot components land?
- Should the current `calm / snappy / spring` set remain the long-term pack list, or
should product-specific packs be introduced later?
- Should `minimal` become the new default appearance, or should the current warm
editorial look remain the default and be renamed explicitly?
@@ -607,6 +615,8 @@ As of 2026-03-20, the project is at this point:
and `Skeleton`
- screenshot-friendly validation surface added in `Foundation/Style Matrix`
- scoped `data-motion="reduced"` now works for nested docs wrappers
- motion now uses real packs through `data-motion-pack`
- reduced motion remains available as a separate accessibility override layer
- shared skin-aware treatment now extends across the broader component library surface,
including controls, menus, overlays, feedback, and data-heavy patterns
- package consumers can now import a single combined stylesheet from