Skip to content

Commit 963f512

Browse files
committed
feat: update ROADMAP with improved spec coverage and complete ThemeEngine alignment
1 parent c836ad5 commit 963f512

1 file changed

Lines changed: 18 additions & 11 deletions

File tree

ROADMAP.md

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@
66

77
**Version:** v0.5.x
88
**Spec Version:** @objectstack/spec v1.1.0
9-
**Overall Spec Coverage:** ~75%
9+
**Overall Spec Coverage:** ~80%
1010

1111
## Package Maturity Matrix
1212

1313
| Package | Status | Spec Coverage | Notes |
1414
|---------|--------|--------------|-------|
1515
| @object-ui/types | ✅ Complete | 100% | Full spec re-export + local types |
16-
| @object-ui/core | ✅ Complete | 95% | Registry, Plugin, Expression, Action, Validation |
16+
| @object-ui/core | ✅ Complete | 98% | Registry, Plugin, Expression, Action, Validation, ThemeEngine |
1717
| @object-ui/components | ✅ Complete | 100% | 80+ renderers, 50 Shadcn primitives |
1818
| @object-ui/fields | ✅ Complete | 95% | 36 widgets, 20+ cell renderers |
1919
| @object-ui/layout | 🟡 Partial | 60% | Basic layouts, missing responsive grid |
20-
| @object-ui/react | ✅ Complete | 100% | SchemaRenderer, hooks, providers |
20+
| @object-ui/react | ✅ Complete | 100% | SchemaRenderer, hooks, providers, ThemeProvider |
2121
| @object-ui/plugin-form | ✅ Complete | 90% | All 6 variants (simple/tabbed/wizard/split/drawer/modal), FormField enhancements |
2222
| @object-ui/plugin-grid | ✅ Complete | 95% | Full ListView support |
2323
| @object-ui/plugin-aggrid | ✅ Complete | 100% | AG Grid integration |
@@ -226,18 +226,25 @@ WidgetManifest: {
226226

227227
---
228228

229-
#### 7. Theme System Alignment
229+
#### 7. Theme System Alignment
230230

231231
**Spec Requirement:** Full theme schema with ColorPalette, Typography, Spacing, BorderRadius, Shadow, Breakpoints, Animation, ZIndex.
232232

233-
**Current State:** Simplified ThemeDefinition, missing half the spec.
233+
**Current State:** Fully aligned with @objectstack/spec v1.1.0. Complete ThemeEngine in core + ThemeProvider/useTheme in react.
234234

235-
**Tasks:**
236-
- [ ] Add Shadow, Breakpoints, Animation, ZIndex to ThemeDefinition
237-
- [ ] Align ColorPalette with spec (surface, textSecondary, primaryLight/Dark)
238-
- [ ] Add ThemeProvider to @object-ui/react or @object-ui/layout
239-
- [ ] Theme inheritance (extends)
240-
- [ ] Branding (logo, darkLogo, favicon)
235+
**Completed:**
236+
- [x] Realigned `Theme` interface with spec (name, label, mode, colors, typography, spacing, borderRadius, shadows, breakpoints, animation, zIndex, customVars, logo, extends)
237+
- [x] Added `Shadow`, `Breakpoints`, `Animation`, `ZIndex`, `ThemeLogo` types to @object-ui/types
238+
- [x] Aligned `ColorPalette` with spec (primary required, surface, textSecondary, primaryLight/Dark, secondaryLight/Dark, disabled)
239+
- [x] Aligned `Typography` with spec (nested fontFamily/fontSize/fontWeight/lineHeight/letterSpacing)
240+
- [x] Aligned `Spacing` with spec (explicit '0'–'24' scale keys)
241+
- [x] Aligned `BorderRadius` with spec (none/sm/base/md/lg/xl/2xl/full)
242+
- [x] Updated all Zod schemas (ColorPaletteSchema, TypographySchema, SpacingSchema, ShadowSchema, BreakpointsSchema, AnimationSchema, ZIndexSchema, ThemeDefinitionSchema)
243+
- [x] `ThemeEngine` in @object-ui/core`generateThemeVars()` converts Theme → CSS custom properties, `mergeThemes()`, `resolveThemeInheritance()`, `resolveMode()`, `hexToHSL()`/`toCSSColor()`
244+
- [x] `ThemeProvider` + `useTheme()` + `useOptionalTheme()` in @object-ui/react — CSS var injection, mode class toggling, system preference detection, localStorage persistence, theme inheritance resolution
245+
- [x] Branding support (logo.light, logo.dark, logo.favicon)
246+
- [x] Legacy aliases (`ThemeDefinition``Theme`, `SpacingScale``Spacing`) for backward compatibility
247+
- [x] Full test coverage: 57 ThemeEngine tests + 28 ThemeProvider tests (85 total)
241248

242249
---
243250

0 commit comments

Comments
 (0)