{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "Theme Registry", "description": "Curated design tokens extracted from DESIGN.md files for markstream-vue theme generation.", "type": "array", "items": { "type": "object", "required": ["id", "name", "source", "colors"], "properties": { "id": { "type": "string", "description": "Kebab-case identifier, used as CSS data-theme value and filename", "pattern": "^[a-z0-9-]+$" }, "name": { "type": "string", "description": "Display name (e.g. 'Claude', 'Linear')" }, "source": { "type": "string", "description": "Origin DESIGN.md directory name in awesome-design-md" }, "category": { "type": "string", "enum": ["ai", "devtool", "infra", "design", "fintech", "enterprise"], "description": "Classification for documentation" }, "native": { "type": "string", "enum": ["light", "dark"], "description": "The scheme the source design is built around. The opposite scheme will be auto-generated." }, "colors": { "type": "object", "required": ["background", "foreground", "brand"], "properties": { "background": { "type": "string", "description": "Page background" }, "foreground": { "type": "string", "description": "Primary text color" }, "brand": { "type": "string", "description": "Primary brand / accent / CTA color" }, "surface": { "type": "string", "description": "Card / elevated surface background" }, "secondaryText": { "type": "string", "description": "Secondary / muted text color" }, "border": { "type": "string", "description": "Default border color" }, "error": { "type": "string", "description": "Error / destructive color" }, "link": { "type": "string", "description": "Link text color" }, "brandForeground": { "type": "string", "description": "Text on brand/CTA buttons (overrides auto contrast pick)" }, "ring": { "type": "string", "description": "Focus ring color" }, "info": { "type": "string", "description": "Info / note semantic color" }, "success": { "type": "string", "description": "Success / tip semantic color" }, "warning": { "type": "string", "description": "Warning semantic color" }, "highlight": { "type": "string", "description": "Highlight / mark color" }, "diffAdded": { "type": "string", "description": "Diff added indicator color" }, "diffRemoved": { "type": "string", "description": "Diff removed indicator color" } }, "additionalProperties": false }, "radius": { "type": "string", "description": "Default component border-radius (CSS value, e.g. '0.5rem', '6px')" }, "dark": { "type": "object", "description": "Explicit dark-scheme colors. When dark.background is present, used instead of auto-generating opposite scheme.", "properties": { "background": { "type": "string" }, "foreground": { "type": "string" }, "brand": { "type": "string" }, "surface": { "type": "string" }, "secondaryText": { "type": "string" }, "border": { "type": "string" }, "error": { "type": "string" }, "link": { "type": "string" }, "brandForeground": { "type": "string" }, "ring": { "type": "string" }, "info": { "type": "string" }, "success": { "type": "string" }, "warning": { "type": "string" }, "highlight": { "type": "string" }, "diffAdded": { "type": "string" }, "diffRemoved": { "type": "string" } }, "additionalProperties": false }, "fonts": { "type": "object", "properties": { "sans": { "type": "string", "description": "Sans-serif font stack (CSS font-family value)" }, "mono": { "type": "string", "description": "Monospace font stack" }, "serif": { "type": "string", "description": "Serif font stack (for heading variants)" } }, "additionalProperties": false } }, "additionalProperties": false } }