@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.
- package/LICENSE +201 -0
- package/NOTICE +7 -0
- package/README.md +64 -0
- package/brutal/_baseline.scss +22 -0
- package/brutal/_comp.scss +985 -0
- package/brutal/_density.comfortable.scoped.scss +166 -0
- package/brutal/_density.comfortable.scss +166 -0
- package/brutal/_density.compact.scoped.scss +166 -0
- package/brutal/_density.compact.scss +166 -0
- package/brutal/_theme.dark.scoped.scss +707 -0
- package/brutal/_theme.dark.scss +708 -0
- package/brutal/_theme.scoped.scss +1289 -0
- package/brutal/_theme.scss +451 -0
- package/brutal/skin.config.json +40 -0
- package/manifests/accordion.json +52 -0
- package/manifests/alert.json +107 -0
- package/manifests/avatar.json +78 -0
- package/manifests/badge.json +63 -0
- package/manifests/box.json +34 -0
- package/manifests/button.json +133 -0
- package/manifests/chip.json +116 -0
- package/manifests/combobox.json +141 -0
- package/manifests/datepicker.json +159 -0
- package/manifests/dialog.json +104 -0
- package/manifests/field.json +267 -0
- package/manifests/grid.json +61 -0
- package/manifests/icon.json +43 -0
- package/manifests/kbd.json +68 -0
- package/manifests/link.json +107 -0
- package/manifests/menu.json +122 -0
- package/manifests/popover.json +104 -0
- package/manifests/progress.json +69 -0
- package/manifests/select.json +177 -0
- package/manifests/skeleton.json +43 -0
- package/manifests/stack.json +34 -0
- package/manifests/star-rating.json +96 -0
- package/manifests/status-dot.json +69 -0
- package/manifests/tabs.json +52 -0
- package/manifests/toast.json +133 -0
- package/manifests/tooltip.json +113 -0
- package/manifests/typography.json +169 -0
- package/overlays/brand-jade.scss +9 -0
- package/overlays/round-corners.scss +8 -0
- package/overlays/square-corners.scss +8 -0
- package/package.json +19 -0
- package/skra/_baseline.scss +22 -0
- package/skra/_comp.scss +981 -0
- package/skra/_density.comfortable.scss +166 -0
- package/skra/_density.compact.scss +166 -0
- package/skra/_form-controls.scss +74 -0
- package/skra/_overlay.scss +42 -0
- package/skra/_theme.dark.scss +698 -0
- package/skra/_theme.scss +448 -0
- package/skra/skin.config.json +37 -0
- package/skra/utilities.scss +38 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
[data-skra-density="comfortable"] {
|
|
6
|
+
--skra-sys-size-interactive-sm: 2.5rem;
|
|
7
|
+
--skra-sys-size-interactive-md: 3rem;
|
|
8
|
+
--skra-sys-size-interactive-lg: 3.5rem;
|
|
9
|
+
--skra-sys-spacing-1: var(--skra-ref-spacing-2);
|
|
10
|
+
--skra-sys-spacing-2: var(--skra-ref-spacing-3);
|
|
11
|
+
--skra-sys-spacing-3: var(--skra-ref-spacing-4);
|
|
12
|
+
--skra-sys-spacing-4: var(--skra-ref-spacing-6);
|
|
13
|
+
--skra-sys-spacing-6: var(--skra-ref-spacing-8);
|
|
14
|
+
--skra-sys-spacing-8: var(--skra-ref-spacing-8);
|
|
15
|
+
--skra-sys-size-icon-sm: var(--skra-ref-spacing-6);
|
|
16
|
+
--skra-sys-size-icon-md: var(--skra-ref-spacing-8);
|
|
17
|
+
--skra-sys-size-icon-lg: var(--skra-ref-spacing-8);
|
|
18
|
+
--skra-sys-size-grid-track-sm: var(--skra-ref-size-sm);
|
|
19
|
+
--skra-sys-size-grid-track-md: var(--skra-ref-size-md);
|
|
20
|
+
--skra-sys-size-grid-track-lg: var(--skra-ref-size-lg);
|
|
21
|
+
--skra-sys-font-size-hint: var(--skra-ref-font-size-sm);
|
|
22
|
+
--skra-sys-font-size-body: var(--skra-ref-font-size-lg);
|
|
23
|
+
--skra-sys-font-size-label: var(--skra-ref-font-size-md);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
[data-skra-density="comfortable"] {
|
|
27
|
+
--skra-comp-accordion-padding-block: var(--skra-sys-spacing-3);
|
|
28
|
+
--skra-comp-accordion-padding-inline: var(--skra-sys-spacing-4);
|
|
29
|
+
--skra-comp-accordion-min-block-size: var(--skra-sys-size-interactive-md);
|
|
30
|
+
--skra-comp-accordion-header-gap: var(--skra-sys-spacing-3);
|
|
31
|
+
--skra-comp-accordion-panel-padding-block: var(--skra-sys-spacing-3);
|
|
32
|
+
--skra-comp-accordion-panel-padding-inline: var(--skra-sys-spacing-4);
|
|
33
|
+
--skra-comp-alert-padding-block: var(--skra-sys-spacing-3);
|
|
34
|
+
--skra-comp-alert-padding-inline: var(--skra-sys-spacing-4);
|
|
35
|
+
--skra-comp-alert-icon-gap: var(--skra-sys-spacing-3);
|
|
36
|
+
--skra-comp-alert-title-gap: var(--skra-sys-spacing-1);
|
|
37
|
+
--skra-comp-alert-dismiss-size: var(--skra-sys-size-interactive-sm);
|
|
38
|
+
--skra-comp-avatar-size-sm: var(--skra-sys-size-avatar-sm);
|
|
39
|
+
--skra-comp-avatar-size-md: var(--skra-sys-size-avatar-md);
|
|
40
|
+
--skra-comp-avatar-size-lg: var(--skra-sys-size-avatar-lg);
|
|
41
|
+
--skra-comp-badge-padding-block: var(--skra-sys-spacing-1);
|
|
42
|
+
--skra-comp-badge-padding-inline: var(--skra-sys-spacing-2);
|
|
43
|
+
--skra-comp-badge-icon-gap: var(--skra-sys-spacing-1);
|
|
44
|
+
--skra-comp-box-padding-sm: var(--skra-sys-spacing-1);
|
|
45
|
+
--skra-comp-box-padding-md: var(--skra-sys-spacing-2);
|
|
46
|
+
--skra-comp-box-padding-lg: var(--skra-sys-spacing-4);
|
|
47
|
+
--skra-comp-button-padding-block: var(--skra-sys-spacing-2);
|
|
48
|
+
--skra-comp-button-padding-inline: var(--skra-sys-spacing-4);
|
|
49
|
+
--skra-comp-button-min-block-size: var(--skra-sys-size-interactive-md);
|
|
50
|
+
--skra-comp-button-size-sm-padding-block: var(--skra-sys-spacing-1);
|
|
51
|
+
--skra-comp-button-size-sm-padding-inline: var(--skra-sys-spacing-3);
|
|
52
|
+
--skra-comp-button-size-sm-min-block-size: var(--skra-sys-size-interactive-sm);
|
|
53
|
+
--skra-comp-button-size-md-padding-block: var(--skra-sys-spacing-2);
|
|
54
|
+
--skra-comp-button-size-md-padding-inline: var(--skra-sys-spacing-4);
|
|
55
|
+
--skra-comp-button-size-md-min-block-size: var(--skra-sys-size-interactive-md);
|
|
56
|
+
--skra-comp-button-size-lg-padding-block: var(--skra-sys-spacing-3);
|
|
57
|
+
--skra-comp-button-size-lg-padding-inline: var(--skra-sys-spacing-5);
|
|
58
|
+
--skra-comp-button-size-lg-min-block-size: var(--skra-sys-size-interactive-lg);
|
|
59
|
+
--skra-comp-button-icon-gap: var(--skra-sys-spacing-2);
|
|
60
|
+
--skra-comp-chip-padding-block: var(--skra-sys-spacing-1);
|
|
61
|
+
--skra-comp-chip-padding-inline: var(--skra-sys-spacing-2);
|
|
62
|
+
--skra-comp-chip-icon-gap: var(--skra-sys-spacing-1);
|
|
63
|
+
--skra-comp-chip-remove-gap: var(--skra-sys-spacing-1);
|
|
64
|
+
--skra-comp-combobox-padding-block: var(--skra-sys-spacing-2);
|
|
65
|
+
--skra-comp-combobox-padding-inline: var(--skra-sys-spacing-3);
|
|
66
|
+
--skra-comp-combobox-min-block-size: var(--skra-sys-size-interactive-md);
|
|
67
|
+
--skra-comp-combobox-gap: var(--skra-sys-spacing-2);
|
|
68
|
+
--skra-comp-combobox-panel-max-block-size: var(--skra-sys-size-container-sm);
|
|
69
|
+
--skra-comp-combobox-panel-padding-block: var(--skra-sys-spacing-1);
|
|
70
|
+
--skra-comp-combobox-panel-padding-inline: var(--skra-sys-spacing-1);
|
|
71
|
+
--skra-comp-combobox-panel-offset: var(--skra-sys-spacing-1);
|
|
72
|
+
--skra-comp-combobox-panel-viewport-padding: var(--skra-sys-spacing-2);
|
|
73
|
+
--skra-comp-combobox-status-padding-block: var(--skra-sys-spacing-2);
|
|
74
|
+
--skra-comp-combobox-status-padding-inline: var(--skra-sys-spacing-3);
|
|
75
|
+
--skra-comp-datepicker-padding-block: var(--skra-sys-spacing-2);
|
|
76
|
+
--skra-comp-datepicker-padding-inline: var(--skra-sys-spacing-3);
|
|
77
|
+
--skra-comp-datepicker-min-block-size: var(--skra-sys-size-interactive-md);
|
|
78
|
+
--skra-comp-datepicker-gap: var(--skra-sys-spacing-2);
|
|
79
|
+
--skra-comp-datepicker-panel-padding: var(--skra-sys-spacing-3);
|
|
80
|
+
--skra-comp-datepicker-panel-offset: var(--skra-sys-spacing-1);
|
|
81
|
+
--skra-comp-datepicker-panel-viewport-padding: var(--skra-sys-spacing-2);
|
|
82
|
+
--skra-comp-datepicker-day-size: var(--skra-sys-size-interactive-md);
|
|
83
|
+
--skra-comp-dialog-padding-block: var(--skra-sys-spacing-5);
|
|
84
|
+
--skra-comp-dialog-padding-inline: var(--skra-sys-spacing-5);
|
|
85
|
+
--skra-comp-dialog-size-sm-max-inline-size: var(--skra-sys-size-container-sm);
|
|
86
|
+
--skra-comp-dialog-size-md-max-inline-size: var(--skra-sys-size-container-md);
|
|
87
|
+
--skra-comp-dialog-size-lg-max-inline-size: var(--skra-sys-size-container-lg);
|
|
88
|
+
--skra-comp-field-padding-block: var(--skra-sys-spacing-2);
|
|
89
|
+
--skra-comp-field-padding-inline: var(--skra-sys-spacing-4);
|
|
90
|
+
--skra-comp-field-gap: var(--skra-sys-spacing-2);
|
|
91
|
+
--skra-comp-field-checkbox-size: var(--skra-sys-spacing-4);
|
|
92
|
+
--skra-comp-field-checkbox-gap: var(--skra-sys-spacing-2);
|
|
93
|
+
--skra-comp-field-checkbox-touch-target: var(--skra-sys-spacing-6);
|
|
94
|
+
--skra-comp-field-radio-size: var(--skra-sys-spacing-4);
|
|
95
|
+
--skra-comp-field-radio-dot-size: var(--skra-sys-spacing-2);
|
|
96
|
+
--skra-comp-field-radio-gap: var(--skra-sys-spacing-2);
|
|
97
|
+
--skra-comp-field-radio-touch-target: var(--skra-sys-spacing-6);
|
|
98
|
+
--skra-comp-field-switch-gap: var(--skra-sys-spacing-2);
|
|
99
|
+
--skra-comp-field-switch-touch-target: var(--skra-sys-spacing-6);
|
|
100
|
+
--skra-comp-field-group-gap: var(--skra-sys-spacing-3);
|
|
101
|
+
--skra-comp-field-group-legend-spacing-block-end: var(--skra-sys-spacing-2);
|
|
102
|
+
--skra-comp-field-select-arrow-padding-inline-end: var(--skra-sys-spacing-6);
|
|
103
|
+
--skra-comp-grid-gap-sm: var(--skra-sys-spacing-1);
|
|
104
|
+
--skra-comp-grid-gap-md: var(--skra-sys-spacing-2);
|
|
105
|
+
--skra-comp-grid-gap-lg: var(--skra-sys-spacing-4);
|
|
106
|
+
--skra-comp-grid-min-sm: var(--skra-sys-size-grid-track-sm);
|
|
107
|
+
--skra-comp-grid-min-md: var(--skra-sys-size-grid-track-md);
|
|
108
|
+
--skra-comp-grid-min-lg: var(--skra-sys-size-grid-track-lg);
|
|
109
|
+
--skra-comp-icon-size-default: var(--skra-sys-size-icon-md);
|
|
110
|
+
--skra-comp-icon-size-sm: var(--skra-sys-size-icon-sm);
|
|
111
|
+
--skra-comp-icon-size-md: var(--skra-sys-size-icon-md);
|
|
112
|
+
--skra-comp-icon-size-lg: var(--skra-sys-size-icon-lg);
|
|
113
|
+
--skra-comp-kbd-padding-block: var(--skra-sys-spacing-1);
|
|
114
|
+
--skra-comp-kbd-padding-inline: var(--skra-sys-spacing-2);
|
|
115
|
+
--skra-comp-menu-padding-block: var(--skra-sys-spacing-1);
|
|
116
|
+
--skra-comp-menu-padding-inline: var(--skra-sys-spacing-1);
|
|
117
|
+
--skra-comp-menu-max-inline-size: var(--skra-sys-size-container-sm);
|
|
118
|
+
--skra-comp-menu-offset: var(--skra-sys-spacing-2);
|
|
119
|
+
--skra-comp-menu-viewport-padding: var(--skra-sys-spacing-2);
|
|
120
|
+
--skra-comp-menu-item-padding-block: var(--skra-sys-spacing-2);
|
|
121
|
+
--skra-comp-menu-item-padding-inline: var(--skra-sys-spacing-3);
|
|
122
|
+
--skra-comp-menu-item-gap: var(--skra-sys-spacing-2);
|
|
123
|
+
--skra-comp-menu-item-min-block-size: var(--skra-sys-size-interactive-md);
|
|
124
|
+
--skra-comp-popover-padding-block: var(--skra-sys-spacing-3);
|
|
125
|
+
--skra-comp-popover-padding-inline: var(--skra-sys-spacing-3);
|
|
126
|
+
--skra-comp-popover-max-inline-size: var(--skra-sys-size-container-sm);
|
|
127
|
+
--skra-comp-popover-offset: var(--skra-sys-spacing-2);
|
|
128
|
+
--skra-comp-popover-viewport-padding: var(--skra-sys-spacing-2);
|
|
129
|
+
--skra-comp-select-padding-block: var(--skra-sys-spacing-2);
|
|
130
|
+
--skra-comp-select-padding-inline: var(--skra-sys-spacing-3);
|
|
131
|
+
--skra-comp-select-min-block-size: var(--skra-sys-size-interactive-md);
|
|
132
|
+
--skra-comp-select-gap: var(--skra-sys-spacing-2);
|
|
133
|
+
--skra-comp-select-panel-max-block-size: var(--skra-sys-size-container-sm);
|
|
134
|
+
--skra-comp-select-panel-padding-block: var(--skra-sys-spacing-1);
|
|
135
|
+
--skra-comp-select-panel-padding-inline: var(--skra-sys-spacing-1);
|
|
136
|
+
--skra-comp-select-panel-offset: var(--skra-sys-spacing-1);
|
|
137
|
+
--skra-comp-select-panel-viewport-padding: var(--skra-sys-spacing-2);
|
|
138
|
+
--skra-comp-select-option-padding-block: var(--skra-sys-spacing-2);
|
|
139
|
+
--skra-comp-select-option-padding-inline: var(--skra-sys-spacing-3);
|
|
140
|
+
--skra-comp-select-option-gap: var(--skra-sys-spacing-2);
|
|
141
|
+
--skra-comp-select-option-min-block-size: var(--skra-sys-size-interactive-md);
|
|
142
|
+
--skra-comp-stack-gap-sm: var(--skra-sys-spacing-1);
|
|
143
|
+
--skra-comp-stack-gap-md: var(--skra-sys-spacing-2);
|
|
144
|
+
--skra-comp-stack-gap-lg: var(--skra-sys-spacing-4);
|
|
145
|
+
--skra-comp-status-dot-size-sm: var(--skra-sys-size-status-dot-sm);
|
|
146
|
+
--skra-comp-status-dot-size-md: var(--skra-sys-size-status-dot-md);
|
|
147
|
+
--skra-comp-status-dot-size-lg: var(--skra-sys-size-status-dot-lg);
|
|
148
|
+
--skra-comp-tabs-padding-block: var(--skra-sys-spacing-2);
|
|
149
|
+
--skra-comp-tabs-padding-inline: var(--skra-sys-spacing-4);
|
|
150
|
+
--skra-comp-tabs-gap: var(--skra-sys-spacing-1);
|
|
151
|
+
--skra-comp-tabs-panel-padding-block: var(--skra-sys-spacing-4);
|
|
152
|
+
--skra-comp-tabs-panel-padding-inline: var(--skra-sys-spacing-1);
|
|
153
|
+
--skra-comp-toast-padding-block: var(--skra-sys-spacing-3);
|
|
154
|
+
--skra-comp-toast-padding-inline: var(--skra-sys-spacing-4);
|
|
155
|
+
--skra-comp-toast-icon-gap: var(--skra-sys-spacing-3);
|
|
156
|
+
--skra-comp-toast-dismiss-size: var(--skra-sys-size-interactive-sm);
|
|
157
|
+
--skra-comp-toast-region-inset-block: var(--skra-sys-spacing-5);
|
|
158
|
+
--skra-comp-toast-region-inset-inline: var(--skra-sys-spacing-5);
|
|
159
|
+
--skra-comp-toast-region-gap: var(--skra-sys-spacing-3);
|
|
160
|
+
--skra-comp-toast-region-max-inline-size: var(--skra-sys-size-container-sm);
|
|
161
|
+
--skra-comp-tooltip-padding-block: var(--skra-sys-spacing-1);
|
|
162
|
+
--skra-comp-tooltip-padding-inline: var(--skra-sys-spacing-2);
|
|
163
|
+
--skra-comp-tooltip-max-inline-size: var(--skra-sys-size-tooltip-max);
|
|
164
|
+
--skra-comp-tooltip-offset: var(--skra-sys-spacing-2);
|
|
165
|
+
--skra-comp-tooltip-viewport-padding: var(--skra-sys-spacing-2);
|
|
166
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
[data-skra-density="compact"] {
|
|
6
|
+
--skra-sys-size-interactive-sm: 1.5rem;
|
|
7
|
+
--skra-sys-size-interactive-md: 2rem;
|
|
8
|
+
--skra-sys-size-interactive-lg: 2.5rem;
|
|
9
|
+
--skra-sys-spacing-1: var(--skra-ref-spacing-1);
|
|
10
|
+
--skra-sys-spacing-2: var(--skra-ref-spacing-1);
|
|
11
|
+
--skra-sys-spacing-3: var(--skra-ref-spacing-2);
|
|
12
|
+
--skra-sys-spacing-4: var(--skra-ref-spacing-3);
|
|
13
|
+
--skra-sys-spacing-6: var(--skra-ref-spacing-4);
|
|
14
|
+
--skra-sys-spacing-8: var(--skra-ref-spacing-6);
|
|
15
|
+
--skra-sys-size-icon-sm: var(--skra-ref-spacing-3);
|
|
16
|
+
--skra-sys-size-icon-md: var(--skra-ref-spacing-4);
|
|
17
|
+
--skra-sys-size-icon-lg: var(--skra-ref-spacing-6);
|
|
18
|
+
--skra-sys-size-grid-track-sm: var(--skra-ref-size-sm);
|
|
19
|
+
--skra-sys-size-grid-track-md: var(--skra-ref-size-md);
|
|
20
|
+
--skra-sys-size-grid-track-lg: var(--skra-ref-size-lg);
|
|
21
|
+
--skra-sys-font-size-hint: var(--skra-ref-font-size-xs);
|
|
22
|
+
--skra-sys-font-size-body: var(--skra-ref-font-size-sm);
|
|
23
|
+
--skra-sys-font-size-label: var(--skra-ref-font-size-xs);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
[data-skra-density="compact"] {
|
|
27
|
+
--skra-comp-accordion-padding-block: var(--skra-sys-spacing-3);
|
|
28
|
+
--skra-comp-accordion-padding-inline: var(--skra-sys-spacing-4);
|
|
29
|
+
--skra-comp-accordion-min-block-size: var(--skra-sys-size-interactive-md);
|
|
30
|
+
--skra-comp-accordion-header-gap: var(--skra-sys-spacing-3);
|
|
31
|
+
--skra-comp-accordion-panel-padding-block: var(--skra-sys-spacing-3);
|
|
32
|
+
--skra-comp-accordion-panel-padding-inline: var(--skra-sys-spacing-4);
|
|
33
|
+
--skra-comp-alert-padding-block: var(--skra-sys-spacing-3);
|
|
34
|
+
--skra-comp-alert-padding-inline: var(--skra-sys-spacing-4);
|
|
35
|
+
--skra-comp-alert-icon-gap: var(--skra-sys-spacing-3);
|
|
36
|
+
--skra-comp-alert-title-gap: var(--skra-sys-spacing-1);
|
|
37
|
+
--skra-comp-alert-dismiss-size: var(--skra-sys-size-interactive-sm);
|
|
38
|
+
--skra-comp-avatar-size-sm: var(--skra-sys-size-avatar-sm);
|
|
39
|
+
--skra-comp-avatar-size-md: var(--skra-sys-size-avatar-md);
|
|
40
|
+
--skra-comp-avatar-size-lg: var(--skra-sys-size-avatar-lg);
|
|
41
|
+
--skra-comp-badge-padding-block: var(--skra-sys-spacing-1);
|
|
42
|
+
--skra-comp-badge-padding-inline: var(--skra-sys-spacing-2);
|
|
43
|
+
--skra-comp-badge-icon-gap: var(--skra-sys-spacing-1);
|
|
44
|
+
--skra-comp-box-padding-sm: var(--skra-sys-spacing-1);
|
|
45
|
+
--skra-comp-box-padding-md: var(--skra-sys-spacing-2);
|
|
46
|
+
--skra-comp-box-padding-lg: var(--skra-sys-spacing-4);
|
|
47
|
+
--skra-comp-button-padding-block: var(--skra-sys-spacing-2);
|
|
48
|
+
--skra-comp-button-padding-inline: var(--skra-sys-spacing-4);
|
|
49
|
+
--skra-comp-button-min-block-size: var(--skra-sys-size-interactive-md);
|
|
50
|
+
--skra-comp-button-size-sm-padding-block: var(--skra-sys-spacing-1);
|
|
51
|
+
--skra-comp-button-size-sm-padding-inline: var(--skra-sys-spacing-3);
|
|
52
|
+
--skra-comp-button-size-sm-min-block-size: var(--skra-sys-size-interactive-sm);
|
|
53
|
+
--skra-comp-button-size-md-padding-block: var(--skra-sys-spacing-2);
|
|
54
|
+
--skra-comp-button-size-md-padding-inline: var(--skra-sys-spacing-4);
|
|
55
|
+
--skra-comp-button-size-md-min-block-size: var(--skra-sys-size-interactive-md);
|
|
56
|
+
--skra-comp-button-size-lg-padding-block: var(--skra-sys-spacing-3);
|
|
57
|
+
--skra-comp-button-size-lg-padding-inline: var(--skra-sys-spacing-5);
|
|
58
|
+
--skra-comp-button-size-lg-min-block-size: var(--skra-sys-size-interactive-lg);
|
|
59
|
+
--skra-comp-button-icon-gap: var(--skra-sys-spacing-2);
|
|
60
|
+
--skra-comp-chip-padding-block: var(--skra-sys-spacing-1);
|
|
61
|
+
--skra-comp-chip-padding-inline: var(--skra-sys-spacing-2);
|
|
62
|
+
--skra-comp-chip-icon-gap: var(--skra-sys-spacing-1);
|
|
63
|
+
--skra-comp-chip-remove-gap: var(--skra-sys-spacing-1);
|
|
64
|
+
--skra-comp-combobox-padding-block: var(--skra-sys-spacing-2);
|
|
65
|
+
--skra-comp-combobox-padding-inline: var(--skra-sys-spacing-3);
|
|
66
|
+
--skra-comp-combobox-min-block-size: var(--skra-sys-size-interactive-md);
|
|
67
|
+
--skra-comp-combobox-gap: var(--skra-sys-spacing-2);
|
|
68
|
+
--skra-comp-combobox-panel-max-block-size: var(--skra-sys-size-container-sm);
|
|
69
|
+
--skra-comp-combobox-panel-padding-block: var(--skra-sys-spacing-1);
|
|
70
|
+
--skra-comp-combobox-panel-padding-inline: var(--skra-sys-spacing-1);
|
|
71
|
+
--skra-comp-combobox-panel-offset: var(--skra-sys-spacing-1);
|
|
72
|
+
--skra-comp-combobox-panel-viewport-padding: var(--skra-sys-spacing-2);
|
|
73
|
+
--skra-comp-combobox-status-padding-block: var(--skra-sys-spacing-2);
|
|
74
|
+
--skra-comp-combobox-status-padding-inline: var(--skra-sys-spacing-3);
|
|
75
|
+
--skra-comp-datepicker-padding-block: var(--skra-sys-spacing-2);
|
|
76
|
+
--skra-comp-datepicker-padding-inline: var(--skra-sys-spacing-3);
|
|
77
|
+
--skra-comp-datepicker-min-block-size: var(--skra-sys-size-interactive-md);
|
|
78
|
+
--skra-comp-datepicker-gap: var(--skra-sys-spacing-2);
|
|
79
|
+
--skra-comp-datepicker-panel-padding: var(--skra-sys-spacing-3);
|
|
80
|
+
--skra-comp-datepicker-panel-offset: var(--skra-sys-spacing-1);
|
|
81
|
+
--skra-comp-datepicker-panel-viewport-padding: var(--skra-sys-spacing-2);
|
|
82
|
+
--skra-comp-datepicker-day-size: var(--skra-sys-size-interactive-md);
|
|
83
|
+
--skra-comp-dialog-padding-block: var(--skra-sys-spacing-5);
|
|
84
|
+
--skra-comp-dialog-padding-inline: var(--skra-sys-spacing-5);
|
|
85
|
+
--skra-comp-dialog-size-sm-max-inline-size: var(--skra-sys-size-container-sm);
|
|
86
|
+
--skra-comp-dialog-size-md-max-inline-size: var(--skra-sys-size-container-md);
|
|
87
|
+
--skra-comp-dialog-size-lg-max-inline-size: var(--skra-sys-size-container-lg);
|
|
88
|
+
--skra-comp-field-padding-block: var(--skra-sys-spacing-2);
|
|
89
|
+
--skra-comp-field-padding-inline: var(--skra-sys-spacing-4);
|
|
90
|
+
--skra-comp-field-gap: var(--skra-sys-spacing-2);
|
|
91
|
+
--skra-comp-field-checkbox-size: var(--skra-sys-spacing-4);
|
|
92
|
+
--skra-comp-field-checkbox-gap: var(--skra-sys-spacing-2);
|
|
93
|
+
--skra-comp-field-checkbox-touch-target: var(--skra-sys-spacing-6);
|
|
94
|
+
--skra-comp-field-radio-size: var(--skra-sys-spacing-4);
|
|
95
|
+
--skra-comp-field-radio-dot-size: var(--skra-sys-spacing-2);
|
|
96
|
+
--skra-comp-field-radio-gap: var(--skra-sys-spacing-2);
|
|
97
|
+
--skra-comp-field-radio-touch-target: var(--skra-sys-spacing-6);
|
|
98
|
+
--skra-comp-field-switch-gap: var(--skra-sys-spacing-2);
|
|
99
|
+
--skra-comp-field-switch-touch-target: var(--skra-sys-spacing-6);
|
|
100
|
+
--skra-comp-field-group-gap: var(--skra-sys-spacing-3);
|
|
101
|
+
--skra-comp-field-group-legend-spacing-block-end: var(--skra-sys-spacing-2);
|
|
102
|
+
--skra-comp-field-select-arrow-padding-inline-end: var(--skra-sys-spacing-6);
|
|
103
|
+
--skra-comp-grid-gap-sm: var(--skra-sys-spacing-1);
|
|
104
|
+
--skra-comp-grid-gap-md: var(--skra-sys-spacing-2);
|
|
105
|
+
--skra-comp-grid-gap-lg: var(--skra-sys-spacing-4);
|
|
106
|
+
--skra-comp-grid-min-sm: var(--skra-sys-size-grid-track-sm);
|
|
107
|
+
--skra-comp-grid-min-md: var(--skra-sys-size-grid-track-md);
|
|
108
|
+
--skra-comp-grid-min-lg: var(--skra-sys-size-grid-track-lg);
|
|
109
|
+
--skra-comp-icon-size-default: var(--skra-sys-size-icon-md);
|
|
110
|
+
--skra-comp-icon-size-sm: var(--skra-sys-size-icon-sm);
|
|
111
|
+
--skra-comp-icon-size-md: var(--skra-sys-size-icon-md);
|
|
112
|
+
--skra-comp-icon-size-lg: var(--skra-sys-size-icon-lg);
|
|
113
|
+
--skra-comp-kbd-padding-block: var(--skra-sys-spacing-1);
|
|
114
|
+
--skra-comp-kbd-padding-inline: var(--skra-sys-spacing-2);
|
|
115
|
+
--skra-comp-menu-padding-block: var(--skra-sys-spacing-1);
|
|
116
|
+
--skra-comp-menu-padding-inline: var(--skra-sys-spacing-1);
|
|
117
|
+
--skra-comp-menu-max-inline-size: var(--skra-sys-size-container-sm);
|
|
118
|
+
--skra-comp-menu-offset: var(--skra-sys-spacing-2);
|
|
119
|
+
--skra-comp-menu-viewport-padding: var(--skra-sys-spacing-2);
|
|
120
|
+
--skra-comp-menu-item-padding-block: var(--skra-sys-spacing-2);
|
|
121
|
+
--skra-comp-menu-item-padding-inline: var(--skra-sys-spacing-3);
|
|
122
|
+
--skra-comp-menu-item-gap: var(--skra-sys-spacing-2);
|
|
123
|
+
--skra-comp-menu-item-min-block-size: var(--skra-sys-size-interactive-md);
|
|
124
|
+
--skra-comp-popover-padding-block: var(--skra-sys-spacing-3);
|
|
125
|
+
--skra-comp-popover-padding-inline: var(--skra-sys-spacing-3);
|
|
126
|
+
--skra-comp-popover-max-inline-size: var(--skra-sys-size-container-sm);
|
|
127
|
+
--skra-comp-popover-offset: var(--skra-sys-spacing-2);
|
|
128
|
+
--skra-comp-popover-viewport-padding: var(--skra-sys-spacing-2);
|
|
129
|
+
--skra-comp-select-padding-block: var(--skra-sys-spacing-2);
|
|
130
|
+
--skra-comp-select-padding-inline: var(--skra-sys-spacing-3);
|
|
131
|
+
--skra-comp-select-min-block-size: var(--skra-sys-size-interactive-md);
|
|
132
|
+
--skra-comp-select-gap: var(--skra-sys-spacing-2);
|
|
133
|
+
--skra-comp-select-panel-max-block-size: var(--skra-sys-size-container-sm);
|
|
134
|
+
--skra-comp-select-panel-padding-block: var(--skra-sys-spacing-1);
|
|
135
|
+
--skra-comp-select-panel-padding-inline: var(--skra-sys-spacing-1);
|
|
136
|
+
--skra-comp-select-panel-offset: var(--skra-sys-spacing-1);
|
|
137
|
+
--skra-comp-select-panel-viewport-padding: var(--skra-sys-spacing-2);
|
|
138
|
+
--skra-comp-select-option-padding-block: var(--skra-sys-spacing-2);
|
|
139
|
+
--skra-comp-select-option-padding-inline: var(--skra-sys-spacing-3);
|
|
140
|
+
--skra-comp-select-option-gap: var(--skra-sys-spacing-2);
|
|
141
|
+
--skra-comp-select-option-min-block-size: var(--skra-sys-size-interactive-md);
|
|
142
|
+
--skra-comp-stack-gap-sm: var(--skra-sys-spacing-1);
|
|
143
|
+
--skra-comp-stack-gap-md: var(--skra-sys-spacing-2);
|
|
144
|
+
--skra-comp-stack-gap-lg: var(--skra-sys-spacing-4);
|
|
145
|
+
--skra-comp-status-dot-size-sm: var(--skra-sys-size-status-dot-sm);
|
|
146
|
+
--skra-comp-status-dot-size-md: var(--skra-sys-size-status-dot-md);
|
|
147
|
+
--skra-comp-status-dot-size-lg: var(--skra-sys-size-status-dot-lg);
|
|
148
|
+
--skra-comp-tabs-padding-block: var(--skra-sys-spacing-2);
|
|
149
|
+
--skra-comp-tabs-padding-inline: var(--skra-sys-spacing-4);
|
|
150
|
+
--skra-comp-tabs-gap: var(--skra-sys-spacing-1);
|
|
151
|
+
--skra-comp-tabs-panel-padding-block: var(--skra-sys-spacing-4);
|
|
152
|
+
--skra-comp-tabs-panel-padding-inline: var(--skra-sys-spacing-1);
|
|
153
|
+
--skra-comp-toast-padding-block: var(--skra-sys-spacing-3);
|
|
154
|
+
--skra-comp-toast-padding-inline: var(--skra-sys-spacing-4);
|
|
155
|
+
--skra-comp-toast-icon-gap: var(--skra-sys-spacing-3);
|
|
156
|
+
--skra-comp-toast-dismiss-size: var(--skra-sys-size-interactive-sm);
|
|
157
|
+
--skra-comp-toast-region-inset-block: var(--skra-sys-spacing-5);
|
|
158
|
+
--skra-comp-toast-region-inset-inline: var(--skra-sys-spacing-5);
|
|
159
|
+
--skra-comp-toast-region-gap: var(--skra-sys-spacing-3);
|
|
160
|
+
--skra-comp-toast-region-max-inline-size: var(--skra-sys-size-container-sm);
|
|
161
|
+
--skra-comp-tooltip-padding-block: var(--skra-sys-spacing-1);
|
|
162
|
+
--skra-comp-tooltip-padding-inline: var(--skra-sys-spacing-2);
|
|
163
|
+
--skra-comp-tooltip-max-inline-size: var(--skra-sys-size-tooltip-max);
|
|
164
|
+
--skra-comp-tooltip-offset: var(--skra-sys-spacing-2);
|
|
165
|
+
--skra-comp-tooltip-viewport-padding: var(--skra-sys-spacing-2);
|
|
166
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// Forge Design System — residual form-control slice (ADR 040, supersedes ADR 038)
|
|
2
|
+
//
|
|
3
|
+
// Per ADR 040, every form atom (input / textarea / select / checkbox / radio /
|
|
4
|
+
// fieldset / legend / label) is now a Component-on-its-native-host carrying its
|
|
5
|
+
// own host-scoped CSS via Angular Emulated encapsulation (see each atom's
|
|
6
|
+
// `*.scss` in `libs/ui/forms/`). The bulk of the old ADR 038 slice moved there.
|
|
7
|
+
//
|
|
8
|
+
// This file retains ONLY the rules that genuinely cannot be encapsulated —
|
|
9
|
+
// rules that style content PROJECTED INTO one component from outside its
|
|
10
|
+
// stylesheet. Under Emulated encapsulation a component's selectors are rewritten
|
|
11
|
+
// to require that component's own `_ngcontent` attribute, but projected children
|
|
12
|
+
// carry the CONSUMER's attribute, so the selector silently misses (the same
|
|
13
|
+
// mechanism that created the ADR 038 slice in the first place — see ADR 020 v2.0).
|
|
14
|
+
//
|
|
15
|
+
// Two cross-encapsulation cases remain:
|
|
16
|
+
// 1. <select skraSelect> → its projected <option> / <optgroup> children.
|
|
17
|
+
// 2. <skra-field> → its projected <label> / <skra-hint> / <skra-error>
|
|
18
|
+
// when a sibling selection control (checkbox/radio) drives the layout.
|
|
19
|
+
//
|
|
20
|
+
// All values remain `var(--skra-comp-field-*)` / `var(--skra-sys-*)` references
|
|
21
|
+
// (ADR 025); zero hardcoded literals; zero `margin`/layout beyond the wrap rule
|
|
22
|
+
// intrinsic to the cross-projection case; zero `!important` / `::ng-deep` (ADR 024).
|
|
23
|
+
//
|
|
24
|
+
// Opt-in: import AFTER `_theme.scss` (the referenced variables must be defined
|
|
25
|
+
// first). Mirrors `_baseline.scss` (ADR 036).
|
|
26
|
+
|
|
27
|
+
// ─── 1. Select <option> / <optgroup> (projected into <select skraSelect>) ───
|
|
28
|
+
// `select.scss` cannot reach these: an `option { … }` rule there compiles to
|
|
29
|
+
// `option[_ngcontent-select-xxx]`, but the projected <option> carries the
|
|
30
|
+
// consumer's `_ngcontent`. Cross-browser <option> styling is platform-limited
|
|
31
|
+
// (Firefox full; Chromium partial; Safari very limited) — we ship the tokens,
|
|
32
|
+
// effectiveness varies by engine.
|
|
33
|
+
select[skraSelect] > option {
|
|
34
|
+
color: var(--skra-comp-field-select-option-foreground);
|
|
35
|
+
background-color: var(--skra-comp-field-select-option-background);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
select[skraSelect] > optgroup {
|
|
39
|
+
color: var(--skra-comp-field-select-optgroup-foreground);
|
|
40
|
+
font-family: var(--skra-sys-typography-role-label-medium-font-family);
|
|
41
|
+
font-size: var(--skra-sys-typography-role-label-medium-font-size);
|
|
42
|
+
font-weight: var(--skra-sys-typography-role-label-medium-font-weight);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// ─── 2a. Touch target — label adjacent to a checkbox/radio inside Field ──────
|
|
46
|
+
// WCAG 2.5.8 minimum 24×24 CSS px. The native box itself is smaller; clicking
|
|
47
|
+
// the label fires the input, so expanding the label's clickable surface meets
|
|
48
|
+
// the criterion without enlarging the visible box. `inline-flex` (not `flex`)
|
|
49
|
+
// so the label sizes to its content in Field's flex-row selection layout — a
|
|
50
|
+
// block-level `flex` would consume remaining inline space and visually shift
|
|
51
|
+
// the text. This rule reaches Field's projected <label>, so it must live here.
|
|
52
|
+
skra-field:has(> input[type='checkbox'][skraCheckbox]) > label[skraLabelFor],
|
|
53
|
+
skra-field:has(> input[type='checkbox'][skraSwitch]) > label[skraLabelFor],
|
|
54
|
+
skra-field:has(> input[type='radio'][skraRadio]) > label[skraLabelFor] {
|
|
55
|
+
min-block-size: var(--skra-comp-field-checkbox-touch-target);
|
|
56
|
+
display: inline-flex;
|
|
57
|
+
align-items: center;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// ─── 2b. Hint / Error wrap in selection-control flex layout ──────────────────
|
|
61
|
+
// Field turns `:host` into `display: flex` (row) when it contains a
|
|
62
|
+
// checkbox/radio (see field.component.scss). The rule that wraps hint/error onto
|
|
63
|
+
// their own full-width line targets Field's PROJECTED <skra-hint>/<skra-error>,
|
|
64
|
+
// so it cannot live in field.component.scss (Emulated encapsulation misses
|
|
65
|
+
// projected children). `flex: 0 0 100%` forces the wrap regardless of sibling
|
|
66
|
+
// sizing.
|
|
67
|
+
skra-field:has(> input[type='checkbox'][skraCheckbox]) > skra-hint,
|
|
68
|
+
skra-field:has(> input[type='checkbox'][skraCheckbox]) > skra-error,
|
|
69
|
+
skra-field:has(> input[type='checkbox'][skraSwitch]) > skra-hint,
|
|
70
|
+
skra-field:has(> input[type='checkbox'][skraSwitch]) > skra-error,
|
|
71
|
+
skra-field:has(> input[type='radio'][skraRadio]) > skra-hint,
|
|
72
|
+
skra-field:has(> input[type='radio'][skraRadio]) > skra-error {
|
|
73
|
+
flex: 0 0 100%;
|
|
74
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/* tokens/skins/skra/_overlay.scss — Tier-2 overlay top-layer slice (ADR 0044).
|
|
2
|
+
* --------------------------------------------------------------------------------
|
|
3
|
+
* Top-layer concerns that sit OUTSIDE component Emulated encapsulation and therefore
|
|
4
|
+
* cannot live in a component's own host-scoped CSS:
|
|
5
|
+
* - the native `<dialog>` `::backdrop` scrim (a pseudo-element of the dialog), and
|
|
6
|
+
* - the pure-CSS scroll-lock while a Forge modal dialog is open (`html:has(...)`).
|
|
7
|
+
*
|
|
8
|
+
* Opt-in: import AFTER `_theme.scss` + `_comp.scss`. Selectors are strictly Forge-attached
|
|
9
|
+
* natives (`dialog[skraDialog]`); every value is a `var(--skra-comp-dialog-*)` reference;
|
|
10
|
+
* zero z-index (top-layer stacking is invocation-order), zero `!important`, zero `::ng-deep`.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
dialog[skraDialog]::backdrop {
|
|
14
|
+
background: var(--skra-comp-dialog-backdrop);
|
|
15
|
+
|
|
16
|
+
opacity: 1;
|
|
17
|
+
transition:
|
|
18
|
+
opacity var(--skra-comp-dialog-motion-duration)
|
|
19
|
+
var(--skra-comp-dialog-motion-easing),
|
|
20
|
+
display var(--skra-comp-dialog-motion-duration) allow-discrete,
|
|
21
|
+
overlay var(--skra-comp-dialog-motion-duration) allow-discrete;
|
|
22
|
+
|
|
23
|
+
@starting-style {
|
|
24
|
+
opacity: 0;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* Scroll-lock: freeze the page behind an open modal dialog. Pure CSS, no JS.
|
|
29
|
+
* NOTE: `overflow: hidden` removes the scrollbar, which shifts content by the scrollbar width
|
|
30
|
+
* on pages that have one. For SHIFT-FREE modals the consumer reserves the gutter GLOBALLY
|
|
31
|
+
* (`html { scrollbar-gutter: stable }`) — a page-level layout choice the consumer owns, which
|
|
32
|
+
* this scoped slice deliberately does NOT impose (doing it only-while-modal would itself shift,
|
|
33
|
+
* just on open instead of close). The sandbox opts in; see apps/sandbox/src/styles.scss. */
|
|
34
|
+
html:has(dialog[skraDialog]:modal) {
|
|
35
|
+
overflow: hidden;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@media (prefers-reduced-motion: reduce) {
|
|
39
|
+
dialog[skraDialog]::backdrop {
|
|
40
|
+
transition-duration: 0ms;
|
|
41
|
+
}
|
|
42
|
+
}
|