Files
metabuilder/packages/json_script_example/seed/styles.schema.json
2025-12-31 15:06:10 +00:00

200 lines
5.9 KiB
JSON

{
"$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)$"
}
}
}