187 lines
4.6 KiB
Text
187 lines
4.6 KiB
Text
# Theme Configuration Contracts
|
|
#
|
|
# Type contracts for theme configuration with support for inheritance and variants.
|
|
|
|
{
|
|
# Theme metadata
|
|
Metadata = {
|
|
name
|
|
| String
|
|
| doc "Theme name (e.g., 'Default', 'Dark', 'Corporate')",
|
|
|
|
description
|
|
| String
|
|
| doc "Theme description",
|
|
|
|
version
|
|
| String
|
|
| default = "1.0.0",
|
|
|
|
author
|
|
| String
|
|
| default = "Rustelo Contributors",
|
|
|
|
extends
|
|
| String
|
|
| doc "Parent theme to inherit from (e.g., 'default')"
|
|
| optional,
|
|
|
|
..
|
|
},
|
|
|
|
# Color palette
|
|
Colors = {
|
|
# Primary brand colors
|
|
primary | String | doc "Primary brand color",
|
|
primary_hover | String | doc "Primary hover state",
|
|
secondary | String | doc "Secondary color",
|
|
secondary_hover | String | doc "Secondary hover state",
|
|
accent | String | doc "Accent color",
|
|
|
|
# Semantic colors
|
|
success | String | doc "Success state color",
|
|
warning | String | doc "Warning state color",
|
|
error | String | doc "Error state color",
|
|
info | String | doc "Info state color",
|
|
|
|
# Surface colors
|
|
surface | String | doc "Background surface color",
|
|
surface_dark | String | doc "Dark surface color",
|
|
surface_hover | String | doc "Surface hover state",
|
|
surface_hover_dark | String | doc "Dark surface hover state",
|
|
|
|
# Text colors
|
|
text | String | doc "Primary text color",
|
|
text_dark | String | doc "Dark text color",
|
|
text_secondary | String | doc "Secondary text color",
|
|
text_secondary_dark | String | doc "Dark secondary text color",
|
|
|
|
# Border colors
|
|
border | String | doc "Border color",
|
|
border_dark | String | doc "Dark border color",
|
|
|
|
..
|
|
},
|
|
|
|
# Typography settings
|
|
Typography = {
|
|
font_family_sans | String | default = "Inter, ui-sans-serif, system-ui, sans-serif",
|
|
font_family_mono | String | default = "JetBrains Mono, ui-monospace, monospace",
|
|
|
|
font_size_xs | String | default = "0.75rem",
|
|
font_size_sm | String | default = "0.875rem",
|
|
font_size_base | String | default = "1rem",
|
|
font_size_lg | String | default = "1.125rem",
|
|
font_size_xl | String | default = "1.25rem",
|
|
font_size_2xl | String | default = "1.5rem",
|
|
font_size_3xl | String | default = "1.875rem",
|
|
|
|
line_height_tight | String | default = "1.25",
|
|
line_height_normal | String | default = "1.5",
|
|
line_height_relaxed | String | default = "1.75",
|
|
|
|
..
|
|
},
|
|
|
|
# Spacing scale
|
|
Spacing = {
|
|
xs | String | default = "0.25rem",
|
|
sm | String | default = "0.5rem",
|
|
md | String | default = "1rem",
|
|
lg | String | default = "1.5rem",
|
|
xl | String | default = "2rem",
|
|
"2xl" | String | default = "2.5rem",
|
|
"3xl" | String | default = "3rem",
|
|
|
|
..
|
|
},
|
|
|
|
# Border radius values
|
|
Radius = {
|
|
sm | String | default = "0.25rem",
|
|
md | String | default = "0.375rem",
|
|
lg | String | default = "0.5rem",
|
|
xl | String | default = "0.75rem",
|
|
"2xl" | String | default = "1rem",
|
|
full | String | default = "9999px",
|
|
|
|
..
|
|
},
|
|
|
|
# Shadow definitions
|
|
Shadows = {
|
|
sm | String | optional,
|
|
base | String | optional,
|
|
md | String | optional,
|
|
lg | String | optional,
|
|
xl | String | optional,
|
|
|
|
..
|
|
},
|
|
|
|
# Component-specific settings
|
|
Components = {
|
|
button | Dyn | optional,
|
|
card | Dyn | optional,
|
|
input | Dyn | optional,
|
|
navbar | Dyn | optional,
|
|
footer | Dyn | optional,
|
|
|
|
..
|
|
},
|
|
|
|
# Asset paths
|
|
Assets = {
|
|
logo_light | String | optional,
|
|
logo_dark | String | optional,
|
|
logo_icon | String | optional,
|
|
favicon | String | optional,
|
|
favicon_dark | String | optional,
|
|
|
|
logo_alt | String | optional,
|
|
logo_href | String | optional,
|
|
logo_show_in_nav | Bool | optional,
|
|
logo_show_in_footer | Bool | optional,
|
|
logo_width | String | optional,
|
|
logo_height | String | optional,
|
|
|
|
..
|
|
},
|
|
|
|
# Animations
|
|
Animations = {
|
|
duration_fast | String | optional,
|
|
duration_normal | String | optional,
|
|
duration_slow | String | optional,
|
|
easing | String | optional,
|
|
|
|
..
|
|
},
|
|
|
|
# Responsive breakpoints
|
|
Breakpoints = {
|
|
sm | String | optional,
|
|
md | String | optional,
|
|
lg | String | optional,
|
|
xl | String | optional,
|
|
"2xl" | String | optional,
|
|
|
|
..
|
|
},
|
|
|
|
# Root theme configuration
|
|
ThemeFile = {
|
|
metadata | Metadata,
|
|
colors | Colors,
|
|
typography | Typography | optional,
|
|
spacing | Spacing | optional,
|
|
radius | Radius | optional,
|
|
shadows | Shadows | optional,
|
|
components | Components | optional,
|
|
assets | Assets | optional,
|
|
animations | Animations | optional,
|
|
breakpoints | Breakpoints | optional,
|
|
|
|
..
|
|
},
|
|
}
|