@skra/tokens 0.2.0

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.
Files changed (55) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +7 -0
  3. package/README.md +64 -0
  4. package/brutal/_baseline.scss +22 -0
  5. package/brutal/_comp.scss +985 -0
  6. package/brutal/_density.comfortable.scoped.scss +166 -0
  7. package/brutal/_density.comfortable.scss +166 -0
  8. package/brutal/_density.compact.scoped.scss +166 -0
  9. package/brutal/_density.compact.scss +166 -0
  10. package/brutal/_theme.dark.scoped.scss +707 -0
  11. package/brutal/_theme.dark.scss +708 -0
  12. package/brutal/_theme.scoped.scss +1289 -0
  13. package/brutal/_theme.scss +451 -0
  14. package/brutal/skin.config.json +40 -0
  15. package/manifests/accordion.json +52 -0
  16. package/manifests/alert.json +107 -0
  17. package/manifests/avatar.json +78 -0
  18. package/manifests/badge.json +63 -0
  19. package/manifests/box.json +34 -0
  20. package/manifests/button.json +133 -0
  21. package/manifests/chip.json +116 -0
  22. package/manifests/combobox.json +141 -0
  23. package/manifests/datepicker.json +159 -0
  24. package/manifests/dialog.json +104 -0
  25. package/manifests/field.json +267 -0
  26. package/manifests/grid.json +61 -0
  27. package/manifests/icon.json +43 -0
  28. package/manifests/kbd.json +68 -0
  29. package/manifests/link.json +107 -0
  30. package/manifests/menu.json +122 -0
  31. package/manifests/popover.json +104 -0
  32. package/manifests/progress.json +69 -0
  33. package/manifests/select.json +177 -0
  34. package/manifests/skeleton.json +43 -0
  35. package/manifests/stack.json +34 -0
  36. package/manifests/star-rating.json +96 -0
  37. package/manifests/status-dot.json +69 -0
  38. package/manifests/tabs.json +52 -0
  39. package/manifests/toast.json +133 -0
  40. package/manifests/tooltip.json +113 -0
  41. package/manifests/typography.json +169 -0
  42. package/overlays/brand-jade.scss +9 -0
  43. package/overlays/round-corners.scss +8 -0
  44. package/overlays/square-corners.scss +8 -0
  45. package/package.json +19 -0
  46. package/skra/_baseline.scss +22 -0
  47. package/skra/_comp.scss +981 -0
  48. package/skra/_density.comfortable.scss +166 -0
  49. package/skra/_density.compact.scss +166 -0
  50. package/skra/_form-controls.scss +74 -0
  51. package/skra/_overlay.scss +42 -0
  52. package/skra/_theme.dark.scss +698 -0
  53. package/skra/_theme.scss +448 -0
  54. package/skra/skin.config.json +37 -0
  55. package/skra/utilities.scss +38 -0
@@ -0,0 +1,43 @@
1
+ {
2
+ "$schema": "https://skra-ds/schemas/skin-surface.v1.json",
3
+ "component": "skeleton",
4
+ "skraVersion": ">=1.0.0",
5
+ "axes": [
6
+ {
7
+ "token": "--skra-comp-skeleton-background",
8
+ "label": "Skeleton — placeholder fill colour (the animated bar)",
9
+ "group": "Surface",
10
+ "type": "color",
11
+ "states": ["default"],
12
+ "constraint": { "oklch": true },
13
+ "overridable": ["overlay", "subtree", "instance"]
14
+ },
15
+ {
16
+ "token": "--skra-comp-skeleton-radius",
17
+ "label": "Skeleton — bar corner radius (text/block; circle is structurally round)",
18
+ "group": "Surface",
19
+ "type": "dimension",
20
+ "states": ["default"],
21
+ "constraint": { "unit": "rem", "min": 0, "max": 2 },
22
+ "overridable": ["overlay", "subtree"]
23
+ },
24
+ {
25
+ "token": "--skra-comp-skeleton-border-color",
26
+ "label": "Skeleton — bar border colour (used by stark skins)",
27
+ "group": "Surface",
28
+ "type": "color",
29
+ "states": ["default"],
30
+ "constraint": { "oklch": true },
31
+ "overridable": ["overlay", "subtree"]
32
+ },
33
+ {
34
+ "token": "--skra-comp-skeleton-border-width",
35
+ "label": "Skeleton — bar border width",
36
+ "group": "Surface",
37
+ "type": "dimension",
38
+ "states": ["default"],
39
+ "constraint": { "unit": "rem", "min": 0, "max": 0.5 },
40
+ "overridable": ["overlay", "subtree"]
41
+ }
42
+ ]
43
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "$schema": "https://skra-ds/schemas/skin-surface.v1.json",
3
+ "component": "stack",
4
+ "skraVersion": ">=1.0.0",
5
+ "axes": [
6
+ {
7
+ "token": "--skra-comp-stack-gap-sm",
8
+ "label": "Stack — small gap preset",
9
+ "group": "Spacing",
10
+ "type": "dimension",
11
+ "states": ["default"],
12
+ "constraint": { "unit": "rem", "min": 0, "max": 4 },
13
+ "overridable": ["overlay", "subtree", "instance"]
14
+ },
15
+ {
16
+ "token": "--skra-comp-stack-gap-md",
17
+ "label": "Stack — medium gap preset",
18
+ "group": "Spacing",
19
+ "type": "dimension",
20
+ "states": ["default"],
21
+ "constraint": { "unit": "rem", "min": 0, "max": 4 },
22
+ "overridable": ["overlay", "subtree", "instance"]
23
+ },
24
+ {
25
+ "token": "--skra-comp-stack-gap-lg",
26
+ "label": "Stack — large gap preset",
27
+ "group": "Spacing",
28
+ "type": "dimension",
29
+ "states": ["default"],
30
+ "constraint": { "unit": "rem", "min": 0, "max": 4 },
31
+ "overridable": ["overlay", "subtree", "instance"]
32
+ }
33
+ ]
34
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "$schema": "https://skra-ds/schemas/skin-surface.v1.json",
3
+ "component": "star-rating",
4
+ "skraVersion": ">=1.0.0",
5
+ "axes": [
6
+ {
7
+ "token": "--skra-comp-star-rating-star-color-empty",
8
+ "label": "Star — unselected (empty) glyph colour",
9
+ "group": "Surface",
10
+ "type": "color",
11
+ "states": ["default"],
12
+ "constraint": { "oklch": true },
13
+ "overridable": ["overlay", "subtree", "instance"]
14
+ },
15
+ {
16
+ "token": "--skra-comp-star-rating-star-color-filled",
17
+ "label": "Star — selected / hover-preview glyph colour (the rating accent)",
18
+ "group": "Surface",
19
+ "type": "color",
20
+ "states": ["default"],
21
+ "constraint": { "oklch": true },
22
+ "overridable": ["overlay", "subtree", "instance"]
23
+ },
24
+ {
25
+ "token": "--skra-comp-star-rating-gap",
26
+ "label": "Star rating — gap between stars",
27
+ "group": "Spacing",
28
+ "type": "dimension",
29
+ "states": ["default"],
30
+ "constraint": { "unit": "rem", "min": 0, "max": 1 },
31
+ "overridable": ["overlay", "subtree"]
32
+ },
33
+ {
34
+ "token": "--skra-comp-star-rating-star-size-sm",
35
+ "label": "Star glyph size — size=sm",
36
+ "group": "Spacing",
37
+ "type": "dimension",
38
+ "states": ["default"],
39
+ "constraint": { "unit": "rem", "min": 0.5, "max": 3 },
40
+ "overridable": ["overlay", "subtree"]
41
+ },
42
+ {
43
+ "token": "--skra-comp-star-rating-star-size-md",
44
+ "label": "Star glyph size — size=md (default)",
45
+ "group": "Spacing",
46
+ "type": "dimension",
47
+ "states": ["default"],
48
+ "constraint": { "unit": "rem", "min": 0.5, "max": 3 },
49
+ "overridable": ["overlay", "subtree"]
50
+ },
51
+ {
52
+ "token": "--skra-comp-star-rating-star-size-lg",
53
+ "label": "Star glyph size — size=lg",
54
+ "group": "Spacing",
55
+ "type": "dimension",
56
+ "states": ["default"],
57
+ "constraint": { "unit": "rem", "min": 0.5, "max": 3 },
58
+ "overridable": ["overlay", "subtree"]
59
+ },
60
+ {
61
+ "token": "--skra-comp-star-rating-focus-ring-color",
62
+ "label": "Focused star — focus ring colour on :focus-visible",
63
+ "group": "State",
64
+ "type": "color",
65
+ "states": ["focus-visible"],
66
+ "constraint": { "oklch": true },
67
+ "overridable": ["overlay"]
68
+ },
69
+ {
70
+ "token": "--skra-comp-star-rating-focus-ring-width",
71
+ "label": "Focused star — focus ring thickness on :focus-visible",
72
+ "group": "State",
73
+ "type": "dimension",
74
+ "states": ["focus-visible"],
75
+ "constraint": { "unit": "rem", "min": 0.0625, "max": 0.25 },
76
+ "overridable": ["overlay"]
77
+ },
78
+ {
79
+ "token": "--skra-comp-star-rating-motion-duration",
80
+ "label": "Star fill — colour transition duration",
81
+ "group": "Motion",
82
+ "type": "duration",
83
+ "states": ["default"],
84
+ "constraint": { "unit": "ms" },
85
+ "overridable": ["overlay"]
86
+ },
87
+ {
88
+ "token": "--skra-comp-star-rating-motion-easing",
89
+ "label": "Star fill — colour transition easing curve",
90
+ "group": "Motion",
91
+ "type": "cubic-bezier",
92
+ "states": ["default"],
93
+ "overridable": ["overlay"]
94
+ }
95
+ ]
96
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "$schema": "https://skra-ds/schemas/skin-surface.v1.json",
3
+ "component": "status-dot",
4
+ "skraVersion": ">=1.0.0",
5
+ "axes": [
6
+ {
7
+ "token": "--skra-comp-status-dot-border-color",
8
+ "label": "Status dot — ring/halo colour (the avatar punch-out; surface by default, invisible inline)",
9
+ "group": "Surface",
10
+ "type": "color",
11
+ "states": ["default"],
12
+ "constraint": { "oklch": true },
13
+ "overridable": ["overlay", "subtree", "instance"]
14
+ },
15
+ {
16
+ "token": "--skra-comp-status-dot-border-width",
17
+ "label": "Status dot — ring/halo thickness (0 for no ring)",
18
+ "group": "Surface",
19
+ "type": "dimension",
20
+ "states": ["default"],
21
+ "constraint": { "unit": "rem", "min": 0, "max": 1 },
22
+ "overridable": ["overlay", "subtree"]
23
+ },
24
+ {
25
+ "token": "--skra-comp-status-dot-radius",
26
+ "label": "Status dot — corner radius (circle by default; a skin may ship square)",
27
+ "group": "Surface",
28
+ "type": "dimension",
29
+ "states": ["default"],
30
+ "constraint": { "unit": "rem", "min": 0, "max": 2 },
31
+ "overridable": ["overlay", "subtree"]
32
+ },
33
+ {
34
+ "token": "--skra-comp-status-dot-shadow",
35
+ "label": "Status dot — resting shadow",
36
+ "group": "Surface",
37
+ "type": "shadow",
38
+ "states": ["default"],
39
+ "overridable": ["overlay"]
40
+ },
41
+ {
42
+ "token": "--skra-comp-status-dot-size-sm",
43
+ "label": "Status dot — diameter (sm)",
44
+ "group": "Sizing",
45
+ "type": "dimension",
46
+ "states": ["default"],
47
+ "constraint": { "unit": "rem", "min": 0.25, "max": 2 },
48
+ "overridable": ["overlay", "subtree", "instance"]
49
+ },
50
+ {
51
+ "token": "--skra-comp-status-dot-size-md",
52
+ "label": "Status dot — diameter (md)",
53
+ "group": "Sizing",
54
+ "type": "dimension",
55
+ "states": ["default"],
56
+ "constraint": { "unit": "rem", "min": 0.25, "max": 2 },
57
+ "overridable": ["overlay", "subtree", "instance"]
58
+ },
59
+ {
60
+ "token": "--skra-comp-status-dot-size-lg",
61
+ "label": "Status dot — diameter (lg)",
62
+ "group": "Sizing",
63
+ "type": "dimension",
64
+ "states": ["default"],
65
+ "constraint": { "unit": "rem", "min": 0.25, "max": 2 },
66
+ "overridable": ["overlay", "subtree", "instance"]
67
+ }
68
+ ]
69
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "$schema": "https://skra-ds/schemas/skin-surface.v1.json",
3
+ "component": "tabs",
4
+ "skraVersion": ">=1.0.0",
5
+ "axes": [
6
+ {
7
+ "token": "--skra-comp-tabs-indicator-color",
8
+ "label": "Tabs — active-tab selection indicator (underline)",
9
+ "group": "State",
10
+ "type": "color",
11
+ "states": ["selected"],
12
+ "constraint": { "oklch": true },
13
+ "overridable": ["overlay", "subtree", "instance"]
14
+ },
15
+ {
16
+ "token": "--skra-comp-tabs-foreground-selected",
17
+ "label": "Tabs — selected-tab label colour",
18
+ "group": "State",
19
+ "type": "color",
20
+ "states": ["selected"],
21
+ "constraint": { "oklch": true },
22
+ "overridable": ["overlay", "subtree", "instance"]
23
+ },
24
+ {
25
+ "token": "--skra-comp-tabs-foreground",
26
+ "label": "Tabs — resting (unselected) tab label colour",
27
+ "group": "Surface",
28
+ "type": "color",
29
+ "states": ["default"],
30
+ "constraint": { "oklch": true },
31
+ "overridable": ["overlay", "subtree"]
32
+ },
33
+ {
34
+ "token": "--skra-comp-tabs-background-hover",
35
+ "label": "Tabs — tab hover background tint",
36
+ "group": "State",
37
+ "type": "color",
38
+ "states": ["hover"],
39
+ "constraint": { "oklch": true },
40
+ "overridable": ["overlay", "subtree"]
41
+ },
42
+ {
43
+ "token": "--skra-comp-tabs-tablist-border-color",
44
+ "label": "Tabs — tablist rail (bottom border) colour",
45
+ "group": "Surface",
46
+ "type": "color",
47
+ "states": ["default"],
48
+ "constraint": { "oklch": true },
49
+ "overridable": ["overlay", "subtree"]
50
+ }
51
+ ]
52
+ }
@@ -0,0 +1,133 @@
1
+ {
2
+ "$schema": "https://skra-ds/schemas/skin-surface.v1.json",
3
+ "component": "toast",
4
+ "skraVersion": ">=1.0.0",
5
+ "axes": [
6
+ {
7
+ "token": "--skra-comp-toast-background",
8
+ "label": "Toast — background colour (resting)",
9
+ "group": "Surface",
10
+ "type": "color",
11
+ "states": ["default"],
12
+ "scopedBy": ["intent", "emphasis"],
13
+ "constraint": { "oklch": true },
14
+ "overridable": ["overlay", "subtree", "instance"]
15
+ },
16
+ {
17
+ "token": "--skra-comp-toast-foreground",
18
+ "label": "Toast — text/icon colour (resting)",
19
+ "group": "Surface",
20
+ "type": "color",
21
+ "states": ["default"],
22
+ "scopedBy": ["intent", "emphasis"],
23
+ "constraint": { "oklch": true },
24
+ "overridable": ["overlay", "subtree", "instance"]
25
+ },
26
+ {
27
+ "token": "--skra-comp-toast-border-color",
28
+ "label": "Toast — border colour",
29
+ "group": "Surface",
30
+ "type": "color",
31
+ "states": ["default"],
32
+ "scopedBy": ["intent", "emphasis"],
33
+ "constraint": { "oklch": true },
34
+ "overridable": ["overlay", "subtree"]
35
+ },
36
+ {
37
+ "token": "--skra-comp-toast-radius",
38
+ "label": "Toast — corner radius",
39
+ "group": "Surface",
40
+ "type": "dimension",
41
+ "states": ["default"],
42
+ "constraint": { "unit": "rem", "min": 0, "max": 2 },
43
+ "overridable": ["overlay", "subtree"]
44
+ },
45
+ {
46
+ "token": "--skra-comp-toast-shadow",
47
+ "label": "Toast — elevation shadow (toasts float above the page)",
48
+ "group": "Surface",
49
+ "type": "shadow",
50
+ "states": ["default"],
51
+ "overridable": ["overlay"]
52
+ },
53
+ {
54
+ "token": "--skra-comp-toast-focus-ring-color",
55
+ "label": "Dismiss control — focus ring colour on :focus-visible",
56
+ "group": "State",
57
+ "type": "color",
58
+ "states": ["focus-visible"],
59
+ "constraint": { "oklch": true },
60
+ "overridable": ["overlay"]
61
+ },
62
+ {
63
+ "token": "--skra-comp-toast-focus-ring-width",
64
+ "label": "Dismiss control — focus ring thickness on :focus-visible",
65
+ "group": "State",
66
+ "type": "dimension",
67
+ "states": ["focus-visible"],
68
+ "constraint": { "unit": "rem", "min": 0.0625, "max": 0.25 },
69
+ "overridable": ["overlay"]
70
+ },
71
+ {
72
+ "token": "--skra-comp-toast-icon-gap",
73
+ "label": "Toast — gap between icon, message, and dismiss control",
74
+ "group": "Spacing",
75
+ "type": "dimension",
76
+ "states": ["default"],
77
+ "constraint": { "unit": "rem", "min": 0, "max": 2 },
78
+ "overridable": ["overlay", "subtree"]
79
+ },
80
+ {
81
+ "token": "--skra-comp-toast-motion-duration",
82
+ "label": "Toast — enter/transition duration",
83
+ "group": "Motion",
84
+ "type": "duration",
85
+ "states": ["default"],
86
+ "constraint": { "unit": "ms" },
87
+ "overridable": ["overlay"]
88
+ },
89
+ {
90
+ "token": "--skra-comp-toast-motion-easing",
91
+ "label": "Toast — enter/transition easing curve",
92
+ "group": "Motion",
93
+ "type": "cubic-bezier",
94
+ "states": ["default"],
95
+ "overridable": ["overlay"]
96
+ },
97
+ {
98
+ "token": "--skra-comp-toast-region-inset-block",
99
+ "label": "Toast region — distance from the top/bottom viewport edge",
100
+ "group": "Spacing",
101
+ "type": "dimension",
102
+ "states": ["default"],
103
+ "constraint": { "unit": "rem", "min": 0, "max": 8 },
104
+ "overridable": ["overlay", "subtree"]
105
+ },
106
+ {
107
+ "token": "--skra-comp-toast-region-inset-inline",
108
+ "label": "Toast region — distance from the left/right viewport edge",
109
+ "group": "Spacing",
110
+ "type": "dimension",
111
+ "states": ["default"],
112
+ "constraint": { "unit": "rem", "min": 0, "max": 8 },
113
+ "overridable": ["overlay", "subtree"]
114
+ },
115
+ {
116
+ "token": "--skra-comp-toast-region-gap",
117
+ "label": "Toast region — gap between stacked toasts",
118
+ "group": "Spacing",
119
+ "type": "dimension",
120
+ "states": ["default"],
121
+ "constraint": { "unit": "rem", "min": 0, "max": 4 },
122
+ "overridable": ["overlay", "subtree"]
123
+ },
124
+ {
125
+ "token": "--skra-comp-toast-region-max-inline-size",
126
+ "label": "Toast region — maximum toast/stack width",
127
+ "group": "Spacing",
128
+ "type": "dimension",
129
+ "states": ["default"],
130
+ "overridable": ["overlay", "subtree"]
131
+ }
132
+ ]
133
+ }
@@ -0,0 +1,113 @@
1
+ {
2
+ "$schema": "https://skra-ds/schemas/skin-surface.v1.json",
3
+ "component": "tooltip",
4
+ "skraVersion": ">=1.0.0",
5
+ "axes": [
6
+ {
7
+ "token": "--skra-comp-tooltip-background",
8
+ "label": "Tooltip — surface background (inverse by default)",
9
+ "group": "Surface",
10
+ "type": "color",
11
+ "states": ["default"],
12
+ "constraint": { "oklch": true },
13
+ "overridable": ["overlay", "subtree", "instance"]
14
+ },
15
+ {
16
+ "token": "--skra-comp-tooltip-foreground",
17
+ "label": "Tooltip — text colour",
18
+ "group": "Surface",
19
+ "type": "color",
20
+ "states": ["default"],
21
+ "constraint": { "oklch": true },
22
+ "overridable": ["overlay", "subtree", "instance"]
23
+ },
24
+ {
25
+ "token": "--skra-comp-tooltip-radius",
26
+ "label": "Tooltip — corner radius",
27
+ "group": "Surface",
28
+ "type": "dimension",
29
+ "states": ["default"],
30
+ "constraint": { "unit": "rem", "min": 0, "max": 1 },
31
+ "overridable": ["overlay", "subtree"]
32
+ },
33
+ {
34
+ "token": "--skra-comp-tooltip-shadow",
35
+ "label": "Tooltip — elevation shadow",
36
+ "group": "Surface",
37
+ "type": "shadow",
38
+ "states": ["default"],
39
+ "overridable": ["overlay"]
40
+ },
41
+ {
42
+ "token": "--skra-comp-tooltip-padding-block",
43
+ "label": "Tooltip — inner block padding",
44
+ "group": "Spacing",
45
+ "type": "dimension",
46
+ "states": ["default"],
47
+ "constraint": { "unit": "rem", "min": 0, "max": 2 },
48
+ "overridable": ["overlay", "subtree"]
49
+ },
50
+ {
51
+ "token": "--skra-comp-tooltip-padding-inline",
52
+ "label": "Tooltip — inner inline padding",
53
+ "group": "Spacing",
54
+ "type": "dimension",
55
+ "states": ["default"],
56
+ "constraint": { "unit": "rem", "min": 0, "max": 2 },
57
+ "overridable": ["overlay", "subtree"]
58
+ },
59
+ {
60
+ "token": "--skra-comp-tooltip-max-inline-size",
61
+ "label": "Tooltip — maximum width before text wraps",
62
+ "group": "Spacing",
63
+ "type": "dimension",
64
+ "states": ["default"],
65
+ "constraint": { "unit": "rem", "min": 8, "max": 32 },
66
+ "overridable": ["overlay", "subtree"]
67
+ },
68
+ {
69
+ "token": "--skra-comp-tooltip-offset",
70
+ "label": "Tooltip — gap between trigger and panel",
71
+ "group": "Spacing",
72
+ "type": "dimension",
73
+ "states": ["default"],
74
+ "constraint": { "unit": "rem", "min": 0, "max": 1 },
75
+ "overridable": ["overlay", "subtree"]
76
+ },
77
+ {
78
+ "token": "--skra-comp-tooltip-motion-duration",
79
+ "label": "Tooltip — enter/leave transition duration",
80
+ "group": "Motion",
81
+ "type": "duration",
82
+ "states": ["default"],
83
+ "constraint": { "unit": "ms" },
84
+ "overridable": ["overlay"]
85
+ },
86
+ {
87
+ "token": "--skra-comp-tooltip-motion-easing",
88
+ "label": "Tooltip — enter/leave transition easing curve",
89
+ "group": "Motion",
90
+ "type": "cubic-bezier",
91
+ "states": ["default"],
92
+ "overridable": ["overlay"]
93
+ },
94
+ {
95
+ "token": "--skra-comp-tooltip-show-delay",
96
+ "label": "Tooltip — hover open delay",
97
+ "group": "Motion",
98
+ "type": "duration",
99
+ "states": ["default"],
100
+ "constraint": { "unit": "ms" },
101
+ "overridable": ["overlay"]
102
+ },
103
+ {
104
+ "token": "--skra-comp-tooltip-hide-delay",
105
+ "label": "Tooltip — hover close grace delay (WCAG 1.4.13 hoverable)",
106
+ "group": "Motion",
107
+ "type": "duration",
108
+ "states": ["default"],
109
+ "constraint": { "unit": "ms" },
110
+ "overridable": ["overlay"]
111
+ }
112
+ ]
113
+ }