@nordcode/ui 1.3.2 → 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.
@@ -32,14 +32,14 @@
32
32
  --_button-box-shadow: var(--button-box-shadow, var(--shadow-near));
33
33
  --_button-hover-shadow: var(--button-hover-shadow, var(--shadow-nearest));
34
34
 
35
- --_button-padding-inline: var(--button-padding-inline, 1ch);
35
+ --_button-padding-inline: var(--button-padding-inline, var(--control-spacing-base, 0.75em));
36
36
 
37
37
  background-color: var(--_button-background);
38
38
  color: var(--_button-color);
39
39
  border: var(--border-width-thin) solid var(--_button-border-color);
40
40
  border-radius: var(--_button-border-radius);
41
41
  padding-inline: var(--_button-padding-inline);
42
- min-block-size: var(--button-height-base);
42
+ min-block-size: var(--control-height-base);
43
43
  padding-block: 0;
44
44
  font-family: var(--font-family-button);
45
45
  letter-spacing: var(--tracking-tight);
@@ -140,8 +140,8 @@
140
140
  }
141
141
 
142
142
  &.-small {
143
- --_button-padding-inline: 0.5em;
144
- min-block-size: var(--button-height-small);
143
+ --_button-padding-inline: var(--control-spacing-near, 0.5em);
144
+ min-block-size: var(--control-height-small);
145
145
  }
146
146
 
147
147
  &.-round {
@@ -149,8 +149,14 @@
149
149
  }
150
150
 
151
151
  &.-offset {
152
- --_button-offset-distance: var(--button-offset-distance, -0.15em);
153
- --_button-offset-distance-hover: var(--button-offset-distance-hover, -0.075em);
152
+ --_button-offset-distance: var(
153
+ --button-offset-distance,
154
+ calc(-1 * var(--control-spacing-minimal))
155
+ );
156
+ --_button-offset-distance-hover: var(
157
+ --button-offset-distance-hover,
158
+ calc(-0.5 * var(--control-spacing-minimal))
159
+ );
154
160
 
155
161
  --_button-transform: translate(
156
162
  var(--_button-offset-distance),
@@ -188,7 +194,7 @@
188
194
  */
189
195
 
190
196
  &:has(svg) {
191
- gap: 0.25em;
197
+ gap: var(--control-spacing-tiny, 0.25em);
192
198
  }
193
199
 
194
200
  /*
@@ -206,12 +212,12 @@
206
212
 
207
213
  &:after {
208
214
  content: "";
209
- inline-size: max(var(--button-height-base), 100%);
210
- block-size: max(var(--button-height-base), 100%);
215
+ inline-size: max(var(--control-height-base), 100%);
216
+ block-size: max(var(--control-height-base), 100%);
211
217
  aspect-ratio: 1;
212
218
  border-radius: 100%;
213
- inset-inline-start: calc(-0.5 * (var(--button-height-base) - 100%));
214
- inset-block-start: calc(-0.5 * (var(--button-height-base) - 100%));
219
+ inset-inline-start: calc(-0.5 * (var(--control-height-base) - 100%));
220
+ inset-block-start: calc(-0.5 * (var(--control-height-base) - 100%));
215
221
  position: absolute;
216
222
  z-index: -1;
217
223
  pointer-events: all;
@@ -235,8 +241,8 @@
235
241
  color: var(--_input-color);
236
242
  background-color: var(--_input-background);
237
243
  border: var(--_input-border);
238
- min-block-size: var(--button-height-base);
239
- padding-inline-end: 0.5em;
244
+ min-block-size: var(--control-height-base);
245
+ padding-inline-end: var(--contol-spacing-near, 0.5em);
240
246
  padding-inline-start: 0;
241
247
  border-radius: var(--_input-border-radius);
242
248
  }
@@ -246,10 +252,10 @@
246
252
  background-color: var(--_button-background);
247
253
  color: var(--_button-color);
248
254
  padding-inline: var(--_button-padding-inline);
249
- margin-inline-end: 0.5em;
255
+ margin-inline-end: var(--contol-spacing-near, 0.5em);
250
256
  cursor: pointer;
251
257
  box-shadow: none;
252
- min-block-size: calc(var(--button-height-base) - var(--border-width-thin));
258
+ min-block-size: calc(var(--control-height-base) - var(--border-width-thin));
253
259
  border: none;
254
260
  border-inline-end: var(--border-width-thin) solid var(--color-border-base);
255
261
  transform: none;
@@ -66,6 +66,7 @@
66
66
  text-decoration: none;
67
67
  font: inherit;
68
68
 
69
+ &:focus-visible,
69
70
  &:focus-within:focus-visible,
70
71
  &:hover {
71
72
  outline: none;
@@ -2,7 +2,7 @@
2
2
  :where(.nc-dialog) {
3
3
  --_dialog-padding-inline: var(--dialog-padding-inline, var(--spacing-base));
4
4
  --_dialog-layout-padding: var(--layout-padding, var(--spacing-base));
5
- --_dialog-close-size: var(--dialog-close-size, var(--button-height-base));
5
+ --_dialog-close-size: var(--dialog-close-size, var(--control-height-base));
6
6
  --_dialog-transition-duration: var(
7
7
  --dialog-transition-duration,
8
8
  var(--transition-duration-base)
@@ -28,7 +28,7 @@
28
28
  padding: 0;
29
29
  border-radius: var(--_dialog-radius);
30
30
  overflow: clip;
31
- overflow-clip-margin: 1em;
31
+ overflow-clip-margin: var(--control-spacing-far, 1em);
32
32
  pointer-events: all;
33
33
 
34
34
  @media (min-width: 36rem) {
@@ -63,7 +63,7 @@
63
63
  block-size: max-content;
64
64
  max-block-size: var(--_dialog-max-block-size);
65
65
  overflow: clip;
66
- overflow-clip-margin: 1em;
66
+ overflow-clip-margin: var(--control-spacing-far, 1em);
67
67
 
68
68
  & > *:first-child {
69
69
  border-radius: var(--_dialog-radius) var(--_dialog-radius) 0 0;
@@ -11,7 +11,7 @@
11
11
  }
12
12
 
13
13
  :where(.nc-form-hint) {
14
- margin-block: 0.75em;
14
+ margin-block: var(--control-spacing-base, 0.75em);
15
15
  font-size: var(--font-size-large);
16
16
  color: var(--color-text-muted);
17
17
  }
@@ -30,7 +30,7 @@
30
30
  inline-size: 100%;
31
31
 
32
32
  & + * {
33
- margin-block-start: var(--nc-legend-spacing, 1em);
33
+ margin-block-start: var(--nc-legend-spacing, var(--control-spacing-far, 1em));
34
34
  }
35
35
  }
36
36
 
@@ -41,7 +41,7 @@
41
41
  > :is(legend:not([class]), .nc-legend)
42
42
  + .nc-hint
43
43
  ) {
44
- --nc-legend-spacing: .2em;
45
- margin-block-end: 0.75em;
44
+ --nc-legend-spacing: var(--control-spacing-tiny, 0.25em);
45
+ margin-block: var(--control-spacing-base, 0.75em);
46
46
  }
47
47
  }
@@ -36,7 +36,7 @@
36
36
  }
37
37
 
38
38
  &[data-size="button"] {
39
- --icon-size: var(--button-height-base);
39
+ --icon-size: var(--control-height-base);
40
40
  }
41
41
 
42
42
  &[data-animation="spinning"] {
@@ -44,7 +44,7 @@
44
44
  }
45
45
  }
46
46
 
47
- :where(button, .nc-button)>.nc-icon {
47
+ :where(button, .nc-button) > .nc-icon {
48
48
  --icon-size: 2ex;
49
49
  }
50
50
 
@@ -61,8 +61,8 @@
61
61
  );
62
62
  --_input-disabled-filter: var(--input-disabled-filter, contrast(0.72) opacity(0.72));
63
63
 
64
- --_input-padding-block: var(--input-padding-block, 0.125lh);
65
- --_input-padding-inline: var(--input-padding-inline, 1ch);
64
+ --_input-padding-block: var(--input-padding-block, var(--control-spacing-tiny, 0.25em));
65
+ --_input-padding-inline: var(--input-padding-inline, var(--control-spacing-base, 0.75em));
66
66
  --_input-hover-background: var(--input-hover-background, var(--color-brand-primary-hover));
67
67
  }
68
68
 
@@ -96,7 +96,7 @@
96
96
  background-color: var(--_input-background);
97
97
  border: var(--_input-border);
98
98
  border-radius: var(--_input-border-radius);
99
- block-size: var(--button-height-base);
99
+ block-size: var(--control-height-base);
100
100
  padding-inline: var(--_input-padding-inline);
101
101
  box-shadow: var(--_input-box-shadow);
102
102
  inline-size: var(--input-inline-size, auto);
@@ -226,7 +226,7 @@
226
226
  :where(input[type="color"], .nc-input-color) {
227
227
  aspect-ratio: 1;
228
228
  inline-size: auto;
229
- padding: calc(var(--button-height-base) / 12);
229
+ padding: var(--control-spacing-minimal, 0.125em);
230
230
  }
231
231
 
232
232
  :where(input[type="date"], .nc-input-date) {
@@ -241,8 +241,8 @@
241
241
  &::-webkit-slider-thumb,
242
242
  &::-moz-range-thumb {
243
243
  appearance: none;
244
- inline-size: calc(var(--button-height-base) * 0.7);
245
- block-size: calc(var(--button-height-base) * 0.7);
244
+ inline-size: calc(var(--control-height-base) * 0.625);
245
+ block-size: calc(var(--control-height-base) * 0.625);
246
246
  border-radius: var(--_input-border-radius);
247
247
  border: var(--_input-border);
248
248
  border-color: var(--color-text-base);
@@ -1,7 +1,7 @@
1
1
  @layer components.input-fields {
2
2
  :where(.nc-input-field) {
3
3
  display: grid;
4
- gap: 0.35em;
4
+ gap: var(--control-spacing-near, 0.5em);
5
5
  grid-template-columns: minmax(0, 1fr);
6
6
  inline-size: 100%;
7
7
  min-inline-size: var(--input-field-min-inline-size);
@@ -14,7 +14,7 @@
14
14
  }
15
15
 
16
16
  & > .nc-cluster {
17
- gap: 0.5em;
17
+ gap: var(--control-spacing-base, 0.75em);
18
18
  }
19
19
  }
20
20
 
@@ -33,7 +33,7 @@
33
33
  justify-content: center;
34
34
  background-color: var(--color-base);
35
35
  color: var(--color-surface-subtle);
36
- margin-inline-end: 0.5em;
36
+ margin-inline-end: var(--control-spacing-base, 0.75em);
37
37
  inline-size: 1em;
38
38
  block-size: 1em;
39
39
  flex-shrink: 0;
@@ -50,7 +50,7 @@
50
50
 
51
51
  & > [data-label] {
52
52
  grid-area: label;
53
- padding-inline-start: 0.5em;
53
+ padding-inline-start: var(--control-spacing-base, 0.75em);
54
54
  }
55
55
 
56
56
  & .nc-input-label {
@@ -70,7 +70,7 @@
70
70
  gap: 0;
71
71
 
72
72
  > *:not(:first-child) {
73
- margin-block-start: 0.75em;
73
+ margin-block-start: var(--control-spacing-far, 0.75em);
74
74
  }
75
75
  }
76
76
  }
@@ -15,7 +15,7 @@
15
15
 
16
16
  container: segmented-control / inline-size;
17
17
 
18
- --nc-legend-spacing: 0.35em;
18
+ --nc-legend-spacing: var(--control-spacing-near, 0.5em);
19
19
  }
20
20
 
21
21
  :where(.nc-segmented-control) {
@@ -43,7 +43,7 @@
43
43
  display: flex;
44
44
  padding-inline: var(--_input-padding-inline);
45
45
  padding-block: var(--_input-padding-block);
46
- min-block-size: var(--segmented-control-min-height, var(--button-height-base));
46
+ min-block-size: var(--segmented-control-min-height, var(--control-height-base));
47
47
  color: var(--_input-color);
48
48
  border: var(--_input-border);
49
49
  align-items: center;
@@ -9,10 +9,11 @@
9
9
  var(--color-brand-primary-base)
10
10
  );
11
11
  --_tag-select-border-radius: var(--tag-select-border-radius, var(--_input-border-radius));
12
- --nc-legend-spacing: 0.35em;
12
+
13
+ --nc-legend-spacing: var(--control-spacing-near, 0.5em);
13
14
 
14
15
  &:focus-within:has(:focus-visible) {
15
- outline-offset: 0.5em;
16
+ outline-offset: var(--controls-spacing-near, 0.5em);
16
17
  outline: var(--_input-outline);
17
18
  border-radius: var(--_tag-select-border-radius);
18
19
  }
@@ -11,7 +11,7 @@
11
11
  inline-size: 100%;
12
12
 
13
13
  &:not(:last-child) {
14
- margin-block-end: 0.5em;
14
+ margin-block-end: var(--control-spacing-base, 0.75em);
15
15
  }
16
16
  }
17
17
 
@@ -22,7 +22,7 @@
22
22
  &:not(:last-child):after {
23
23
  content: "";
24
24
  border-right: var(--border-width-medium) solid var(--color-border-muted);
25
- margin: 0 0.5em;
25
+ margin: 0 var(--control-spacing-base, 0.75em);
26
26
  transform: calc(var(--border-width-medium) / 2);
27
27
  }
28
28
  }
@@ -62,7 +62,7 @@
62
62
  }
63
63
 
64
64
  :where(.nc-notification) {
65
- padding: 0.5em 1em;
65
+ padding: var(--control-spacing-near, 0.5em) var(--control-spacing-base, 0.75em);
66
66
  background: var(--color-surface-base);
67
67
  border: var(--border-width-thin) solid var(--_notification-border-color);
68
68
  display: flex;
@@ -99,7 +99,7 @@
99
99
  justify-content: space-between;
100
100
  align-items: flex-end;
101
101
  inline-size: 100%;
102
- margin-block-start: 0.25em;
102
+ margin-block-start: var(--control-spacing-tiny, 0.25em);
103
103
  }
104
104
 
105
105
  :where(.nc-notification .nc-button, .nc-notification-center .nc-button) {
@@ -1,12 +1,9 @@
1
1
  @layer config {
2
2
  :where(html) {
3
- --button-height-base: 2.5rem;
4
- --button-height-small: 2rem;
3
+ --control-height-base: var(--button-height-base);
4
+ --control-height-small: var(--button-height-small);
5
5
 
6
6
  --font-family-link: var(--font-family-default);
7
7
  --font-family-button: var(--font-family-default);
8
-
9
- --input-height-base: 2.5rem;
10
- --input-height-small: 2rem;
11
8
  }
12
9
  }
@@ -15,7 +15,7 @@
15
15
  color: var(--color-text-base);
16
16
 
17
17
  &:not(:last-of-type) {
18
- padding-block-end: 0.5lh;
18
+ padding-block-end: var(--control-spacing-base, 0.75em);
19
19
  border-bottom: var(--border-width-thin) solid var(--color-border-muted);
20
20
  }
21
21
  }
@@ -28,7 +28,7 @@
28
28
  align-items: flex-start;
29
29
  overflow-wrap: anywhere;
30
30
  container: description-list / inline-size;
31
- row-gap: 0.5lh;
31
+ row-gap: var(--control-spacing-base, 0.75em);
32
32
  }
33
33
 
34
34
  :where(dd, dt) {
@@ -44,7 +44,7 @@
44
44
  min-block-size: 100%;
45
45
 
46
46
  &:not(:last-of-type) {
47
- padding-block-end: 0.5lh;
47
+ padding-block-end: var(--control-spacing-base, 0.75em);
48
48
  border-bottom: var(--border-width-thin) solid var(--color-border-muted);
49
49
  }
50
50
  }
@@ -78,12 +78,12 @@
78
78
  display: block;
79
79
  color: var(--color-surface-subtle);
80
80
  background-color: var(--color-text-base);
81
- padding: 0.35em 0.5em;
81
+ padding: var(--control-spacing-nearest, 0.375em) var(--control-spacing-base, 0.75em);
82
82
  }
83
83
 
84
84
  :where(details) {
85
- --p-x-details: 1em;
86
- --p-y-details: 1em;
85
+ --p-x-details: var(--control-spacing-far, 1em);
86
+ --p-y-details: var(--control-spacing-far, 1em);
87
87
  --b-r-details: var(--border-radius-medium);
88
88
 
89
89
  background-color: var(--color-surface-muted);
@@ -112,7 +112,7 @@
112
112
  .note,
113
113
  blockquote {
114
114
  padding: 0;
115
- padding-inline-start: 1em;
115
+ padding-inline-start: var(--control-spacing-far, 1em);
116
116
  inline-size: 100%;
117
117
  color: var(--color-text-base);
118
118
  position: relative;
@@ -148,7 +148,7 @@
148
148
 
149
149
  & cite:before {
150
150
  content: "—";
151
- margin-inline-end: 0.5em;
151
+ margin-inline-end: var(--control-spacing-near, 0.5em);
152
152
  }
153
153
  }
154
154
 
@@ -209,7 +209,7 @@
209
209
  color: inherit;
210
210
  font-family: var(--font-family-link);
211
211
  text-decoration: underline;
212
- text-underline-offset: 0.35em;
212
+ text-underline-offset: var(--control-spacing-nearest, 0.375em);
213
213
  text-decoration-thickness: from-font;
214
214
  font-weight: var(--font-weight-default);
215
215
  text-decoration-color: currentColor;
@@ -254,7 +254,7 @@
254
254
  }
255
255
 
256
256
  :where(del, ins, mark, code, kbd, var) {
257
- padding-inline: 0.25em;
257
+ padding-inline: var(--control-spacing-tiny, 0.25em);
258
258
  border-radius: var(--border-radius-small);
259
259
  line-height: inherit;
260
260
  box-decoration-break: clone;
@@ -265,7 +265,7 @@
265
265
  font-family: var(--font-family-mono);
266
266
  letter-spacing: 0;
267
267
  font-weight: var(--font-weight-default);
268
- padding-block: 0.2em;
268
+ padding-block: var(--control-spacing-minimal, 0.125em);
269
269
  max-inline-size: fit-content;
270
270
  hyphens: none;
271
271
  tab-size: 4;
@@ -292,7 +292,7 @@
292
292
  }
293
293
 
294
294
  :where(pre) {
295
- padding: 1em;
295
+ padding: var(--control-spacing-far, 1em);
296
296
  inline-size: 100%;
297
297
  overflow-x: auto;
298
298
  color: var(--color-text-base);
@@ -336,7 +336,7 @@
336
336
  }
337
337
 
338
338
  :where(td, th) {
339
- padding: 0.5em;
339
+ padding: var(--control-spacing-near, 0.5em);
340
340
  line-height: var(--line-height-small);
341
341
  white-space: nowrap;
342
342
  font-variant-numeric: tabular-nums;
@@ -411,15 +411,15 @@
411
411
  }
412
412
 
413
413
  :where(ul, ol) {
414
- padding-inline-start: 1em;
414
+ padding-inline-start: var(--control-spacing-farthest, 1.5em);
415
415
  }
416
416
 
417
417
  :where(li + li) {
418
- margin-block-start: 0.5em;
418
+ margin-block-start: var(--control-spacing-near, 0.5em);
419
419
  }
420
420
 
421
421
  :where(li > :is(ul, ol)) {
422
- margin-block-start: 0.5em;
422
+ margin-block-start: var(--control-spacing-near, 0.5em);
423
423
  }
424
424
 
425
425
  @supports (font-variant-position: sub) {
@@ -465,7 +465,7 @@
465
465
  }
466
466
 
467
467
  :where(.quoted p:first-of-type::before) {
468
- margin-inline-start: -0.5em;
468
+ margin-inline-start: calc(-1 * var(--control-spacing-near, 0.5em));
469
469
  }
470
470
  :where(.quoted p) {
471
471
  hanging-punctuation: first last;
@@ -28,7 +28,7 @@
28
28
 
29
29
  :where(:not(:active):focus-visible) {
30
30
  outline: var(--border-width-medium) solid var(--color-brand-primary-base);
31
- outline-offset: 0.5em;
31
+ outline-offset: var(--control-spacing-near, 0.5em);
32
32
  }
33
33
 
34
34
  :where(:focus:not(:focus-visible)) {
@@ -2,7 +2,7 @@
2
2
  * {
3
3
  --text: var(--color-text-muted);
4
4
  --color: var(--color-text-muted);
5
- --surface: transparent;
5
+ --surface: var(--color-surface-base);
6
6
  --border: var(--color-border-muted);
7
7
 
8
8
  --text-hover: var(--color-text-on-emphasis);
@@ -38,7 +38,7 @@
38
38
  .-neutral {
39
39
  --text: var(--color-text-muted);
40
40
  --color: var(--color-text-muted);
41
- --surface: transparent;
41
+ --surface: var(--color-surface-base);
42
42
  --border: var(--color-border-muted);
43
43
 
44
44
  --text-hover: var(--color-text-on-emphasis);