@nordmanai/nif 0.2.8 → 0.2.9

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 (56) hide show
  1. package/dist/index.js +572 -557
  2. package/dist/styles.css +1 -1
  3. package/dist/ui/config/nm-appearance.d.ts +13 -1
  4. package/dist/ui/lib/appearance/appearanceState.d.ts +2 -1
  5. package/package.json +1 -1
  6. package/registry/index.json +1 -1
  7. package/registry/ui/components/nm-ai/nm-ai.css +3 -3
  8. package/registry/ui/components/nm-alert/nm-alert.css +1 -1
  9. package/registry/ui/components/nm-button/nm-button.css +2 -2
  10. package/registry/ui/components/nm-button-group/nm-button-group.css +1 -1
  11. package/registry/ui/components/nm-calendar/nm-calendar.css +1 -1
  12. package/registry/ui/components/nm-card/nm-card.css +2 -2
  13. package/registry/ui/components/nm-chatbox/nm-chatbox.css +1 -1
  14. package/registry/ui/components/nm-checkbox/nm-checkbox.css +2 -2
  15. package/registry/ui/components/nm-chip/nm-chip.css +1 -1
  16. package/registry/ui/components/nm-code-block/nm-code-block.css +1 -1
  17. package/registry/ui/components/nm-collection/nm-collection.css +2 -2
  18. package/registry/ui/components/nm-color-picker/nm-color-picker.css +1 -1
  19. package/registry/ui/components/nm-combobox/nm-combobox.css +2 -2
  20. package/registry/ui/components/nm-command/nm-command.css +1 -1
  21. package/registry/ui/components/nm-composer/nm-composer.css +3 -3
  22. package/registry/ui/components/nm-date-picker/nm-date-picker.css +2 -2
  23. package/registry/ui/components/nm-dialog/nm-dialog.css +1 -1
  24. package/registry/ui/components/nm-drawer/nm-drawer.css +2 -2
  25. package/registry/ui/components/nm-dropdown/nm-dropdown.css +2 -2
  26. package/registry/ui/components/nm-dropdown-menu/nm-dropdown-menu.css +1 -1
  27. package/registry/ui/components/nm-field/nm-field.css +6 -6
  28. package/registry/ui/components/nm-hover-card/nm-hover-card.css +1 -1
  29. package/registry/ui/components/nm-input/nm-input.css +3 -3
  30. package/registry/ui/components/nm-input-group/nm-input-group.css +2 -2
  31. package/registry/ui/components/nm-message/nm-message.css +1 -1
  32. package/registry/ui/components/nm-native-select/nm-native-select.css +2 -2
  33. package/registry/ui/components/nm-popover/nm-popover.css +1 -1
  34. package/registry/ui/components/nm-prose/nm-prose.css +3 -3
  35. package/registry/ui/components/nm-questionnaire/nm-questionnaire.css +3 -3
  36. package/registry/ui/components/nm-radio-group/nm-radio-group.css +2 -2
  37. package/registry/ui/components/nm-segmented/nm-segmented.css +1 -1
  38. package/registry/ui/components/nm-select/nm-select.css +2 -2
  39. package/registry/ui/components/nm-separator/nm-separator.css +1 -1
  40. package/registry/ui/components/nm-side-panel/nm-side-panel.css +1 -1
  41. package/registry/ui/components/nm-sidebar/nm-sidebar.css +9 -9
  42. package/registry/ui/components/nm-spinner/nm-spinner.css +1 -1
  43. package/registry/ui/components/nm-switch/nm-switch.css +1 -1
  44. package/registry/ui/components/nm-table/nm-table.css +4 -4
  45. package/registry/ui/components/nm-tabs/nm-tabs.css +1 -1
  46. package/registry/ui/components/nm-textarea/nm-textarea.css +5 -5
  47. package/registry/ui/components/nm-toggle/nm-toggle.css +1 -1
  48. package/registry/ui/components/nordman-icon-button/nordman-icon-button.css +2 -2
  49. package/registry/ui/components/nordman-login/nordman-login.css +3 -3
  50. package/registry/ui/components/nordman-toggle/nordman-toggle.css +1 -1
  51. package/registry/ui/config/nm-appearance.ts +17 -0
  52. package/registry/ui/lib/appearance/appearanceState.ts +8 -0
  53. package/registry/ui/lib/appearance/applyAppearance.ts +3 -1
  54. package/registry/ui/lib/appearance/deriveTokens.ts +2 -0
  55. package/registry/ui/styles/light-appearance.css +3 -3
  56. package/registry/ui/styles/tokens.css +21 -0
@@ -60,6 +60,17 @@ export declare const NM_UI_SPACE_PERCENT: {
60
60
  readonly max: 125;
61
61
  readonly default: 100;
62
62
  };
63
+ /**
64
+ * How visible the borders are. Every border colour in the kit is mixed through one strength, so default is the kit as
65
+ * drawn, subtle is barely there, and none removes them. Geometry does not change: the border turns transparent and keeps
66
+ * its width. Fills and tracks that share the line colours are untouched, and so are state borders: focus, selection, checked and
67
+ * error keep their colour.
68
+ */
69
+ export declare const NM_BORDER_STYLES: readonly ['default', 'subtle', 'none'];
70
+ export type NmBorderStyle = (typeof NM_BORDER_STYLES)[number];
71
+ export declare const NM_BORDER_STRENGTH: Record<NmBorderStyle, string>;
72
+ /** Set on the root beside the tokens, so a product can style a state without the appearance script: `:root[data-nm-borders="none"]`. */
73
+ export declare const NM_BORDER_ATTRIBUTE: 'data-nm-borders';
63
74
  export declare const NM_APPEARANCE_CONTRAST: {
64
75
  readonly min: 0;
65
76
  readonly max: 100;
@@ -94,7 +105,8 @@ export declare const NM_APPEARANCE_DEFAULTS: {
94
105
  readonly uiRadiusPercent: 100;
95
106
  readonly uiSpacePercent: 100;
96
107
  readonly contrast: 0;
108
+ readonly borders: NmBorderStyle;
97
109
  };
98
- export declare const NM_APPEARANCE_CSS_VARS: readonly ['--nm-canvas', '--nm-fg', '--nm-fg-muted', '--nm-fg-subtle', '--nm-stroke', '--nm-line', '--nm-line-strong', '--nm-divider', '--control-fs', '--nm-panel', '--nm-raised', '--nm-inset', '--nm-mark-primary', '--nm-mark-secondary', '--nm-mark-tertiary', '--nm-mark-surface', '--nm-canvas-rgb', '--nm-fg-rgb', '--nm-fg-muted-rgb', '--nm-fg-subtle-rgb', '--nm-stroke-rgb', '--nm-line-rgb', '--nm-panel-rgb', '--nm-raised-rgb', '--nm-inset-rgb', '--sand', '--nm-accent', '--nm-accent-rgb', '--orb-ui-cloud-appearance-deepColor', '--orb-ui-cloud-appearance-upperColor', '--orb-ui-cloud-appearance-lowerColor', '--orb-ui-cloud-appearance-highlightColor', '--orb-ui-cloud-appearance-launchColor', '--orb-ui-cloud-appearance-spinnerColor', '--nm-weight-light', '--nm-weight-regular', '--nm-weight-medium', '--nm-weight-semibold', '--nm-weight-bold', '--nm-type-body', '--nm-type-ui', '--nm-type-ui-sm', '--nm-type-lede', '--nm-type-section', '--nm-type-card', '--nm-type-caption', '--markdown-font-size', '--font-size-base', '--font-size-sm', '--nm-icon-button', '--nm-icon-sm', '--nm-rail-icon', '--nm-ui-chip-min-height', '--nm-radius-scale', '--nm-space-scale', '--text-primary', '--text-secondary', '--text-tertiary', '--text-muted', '--presentation', '--surface-primary', '--surface-chat', '--surface-secondary', '--surface-secondary-alt', '--surface-tertiary', '--surface-primary-alt', '--surface-dialog', '--surface-hover', '--surface-active', '--border-light', '--border-medium', '--link', '--link-hover', '--link-visited', '--accent-primary', '--ring-primary', '--brand-purple', '--nordman-accent'];
110
+ export declare const NM_APPEARANCE_CSS_VARS: readonly ['--nm-canvas', '--nm-fg', '--nm-fg-muted', '--nm-fg-subtle', '--nm-stroke', '--nm-line', '--nm-line-strong', '--nm-divider', '--control-fs', '--nm-panel', '--nm-raised', '--nm-inset', '--nm-mark-primary', '--nm-mark-secondary', '--nm-mark-tertiary', '--nm-mark-surface', '--nm-canvas-rgb', '--nm-fg-rgb', '--nm-fg-muted-rgb', '--nm-fg-subtle-rgb', '--nm-stroke-rgb', '--nm-line-rgb', '--nm-panel-rgb', '--nm-raised-rgb', '--nm-inset-rgb', '--sand', '--nm-accent', '--nm-accent-rgb', '--orb-ui-cloud-appearance-deepColor', '--orb-ui-cloud-appearance-upperColor', '--orb-ui-cloud-appearance-lowerColor', '--orb-ui-cloud-appearance-highlightColor', '--orb-ui-cloud-appearance-launchColor', '--orb-ui-cloud-appearance-spinnerColor', '--nm-weight-light', '--nm-weight-regular', '--nm-weight-medium', '--nm-weight-semibold', '--nm-weight-bold', '--nm-type-body', '--nm-type-ui', '--nm-type-ui-sm', '--nm-type-lede', '--nm-type-section', '--nm-type-card', '--nm-type-caption', '--markdown-font-size', '--font-size-base', '--font-size-sm', '--nm-icon-button', '--nm-icon-sm', '--nm-rail-icon', '--nm-ui-chip-min-height', '--nm-radius-scale', '--nm-space-scale', '--nm-border-strength', '--text-primary', '--text-secondary', '--text-tertiary', '--text-muted', '--presentation', '--surface-primary', '--surface-chat', '--surface-secondary', '--surface-secondary-alt', '--surface-tertiary', '--surface-primary-alt', '--surface-dialog', '--surface-hover', '--surface-active', '--border-light', '--border-medium', '--link', '--link-hover', '--link-visited', '--accent-primary', '--ring-primary', '--brand-purple', '--nordman-accent'];
99
111
  export declare function findThemePreset(id: string): NmThemePresetDefinition | undefined;
100
112
  export declare function defaultThemePresetId(): string;
@@ -1,4 +1,4 @@
1
- import { NM_APPEARANCE_STORAGE_KEY, type NmAccentPreset, type NmAppearanceMode } from '../../config/nm-appearance.ts';
1
+ import { NM_APPEARANCE_STORAGE_KEY, type NmAccentPreset, type NmAppearanceMode, type NmBorderStyle } from '../../config/nm-appearance.ts';
2
2
  export type NmAppearanceState = {
3
3
  mode: NmAppearanceMode;
4
4
  themePresetId: string;
@@ -12,6 +12,7 @@ export type NmAppearanceState = {
12
12
  uiRadiusPercent: number;
13
13
  uiSpacePercent: number;
14
14
  contrast: number;
15
+ borders: NmBorderStyle;
15
16
  };
16
17
  export { NM_APPEARANCE_STORAGE_KEY };
17
18
  export declare function resolveAppearanceScheme(mode: NmAppearanceMode, prefersDark?: boolean): 'light' | 'dark';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nordmanai/nif",
3
- "version": "0.2.8",
3
+ "version": "0.2.9",
4
4
  "description": "Nordman Interface Framework: the one UI and UX system for every Nordman product. Base UI, in the shadcn composition, styled by NIF tokens.",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.2.8",
2
+ "version": "0.2.9",
3
3
  "versions": {
4
4
  "@animate-ui/react": "^2.4.2",
5
5
  "@base-ui/react": "^1.9.0",
@@ -50,7 +50,7 @@
50
50
  box-sizing: border-box;
51
51
  width: 100%;
52
52
  padding: var(--nm-space-12);
53
- border: var(--nm-rule) solid var(--nm-line-strong);
53
+ border: var(--nm-rule) solid var(--nm-border-strong);
54
54
  border-radius: var(--nm-control-r);
55
55
  background: var(--nm-raised);
56
56
  color: var(--nm-fg);
@@ -94,7 +94,7 @@
94
94
  gap: var(--nm-space-12);
95
95
  width: 100%;
96
96
  padding: var(--nm-panel-pad);
97
- border: var(--nm-rule) solid var(--nm-line-strong);
97
+ border: var(--nm-rule) solid var(--nm-border-strong);
98
98
  border-radius: var(--nm-control-menu-radius);
99
99
  background: var(--nm-panel);
100
100
  color: var(--nm-fg);
@@ -248,7 +248,7 @@
248
248
  flex-shrink: 0;
249
249
  height: var(--control-h);
250
250
  padding: 0 var(--control-px);
251
- border: var(--nm-rule) solid var(--nm-line-strong);
251
+ border: var(--nm-rule) solid var(--nm-border-strong);
252
252
  border-radius: var(--toggle-r);
253
253
  background: transparent;
254
254
  color: var(--nm-fg);
@@ -6,7 +6,7 @@
6
6
  row-gap: var(--nm-space-4);
7
7
  align-items: start;
8
8
  padding: var(--nm-space-16);
9
- border: var(--nm-rule) solid var(--nm-line-strong);
9
+ border: var(--nm-rule) solid var(--nm-border-strong);
10
10
  border-radius: var(--nm-radius-lg);
11
11
  background: var(--nm-panel);
12
12
  color: var(--nm-fg);
@@ -41,7 +41,7 @@
41
41
  }
42
42
 
43
43
  .nm-button--outline {
44
- border-color: var(--nm-line-strong);
44
+ border-color: var(--nm-border-strong);
45
45
  background: var(--nm-raised);
46
46
  color: var(--nm-fg);
47
47
  }
@@ -53,7 +53,7 @@
53
53
  }
54
54
 
55
55
  .nm-button--panel {
56
- border-color: var(--nm-line-strong);
56
+ border-color: var(--nm-border-strong);
57
57
  background: var(--nm-panel);
58
58
  color: var(--nm-fg);
59
59
  }
@@ -88,7 +88,7 @@
88
88
  gap: var(--nm-space-8);
89
89
  min-height: var(--control-h);
90
90
  padding: 0 var(--control-px);
91
- border: var(--nm-rule) solid var(--nm-line-strong);
91
+ border: var(--nm-rule) solid var(--nm-border-strong);
92
92
  border-radius: var(--nm-control-r);
93
93
  background: var(--nm-raised);
94
94
  color: var(--nm-fg-muted);
@@ -126,7 +126,7 @@
126
126
  }
127
127
 
128
128
  .nm-calendar__day--today .nm-calendar__day-button {
129
- border-color: var(--nm-stroke);
129
+ border-color: var(--nm-border-stroke);
130
130
  }
131
131
 
132
132
  .nm-calendar__day--outside .nm-calendar__day-button {
@@ -6,7 +6,7 @@
6
6
  gap: var(--nm-space-12);
7
7
  min-width: 0;
8
8
  padding: var(--nm-card-pad);
9
- border: var(--nm-rule) solid var(--nm-line-strong);
9
+ border: var(--nm-rule) solid var(--nm-border-strong);
10
10
  border-radius: var(--nm-radius-lg);
11
11
  background: var(--nm-raised);
12
12
  color: var(--nm-fg);
@@ -39,7 +39,7 @@
39
39
  }
40
40
 
41
41
  .nm-card[data-interactive]:hover:not([data-disabled]) {
42
- border-color: var(--nm-stroke);
42
+ border-color: var(--nm-border-stroke);
43
43
  background: var(--nm-inset);
44
44
  }
45
45
 
@@ -407,7 +407,7 @@
407
407
  align-items: center;
408
408
  gap: var(--nm-space-4);
409
409
  padding: var(--nm-icon-pad);
410
- border: var(--nm-rule) solid var(--nm-line);
410
+ border: var(--nm-rule) solid var(--nm-border);
411
411
  border-radius: calc((var(--nm-icon-control) + var(--nm-rule) * 2) / 2);
412
412
  background: transparent;
413
413
  color: var(--nm-fg-subtle);
@@ -8,9 +8,9 @@
8
8
  width: var(--nm-icon-button);
9
9
  height: var(--nm-icon-button);
10
10
  padding: 0;
11
- border: var(--nm-rule) solid var(--nm-stroke);
11
+ border: var(--nm-rule) solid var(--nm-border-stroke);
12
12
  border-radius: var(--nm-radius-sm);
13
- background: transparent;
13
+ background: var(--nm-borderless-fill);
14
14
  color: var(--nm-canvas);
15
15
  cursor: pointer;
16
16
  transition:
@@ -62,7 +62,7 @@
62
62
  }
63
63
 
64
64
  .nm-chip[data-tone='outline'] {
65
- border-color: var(--nm-line-strong);
65
+ border-color: var(--nm-border-strong);
66
66
  background: transparent;
67
67
  color: var(--nm-fg);
68
68
  }
@@ -5,7 +5,7 @@
5
5
  width: 100%;
6
6
  min-width: 0;
7
7
  overflow: hidden;
8
- border: var(--nm-rule) solid var(--nm-line-strong);
8
+ border: var(--nm-rule) solid var(--nm-border-strong);
9
9
  border-radius: var(--nm-radius-lg);
10
10
  background: var(--nm-inset);
11
11
  color: var(--nm-fg);
@@ -96,7 +96,7 @@
96
96
  justify-content: space-between;
97
97
  gap: var(--nm-space-8);
98
98
  padding: var(--table-cell-py) var(--table-gap);
99
- border-bottom: var(--nm-rule) solid var(--nm-line);
99
+ border-bottom: var(--nm-rule) solid var(--nm-border);
100
100
  border-radius: 0;
101
101
  color: var(--nm-fg-subtle);
102
102
  font-size: var(--table-fs);
@@ -111,7 +111,7 @@
111
111
  .nm-collection__head:hover,
112
112
  .nm-collection__head:focus-within {
113
113
  padding-block: var(--table-head-py);
114
- border-bottom-color: var(--nm-line-strong);
114
+ border-bottom-color: var(--nm-border-strong);
115
115
  background: transparent;
116
116
  color: var(--nm-fg-subtle);
117
117
  font-size: var(--table-head-fs);
@@ -9,7 +9,7 @@
9
9
  box-sizing: border-box;
10
10
  width: var(--nm-icon-button);
11
11
  height: var(--nm-icon-button);
12
- border: var(--nm-rule) solid var(--nm-line-strong);
12
+ border: var(--nm-rule) solid var(--nm-border-strong);
13
13
  border-radius: var(--nm-radius-sm);
14
14
  background: var(--nm-swatch);
15
15
  }
@@ -7,7 +7,7 @@
7
7
  min-width: 0;
8
8
  height: var(--nm-field-h);
9
9
  padding: 0 var(--control-px);
10
- border: var(--nm-rule) solid var(--nm-line-strong);
10
+ border: var(--nm-rule) solid var(--nm-border-strong);
11
11
  border-radius: var(--nm-control-r);
12
12
  background: var(--nm-raised);
13
13
  color: var(--nm-fg);
@@ -23,7 +23,7 @@
23
23
  }
24
24
 
25
25
  .nm-combobox__group:not([data-bare]):focus-within {
26
- border-color: var(--nm-stroke);
26
+ border-color: var(--nm-border-stroke);
27
27
  }
28
28
 
29
29
  .nm-combobox__input {
@@ -7,7 +7,7 @@
7
7
  width: 100%;
8
8
  padding: var(--nm-space-12) var(--nm-space-24) var(--nm-space-24);
9
9
  overflow: hidden;
10
- border: var(--nm-rule) solid var(--nm-line-strong);
10
+ border: var(--nm-rule) solid var(--nm-border-strong);
11
11
  border-radius: var(--nm-radius-lg);
12
12
  background: var(--nm-panel);
13
13
  color: var(--nm-fg);
@@ -6,7 +6,7 @@
6
6
  gap: var(--nm-space-24);
7
7
  width: 100%;
8
8
  padding: var(--nm-space-12);
9
- border: var(--nm-rule) solid var(--nm-line-strong);
9
+ border: var(--nm-rule) solid var(--nm-border-strong);
10
10
  border-radius: var(--nm-radius-lg);
11
11
  background: var(--nm-raised);
12
12
  color: var(--nm-fg);
@@ -15,7 +15,7 @@
15
15
  }
16
16
 
17
17
  .nm-composer:focus-within {
18
- border-color: var(--nm-stroke);
18
+ border-color: var(--nm-border-stroke);
19
19
  }
20
20
 
21
21
  .nm-composer[data-disabled='true'] {
@@ -217,7 +217,7 @@
217
217
  margin: 0;
218
218
  padding: 0 0 var(--nm-space-12);
219
219
  list-style: none;
220
- border-bottom: var(--nm-rule) solid var(--nm-line);
220
+ border-bottom: var(--nm-rule) solid var(--nm-border);
221
221
  }
222
222
 
223
223
  .nm-composer__queued {
@@ -7,7 +7,7 @@
7
7
  min-width: var(--nm-width-date);
8
8
  height: var(--nm-field-h);
9
9
  padding: 0 var(--control-px);
10
- border: var(--nm-rule) solid var(--nm-line-strong);
10
+ border: var(--nm-rule) solid var(--nm-border-strong);
11
11
  border-radius: var(--nm-control-r);
12
12
  background: var(--nm-raised);
13
13
  color: var(--nm-fg);
@@ -28,7 +28,7 @@
28
28
  }
29
29
 
30
30
  .nm-picker__trigger:hover:not(:disabled) {
31
- border-color: var(--nm-stroke);
31
+ border-color: var(--nm-border-stroke);
32
32
  }
33
33
 
34
34
  .nm-picker__trigger:focus-visible,
@@ -23,7 +23,7 @@
23
23
  width: min(var(--nm-width-dialog), calc(100% - var(--nm-space-24) * 2));
24
24
  max-height: 70%;
25
25
  overflow: hidden;
26
- border: var(--nm-rule) solid var(--nm-line-strong);
26
+ border: var(--nm-rule) solid var(--nm-border-strong);
27
27
  border-radius: var(--nm-radius-lg);
28
28
  background: var(--nm-panel);
29
29
  color: var(--nm-fg);
@@ -29,11 +29,11 @@
29
29
  }
30
30
  .nm-drawer[data-side='left'] {
31
31
  inset-inline-start: 0;
32
- border-inline-end: var(--nm-rule) solid var(--nm-line-strong);
32
+ border-inline-end: var(--nm-rule) solid var(--nm-border-strong);
33
33
  }
34
34
  .nm-drawer[data-side='right'] {
35
35
  inset-inline-end: 0;
36
- border-inline-start: var(--nm-rule) solid var(--nm-line-strong);
36
+ border-inline-start: var(--nm-rule) solid var(--nm-border-strong);
37
37
  }
38
38
  .nm-drawer[data-starting-style],
39
39
  .nm-drawer[data-ending-style] {
@@ -83,7 +83,7 @@
83
83
  max-height: var(--nm-dropdown-max);
84
84
  margin: 0;
85
85
  padding: var(--nm-list-pad);
86
- border: var(--nm-rule) solid var(--nm-line-strong);
86
+ border: var(--nm-rule) solid var(--nm-border-strong);
87
87
  border-radius: var(--nm-menu-radius);
88
88
  background: var(--nm-panel);
89
89
  color: var(--nm-fg);
@@ -160,7 +160,7 @@
160
160
  height: 0;
161
161
  margin: var(--nm-space-8) 0;
162
162
  border: 0;
163
- border-top: var(--nm-rule) solid var(--nm-line);
163
+ border-top: var(--nm-rule) solid var(--nm-border);
164
164
  background: transparent;
165
165
  }
166
166
 
@@ -15,7 +15,7 @@
15
15
  padding: var(--nm-list-pad);
16
16
  overflow-x: hidden;
17
17
  overflow-y: auto;
18
- border: var(--nm-rule) solid var(--nm-line-strong);
18
+ border: var(--nm-rule) solid var(--nm-border-strong);
19
19
  border-radius: var(--nm-menu-radius);
20
20
  background: var(--nm-panel);
21
21
  color: var(--nm-fg);
@@ -7,7 +7,7 @@
7
7
  box-sizing: border-box;
8
8
  min-height: var(--nm-field-h);
9
9
  padding: 0 var(--control-px);
10
- border: var(--nm-rule) solid var(--nm-line-strong);
10
+ border: var(--nm-rule) solid var(--nm-border-strong);
11
11
  border-radius: var(--nm-control-r);
12
12
  background: var(--nm-raised);
13
13
  color: var(--nm-fg-subtle);
@@ -22,7 +22,7 @@
22
22
 
23
23
  .nm-field:not(.nm-field--stack):focus-within,
24
24
  .nm-field__box:focus-within {
25
- border-color: var(--nm-stroke);
25
+ border-color: var(--nm-border-stroke);
26
26
  }
27
27
 
28
28
  .nm-field__icon,
@@ -131,7 +131,7 @@
131
131
  min-height: var(--nm-field-h);
132
132
  max-height: var(--nm-field-h);
133
133
  padding: 0 var(--control-px);
134
- border: var(--nm-rule) solid var(--nm-line-strong);
134
+ border: var(--nm-rule) solid var(--nm-border-strong);
135
135
  border-radius: var(--nm-control-r);
136
136
  background: var(--nm-raised);
137
137
  }
@@ -256,7 +256,7 @@
256
256
  width: var(--nm-field-h);
257
257
  height: var(--nm-field-h);
258
258
  padding: 0;
259
- border: var(--nm-rule) solid var(--nm-line-strong);
259
+ border: var(--nm-rule) solid var(--nm-border-strong);
260
260
  border-radius: var(--nm-control-r);
261
261
  background: var(--nm-raised);
262
262
  color: var(--nm-fg);
@@ -279,7 +279,7 @@
279
279
  padding: var(--nm-menu-pad);
280
280
  overflow: auto;
281
281
  list-style: none;
282
- border: var(--nm-rule) solid var(--nm-line-strong);
282
+ border: var(--nm-rule) solid var(--nm-border-strong);
283
283
  border-radius: var(--nm-control-menu-radius);
284
284
  background: var(--nm-panel);
285
285
  max-height: var(--nm-dropdown-max);
@@ -290,7 +290,7 @@
290
290
  align-items: center;
291
291
  gap: var(--nm-space-8);
292
292
  padding: var(--nm-space-8) var(--nm-control-option-inset);
293
- border-bottom: var(--nm-rule) solid var(--nm-line);
293
+ border-bottom: var(--nm-rule) solid var(--nm-border);
294
294
  }
295
295
 
296
296
  .nm-field__search-input {
@@ -9,7 +9,7 @@
9
9
  gap: var(--nm-space-12);
10
10
  width: var(--nm-width-popup-sm);
11
11
  padding: var(--nm-panel-pad);
12
- border: var(--nm-rule) solid var(--nm-line-strong);
12
+ border: var(--nm-rule) solid var(--nm-border-strong);
13
13
  border-radius: var(--nm-control-menu-radius);
14
14
  background: var(--nm-panel);
15
15
  color: var(--nm-fg);
@@ -5,7 +5,7 @@
5
5
  min-width: 0;
6
6
  height: var(--nm-field-h);
7
7
  padding: 0 var(--control-px);
8
- border: var(--nm-rule) solid var(--nm-line-strong);
8
+ border: var(--nm-rule) solid var(--nm-border-strong);
9
9
  border-radius: var(--nm-control-r);
10
10
  background: var(--nm-raised);
11
11
  color: var(--nm-fg);
@@ -24,7 +24,7 @@
24
24
  }
25
25
 
26
26
  .nm-input:hover:not(:disabled) {
27
- border-color: var(--nm-stroke);
27
+ border-color: var(--nm-border-stroke);
28
28
  }
29
29
 
30
30
  .nm-input:focus-visible {
@@ -51,7 +51,7 @@
51
51
  margin-right: var(--control-px);
52
52
  padding: 0 var(--control-px);
53
53
  border: 0;
54
- border-right: var(--nm-rule) solid var(--nm-line-strong);
54
+ border-right: var(--nm-rule) solid var(--nm-border-strong);
55
55
  background: var(--nm-panel);
56
56
  color: var(--nm-fg);
57
57
  font: inherit;
@@ -4,14 +4,14 @@
4
4
  box-sizing: border-box;
5
5
  width: 100%;
6
6
  height: var(--nm-field-h);
7
- border: var(--nm-rule) solid var(--nm-line-strong);
7
+ border: var(--nm-rule) solid var(--nm-border-strong);
8
8
  border-radius: var(--nm-control-r);
9
9
  background: var(--nm-raised);
10
10
  transition: border-color 0.15s;
11
11
  }
12
12
 
13
13
  .nm-input-group:hover {
14
- border-color: var(--nm-stroke);
14
+ border-color: var(--nm-border-stroke);
15
15
  }
16
16
 
17
17
  .nm-input-group:focus-within {
@@ -169,7 +169,7 @@
169
169
  margin-top: 0.75em;
170
170
  margin-bottom: 0.75em;
171
171
  color: var(--nm-fg-subtle);
172
- border-left-color: var(--nm-line);
172
+ border-left-color: var(--nm-border);
173
173
  font-weight: var(--nm-weight-regular);
174
174
  }
175
175
 
@@ -8,7 +8,7 @@
8
8
  width: 100%;
9
9
  height: var(--nm-field-h);
10
10
  padding: 0 calc(var(--control-px) + var(--nm-icon-button) + var(--nm-space-8)) 0 var(--control-px);
11
- border: var(--nm-rule) solid var(--nm-line-strong);
11
+ border: var(--nm-rule) solid var(--nm-border-strong);
12
12
  border-radius: var(--nm-control-r);
13
13
  background: var(--nm-raised);
14
14
  color: var(--nm-fg);
@@ -21,7 +21,7 @@
21
21
  }
22
22
 
23
23
  .nm-native-select__control:hover:not(:disabled) {
24
- border-color: var(--nm-stroke);
24
+ border-color: var(--nm-border-stroke);
25
25
  }
26
26
 
27
27
  .nm-native-select__control:focus-visible {
@@ -9,7 +9,7 @@
9
9
  gap: var(--nm-space-12);
10
10
  width: var(--nm-width-popup);
11
11
  padding: var(--nm-panel-pad);
12
- border: var(--nm-rule) solid var(--nm-line-strong);
12
+ border: var(--nm-rule) solid var(--nm-border-strong);
13
13
  border-radius: var(--nm-control-menu-radius);
14
14
  background: var(--nm-panel);
15
15
  color: var(--nm-fg);
@@ -45,7 +45,7 @@
45
45
 
46
46
  .nm-prose blockquote {
47
47
  padding-inline-start: var(--nm-space-12);
48
- border-inline-start: var(--nm-space-2) solid var(--nm-line-strong);
48
+ border-inline-start: var(--nm-space-2) solid var(--nm-border-strong);
49
49
  color: var(--nm-fg-muted);
50
50
  }
51
51
 
@@ -66,7 +66,7 @@
66
66
  .nm-prose hr {
67
67
  margin: var(--nm-space-24) 0;
68
68
  border: 0;
69
- border-top: var(--nm-rule) solid var(--nm-divider);
69
+ border-top: var(--nm-rule) solid var(--nm-border-divider);
70
70
  }
71
71
 
72
72
  .nm-prose table {
@@ -76,6 +76,6 @@
76
76
 
77
77
  .nm-prose :is(th, td) {
78
78
  padding: var(--nm-space-8) var(--nm-space-12);
79
- border-bottom: var(--nm-rule) solid var(--nm-line);
79
+ border-bottom: var(--nm-rule) solid var(--nm-border);
80
80
  text-align: start;
81
81
  }
@@ -12,7 +12,7 @@
12
12
 
13
13
  .nm-questionnaire--card {
14
14
  padding: var(--nm-space-24);
15
- border: var(--nm-rule) solid var(--nm-line-strong);
15
+ border: var(--nm-rule) solid var(--nm-border-strong);
16
16
  border-radius: var(--nm-radius-lg);
17
17
  background: var(--nm-raised);
18
18
  }
@@ -68,7 +68,7 @@
68
68
  gap: var(--nm-space-12);
69
69
  box-sizing: border-box;
70
70
  padding: var(--nm-space-12);
71
- border: var(--nm-rule) solid var(--nm-line-strong);
71
+ border: var(--nm-rule) solid var(--nm-border-strong);
72
72
  border-radius: var(--nm-control-r);
73
73
  background: transparent;
74
74
  cursor: pointer;
@@ -102,7 +102,7 @@
102
102
  width: var(--nm-icon-button);
103
103
  height: var(--nm-icon-button);
104
104
  margin-top: var(--nm-space-2);
105
- border: var(--nm-rule) solid var(--nm-stroke);
105
+ border: var(--nm-rule) solid var(--nm-border-stroke);
106
106
  border-radius: 50%;
107
107
  color: var(--nm-canvas);
108
108
  }
@@ -15,9 +15,9 @@
15
15
  width: var(--nm-icon-button);
16
16
  height: var(--nm-icon-button);
17
17
  padding: 0;
18
- border: var(--nm-rule) solid var(--nm-stroke);
18
+ border: var(--nm-rule) solid var(--nm-border-stroke);
19
19
  border-radius: 50%;
20
- background: transparent;
20
+ background: var(--nm-borderless-fill);
21
21
  cursor: pointer;
22
22
  transition: border-color 0.15s;
23
23
  }
@@ -3,7 +3,7 @@
3
3
  align-items: stretch;
4
4
  gap: var(--nm-space-2);
5
5
  padding: var(--toggle-pad);
6
- border: var(--nm-rule) solid var(--nm-line-strong);
6
+ border: var(--nm-rule) solid var(--nm-border-strong);
7
7
  border-radius: var(--toggle-r);
8
8
  background: transparent;
9
9
  }
@@ -7,7 +7,7 @@
7
7
  min-width: 0;
8
8
  height: var(--nm-field-h);
9
9
  padding: 0 var(--control-px);
10
- border: var(--nm-rule) solid var(--nm-line-strong);
10
+ border: var(--nm-rule) solid var(--nm-border-strong);
11
11
  border-radius: var(--nm-control-r);
12
12
  background: var(--nm-raised);
13
13
  color: var(--nm-fg);
@@ -27,7 +27,7 @@
27
27
  .nm-select__trigger:hover,
28
28
  .nm-select__trigger[data-popup-open],
29
29
  .nm-select__trigger:focus-visible {
30
- border-color: var(--nm-stroke);
30
+ border-color: var(--nm-border-stroke);
31
31
  outline: none;
32
32
  }
33
33
 
@@ -1,6 +1,6 @@
1
1
  .nm-separator {
2
2
  flex-shrink: 0;
3
- background: var(--nm-line);
3
+ background: var(--nm-border);
4
4
  }
5
5
 
6
6
  .nm-separator[data-orientation='horizontal'] {
@@ -40,7 +40,7 @@
40
40
  flex: 0 0 var(--nm-side-panel-basis);
41
41
  flex-direction: column;
42
42
  min-height: 0;
43
- border-inline-start: var(--nm-rule) solid var(--nm-divider);
43
+ border-inline-start: var(--nm-rule) solid var(--nm-border-divider);
44
44
  background: var(--nm-canvas);
45
45
  }
46
46