Summary
Implement child theme override resolution: file-by-file overrides for classic themes, (theme_id, source) chain for block themes, and deep-merge theme.json between child and parent with array merging keyed by slug (not index).
Design reference
- docs/03-theme-system.md §11 (Child Themes)
- docs/03-theme-system.md §11.2 (Override rules)
- docs/03-theme-system.md §11.3 (Resolver pseudocode)
Acceptance criteria
Dependencies
#7, #5
Complexity
M
Summary
Implement child theme override resolution: file-by-file overrides for classic themes,
(theme_id, source)chain for block themes, and deep-mergetheme.jsonbetween child and parent with array merging keyed byslug(not index).Design reference
Acceptance criteria
gonext.parentregistered and parent chain loadableresolveFile(theme, relPath)walks child → parent → null(child user) → (child seed) → (parent user) → (parent seed) → core(§6.3 + child layer)theme.jsondeep-merged: child overrides parent, supports nulling out parent valuesslug, not indexfunctions.tsfiles run (parent then child)Dependencies
#7, #5
Complexity
M