@simple-base/css 0.1.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.
@@ -0,0 +1,159 @@
1
+ @layer sb {
2
+ .sb-button {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ min-height: var(--sb-semantic-size-control-md);
7
+ gap: var(--sb-semantic-space-2);
8
+ padding: 0 var(--sb-semantic-space-4);
9
+ border: var(--sb-semantic-border-width-hairline) solid transparent;
10
+ border-radius: var(--sb-semantic-radius-sm);
11
+ appearance: none;
12
+ cursor: pointer;
13
+ color: var(--sb-semantic-color-foreground-inverse);
14
+ background: var(--sb-semantic-color-foreground-primary);
15
+ font: inherit;
16
+ font-size: var(--sb-semantic-typography-size-md);
17
+ font-weight: var(--sb-semantic-typography-weight-semibold);
18
+ line-height: var(--sb-semantic-typography-line-height-none);
19
+ letter-spacing: var(--sb-semantic-typography-letter-spacing-normal);
20
+ text-decoration: none;
21
+ white-space: nowrap;
22
+ user-select: none;
23
+ transition:
24
+ background var(--sb-semantic-motion-duration-normal) var(--sb-semantic-motion-easing-standard),
25
+ color var(--sb-semantic-motion-duration-normal) var(--sb-semantic-motion-easing-standard),
26
+ border-color var(--sb-semantic-motion-duration-normal)
27
+ var(--sb-semantic-motion-easing-standard),
28
+ opacity var(--sb-semantic-motion-duration-normal) var(--sb-semantic-motion-easing-standard);
29
+ }
30
+
31
+ .sb-button[data-variant="primary"] {
32
+ color: var(--sb-semantic-color-foreground-inverse);
33
+ background: var(--sb-semantic-color-foreground-primary);
34
+ border-color: var(--sb-semantic-color-foreground-primary);
35
+ }
36
+
37
+ .sb-button[data-variant="primary"]:not(:disabled):not([aria-disabled="true"]):hover {
38
+ background: color-mix(
39
+ in oklch,
40
+ var(--sb-semantic-color-foreground-primary) 90%,
41
+ var(--sb-semantic-color-foreground-inverse)
42
+ );
43
+ border-color: color-mix(
44
+ in oklch,
45
+ var(--sb-semantic-color-foreground-primary) 90%,
46
+ var(--sb-semantic-color-foreground-inverse)
47
+ );
48
+ }
49
+
50
+ .sb-button[data-variant="primary"]:not(:disabled):not([aria-disabled="true"]):active {
51
+ background: color-mix(
52
+ in oklch,
53
+ var(--sb-semantic-color-foreground-primary) 82%,
54
+ var(--sb-semantic-color-foreground-inverse)
55
+ );
56
+ border-color: color-mix(
57
+ in oklch,
58
+ var(--sb-semantic-color-foreground-primary) 82%,
59
+ var(--sb-semantic-color-foreground-inverse)
60
+ );
61
+ }
62
+
63
+ .sb-button[data-variant="secondary"] {
64
+ color: var(--sb-semantic-color-foreground-primary);
65
+ background: var(--sb-semantic-color-background-raised);
66
+ border-color: var(--sb-semantic-color-border-strong);
67
+ }
68
+
69
+ .sb-button[data-variant="secondary"]:not(:disabled):not([aria-disabled="true"]):hover {
70
+ background: var(--sb-semantic-color-background-overlay);
71
+ border-color: var(--sb-semantic-color-foreground-secondary);
72
+ }
73
+
74
+ .sb-button[data-variant="tertiary"] {
75
+ color: var(--sb-semantic-color-foreground-secondary);
76
+ background: var(--sb-semantic-color-background-subtle);
77
+ }
78
+
79
+ .sb-button[data-variant="tertiary"]:not(:disabled):not([aria-disabled="true"]):hover {
80
+ color: var(--sb-semantic-color-foreground-primary);
81
+ background: color-mix(in oklch, var(--sb-semantic-color-foreground-primary) 10%, transparent);
82
+ }
83
+
84
+ .sb-button[data-variant="ghost"] {
85
+ color: var(--sb-semantic-color-foreground-secondary);
86
+ background: transparent;
87
+ }
88
+
89
+ .sb-button[data-variant="ghost"]:not(:disabled):not([aria-disabled="true"]):hover {
90
+ color: var(--sb-semantic-color-foreground-primary);
91
+ background: var(--sb-semantic-color-background-subtle);
92
+ }
93
+
94
+ .sb-button[data-variant="danger"] {
95
+ color: var(--sb-semantic-color-status-danger-on-surface);
96
+ background: var(--sb-semantic-color-status-danger-surface);
97
+ border-color: var(--sb-semantic-color-status-danger-surface);
98
+ }
99
+
100
+ .sb-button[data-variant="danger"]:not(:disabled):not([aria-disabled="true"]):hover {
101
+ background: color-mix(
102
+ in oklch,
103
+ var(--sb-semantic-color-status-danger-surface) 88%,
104
+ var(--sb-semantic-color-background-canvas)
105
+ );
106
+ border-color: color-mix(
107
+ in oklch,
108
+ var(--sb-semantic-color-status-danger-surface) 88%,
109
+ var(--sb-semantic-color-background-canvas)
110
+ );
111
+ }
112
+
113
+ .sb-button[data-variant="danger-subtle"] {
114
+ color: var(--sb-semantic-color-status-danger-text);
115
+ background: var(--sb-semantic-color-status-danger-soft);
116
+ border-color: color-mix(
117
+ in oklch,
118
+ var(--sb-semantic-color-status-danger-base) 55%,
119
+ var(--sb-semantic-color-border-default)
120
+ );
121
+ }
122
+
123
+ .sb-button[data-variant="danger-subtle"]:not(:disabled):not([aria-disabled="true"]):hover {
124
+ color: var(--sb-semantic-color-status-danger-on-surface);
125
+ background: var(--sb-semantic-color-status-danger-surface);
126
+ border-color: var(--sb-semantic-color-status-danger-surface);
127
+ }
128
+
129
+ .sb-button:focus-visible {
130
+ outline: 0;
131
+ box-shadow:
132
+ 0 0 0 var(--sb-semantic-border-width-hairline) var(--sb-semantic-color-background-canvas),
133
+ 0 0 0 var(--sb-semantic-space-1) var(--sb-semantic-color-focus-ring);
134
+ }
135
+
136
+ .sb-button:disabled,
137
+ .sb-button[aria-disabled="true"] {
138
+ cursor: not-allowed;
139
+ opacity: var(--sb-semantic-opacity-disabled);
140
+ }
141
+
142
+ .sb-button[data-size="small"] {
143
+ min-height: var(--sb-semantic-size-control-sm);
144
+ padding-inline: var(--sb-semantic-space-3);
145
+ font-size: var(--sb-semantic-typography-size-sm);
146
+ }
147
+
148
+ .sb-button[data-size="medium"] {
149
+ min-height: var(--sb-semantic-size-control-md);
150
+ padding-inline: var(--sb-semantic-space-4);
151
+ font-size: var(--sb-semantic-typography-size-md);
152
+ }
153
+
154
+ .sb-button[data-size="large"] {
155
+ min-height: var(--sb-semantic-size-control-xl);
156
+ padding-inline: var(--sb-semantic-space-6);
157
+ font-size: var(--sb-semantic-typography-size-lg);
158
+ }
159
+ }
@@ -0,0 +1,28 @@
1
+ @layer sb {
2
+ .sb-card {
3
+ min-width: 0;
4
+ border: var(--sb-semantic-border-width-hairline) solid var(--sb-semantic-color-border-default);
5
+ border-radius: var(--sb-semantic-radius-lg);
6
+ background: var(--sb-semantic-color-background-surface);
7
+ box-shadow: var(--sb-semantic-shadow-card);
8
+ }
9
+
10
+ .sb-card[data-padding="true"] {
11
+ padding: clamp(var(--sb-semantic-space-5), 3vw, var(--sb-semantic-space-8));
12
+ }
13
+
14
+ .sb-card[data-variant="flat"] {
15
+ border: 0;
16
+ background: transparent;
17
+ box-shadow: none;
18
+ }
19
+
20
+ .sb-card[data-variant="rule"] {
21
+ padding-top: var(--sb-semantic-space-5);
22
+ border: 0;
23
+ border-top: var(--sb-semantic-border-width-hairline) solid
24
+ var(--sb-semantic-color-border-strong);
25
+ border-radius: 0;
26
+ box-shadow: none;
27
+ }
28
+ }
@@ -0,0 +1,42 @@
1
+ @layer sb {
2
+ .sb-checkbox {
3
+ position: relative;
4
+ width: 18px;
5
+ height: 18px;
6
+ flex: 0 0 auto;
7
+ margin: 0;
8
+ border: var(--sb-semantic-border-width-hairline) solid var(--sb-semantic-color-border-strong);
9
+ border-radius: var(--sb-semantic-radius-sm);
10
+ appearance: none;
11
+ background: var(--sb-semantic-color-background-surface);
12
+ cursor: pointer;
13
+ }
14
+
15
+ .sb-checkbox:checked {
16
+ background: var(--sb-semantic-color-accent-surface);
17
+ border-color: var(--sb-semantic-color-accent-surface);
18
+ }
19
+
20
+ .sb-checkbox:checked::after {
21
+ position: absolute;
22
+ inset: 0;
23
+ display: grid;
24
+ place-items: center;
25
+ color: var(--sb-semantic-color-accent-on-surface);
26
+ content: "✓";
27
+ font-size: var(--sb-semantic-typography-size-sm);
28
+ font-weight: var(--sb-semantic-typography-weight-bold);
29
+ }
30
+
31
+ .sb-checkbox:focus-visible {
32
+ outline: 0;
33
+ box-shadow:
34
+ 0 0 0 var(--sb-semantic-border-width-hairline) var(--sb-semantic-color-background-canvas),
35
+ 0 0 0 var(--sb-semantic-space-1) var(--sb-semantic-color-focus-ring);
36
+ }
37
+
38
+ .sb-checkbox:disabled {
39
+ cursor: not-allowed;
40
+ opacity: var(--sb-semantic-opacity-disabled);
41
+ }
42
+ }
@@ -0,0 +1,235 @@
1
+ @layer sb {
2
+ .sb-combobox {
3
+ display: grid;
4
+ gap: var(--sb-semantic-space-2);
5
+ min-width: 0;
6
+ }
7
+
8
+ .sb-combobox-label {
9
+ color: var(--sb-semantic-color-foreground-secondary);
10
+ font-size: var(--sb-semantic-typography-size-sm);
11
+ font-weight: var(--sb-semantic-typography-weight-semibold);
12
+ }
13
+
14
+ .sb-combobox-label[data-required]::after {
15
+ margin-inline-start: var(--sb-semantic-space-1);
16
+ color: var(--sb-semantic-color-status-danger-base);
17
+ content: "*";
18
+ content: "*" / "";
19
+ }
20
+
21
+ .sb-combobox-control {
22
+ display: flex;
23
+ box-sizing: border-box;
24
+ min-width: 0;
25
+ min-height: var(--sb-semantic-size-control-lg);
26
+ border: var(--sb-semantic-border-width-hairline) solid var(--sb-semantic-color-border-default);
27
+ border-radius: var(--sb-semantic-radius-sm);
28
+ color: var(--sb-semantic-color-foreground-primary);
29
+ background: color-mix(
30
+ in oklch,
31
+ var(--sb-semantic-color-background-canvas) 82%,
32
+ var(--sb-semantic-color-background-surface)
33
+ );
34
+ transition:
35
+ border-color var(--sb-semantic-motion-duration-normal)
36
+ var(--sb-semantic-motion-easing-standard),
37
+ box-shadow var(--sb-semantic-motion-duration-normal) var(--sb-semantic-motion-easing-standard);
38
+ }
39
+
40
+ .sb-combobox-control:hover:where(:not([data-disabled])) {
41
+ border-color: var(--sb-semantic-color-border-strong);
42
+ }
43
+
44
+ .sb-combobox-control:focus-within {
45
+ border-color: var(--sb-semantic-color-accent-text);
46
+ box-shadow:
47
+ 0 0 0 var(--sb-semantic-border-width-hairline) var(--sb-semantic-color-background-canvas),
48
+ 0 0 0 var(--sb-semantic-space-1) var(--sb-semantic-color-focus-ring);
49
+ }
50
+
51
+ .sb-combobox-control[data-invalid] {
52
+ border-color: var(--sb-semantic-color-status-danger-base);
53
+ }
54
+
55
+ .sb-combobox-control[data-invalid]:focus-within {
56
+ box-shadow:
57
+ 0 0 0 var(--sb-semantic-border-width-hairline) var(--sb-semantic-color-background-canvas),
58
+ 0 0 0 var(--sb-semantic-space-1) var(--sb-semantic-color-focus-danger-ring);
59
+ }
60
+
61
+ .sb-combobox-input {
62
+ flex: 1;
63
+ box-sizing: border-box;
64
+ width: 100%;
65
+ min-width: 0;
66
+ padding: 0 var(--sb-semantic-space-3);
67
+ border: 0;
68
+ border-radius: inherit;
69
+ outline: 0;
70
+ color: inherit;
71
+ background: transparent;
72
+ caret-color: var(--sb-semantic-color-accent-text);
73
+ font: inherit;
74
+ font-size: var(--sb-semantic-typography-size-md);
75
+ letter-spacing: var(--sb-semantic-typography-letter-spacing-normal);
76
+ }
77
+
78
+ .sb-combobox-input::placeholder {
79
+ color: var(--sb-semantic-color-foreground-muted);
80
+ }
81
+
82
+ .sb-combobox-input::selection {
83
+ color: var(--sb-semantic-color-selection-foreground);
84
+ background: var(--sb-semantic-color-selection-background);
85
+ }
86
+
87
+ .sb-combobox-trigger {
88
+ display: inline-flex;
89
+ flex: 0 0 auto;
90
+ align-items: center;
91
+ justify-content: center;
92
+ min-width: var(--sb-semantic-size-target-minimum);
93
+ padding: 0 var(--sb-semantic-space-3);
94
+ border: 0;
95
+ border-start-end-radius: var(--sb-semantic-radius-sm);
96
+ border-end-end-radius: var(--sb-semantic-radius-sm);
97
+ color: var(--sb-semantic-color-foreground-muted);
98
+ background: transparent;
99
+ font: inherit;
100
+ cursor: pointer;
101
+ transition:
102
+ color var(--sb-semantic-motion-duration-normal) var(--sb-semantic-motion-easing-standard),
103
+ background var(--sb-semantic-motion-duration-normal) var(--sb-semantic-motion-easing-standard);
104
+ }
105
+
106
+ .sb-combobox-trigger:hover:where(:not(:disabled)) {
107
+ color: var(--sb-semantic-color-foreground-primary);
108
+ background: var(--sb-semantic-color-background-subtle);
109
+ }
110
+
111
+ .sb-combobox-trigger:focus-visible {
112
+ outline: var(--sb-semantic-border-width-strong) solid var(--sb-semantic-color-focus-ring);
113
+ outline-offset: calc(-1 * var(--sb-semantic-border-width-strong));
114
+ }
115
+
116
+ .sb-combobox-trigger > svg {
117
+ flex: 0 0 auto;
118
+ width: var(--sb-semantic-size-icon-sm);
119
+ height: var(--sb-semantic-size-icon-sm);
120
+ }
121
+
122
+ .sb-combobox-control[data-disabled] {
123
+ cursor: not-allowed;
124
+ opacity: var(--sb-semantic-opacity-disabled);
125
+ }
126
+
127
+ .sb-combobox-input:disabled,
128
+ .sb-combobox-trigger:disabled {
129
+ cursor: not-allowed;
130
+ }
131
+
132
+ .sb-combobox-content {
133
+ box-sizing: border-box;
134
+ z-index: var(--sb-semantic-layer-dropdown);
135
+ width: var(--reference-width);
136
+ max-width: var(--available-width);
137
+ padding: var(--sb-semantic-space-2);
138
+ border: var(--sb-semantic-border-width-hairline) solid var(--sb-semantic-color-border-strong);
139
+ border-radius: var(--sb-semantic-radius-md);
140
+ color: var(--sb-semantic-color-foreground-primary);
141
+ background: var(--sb-semantic-color-background-overlay);
142
+ box-shadow: var(--sb-semantic-shadow-overlay);
143
+ font-family: var(--sb-semantic-typography-family-body);
144
+ font-size: var(--sb-semantic-typography-size-md);
145
+ line-height: var(--sb-semantic-typography-line-height-normal);
146
+ }
147
+
148
+ .sb-combobox-list {
149
+ max-height: min(
150
+ calc(var(--sb-semantic-size-control-md) * 6),
151
+ calc(
152
+ var(--available-height, 100dvh) - var(--sb-semantic-space-4) -
153
+ var(--sb-semantic-border-width-strong)
154
+ )
155
+ );
156
+ margin: 0;
157
+ padding: 0;
158
+ overflow-y: auto;
159
+ overscroll-behavior: contain;
160
+ list-style: none;
161
+ }
162
+
163
+ .sb-combobox-item {
164
+ display: flex;
165
+ box-sizing: border-box;
166
+ align-items: center;
167
+ justify-content: space-between;
168
+ gap: var(--sb-semantic-space-3);
169
+ min-height: var(--sb-semantic-size-control-md);
170
+ padding: var(--sb-semantic-space-2) var(--sb-semantic-space-3);
171
+ border-radius: var(--sb-semantic-radius-sm);
172
+ color: var(--sb-semantic-color-foreground-secondary);
173
+ overflow-wrap: anywhere;
174
+ cursor: pointer;
175
+ user-select: none;
176
+ }
177
+
178
+ .sb-combobox-item::after {
179
+ flex: 0 0 auto;
180
+ width: var(--sb-semantic-space-1);
181
+ height: var(--sb-semantic-space-2);
182
+ margin-inline: var(--sb-semantic-space-1);
183
+ border-right: var(--sb-semantic-border-width-strong) solid currentColor;
184
+ border-bottom: var(--sb-semantic-border-width-strong) solid currentColor;
185
+ visibility: hidden;
186
+ content: "";
187
+ transform: rotate(45deg);
188
+ }
189
+
190
+ .sb-combobox-item[data-state="checked"] {
191
+ color: var(--sb-semantic-color-accent-text);
192
+ background: var(--sb-semantic-color-accent-soft);
193
+ font-weight: var(--sb-semantic-typography-weight-semibold);
194
+ }
195
+
196
+ .sb-combobox-item[data-state="checked"]::after {
197
+ visibility: visible;
198
+ }
199
+
200
+ .sb-combobox-item[data-highlighted]:not([data-disabled]) {
201
+ color: var(--sb-semantic-color-selection-foreground);
202
+ background: var(--sb-semantic-color-selection-background);
203
+ }
204
+
205
+ .sb-combobox-item[data-disabled] {
206
+ color: var(--sb-semantic-color-foreground-muted);
207
+ cursor: not-allowed;
208
+ opacity: var(--sb-semantic-opacity-disabled);
209
+ }
210
+
211
+ .sb-combobox-empty {
212
+ padding: var(--sb-semantic-space-3);
213
+ color: var(--sb-semantic-color-foreground-muted);
214
+ font-size: var(--sb-semantic-typography-size-sm);
215
+ overflow-wrap: anywhere;
216
+ }
217
+
218
+ @media (prefers-reduced-motion: reduce) {
219
+ .sb-combobox-control,
220
+ .sb-combobox-trigger {
221
+ transition: none;
222
+ }
223
+ }
224
+
225
+ @media (forced-colors: active) {
226
+ .sb-combobox-control:focus-within {
227
+ outline: var(--sb-semantic-border-width-strong) solid Highlight;
228
+ }
229
+
230
+ .sb-combobox-item[data-highlighted]:not([data-disabled]) {
231
+ outline: var(--sb-semantic-border-width-strong) solid Highlight;
232
+ outline-offset: calc(-1 * var(--sb-semantic-border-width-strong));
233
+ }
234
+ }
235
+ }
@@ -0,0 +1,84 @@
1
+ @layer sb {
2
+ .sb-dialog {
3
+ box-sizing: border-box;
4
+ width: min(560px, calc(100vw - 40px));
5
+ max-width: none;
6
+ margin: auto;
7
+ padding: var(--sb-semantic-space-6);
8
+ border: var(--sb-semantic-border-width-hairline) solid var(--sb-semantic-color-border-strong);
9
+ border-radius: var(--sb-semantic-radius-lg);
10
+ color: var(--sb-semantic-color-foreground-primary);
11
+ background: var(--sb-semantic-color-background-raised);
12
+ box-shadow: var(--sb-semantic-shadow-overlay);
13
+ }
14
+
15
+ .sb-dialog::backdrop {
16
+ background: var(--sb-semantic-color-overlay-scrim);
17
+ }
18
+
19
+ .sb-dialog-head {
20
+ display: flex;
21
+ align-items: flex-start;
22
+ justify-content: space-between;
23
+ gap: var(--sb-semantic-space-5);
24
+ }
25
+
26
+ .sb-dialog-kicker {
27
+ margin: 0;
28
+ color: var(--sb-semantic-color-foreground-muted);
29
+ font-family: var(--sb-semantic-typography-family-body);
30
+ font-size: var(--sb-semantic-typography-size-sm);
31
+ line-height: var(--sb-semantic-typography-line-height-normal);
32
+ }
33
+
34
+ .sb-dialog-title {
35
+ margin: var(--sb-semantic-space-2) 0 0;
36
+ color: var(--sb-semantic-color-foreground-primary);
37
+ font-family: var(--sb-semantic-typography-family-body);
38
+ font-size: var(--sb-semantic-typography-size-2xl);
39
+ font-weight: var(--sb-semantic-typography-weight-semibold);
40
+ line-height: var(--sb-semantic-typography-line-height-snug);
41
+ }
42
+
43
+ .sb-dialog-copy {
44
+ margin: var(--sb-semantic-space-3) 0 0;
45
+ color: var(--sb-semantic-color-foreground-secondary);
46
+ }
47
+
48
+ .sb-dialog-actions {
49
+ display: flex;
50
+ justify-content: flex-end;
51
+ gap: var(--sb-semantic-space-3);
52
+ margin-top: var(--sb-semantic-space-6);
53
+ }
54
+
55
+ .sb-dialog-close {
56
+ display: inline-grid;
57
+ place-items: center;
58
+ width: var(--sb-semantic-size-target-minimum);
59
+ height: var(--sb-semantic-size-target-minimum);
60
+ padding: 0;
61
+ border: 0;
62
+ border-radius: var(--sb-semantic-radius-sm);
63
+ color: var(--sb-semantic-color-foreground-muted);
64
+ background: transparent;
65
+ font-size: var(--sb-semantic-typography-size-2xl);
66
+ line-height: var(--sb-semantic-typography-line-height-none);
67
+ }
68
+
69
+ .sb-dialog-close:hover {
70
+ color: var(--sb-semantic-color-foreground-primary);
71
+ background: var(--sb-semantic-color-background-subtle);
72
+ }
73
+
74
+ @media (max-width: 480px) {
75
+ .sb-dialog-actions {
76
+ align-items: stretch;
77
+ flex-direction: column;
78
+ }
79
+
80
+ .sb-dialog-actions > * {
81
+ width: 100%;
82
+ }
83
+ }
84
+ }
@@ -0,0 +1,44 @@
1
+ @layer sb {
2
+ .sb-disclosure {
3
+ border-top: var(--sb-semantic-border-width-hairline) solid
4
+ var(--sb-semantic-color-border-default);
5
+ }
6
+
7
+ .sb-disclosure:last-child {
8
+ border-bottom: var(--sb-semantic-border-width-hairline) solid
9
+ var(--sb-semantic-color-border-default);
10
+ }
11
+
12
+ .sb-disclosure summary {
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: space-between;
16
+ min-height: 56px;
17
+ gap: var(--sb-semantic-space-4);
18
+ color: var(--sb-semantic-color-foreground-secondary);
19
+ cursor: pointer;
20
+ list-style: none;
21
+ font-weight: var(--sb-semantic-typography-weight-semibold);
22
+ }
23
+
24
+ .sb-disclosure summary::-webkit-details-marker {
25
+ display: none;
26
+ }
27
+
28
+ .sb-disclosure summary::after {
29
+ color: var(--sb-semantic-color-foreground-muted);
30
+ content: "+";
31
+ font-family: var(--sb-semantic-typography-family-code);
32
+ font-size: var(--sb-semantic-typography-size-xl);
33
+ }
34
+
35
+ .sb-disclosure[open] summary::after {
36
+ content: "−";
37
+ }
38
+
39
+ .sb-disclosure-copy {
40
+ padding: 0 42px var(--sb-semantic-space-5) 0;
41
+ color: var(--sb-semantic-color-foreground-muted);
42
+ font-size: 13px;
43
+ }
44
+ }
@@ -0,0 +1,29 @@
1
+ @layer sb {
2
+ .sb-empty-state {
3
+ display: grid;
4
+ place-items: center;
5
+ min-height: 210px;
6
+ padding: var(--sb-semantic-space-8);
7
+ text-align: center;
8
+ }
9
+
10
+ .sb-empty-state-mark,
11
+ .sb-empty-mark {
12
+ display: grid;
13
+ place-items: center;
14
+ width: 42px;
15
+ height: 42px;
16
+ margin-bottom: var(--sb-semantic-space-4);
17
+ border: var(--sb-semantic-border-width-hairline) solid var(--sb-semantic-color-border-strong);
18
+ border-radius: var(--sb-semantic-radius-md);
19
+ color: var(--sb-semantic-color-foreground-muted);
20
+ font-family: var(--sb-semantic-typography-family-code);
21
+ }
22
+
23
+ .sb-empty-state p {
24
+ max-width: 34ch;
25
+ margin: var(--sb-semantic-space-2) 0 0;
26
+ color: var(--sb-semantic-color-foreground-muted);
27
+ font-size: 13px;
28
+ }
29
+ }
@@ -0,0 +1,64 @@
1
+ @layer sb {
2
+ .sb-field {
3
+ display: grid;
4
+ gap: var(--sb-semantic-space-2);
5
+ min-width: 0;
6
+ }
7
+
8
+ .sb-field label,
9
+ .sb-field legend,
10
+ .sb-field-title {
11
+ color: var(--sb-semantic-color-foreground-secondary);
12
+ font-size: 13px;
13
+ font-weight: var(--sb-semantic-typography-weight-semibold);
14
+ }
15
+
16
+ .sb-field small,
17
+ .sb-field-help {
18
+ color: var(--sb-semantic-color-foreground-muted);
19
+ font-size: var(--sb-semantic-typography-size-sm);
20
+ }
21
+
22
+ .sb-field-help[data-invalid] {
23
+ color: var(--sb-semantic-color-status-danger-text);
24
+ }
25
+
26
+ .sb-fieldset {
27
+ min-width: 0;
28
+ padding: 0;
29
+ border: 0;
30
+ }
31
+
32
+ .sb-choice-list {
33
+ display: grid;
34
+ gap: var(--sb-semantic-space-1);
35
+ margin-top: var(--sb-semantic-space-3);
36
+ }
37
+
38
+ .sb-choice {
39
+ display: flex;
40
+ align-items: center;
41
+ min-height: var(--sb-semantic-size-target-minimum);
42
+ gap: var(--sb-semantic-space-3);
43
+ padding: 0 var(--sb-semantic-space-3);
44
+ border: var(--sb-semantic-border-width-hairline) solid transparent;
45
+ border-radius: var(--sb-semantic-radius-md);
46
+ color: var(--sb-semantic-color-foreground-secondary);
47
+ cursor: pointer;
48
+ }
49
+
50
+ .sb-choice:hover {
51
+ color: var(--sb-semantic-color-foreground-primary);
52
+ background: var(--sb-semantic-color-background-subtle);
53
+ }
54
+
55
+ .sb-choice:has(input:focus-visible) {
56
+ box-shadow:
57
+ 0 0 0 var(--sb-semantic-border-width-hairline) var(--sb-semantic-color-background-canvas),
58
+ 0 0 0 var(--sb-semantic-space-1) var(--sb-semantic-color-focus-ring);
59
+ }
60
+
61
+ .sb-choice span {
62
+ font-size: 13px;
63
+ }
64
+ }