{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://metabuilder.dev/schemas/package-styles.schema.json", "title": "Package Styles", "description": "Design tokens and style definitions for MetaBuilder packages", "type": "object", "properties": { "$schema": { "type": "string", "description": "JSON Schema reference" }, "colors": { "type": "object", "description": "Color palette definitions", "properties": { "primary": { "$ref": "#/definitions/color" }, "secondary": { "$ref": "#/definitions/color" }, "success": { "$ref": "#/definitions/color" }, "error": { "$ref": "#/definitions/color" }, "warning": { "$ref": "#/definitions/color" }, "info": { "$ref": "#/definitions/color" }, "background": { "$ref": "#/definitions/color" }, "text": { "$ref": "#/definitions/color" } }, "additionalProperties": { "$ref": "#/definitions/color" } }, "spacing": { "type": "object", "description": "Spacing scale definitions", "properties": { "xs": { "$ref": "#/definitions/size" }, "sm": { "$ref": "#/definitions/size" }, "md": { "$ref": "#/definitions/size" }, "lg": { "$ref": "#/definitions/size" }, "xl": { "$ref": "#/definitions/size" }, "xxl": { "$ref": "#/definitions/size" } }, "additionalProperties": { "$ref": "#/definitions/size" } }, "typography": { "type": "object", "description": "Typography definitions", "properties": { "fontFamily": { "type": "string", "description": "Default font family stack" }, "fontFamilyMono": { "type": "string", "description": "Monospace font family stack" }, "fontFamilyHeading": { "type": "string", "description": "Heading font family stack" }, "fontSize": { "type": "object", "description": "Font size scale", "properties": { "small": { "$ref": "#/definitions/size" }, "medium": { "$ref": "#/definitions/size" }, "large": { "$ref": "#/definitions/size" }, "xlarge": { "$ref": "#/definitions/size" }, "xxlarge": { "$ref": "#/definitions/size" } }, "additionalProperties": { "$ref": "#/definitions/size" } }, "fontWeight": { "type": "object", "description": "Font weight scale", "properties": { "light": { "type": "integer" }, "normal": { "type": "integer" }, "medium": { "type": "integer" }, "semibold": { "type": "integer" }, "bold": { "type": "integer" } }, "additionalProperties": { "type": "integer" } }, "lineHeight": { "type": "object", "description": "Line height scale", "properties": { "tight": { "type": "number" }, "normal": { "type": "number" }, "relaxed": { "type": "number" } }, "additionalProperties": { "type": "number" } } } }, "borderRadius": { "type": "object", "description": "Border radius scale", "properties": { "none": { "$ref": "#/definitions/size" }, "small": { "$ref": "#/definitions/size" }, "medium": { "$ref": "#/definitions/size" }, "large": { "$ref": "#/definitions/size" }, "full": { "$ref": "#/definitions/size" } }, "additionalProperties": { "$ref": "#/definitions/size" } }, "shadows": { "type": "object", "description": "Box shadow definitions", "properties": { "none": { "type": "string" }, "small": { "type": "string" }, "medium": { "type": "string" }, "large": { "type": "string" } }, "additionalProperties": { "type": "string" } }, "breakpoints": { "type": "object", "description": "Responsive breakpoints", "properties": { "xs": { "$ref": "#/definitions/size" }, "sm": { "$ref": "#/definitions/size" }, "md": { "$ref": "#/definitions/size" }, "lg": { "$ref": "#/definitions/size" }, "xl": { "$ref": "#/definitions/size" } }, "additionalProperties": { "$ref": "#/definitions/size" } }, "transitions": { "type": "object", "description": "Transition timing definitions", "properties": { "fast": { "type": "string" }, "normal": { "type": "string" }, "slow": { "type": "string" } }, "additionalProperties": { "type": "string" } }, "zIndex": { "type": "object", "description": "Z-index scale", "properties": { "base": { "type": "integer" }, "dropdown": { "type": "integer" }, "sticky": { "type": "integer" }, "modal": { "type": "integer" }, "popover": { "type": "integer" }, "tooltip": { "type": "integer" } }, "additionalProperties": { "type": "integer" } } }, "definitions": { "color": { "type": "string", "description": "CSS color value", "pattern": "^(#[0-9A-Fa-f]{3,8}|rgb\\(|rgba\\(|hsl\\(|hsla\\(|var\\(--)" }, "size": { "type": "string", "description": "CSS size value (px, rem, em, %, etc.)", "pattern": "^(-?\\d+(\\.\\d+)?(px|rem|em|%|vh|vw|ch|ex)?|0)$" } } }