@teseor/css 1.16.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compiled.css +1 -1
- package/dist/index.css +145 -145
- package/package.json +1 -1
- package/src/base/docs.html +1 -1
- package/src/base/root.scss +1 -1
- package/src/base/typography/typography.scss +6 -6
- package/src/components/actions/button/api.json +1 -1
- package/src/components/actions/button/index.scss +1 -1
- package/src/components/content/divider/index.scss +2 -2
- package/src/components/data-display/avatar/index.scss +1 -1
- package/src/components/data-display/badge/api.json +1 -1
- package/src/components/data-display/badge/index.scss +1 -1
- package/src/components/data-display/data-list/index.scss +1 -1
- package/src/components/data-display/stat/api.json +3 -3
- package/src/components/data-display/stat/index.scss +5 -5
- package/src/components/data-display/table/index.scss +1 -1
- package/src/components/data-display/tag/index.scss +1 -1
- package/src/components/disclosure/accordion/index.scss +1 -1
- package/src/components/disclosure/disclosure/index.scss +2 -2
- package/src/components/feedback/alert/index.scss +1 -1
- package/src/components/feedback/progress/index.scss +1 -1
- package/src/components/feedback/skeleton/index.scss +1 -1
- package/src/components/feedback/toast/index.scss +2 -2
- package/src/components/forms/checkbox-group/api.json +1 -1
- package/src/components/forms/checkbox-group/index.scss +2 -2
- package/src/components/forms/fieldset/api.json +1 -1
- package/src/components/forms/fieldset/index.scss +2 -2
- package/src/components/forms/form-error/index.scss +1 -1
- package/src/components/forms/form-helper/index.scss +1 -1
- package/src/components/forms/label/index.scss +3 -3
- package/src/components/forms/radio-group/api.json +1 -1
- package/src/components/forms/radio-group/index.scss +2 -2
- package/src/components/forms/slider/index.scss +2 -2
- package/src/components/forms/toggle/index.scss +1 -1
- package/src/components/navigation/dropdown-menu/api.json +1 -1
- package/src/components/navigation/dropdown-menu/index.scss +1 -1
- package/src/components/navigation/menu/index.scss +2 -2
- package/src/components/navigation/nav/api.json +1 -1
- package/src/components/navigation/nav/index.scss +1 -1
- package/src/components/navigation/tabs/index.scss +1 -1
- package/src/components/overlays/dialog/index.scss +1 -1
- package/src/components/overlays/drawer/index.scss +2 -2
- package/src/components/overlays/modal/api.json +1 -1
- package/src/components/overlays/modal/index.scss +1 -1
- package/src/components/overlays/overlay/api.json +1 -1
- package/src/components/overlays/overlay/index.scss +1 -1
- package/src/components/overlays/popover/api.json +1 -1
- package/src/components/overlays/popover/index.scss +3 -3
- package/src/components/overlays/tooltip/api.json +1 -1
- package/src/components/overlays/tooltip/index.scss +1 -1
- package/src/components/typography/blockquote/api.json +1 -1
- package/src/components/typography/blockquote/index.scss +2 -2
- package/src/components/typography/code/index.scss +1 -1
- package/src/components/typography/code-block/api.json +1 -1
- package/src/components/typography/code-block/index.scss +1 -1
- package/src/components/typography/heading/api.json +9 -9
- package/src/components/typography/heading/index.scss +9 -9
- package/src/components/typography/list/api.json +1 -1
- package/src/components/typography/list/index.scss +2 -2
- package/src/config/guides/accessibility.docs.html +1 -1
- package/src/config/guides/theming.docs.html +43 -10
- package/src/config/guides/token-architecture.docs.html +87 -0
- package/src/config/tokens/_variables.scss +30 -30
- package/src/config/tokens/docs.html +10 -10
- package/src/config/tokens/typography.scss +47 -47
- package/src/config/tokens/zindex.scss +10 -10
- package/src/debug/index.scss +3 -3
- package/src/layout/footer/api.json +1 -1
- package/src/layout/footer/index.scss +1 -1
- package/src/layout/nav-rail/api.json +1 -1
- package/src/layout/nav-rail/index.scss +1 -1
- package/src/layout/page-header/index.scss +1 -1
- package/src/layout/sidebar/index.scss +1 -1
- package/src/layout/sidebar-nav/api.json +2 -2
- package/src/layout/sidebar-nav/index.scss +4 -4
- package/src/layout/topbar/api.json +1 -1
- package/src/layout/topbar/index.scss +1 -1
- package/src/utilities/scroll-animation/index.scss +1 -1
- package/src/utilities/text/text.scss +15 -15
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
// @desc Font size
|
|
23
23
|
--_font-size: var(--ui-tooltip-font-size, var(--ui-font-size-sm, #{t.$font-size-sm}));
|
|
24
24
|
// @desc Z-index stacking order
|
|
25
|
-
--_z: var(--ui-tooltip-z, var(--ui-z-tooltip, #{t.$z-tooltip}));
|
|
25
|
+
--_z: var(--ui-tooltip-z, var(--ui-z-index-tooltip, #{t.$z-index-tooltip}));
|
|
26
26
|
// @desc Arrow size
|
|
27
27
|
--_arrow-size: var(--ui-tooltip-arrow-size, calc(#{t.$unit} / 2));
|
|
28
28
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
.blockquote {
|
|
7
7
|
--_space-1: var(--ui-space-1, #{t.$space-1});
|
|
8
8
|
--_font-size-sm: var(--ui-font-size-sm, #{t.$font-size-sm});
|
|
9
|
-
--_leading-sm: var(--ui-
|
|
9
|
+
--_leading-sm: var(--ui-line-height-sm, #{t.$line-height-sm});
|
|
10
10
|
--_color-text-muted: var(--ui-color-text-muted, #{t.$color-text-muted});
|
|
11
11
|
// @desc Border color
|
|
12
12
|
--_border-color: var(--ui-blockquote-border-color, var(--ui-color-border-strong, #{t.$color-border-strong}));
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
// @desc Font size
|
|
20
20
|
--_font-size: var(--ui-blockquote-font-size, var(--ui-font-size-lg, #{t.$font-size-lg}));
|
|
21
21
|
// @desc Line height
|
|
22
|
-
--_line-height: var(--ui-blockquote-line-height, var(--ui-
|
|
22
|
+
--_line-height: var(--ui-blockquote-line-height, var(--ui-line-height-lg, #{t.$line-height-lg}));
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
// @modifier variant
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// Inline code
|
|
9
9
|
.code {
|
|
10
10
|
--_font-mono: var(--ui-font-mono, #{t.$font-mono});
|
|
11
|
-
--_leading-tight-sm: var(--ui-
|
|
11
|
+
--_leading-tight-sm: var(--ui-line-height-tight-sm, #{t.$line-height-tight-sm});
|
|
12
12
|
--_border-width-sm: var(--ui-border-width-sm, #{t.$border-width-sm});
|
|
13
13
|
// @desc Font size
|
|
14
14
|
--_font-size: var(--ui-code-font-size, var(--ui-font-size-sm, #{t.$font-size-sm}));
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
// @desc Font size
|
|
22
22
|
--_font-size: var(--ui-code-block-font-size, var(--ui-font-size-sm, #{t.$font-size-sm}));
|
|
23
23
|
// @desc Line height
|
|
24
|
-
--_line-height: var(--ui-code-block-line-height, var(--ui-
|
|
24
|
+
--_line-height: var(--ui-code-block-line-height, var(--ui-line-height-tight-sm, #{t.$line-height-tight-sm}));
|
|
25
25
|
// @desc Corner radius
|
|
26
26
|
--_radius: var(--ui-code-block-radius, var(--ui-radius-md, #{t.$radius-md}));
|
|
27
27
|
}
|
|
@@ -15,12 +15,12 @@
|
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
17
|
"name": "--ui-heading-line-height",
|
|
18
|
-
"default": "var(--ui-
|
|
18
|
+
"default": "var(--ui-line-height-xl)",
|
|
19
19
|
"description": "Line height"
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
"name": "--ui-heading-weight",
|
|
23
|
-
"default": "var(--ui-weight-bold)",
|
|
23
|
+
"default": "var(--ui-font-weight-bold)",
|
|
24
24
|
"description": "Weight"
|
|
25
25
|
},
|
|
26
26
|
{
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
37
|
"name": "--ui-heading-line-height-4xl",
|
|
38
|
-
"default": "var(--ui-
|
|
38
|
+
"default": "var(--ui-line-height-4xl)",
|
|
39
39
|
"description": "Line height 4xl"
|
|
40
40
|
},
|
|
41
41
|
{
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
"name": "--ui-heading-line-height-3xl",
|
|
48
|
-
"default": "var(--ui-
|
|
48
|
+
"default": "var(--ui-line-height-3xl)",
|
|
49
49
|
"description": "Line height 3xl"
|
|
50
50
|
},
|
|
51
51
|
{
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
"name": "--ui-heading-line-height-2xl",
|
|
58
|
-
"default": "var(--ui-
|
|
58
|
+
"default": "var(--ui-line-height-2xl)",
|
|
59
59
|
"description": "Line height 2xl"
|
|
60
60
|
},
|
|
61
61
|
{
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
67
|
"name": "--ui-heading-line-height-xl",
|
|
68
|
-
"default": "var(--ui-
|
|
68
|
+
"default": "var(--ui-line-height-xl)",
|
|
69
69
|
"description": "Line height at extra-large size"
|
|
70
70
|
},
|
|
71
71
|
{
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
},
|
|
76
76
|
{
|
|
77
77
|
"name": "--ui-heading-line-height-lg",
|
|
78
|
-
"default": "var(--ui-
|
|
78
|
+
"default": "var(--ui-line-height-lg)",
|
|
79
79
|
"description": "Line height at large size"
|
|
80
80
|
},
|
|
81
81
|
{
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
},
|
|
86
86
|
{
|
|
87
87
|
"name": "--ui-heading-line-height-md",
|
|
88
|
-
"default": "var(--ui-
|
|
88
|
+
"default": "var(--ui-line-height-tight-md)",
|
|
89
89
|
"description": "Line height at medium size"
|
|
90
90
|
},
|
|
91
91
|
{
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
},
|
|
96
96
|
{
|
|
97
97
|
"name": "--ui-heading-line-height-sm",
|
|
98
|
-
"default": "var(--ui-
|
|
98
|
+
"default": "var(--ui-line-height-tight-sm)",
|
|
99
99
|
"description": "Line height at small size"
|
|
100
100
|
}
|
|
101
101
|
]
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
// @desc Font size
|
|
9
9
|
--_font-size: var(--ui-heading-font-size, var(--ui-font-size-xl, #{t.$font-size-xl}));
|
|
10
10
|
// @desc Line height
|
|
11
|
-
--_line-height: var(--ui-heading-line-height, var(--ui-
|
|
11
|
+
--_line-height: var(--ui-heading-line-height, var(--ui-line-height-xl, #{t.$line-height-xl}));
|
|
12
12
|
// @desc Weight
|
|
13
|
-
--_weight: var(--ui-heading-weight, var(--ui-weight-bold, #{t.$weight-bold}));
|
|
13
|
+
--_weight: var(--ui-heading-weight, var(--ui-font-weight-bold, #{t.$font-weight-bold}));
|
|
14
14
|
// @desc Text color
|
|
15
15
|
--_color: var(--ui-heading-color, var(--ui-color-text, #{t.$color-text}));
|
|
16
16
|
}
|
|
@@ -20,49 +20,49 @@
|
|
|
20
20
|
// @desc Font size 4xl
|
|
21
21
|
--_font-size: var(--ui-heading-font-size-4xl, var(--ui-font-size-4xl, #{t.$font-size-4xl}));
|
|
22
22
|
// @desc Line height 4xl
|
|
23
|
-
--_line-height: var(--ui-heading-line-height-4xl, var(--ui-
|
|
23
|
+
--_line-height: var(--ui-heading-line-height-4xl, var(--ui-line-height-4xl, #{t.$line-height-4xl}));
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
.heading--3xl {
|
|
27
27
|
// @desc Font size 3xl
|
|
28
28
|
--_font-size: var(--ui-heading-font-size-3xl, var(--ui-font-size-3xl, #{t.$font-size-3xl}));
|
|
29
29
|
// @desc Line height 3xl
|
|
30
|
-
--_line-height: var(--ui-heading-line-height-3xl, var(--ui-
|
|
30
|
+
--_line-height: var(--ui-heading-line-height-3xl, var(--ui-line-height-3xl, #{t.$line-height-3xl}));
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
.heading--2xl {
|
|
34
34
|
// @desc Font size 2xl
|
|
35
35
|
--_font-size: var(--ui-heading-font-size-2xl, var(--ui-font-size-2xl, #{t.$font-size-2xl}));
|
|
36
36
|
// @desc Line height 2xl
|
|
37
|
-
--_line-height: var(--ui-heading-line-height-2xl, var(--ui-
|
|
37
|
+
--_line-height: var(--ui-heading-line-height-2xl, var(--ui-line-height-2xl, #{t.$line-height-2xl}));
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
.heading--xl {
|
|
41
41
|
// @desc Font size at extra-large size
|
|
42
42
|
--_font-size: var(--ui-heading-font-size-xl, var(--ui-font-size-xl, #{t.$font-size-xl}));
|
|
43
43
|
// @desc Line height at extra-large size
|
|
44
|
-
--_line-height: var(--ui-heading-line-height-xl, var(--ui-
|
|
44
|
+
--_line-height: var(--ui-heading-line-height-xl, var(--ui-line-height-xl, #{t.$line-height-xl}));
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
.heading--lg {
|
|
48
48
|
// @desc Font size at large size
|
|
49
49
|
--_font-size: var(--ui-heading-font-size-lg, var(--ui-font-size-lg, #{t.$font-size-lg}));
|
|
50
50
|
// @desc Line height at large size
|
|
51
|
-
--_line-height: var(--ui-heading-line-height-lg, var(--ui-
|
|
51
|
+
--_line-height: var(--ui-heading-line-height-lg, var(--ui-line-height-lg, #{t.$line-height-lg}));
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
.heading--md {
|
|
55
55
|
// @desc Font size at medium size
|
|
56
56
|
--_font-size: var(--ui-heading-font-size-md, var(--ui-font-size-md, #{t.$font-size-md}));
|
|
57
57
|
// @desc Line height at medium size
|
|
58
|
-
--_line-height: var(--ui-heading-line-height-md, var(--ui-
|
|
58
|
+
--_line-height: var(--ui-heading-line-height-md, var(--ui-line-height-tight-md, #{t.$line-height-tight-md}));
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
.heading--sm {
|
|
62
62
|
// @desc Font size at small size
|
|
63
63
|
--_font-size: var(--ui-heading-font-size-sm, var(--ui-font-size-sm, #{t.$font-size-sm}));
|
|
64
64
|
// @desc Line height at small size
|
|
65
|
-
--_line-height: var(--ui-heading-line-height-sm, var(--ui-
|
|
65
|
+
--_line-height: var(--ui-heading-line-height-sm, var(--ui-line-height-tight-sm, #{t.$line-height-tight-sm}));
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
}
|
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
@layer components.tokens {
|
|
8
8
|
.list {
|
|
9
9
|
// @desc Spacing
|
|
10
|
-
--_spacing: var(--ui-list-spacing, #{t.$unit});
|
|
10
|
+
--_spacing: var(--ui-list-spacing, var(--ui-unit, #{t.$unit}));
|
|
11
11
|
// @desc Marker color
|
|
12
12
|
--_marker-color: var(--ui-list-marker-color, var(--ui-color-text-muted, #{t.$color-text-muted}));
|
|
13
13
|
// @desc Indent
|
|
14
14
|
--_indent: var(--ui-list-indent, var(--ui-space-3, #{t.$space-3}));
|
|
15
15
|
// @desc Line height
|
|
16
|
-
--_line-height: var(--ui-list-line-height, var(--ui-
|
|
16
|
+
--_line-height: var(--ui-list-line-height, var(--ui-line-height-md, #{t.$line-height-md}));
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
// @modifier spacing
|
|
@@ -28,6 +28,27 @@ weight: 2
|
|
|
28
28
|
<button class="ui-button ui-button--danger">{{ t('danger', 'Danger') }}</button>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
|
+
<!-- @radius_theming -->
|
|
32
|
+
<!-- Override --ui-radius-base to control all corner radii at once. Set to 0 for sharp corners or increase for a softer look. sm/md/lg derive automatically via calc(). -->
|
|
33
|
+
<div class="demo-theme demo-theme--sharp">
|
|
34
|
+
<button class="ui-button">{{ t('sharp_button', 'Sharp') }}</button>
|
|
35
|
+
<div class="ui-card">
|
|
36
|
+
<p>{{ t('sharp_radius', 'radius-base: 0') }}</p>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
<div class="demo-theme">
|
|
40
|
+
<button class="ui-button">{{ t('default_button', 'Default') }}</button>
|
|
41
|
+
<div class="ui-card">
|
|
42
|
+
<p>{{ t('default_radius', 'radius-base: 0.5rem') }}</p>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
<div class="demo-theme demo-theme--round">
|
|
46
|
+
<button class="ui-button">{{ t('round_button', 'Round') }}</button>
|
|
47
|
+
<div class="ui-card">
|
|
48
|
+
<p>{{ t('round_radius', 'radius-base: 1rem') }}</p>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
31
52
|
<!-- @dark_mode -->
|
|
32
53
|
<!-- Dark mode uses the CSS light-dark() function. Tokens resolve automatically based on color-scheme. Override with data-theme attribute. -->
|
|
33
54
|
<div class="demo-theme">
|
|
@@ -46,8 +67,29 @@ weight: 2
|
|
|
46
67
|
</div>
|
|
47
68
|
</div>
|
|
48
69
|
|
|
70
|
+
<!-- @full_theme_examples -->
|
|
71
|
+
<!-- Complete theme customization using just 2-3 root tokens. -->
|
|
72
|
+
<div class="demo-theme demo-theme--corporate">
|
|
73
|
+
<button class="ui-button">{{ t('action', 'Action') }}</button>
|
|
74
|
+
<div class="ui-card">
|
|
75
|
+
<p>{{ t('corporate_theme', 'Corporate: teal, sharp corners, system font') }}</p>
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
<div class="demo-theme demo-theme--playful">
|
|
79
|
+
<button class="ui-button">{{ t('action', 'Action') }}</button>
|
|
80
|
+
<div class="ui-card">
|
|
81
|
+
<p>{{ t('playful_theme', 'Playful: orange, round corners') }}</p>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
<div class="demo-theme demo-theme--minimal">
|
|
85
|
+
<button class="ui-button">{{ t('action', 'Action') }}</button>
|
|
86
|
+
<div class="ui-card">
|
|
87
|
+
<p>{{ t('minimal_theme', 'Minimal: neutral palette, no radius') }}</p>
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
|
|
49
91
|
<!-- @component_overrides -->
|
|
50
|
-
<!-- Override specific component tokens -->
|
|
92
|
+
<!-- Override specific component tokens for fine-grained control. -->
|
|
51
93
|
<div class="demo-theme demo-buttons">
|
|
52
94
|
<button class="ui-button ui-button--sm">{{ t('small', 'Small') }}</button>
|
|
53
95
|
<button class="ui-button">{{ t('default', 'Default') }}</button>
|
|
@@ -58,12 +100,3 @@ weight: 2
|
|
|
58
100
|
<p>{{ t('card_with_custom_padding', 'Card with custom padding') }}</p>
|
|
59
101
|
</div>
|
|
60
102
|
</div>
|
|
61
|
-
|
|
62
|
-
<!-- @full_theme_example -->
|
|
63
|
-
<!-- Complete theme customization -->
|
|
64
|
-
<div class="demo-theme demo-theme--corporate">
|
|
65
|
-
<button class="ui-button">{{ t('action', 'Action') }}</button>
|
|
66
|
-
<div class="ui-card">
|
|
67
|
-
<p>{{ t('corporate_theme_with_teal_accent_and_sharp_corners', 'Corporate theme with teal accent and sharp corners') }}</p>
|
|
68
|
-
</div>
|
|
69
|
-
</div>
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Token Architecture
|
|
3
|
+
description: Design token taxonomy — tiers, naming dictionary, theme roots, and derivation patterns
|
|
4
|
+
skipValidation: true
|
|
5
|
+
weight: 3
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!-- @token_tiers -->
|
|
9
|
+
<!-- Tokens are organized into four tiers. Theme roots feed primitives, primitives feed semantic tokens, and semantic tokens feed component tokens. -->
|
|
10
|
+
<pre>
|
|
11
|
+
{{ t('tier_diagram',
|
|
12
|
+
'Theme Roots Primitives Semantic Component
|
|
13
|
+
--ui-color-primary --ui-color-* --ui-color-text --ui-button-bg
|
|
14
|
+
--ui-unit --ui-space-* --ui-color-bg --ui-input-height
|
|
15
|
+
--ui-radius-base --ui-row-* --ui-color-border --ui-card-radius
|
|
16
|
+
--ui-font-sans --ui-font-size-* --ui-opacity-* --ui-alert-bg
|
|
17
|
+
--ui-radius-* --ui-overlay-*') }}
|
|
18
|
+
</pre>
|
|
19
|
+
|
|
20
|
+
<!-- @naming_dictionary -->
|
|
21
|
+
<!-- Every --ui-* token must use a prefix from this dictionary. The lint enforces it. -->
|
|
22
|
+
<table class="ui-table">
|
|
23
|
+
<thead>
|
|
24
|
+
<tr>
|
|
25
|
+
<th>{{ t('col_prefix', 'Prefix') }}</th>
|
|
26
|
+
<th>{{ t('col_scales', 'Scales') }}</th>
|
|
27
|
+
<th>{{ t('col_example', 'Example') }}</th>
|
|
28
|
+
</tr>
|
|
29
|
+
</thead>
|
|
30
|
+
<tbody>
|
|
31
|
+
<tr><td>unit</td><td>{{ t('singleton', 'singleton') }}</td><td>--ui-unit</td></tr>
|
|
32
|
+
<tr><td>row</td><td>1–6</td><td>--ui-row-2</td></tr>
|
|
33
|
+
<tr><td>space</td><td>px, quarter, half, 0–8</td><td>--ui-space-2</td></tr>
|
|
34
|
+
<tr><td>color</td><td>{{ t('open_ended', 'open-ended') }}</td><td>--ui-color-primary</td></tr>
|
|
35
|
+
<tr><td>font</td><td>sans, mono</td><td>--ui-font-sans</td></tr>
|
|
36
|
+
<tr><td>font-size</td><td>xs–4xl</td><td>--ui-font-size-lg</td></tr>
|
|
37
|
+
<tr><td>font-weight</td><td>normal, medium, semibold, bold</td><td>--ui-font-weight-bold</td></tr>
|
|
38
|
+
<tr><td>line-height</td><td>{{ t('open_ended', 'open-ended') }}</td><td>--ui-line-height-md</td></tr>
|
|
39
|
+
<tr><td>letter-spacing</td><td>display, body, caps</td><td>--ui-letter-spacing-caps</td></tr>
|
|
40
|
+
<tr><td>radius</td><td>base, sm, md, lg, full</td><td>--ui-radius-md</td></tr>
|
|
41
|
+
<tr><td>border-width</td><td>sm, md, lg</td><td>--ui-border-width-sm</td></tr>
|
|
42
|
+
<tr><td>shadow</td><td>sm, md, lg</td><td>--ui-shadow-lg</td></tr>
|
|
43
|
+
<tr><td>z-index</td><td>base–debug (10 levels)</td><td>--ui-z-index-modal</td></tr>
|
|
44
|
+
<tr><td>duration</td><td>instant–slower</td><td>--ui-duration-fast</td></tr>
|
|
45
|
+
<tr><td>ease</td><td>default, in, out, in-out</td><td>--ui-ease-out</td></tr>
|
|
46
|
+
<tr><td>opacity</td><td>disabled, loading</td><td>--ui-opacity-disabled</td></tr>
|
|
47
|
+
<tr><td>overlay</td><td>bg, bg-light, bg-blur, bg-subtle</td><td>--ui-overlay-bg</td></tr>
|
|
48
|
+
<tr><td>heading</td><td>{{ t('open_ended', 'open-ended') }}</td><td>--ui-heading-1-size</td></tr>
|
|
49
|
+
<tr><td>body / body-sm</td><td>{{ t('open_ended', 'open-ended') }}</td><td>--ui-body-weight</td></tr>
|
|
50
|
+
<tr><td>caption / lead / eyebrow</td><td>{{ t('open_ended', 'open-ended') }}</td><td>--ui-caption-size</td></tr>
|
|
51
|
+
<tr><td>input</td><td>{{ t('open_ended', 'open-ended') }}</td><td>--ui-input-height</td></tr>
|
|
52
|
+
</tbody>
|
|
53
|
+
</table>
|
|
54
|
+
|
|
55
|
+
<!-- @theme_root_tokens -->
|
|
56
|
+
<!-- Theme roots are the small set of tokens you override to create a brand theme. Everything else derives from them. -->
|
|
57
|
+
<pre>
|
|
58
|
+
{{ t('theme_roots_code',
|
|
59
|
+
':root {
|
|
60
|
+
--ui-color-primary: oklch(0.6 0.2 260); /* brand hue */
|
|
61
|
+
--ui-color-neutral: oklch(0.5 0.01 260); /* neutral tint */
|
|
62
|
+
--ui-unit: 8px; /* grid base */
|
|
63
|
+
--ui-radius-base: 0.5rem; /* corner radius */
|
|
64
|
+
--ui-font-sans: system-ui, sans-serif; /* body typeface */
|
|
65
|
+
--ui-font-mono: monospace; /* code typeface */
|
|
66
|
+
}') }}
|
|
67
|
+
</pre>
|
|
68
|
+
|
|
69
|
+
<!-- @derivation -->
|
|
70
|
+
<!-- Tokens use color-mix() and calc() to derive values from roots. Change one root and dozens of tokens update automatically. -->
|
|
71
|
+
<pre>
|
|
72
|
+
{{ t('derivation_code',
|
|
73
|
+
'/* color-mix(): shade derivation from --ui-color-primary */
|
|
74
|
+
--ui-color-primary-light: color-mix(in oklch, var(--ui-color-primary), white 40%);
|
|
75
|
+
--ui-color-primary-dark: color-mix(in oklch, var(--ui-color-primary), black 30%);
|
|
76
|
+
--ui-color-primary-subtle: color-mix(in oklch, var(--ui-color-primary), transparent 85%);
|
|
77
|
+
|
|
78
|
+
/* calc(): radius derivation from --ui-radius-base */
|
|
79
|
+
--ui-radius-sm: calc(var(--ui-radius-base) * 0.5);
|
|
80
|
+
--ui-radius-md: var(--ui-radius-base);
|
|
81
|
+
--ui-radius-lg: calc(var(--ui-radius-base) * 1.5);
|
|
82
|
+
--ui-radius-full: 9999px;
|
|
83
|
+
|
|
84
|
+
/* calc(): spacing from --ui-unit */
|
|
85
|
+
--ui-space-1: var(--ui-unit); /* 8px */
|
|
86
|
+
--ui-space-2: calc(var(--ui-unit) * 2); /* 16px */') }}
|
|
87
|
+
</pre>
|
|
@@ -112,32 +112,32 @@ $font-size-3xl: 2rem; // 32px
|
|
|
112
112
|
$font-size-4xl: 2.5rem; // 40px
|
|
113
113
|
|
|
114
114
|
// Tight line heights (compact UI elements)
|
|
115
|
-
$
|
|
116
|
-
$
|
|
117
|
-
$
|
|
118
|
-
$
|
|
115
|
+
$line-height-tight-xs: $row;
|
|
116
|
+
$line-height-tight-sm: $row;
|
|
117
|
+
$line-height-tight-md: $unit * 3;
|
|
118
|
+
$line-height-tight-lg: $unit * 3;
|
|
119
119
|
|
|
120
120
|
// Normal line heights (body text)
|
|
121
|
-
$
|
|
122
|
-
$
|
|
123
|
-
$
|
|
124
|
-
$
|
|
125
|
-
$
|
|
126
|
-
$
|
|
127
|
-
$
|
|
128
|
-
$
|
|
121
|
+
$line-height-xs: $row;
|
|
122
|
+
$line-height-sm: $unit * 3;
|
|
123
|
+
$line-height-md: $unit * 3;
|
|
124
|
+
$line-height-lg: $row-2;
|
|
125
|
+
$line-height-xl: $row-2;
|
|
126
|
+
$line-height-2xl: $row-2;
|
|
127
|
+
$line-height-3xl: $unit * 5;
|
|
128
|
+
$line-height-4xl: $unit * 6;
|
|
129
129
|
|
|
130
130
|
// Font weights
|
|
131
|
-
$weight-normal: 400;
|
|
132
|
-
$weight-medium: 500;
|
|
133
|
-
$weight-semibold: 600;
|
|
134
|
-
$weight-bold: 700;
|
|
131
|
+
$font-weight-normal: 400;
|
|
132
|
+
$font-weight-medium: 500;
|
|
133
|
+
$font-weight-semibold: 600;
|
|
134
|
+
$font-weight-bold: 700;
|
|
135
135
|
|
|
136
136
|
// Letter spacing
|
|
137
|
-
$
|
|
138
|
-
$
|
|
139
|
-
$
|
|
140
|
-
$
|
|
137
|
+
$letter-spacing-display: -0.02em;
|
|
138
|
+
$letter-spacing-body: 0;
|
|
139
|
+
$letter-spacing-wide: 0.05em;
|
|
140
|
+
$letter-spacing-caps: 0.08em;
|
|
141
141
|
|
|
142
142
|
// Relative font sizes (for sub-elements sized relative to parent)
|
|
143
143
|
$font-size-relative-xs: 0.6em;
|
|
@@ -170,16 +170,16 @@ $shadow-lg: 0 10px 15px hsl(220 10% 20% / 0.15);
|
|
|
170
170
|
// ==========================================================================
|
|
171
171
|
// 8. Z-index scale
|
|
172
172
|
// ==========================================================================
|
|
173
|
-
$z-base: 0;
|
|
174
|
-
$z-sticky: 100;
|
|
175
|
-
$z-dropdown: 200;
|
|
176
|
-
$z-overlay: 300;
|
|
177
|
-
$z-modal: 400;
|
|
178
|
-
$z-popover: 500;
|
|
179
|
-
$z-tooltip: 600;
|
|
180
|
-
$z-toast: 700;
|
|
181
|
-
$z-drawer: 800;
|
|
182
|
-
$z-debug: 9999;
|
|
173
|
+
$z-index-base: 0;
|
|
174
|
+
$z-index-sticky: 100;
|
|
175
|
+
$z-index-dropdown: 200;
|
|
176
|
+
$z-index-overlay: 300;
|
|
177
|
+
$z-index-modal: 400;
|
|
178
|
+
$z-index-popover: 500;
|
|
179
|
+
$z-index-tooltip: 600;
|
|
180
|
+
$z-index-toast: 700;
|
|
181
|
+
$z-index-drawer: 800;
|
|
182
|
+
$z-index-debug: 9999;
|
|
183
183
|
|
|
184
184
|
// ==========================================================================
|
|
185
185
|
// 9. Motion
|
|
@@ -73,16 +73,16 @@ skipValidation: true
|
|
|
73
73
|
<!-- @z_index -->
|
|
74
74
|
<!-- Layering scale with gaps to allow insertion without renumbering. -->
|
|
75
75
|
:root {
|
|
76
|
-
--ui-z-base: 0;
|
|
77
|
-
--ui-z-sticky: 100;
|
|
78
|
-
--ui-z-dropdown: 200;
|
|
79
|
-
--ui-z-overlay: 300;
|
|
80
|
-
--ui-z-modal: 400;
|
|
81
|
-
--ui-z-popover: 500;
|
|
82
|
-
--ui-z-tooltip: 600;
|
|
83
|
-
--ui-z-toast: 700;
|
|
84
|
-
--ui-z-drawer: 800;
|
|
85
|
-
--ui-z-debug: 9999;
|
|
76
|
+
--ui-z-index-base: 0;
|
|
77
|
+
--ui-z-index-sticky: 100;
|
|
78
|
+
--ui-z-index-dropdown: 200;
|
|
79
|
+
--ui-z-index-overlay: 300;
|
|
80
|
+
--ui-z-index-modal: 400;
|
|
81
|
+
--ui-z-index-popover: 500;
|
|
82
|
+
--ui-z-index-tooltip: 600;
|
|
83
|
+
--ui-z-index-toast: 700;
|
|
84
|
+
--ui-z-index-drawer: 800;
|
|
85
|
+
--ui-z-index-debug: 9999;
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
<!-- @semantic_colors -->
|