@threadlabs/looma 0.41.2 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/components/ui-button/ui-button.html +33 -12
  2. package/components/ui-button/ui-button.js +2 -2
  3. package/components/ui-callout/ui-callout.html +1 -1
  4. package/components/ui-card/ui-card.html +7 -7
  5. package/components/ui-checkbox/ui-checkbox.html +1 -1
  6. package/components/ui-dialog/ui-dialog.html +8 -10
  7. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +1 -1
  8. package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +1 -1
  9. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +1 -1
  10. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +2 -2
  11. package/components/ui-icon-button/ui-icon-button.html +45 -10
  12. package/components/ui-light-editor/ui-light-editor.html +1 -1
  13. package/components/ui-menu/ui-menu.html +8 -10
  14. package/components/ui-menu-item/ui-menu-item.html +1 -1
  15. package/components/ui-popover/ui-popover.html +9 -11
  16. package/components/ui-radio/ui-radio.html +53 -1
  17. package/components/ui-section/ui-section.html +1 -1
  18. package/components/ui-status-message/ui-status-message.html +1 -1
  19. package/components/ui-switch/ui-switch.html +5 -2
  20. package/components/ui-tabs/ui-tabs.html +3 -3
  21. package/components/ui-text/ui-text.html +2 -2
  22. package/components/ui-tooltip/ui-tooltip.html +8 -10
  23. package/dist/index.js +1 -1
  24. package/docs/README.md +5 -1
  25. package/docs/catalog.json +405 -33
  26. package/docs/customizer-render.mjs +9 -5
  27. package/docs/customizer.js +2 -0
  28. package/docs/fonts.mjs +1 -1
  29. package/docs/theme.mjs +136 -35
  30. package/package.json +1 -1
  31. package/styles/ui-button.css +33 -12
  32. package/styles/ui-callout.css +1 -1
  33. package/styles/ui-card.css +6 -6
  34. package/styles/ui-checkbox.css +1 -1
  35. package/styles/ui-dialog.css +17 -21
  36. package/styles/ui-editor-mention-menu-item.css +1 -1
  37. package/styles/ui-editor-mention-menu.css +1 -1
  38. package/styles/ui-editor-table-context-menu.css +1 -1
  39. package/styles/ui-editor-table-toolbar.css +2 -2
  40. package/styles/ui-icon-button.css +45 -10
  41. package/styles/ui-light-editor.css +2 -2
  42. package/styles/ui-menu-item.css +1 -1
  43. package/styles/ui-menu.css +9 -11
  44. package/styles/ui-popover.css +10 -12
  45. package/styles/ui-radio.css +62 -1
  46. package/styles/ui-section.css +1 -1
  47. package/styles/ui-status-message.css +1 -1
  48. package/styles/ui-switch.css +5 -2
  49. package/styles/ui-tabs.css +3 -3
  50. package/styles/ui-text.css +2 -2
  51. package/styles/ui-tooltip.css +9 -11
  52. package/theme-system.css +10 -8
  53. package/tokens.css +23 -0
  54. package/vue/UiButton.vue +45 -12
  55. package/vue/UiCallout.vue +1 -1
  56. package/vue/UiCard.vue +7 -13
  57. package/vue/UiCheckbox.vue +1 -1
  58. package/vue/UiDialog.vue +21 -45
  59. package/vue/UiEditorMentionMenu.vue +1 -1
  60. package/vue/UiEditorMentionMenuItem.vue +1 -1
  61. package/vue/UiEditorTableContextMenu.vue +1 -1
  62. package/vue/UiEditorTableToolbar.vue +2 -2
  63. package/vue/UiIconButton.vue +45 -10
  64. package/vue/UiLightEditor.vue +2 -2
  65. package/vue/UiMenu.vue +11 -21
  66. package/vue/UiMenuItem.vue +1 -1
  67. package/vue/UiPopover.vue +12 -22
  68. package/vue/UiRadio.vue +57 -1
  69. package/vue/UiSection.vue +1 -1
  70. package/vue/UiStatusMessage.vue +1 -1
  71. package/vue/UiSwitch.vue +5 -2
  72. package/vue/UiTabs.vue +3 -3
  73. package/vue/UiText.vue +2 -2
  74. package/vue/UiTooltip.vue +11 -21
  75. package/vue/chunks/UiButton.js +1 -1
  76. package/vue/chunks/UiCallout.js +1 -1
  77. package/vue/chunks/UiCard.js +2 -2
  78. package/vue/chunks/UiCheckbox.js +1 -1
  79. package/vue/chunks/UiDialog.js +1 -1
  80. package/vue/chunks/UiEditorMentionMenu.js +1 -1
  81. package/vue/chunks/UiEditorMentionMenuItem.js +1 -1
  82. package/vue/chunks/UiEditorTableContextMenu.js +1 -1
  83. package/vue/chunks/UiEditorTableToolbar.js +1 -1
  84. package/vue/chunks/UiIconButton.js +1 -1
  85. package/vue/chunks/UiLightEditor.js +1 -1
  86. package/vue/chunks/UiMenu.js +1 -1
  87. package/vue/chunks/UiMenuItem.js +1 -1
  88. package/vue/chunks/UiPopover.js +1 -1
  89. package/vue/chunks/UiRadio.js +1 -1
  90. package/vue/chunks/UiSection.js +1 -1
  91. package/vue/chunks/UiStatusMessage.js +1 -1
  92. package/vue/chunks/UiSwitch.js +1 -1
  93. package/vue/chunks/UiTabs.js +1 -1
  94. package/vue/chunks/UiText.js +1 -1
  95. package/vue/chunks/UiTooltip.js +1 -1
  96. package/vue/components.css +342 -233
  97. package/vue/editor/index.js +1 -1
@@ -59,7 +59,7 @@
59
59
  color: var(--ui-text-muted);
60
60
  }
61
61
  :scope:where([data-component~="ui-text"])[data-ui-text-state~="tone=accent"] {
62
- color: var(--ui-accent-active);
62
+ color: var(--ui-accent-subtle-text);
63
63
  }
64
64
  /* Every status tone uses the text-safe token a subtle badge sets its words in, so text and badges
65
65
  in one tone match, and each holds 4.5:1 on sunken surfaces where some base colours fall short. */
@@ -165,7 +165,7 @@
165
165
  /* A link in running text is underlined, so it stands apart from the words around it by more than
166
166
  colour. */
167
167
  :scope:where([data-component~="ui-text"]) :where([data-slotted], [data-slotted] *):is(a) {
168
- color: var(--ui-accent-active);
168
+ color: var(--ui-accent-subtle-text);
169
169
  text-decoration: underline;
170
170
  text-decoration-thickness: 0.06em;
171
171
  text-underline-offset: 0.18em;
@@ -104,12 +104,12 @@
104
104
  }
105
105
 
106
106
  /* Purpose and measured size shape one shared separation lever. The content plane stays opaque;
107
- transparency, saturation and edge light belong to the surrounding decorative material. */
107
+ transparency, frosting and edge light belong to the surrounding decorative material. */
108
108
  .surface {
109
- --_ui-material-glassiness: calc(clamp(0, var(--ui-glassiness, 0), 1) + 2 * pow(clamp(0, var(--ui-glassiness, 0), 1), 4));
109
+ --_ui-material-glassiness: clamp(0, var(--ui-glassiness, 0), 1);
110
110
  --_ui-material-separation: clamp(0, var(--ui-surface-separation, 0), 1);
111
- --_ui-material-active: clamp(0, calc((var(--_ui-material-glassiness) + var(--_ui-material-separation)) * 100000), 1);
112
- --_ui-material-rim: calc((var(--_ui-material-separation) + var(--_ui-material-glassiness) * 0.25) * var(--_ui-material-scale, 0.08) * 8px);
111
+ --_ui-material-active: clamp(0, calc(var(--_ui-material-separation) * 100000), 1);
112
+ --_ui-material-rim: calc(var(--_ui-material-separation) * var(--_ui-material-scale, 0.08) * 8px);
113
113
  --_ui-material-content-color: var(--_ui-tooltip-surface, var(--ui-material-content, var(--ui-overlay-surface, var(--ui-surface-elevated))));
114
114
  --_ui-material-rim-color: color-mix(in srgb, var(--ui-material-glass, var(--ui-surface-elevated)) calc(var(--_ui-material-active) * 100%), transparent);
115
115
  background:
@@ -132,10 +132,8 @@
132
132
  var(--ui-elevation-tooltip, var(--ui-shadow-md))
133
133
  )
134
134
  );
135
- backdrop-filter: blur(calc(var(--_ui-material-glassiness) * var(--_ui-material-scale, 0.08) * 18px))
136
- saturate(calc(1 + var(--_ui-material-glassiness) * var(--_ui-material-scale, 0.08) * 0.18));
137
- -webkit-backdrop-filter: blur(calc(var(--_ui-material-glassiness) * var(--_ui-material-scale, 0.08) * 18px))
138
- saturate(calc(1 + var(--_ui-material-glassiness) * var(--_ui-material-scale, 0.08) * 0.18));
135
+ -webkit-backdrop-filter: blur(calc(var(--_ui-material-glassiness) * var(--_ui-material-scale, 0.08) * 32px));
136
+ backdrop-filter: blur(calc(var(--_ui-material-glassiness) * var(--_ui-material-scale, 0.08) * 32px));
139
137
  }
140
138
 
141
139
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
@@ -147,8 +145,8 @@
147
145
  @media (prefers-reduced-transparency: reduce) {
148
146
  .surface {
149
147
  background: var(--_ui-material-content-color);
150
- backdrop-filter: none;
151
148
  -webkit-backdrop-filter: none;
149
+ backdrop-filter: none;
152
150
  }
153
151
  }
154
152
 
@@ -157,8 +155,8 @@
157
155
  background: Canvas;
158
156
  border-color: CanvasText;
159
157
  box-shadow: none;
160
- backdrop-filter: none;
161
158
  -webkit-backdrop-filter: none;
159
+ backdrop-filter: none;
162
160
  }
163
161
  }
164
162
 
@@ -288,7 +286,7 @@
288
286
  /* The label and the shortcut sit side by side, a gap apart, with the label wrapping on its own. */
289
287
 
290
288
  /* Purpose and measured size shape one shared separation lever. The content plane stays opaque;
291
- transparency, saturation and edge light belong to the surrounding decorative material. */
289
+ transparency, frosting and edge light belong to the surrounding decorative material. */
292
290
 
293
291
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
294
292
  }
package/theme-system.css CHANGED
@@ -101,17 +101,19 @@
101
101
  /* Decorative outer material is allowed to transmit the scene. Content keeps
102
102
  its own opaque plane; changing the scene cannot undermine text contrast. */
103
103
  --ui-material-content: var(--ui-surface-raised);
104
- --ui-material-glass: color-mix(in srgb, var(--ui-surface-raised) calc((1 - clamp(0, var(--ui-overlay-translucency), 1)) * 35%), transparent);
104
+ --ui-material-glass: color-mix(in srgb, var(--ui-surface-raised) calc((1 - clamp(0, var(--ui-overlay-translucency), 1)) * 100%), transparent);
105
105
  --ui-material-edge: color-mix(in srgb, var(--ui-surface-raised) 80%, var(--ui-text));
106
106
  /* Each role has a bounded reflection colour. Shared source coordinates are
107
107
  relative to each surface, so size and position never change the lighting. */
108
- --ui-surface-highlight: radial-gradient(ellipse calc(35% + var(--ui-light-spread) * 165%) calc(55% + var(--ui-light-spread) * 200%) at calc(var(--ui-light-x) * 100%) calc(var(--ui-light-y) * 100%), color-mix(in srgb, var(--ui-surface-reflection, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 100%), transparent), transparent 85%);
109
- --ui-neutral-highlight: radial-gradient(ellipse calc(35% + var(--ui-light-spread) * 165%) calc(55% + var(--ui-light-spread) * 200%) at calc(var(--ui-light-x) * 100%) calc(var(--ui-light-y) * 100%), color-mix(in srgb, var(--ui-neutral-reflection, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 100%), transparent), transparent 85%);
110
- --ui-accent-highlight: radial-gradient(ellipse calc(35% + var(--ui-light-spread) * 165%) calc(55% + var(--ui-light-spread) * 200%) at calc(var(--ui-light-x) * 100%) calc(var(--ui-light-y) * 100%), color-mix(in srgb, var(--ui-accent-reflection, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 100%), transparent), transparent 85%);
111
- --ui-danger-highlight: radial-gradient(ellipse calc(35% + var(--ui-light-spread) * 165%) calc(55% + var(--ui-light-spread) * 200%) at calc(var(--ui-light-x) * 100%) calc(var(--ui-light-y) * 100%), color-mix(in srgb, var(--ui-danger-reflection, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 100%), transparent), transparent 85%);
112
- --ui-success-highlight: radial-gradient(ellipse calc(35% + var(--ui-light-spread) * 165%) calc(55% + var(--ui-light-spread) * 200%) at calc(var(--ui-light-x) * 100%) calc(var(--ui-light-y) * 100%), color-mix(in srgb, var(--ui-success-reflection, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 100%), transparent), transparent 85%);
113
- --ui-warning-highlight: radial-gradient(ellipse calc(35% + var(--ui-light-spread) * 165%) calc(55% + var(--ui-light-spread) * 200%) at calc(var(--ui-light-x) * 100%) calc(var(--ui-light-y) * 100%), color-mix(in srgb, var(--ui-warning-reflection, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 100%), transparent), transparent 85%);
114
- --ui-info-highlight: radial-gradient(ellipse calc(35% + var(--ui-light-spread) * 165%) calc(55% + var(--ui-light-spread) * 200%) at calc(var(--ui-light-x) * 100%) calc(var(--ui-light-y) * 100%), color-mix(in srgb, var(--ui-info-reflection, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 100%), transparent), transparent 85%);
108
+ --ui-surface-highlight: radial-gradient(ellipse calc(35% + var(--ui-light-spread) * 165%) calc(55% + var(--ui-light-spread) * 200%) at calc(var(--ui-light-x) * 100%) calc(var(--ui-light-y) * 100%) in srgb, color-mix(in srgb, var(--ui-surface-specular, var(--ui-surface-reflection, var(--ui-surface-raised))) calc(var(--ui-finish) * var(--ui-light-strength) * 100%), transparent), color-mix(in srgb, var(--ui-surface-reflection, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 75%), transparent) 8%, transparent 28%, color-mix(in srgb, var(--ui-surface-shade, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 35%), transparent) 100%);
109
+ --ui-neutral-highlight: radial-gradient(ellipse calc(35% + var(--ui-light-spread) * 165%) calc(55% + var(--ui-light-spread) * 200%) at calc(var(--ui-light-x) * 100%) calc(var(--ui-light-y) * 100%) in srgb, color-mix(in srgb, var(--ui-neutral-specular, var(--ui-neutral-reflection, var(--ui-surface-raised))) calc(var(--ui-finish) * var(--ui-light-strength) * 100%), transparent), color-mix(in srgb, var(--ui-neutral-reflection, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 75%), transparent) 8%, transparent 28%, color-mix(in srgb, var(--ui-neutral-shade, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 35%), transparent) 100%);
110
+ --ui-knob-highlight: radial-gradient(ellipse calc(35% + var(--ui-light-spread) * 165%) calc(55% + var(--ui-light-spread) * 200%) at calc(var(--ui-light-x) * 100%) calc(var(--ui-light-y) * 100%) in srgb, color-mix(in srgb, var(--ui-knob-specular, var(--ui-knob-reflection, var(--ui-surface-raised))) calc(var(--ui-finish) * var(--ui-light-strength) * 100%), transparent), color-mix(in srgb, var(--ui-knob-reflection, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 75%), transparent) 8%, transparent 28%, color-mix(in srgb, var(--ui-knob-shade, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 35%), transparent) 100%);
111
+ --ui-knob-on-accent-highlight: radial-gradient(ellipse calc(35% + var(--ui-light-spread) * 165%) calc(55% + var(--ui-light-spread) * 200%) at calc(var(--ui-light-x) * 100%) calc(var(--ui-light-y) * 100%) in srgb, color-mix(in srgb, var(--ui-knob-on-accent-specular, var(--ui-knob-on-accent-reflection, var(--ui-surface-raised))) calc(var(--ui-finish) * var(--ui-light-strength) * 100%), transparent), color-mix(in srgb, var(--ui-knob-on-accent-reflection, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 75%), transparent) 8%, transparent 28%, color-mix(in srgb, var(--ui-knob-on-accent-shade, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 35%), transparent) 100%);
112
+ --ui-accent-highlight: radial-gradient(ellipse calc(35% + var(--ui-light-spread) * 165%) calc(55% + var(--ui-light-spread) * 200%) at calc(var(--ui-light-x) * 100%) calc(var(--ui-light-y) * 100%) in srgb, color-mix(in srgb, var(--ui-accent-specular, var(--ui-accent-reflection, var(--ui-surface-raised))) calc(var(--ui-finish) * var(--ui-light-strength) * 100%), transparent), color-mix(in srgb, var(--ui-accent-reflection, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 75%), transparent) 8%, transparent 28%, color-mix(in srgb, var(--ui-accent-shade, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 35%), transparent) 100%);
113
+ --ui-danger-highlight: radial-gradient(ellipse calc(35% + var(--ui-light-spread) * 165%) calc(55% + var(--ui-light-spread) * 200%) at calc(var(--ui-light-x) * 100%) calc(var(--ui-light-y) * 100%) in srgb, color-mix(in srgb, var(--ui-danger-specular, var(--ui-danger-reflection, var(--ui-surface-raised))) calc(var(--ui-finish) * var(--ui-light-strength) * 100%), transparent), color-mix(in srgb, var(--ui-danger-reflection, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 75%), transparent) 8%, transparent 28%, color-mix(in srgb, var(--ui-danger-shade, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 35%), transparent) 100%);
114
+ --ui-success-highlight: radial-gradient(ellipse calc(35% + var(--ui-light-spread) * 165%) calc(55% + var(--ui-light-spread) * 200%) at calc(var(--ui-light-x) * 100%) calc(var(--ui-light-y) * 100%) in srgb, color-mix(in srgb, var(--ui-success-specular, var(--ui-success-reflection, var(--ui-surface-raised))) calc(var(--ui-finish) * var(--ui-light-strength) * 100%), transparent), color-mix(in srgb, var(--ui-success-reflection, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 75%), transparent) 8%, transparent 28%, color-mix(in srgb, var(--ui-success-shade, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 35%), transparent) 100%);
115
+ --ui-warning-highlight: radial-gradient(ellipse calc(35% + var(--ui-light-spread) * 165%) calc(55% + var(--ui-light-spread) * 200%) at calc(var(--ui-light-x) * 100%) calc(var(--ui-light-y) * 100%) in srgb, color-mix(in srgb, var(--ui-warning-specular, var(--ui-warning-reflection, var(--ui-surface-raised))) calc(var(--ui-finish) * var(--ui-light-strength) * 100%), transparent), color-mix(in srgb, var(--ui-warning-reflection, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 75%), transparent) 8%, transparent 28%, color-mix(in srgb, var(--ui-warning-shade, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 35%), transparent) 100%);
116
+ --ui-info-highlight: radial-gradient(ellipse calc(35% + var(--ui-light-spread) * 165%) calc(55% + var(--ui-light-spread) * 200%) at calc(var(--ui-light-x) * 100%) calc(var(--ui-light-y) * 100%) in srgb, color-mix(in srgb, var(--ui-info-specular, var(--ui-info-reflection, var(--ui-surface-raised))) calc(var(--ui-finish) * var(--ui-light-strength) * 100%), transparent), color-mix(in srgb, var(--ui-info-reflection, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 75%), transparent) 8%, transparent 28%, color-mix(in srgb, var(--ui-info-shade, var(--ui-surface-raised)) calc(var(--ui-finish) * var(--ui-light-strength) * 35%), transparent) 100%);
115
117
  /* Keep the low end gentle; the upper range deliberately reaches beyond restrained ornament. */
116
118
  --_ui-theme-glow: calc(clamp(0, var(--ui-glow), 1) + 2 * pow(clamp(0, var(--ui-glow), 1), 4));
117
119
  --ui-material-glow: 0 0 calc(18px * var(--_ui-theme-glow)) color-mix(in srgb, var(--ui-accent) calc(var(--_ui-theme-glow) * var(--ui-light-strength) * 18%), transparent);
package/tokens.css CHANGED
@@ -23,8 +23,31 @@
23
23
  --ui-surface-raised: #ffffff;
24
24
  --ui-surface-sunken: #f0f0ec;
25
25
  --ui-text: #1a1a1a;
26
+ /* The reflected environment is independent of object pigment. */
27
+ --ui-light-color: #ffffff;
26
28
  --ui-focus-halo: 0 0 0 calc(var(--ui-focus-width) * 1.5) color-mix(in srgb, var(--ui-focus-ring) 40%, transparent);
27
29
 
30
+ /* Shared action boundaries follow their fills until a recipe refines the family. */
31
+ --ui-tonal-opacity: 1;
32
+ --ui-accent-border: var(--ui-accent);
33
+ --ui-accent-hover-border: var(--ui-accent-hover);
34
+ --ui-accent-active-border: var(--ui-accent-active);
35
+ --ui-danger-border: var(--ui-danger);
36
+ --ui-danger-hover-border: var(--ui-danger-hover);
37
+ --ui-danger-active-border: var(--ui-danger-active);
38
+ --ui-success-border: var(--ui-success);
39
+ --ui-success-hover-border: var(--ui-success-hover);
40
+ --ui-success-active-border: var(--ui-success-active);
41
+ --ui-warning-border: var(--ui-warning);
42
+ --ui-warning-hover-border: var(--ui-warning-hover);
43
+ --ui-warning-active-border: var(--ui-warning-active);
44
+ --ui-info-border: var(--ui-info);
45
+ --ui-info-hover-border: var(--ui-info-hover);
46
+ --ui-info-active-border: var(--ui-info-active);
47
+ --ui-neutral-border: var(--ui-neutral-surface);
48
+ --ui-neutral-hover-border: var(--ui-neutral-hover);
49
+ --ui-neutral-active-border: var(--ui-neutral-active);
50
+
28
51
  /* The base type token owns the document root; rem-based roles scale from it once. */
29
52
  font-size: var(--ui-font-size);
30
53
 
package/vue/UiButton.vue CHANGED
@@ -1067,12 +1067,15 @@ useComponentHost(() => import('../components/ui-button/ui-button.js'), {
1067
1067
  --_ui-action-shadow:
1068
1068
  var(--_ui-action-edge),
1069
1069
  0 1px 2px light-dark(rgb(0 0 0 / 0.10), rgb(0 0 0 / 0.20));
1070
+ --_tone-border: var(--ui-accent-border, var(--ui-accent));
1071
+ --_tone-hover-border: var(--ui-accent-hover-border, var(--ui-accent-hover));
1072
+ --_tone-active-border: var(--ui-accent-active-border, var(--ui-accent-active));
1070
1073
  --_tone-highlight: var(--ui-accent-highlight, none);
1071
1074
  --_tone-glow: var(--ui-accent-glow, 0 0 transparent);
1072
1075
  --_hue: var(--ui-accent);
1073
1076
  --_hue-hover: var(--ui-accent-hover);
1074
1077
  --_hue-active: var(--ui-accent-active);
1075
- --_hue-text: var(--ui-accent-active);
1078
+ --_hue-text: var(--ui-accent-subtle-text);
1076
1079
  --_on-hue: var(--ui-on-accent);
1077
1080
 
1078
1081
  --_tone: var(--_hue);
@@ -1110,9 +1113,12 @@ useComponentHost(() => import('../components/ui-button/ui-button.js'), {
1110
1113
  min-block-size: var(--ui-button-min-block-size, var(--ui-control-size-md));
1111
1114
  border-style: solid;
1112
1115
  border-width: var(--ui-border-width);
1113
- border-color: var(--ui-button-border, var(--_tone));
1116
+ border-color: var(--ui-button-border, var(--_tone-text));
1114
1117
  border-radius: var(--ui-button-radius, var(--ui-action-radius, var(--ui-radius-md)));
1115
- background-color: var(--ui-button-surface, oklch(from var(--_tone) l c h / 5%));
1118
+ background-color: var(
1119
+ --ui-button-surface,
1120
+ oklch(from var(--_tone) l c h / calc(5% * var(--ui-tonal-opacity, 1)))
1121
+ );
1116
1122
  color: var(--ui-button-text, var(--_tone-text));
1117
1123
  font: inherit;
1118
1124
  font-weight: var(--ui-font-medium);
@@ -1243,8 +1249,11 @@ useComponentHost(() => import('../components/ui-button/ui-button.js'), {
1243
1249
  align-self: center;
1244
1250
  }
1245
1251
  :global(:scope:hover:not(:disabled, [aria-disabled="true"]):where([data-hn-ui-button])) {
1246
- border-color: var(--ui-button-hover-border, var(--_tone-hover));
1247
- background-color: var(--ui-button-hover-surface, oklch(from var(--_tone) l c h / 12%));
1252
+ border-color: var(--ui-button-hover-border, var(--_tone-text));
1253
+ background-color: var(
1254
+ --ui-button-hover-surface,
1255
+ oklch(from var(--_tone) l c h / calc(12% * var(--ui-tonal-opacity, 1)))
1256
+ );
1248
1257
  }
1249
1258
 
1250
1259
  :global(:scope[data-appearance="card"][data-tone="neutral"]:where([data-hn-ui-button])) {
@@ -1262,14 +1271,17 @@ useComponentHost(() => import('../components/ui-button/ui-button.js'), {
1262
1271
  }
1263
1272
  :global(:scope:active:not(:disabled, [aria-disabled="true"]):where([data-hn-ui-button])) {
1264
1273
  scale: var(--ui-press-scale, 1);
1265
- background-color: var(--ui-button-active-surface, oklch(from var(--_tone) l c h / 18%));
1274
+ background-color: var(
1275
+ --ui-button-active-surface,
1276
+ oklch(from var(--_tone) l c h / calc(18% * var(--ui-tonal-opacity, 1)))
1277
+ );
1266
1278
  background-image: none;
1267
1279
  box-shadow: var(--ui-pressed);
1268
1280
  }
1269
1281
 
1270
1282
  :global(:scope[data-appearance="solid"]:where([data-hn-ui-button])),
1271
1283
  :global(:scope[data-appearance="danger"]:where([data-hn-ui-button])) {
1272
- border-color: var(--_tone);
1284
+ border-color: var(--ui-button-border, var(--_tone-border));
1273
1285
  background-color: var(--_tone);
1274
1286
  color: var(--_on-tone);
1275
1287
  background-image: var(--_tone-highlight);
@@ -1278,18 +1290,22 @@ useComponentHost(() => import('../components/ui-button/ui-button.js'), {
1278
1290
  var(--_tone-glow);
1279
1291
  }
1280
1292
 
1281
- :global(:is(:scope[data-appearance="solid"], :scope[data-appearance="danger"]):hover:not(:disabled, [aria-disabled="true"]):where([data-hn-ui-button])) {
1293
+ :global(:scope[data-appearance="solid"]:hover:not(:disabled, [aria-disabled="true"]):where([data-hn-ui-button])),
1294
+ :global(:scope[data-appearance="danger"]:hover:not(:disabled, [aria-disabled="true"]):where([data-hn-ui-button])) {
1282
1295
  background-color: var(--_tone-hover);
1283
- border-color: var(--_tone-hover);
1296
+ border-color: var(--ui-button-hover-border, var(--_tone-hover-border));
1284
1297
  }
1285
1298
 
1286
1299
  :global(:is(:scope[data-appearance="solid"], :scope[data-appearance="danger"]):active:not(:disabled, [aria-disabled="true"]):where([data-hn-ui-button])) {
1287
1300
  background-color: var(--_tone-active);
1288
- border-color: var(--_tone-active);
1301
+ border-color: var(--_tone-active-border);
1289
1302
  background-image: none;
1290
1303
  box-shadow: var(--ui-pressed);
1291
1304
  }
1292
1305
  :global(:scope[data-tone="neutral"]:where([data-hn-ui-button])) {
1306
+ --_tone-border: var(--ui-neutral-border, var(--ui-neutral-surface));
1307
+ --_tone-hover-border: var(--ui-neutral-hover-border, var(--ui-neutral-hover));
1308
+ --_tone-active-border: var(--ui-neutral-active-border, var(--ui-neutral-active));
1293
1309
  --_tone-highlight: var(--ui-neutral-highlight, none);
1294
1310
  --_tone-glow: var(--ui-neutral-glow, 0 0 transparent);
1295
1311
  --_hue: var(--ui-text);
@@ -1300,7 +1316,7 @@ useComponentHost(() => import('../components/ui-button/ui-button.js'), {
1300
1316
  }
1301
1317
 
1302
1318
  :global(:scope[data-tone="neutral"][data-appearance="solid"]:where([data-hn-ui-button])) {
1303
- border-color: var(--ui-button-border, var(--ui-control-border));
1319
+ border-color: var(--ui-button-border, var(--_tone-border));
1304
1320
  background-color: var(--ui-button-surface, var(--ui-neutral-surface));
1305
1321
  color: var(--ui-button-text, var(--ui-text));
1306
1322
  }
@@ -1323,14 +1339,19 @@ useComponentHost(() => import('../components/ui-button/ui-button.js'), {
1323
1339
  background-color: var(--ui-button-active-surface, var(--ui-neutral-active));
1324
1340
  }
1325
1341
  :global(:scope[data-tone="neutral"][data-appearance="solid"]:hover:not(:disabled, [aria-disabled="true"]):where([data-hn-ui-button])) {
1342
+ border-color: var(--ui-button-hover-border, var(--_tone-hover-border));
1326
1343
  background-color: var(--ui-button-hover-surface, var(--ui-neutral-hover));
1327
1344
  }
1328
1345
  :global(:scope[data-tone="neutral"][data-appearance="solid"]:active:not(:disabled, [aria-disabled="true"]):where([data-hn-ui-button])) {
1346
+ border-color: var(--_tone-active-border);
1329
1347
  background-color: var(--ui-button-active-surface, var(--ui-neutral-active));
1330
1348
  }
1331
1349
 
1332
1350
  :global(:scope[data-tone="danger"]:where([data-hn-ui-button])),
1333
1351
  :global(:scope[data-appearance="danger"]:where([data-hn-ui-button])) {
1352
+ --_tone-border: var(--ui-danger-border, var(--ui-danger));
1353
+ --_tone-hover-border: var(--ui-danger-hover-border, var(--ui-danger-hover));
1354
+ --_tone-active-border: var(--ui-danger-active-border, var(--ui-danger-active));
1334
1355
  --_tone-highlight: var(--ui-danger-highlight, none);
1335
1356
  --_tone-glow: var(--ui-danger-glow, 0 0 transparent);
1336
1357
  --_hue: var(--ui-danger);
@@ -1341,6 +1362,9 @@ useComponentHost(() => import('../components/ui-button/ui-button.js'), {
1341
1362
  }
1342
1363
 
1343
1364
  :global(:scope[data-tone="success"]:where([data-hn-ui-button])) {
1365
+ --_tone-border: var(--ui-success-border, var(--ui-success));
1366
+ --_tone-hover-border: var(--ui-success-hover-border, var(--ui-success-hover));
1367
+ --_tone-active-border: var(--ui-success-active-border, var(--ui-success-active));
1344
1368
  --_tone-highlight: var(--ui-success-highlight, none);
1345
1369
  --_tone-glow: var(--ui-success-glow, 0 0 transparent);
1346
1370
  --_hue: var(--ui-success);
@@ -1351,6 +1375,9 @@ useComponentHost(() => import('../components/ui-button/ui-button.js'), {
1351
1375
  }
1352
1376
 
1353
1377
  :global(:scope[data-tone="warning"]:where([data-hn-ui-button])) {
1378
+ --_tone-border: var(--ui-warning-border, var(--ui-warning));
1379
+ --_tone-hover-border: var(--ui-warning-hover-border, var(--ui-warning-hover));
1380
+ --_tone-active-border: var(--ui-warning-active-border, var(--ui-warning-active));
1354
1381
  --_tone-highlight: var(--ui-warning-highlight, none);
1355
1382
  --_tone-glow: var(--ui-warning-glow, 0 0 transparent);
1356
1383
  --_hue: var(--ui-warning);
@@ -1361,6 +1388,9 @@ useComponentHost(() => import('../components/ui-button/ui-button.js'), {
1361
1388
  }
1362
1389
 
1363
1390
  :global(:scope[data-tone="info"]:where([data-hn-ui-button])) {
1391
+ --_tone-border: var(--ui-info-border, var(--ui-info));
1392
+ --_tone-hover-border: var(--ui-info-hover-border, var(--ui-info-hover));
1393
+ --_tone-active-border: var(--ui-info-active-border, var(--ui-info-active));
1364
1394
  --_tone-highlight: var(--ui-info-highlight, none);
1365
1395
  --_tone-glow: var(--ui-info-glow, 0 0 transparent);
1366
1396
  --_hue: var(--ui-info);
@@ -1411,7 +1441,10 @@ useComponentHost(() => import('../components/ui-button/ui-button.js'), {
1411
1441
  color: var(--ui-button-ghost-text, var(--_tone-text));
1412
1442
  }
1413
1443
  :global(:scope[data-appearance="ghost"]:hover:not(:disabled, [aria-disabled="true"]):where([data-hn-ui-button])) {
1414
- background-color: var(--ui-button-ghost-hover-surface, oklch(from var(--_tone) l c h / 10%));
1444
+ background-color: var(
1445
+ --ui-button-ghost-hover-surface,
1446
+ oklch(from var(--_tone) l c h / calc(10% * var(--ui-tonal-opacity, 1)))
1447
+ );
1415
1448
  border-color: transparent;
1416
1449
  }
1417
1450
 
package/vue/UiCallout.vue CHANGED
@@ -447,7 +447,7 @@ const hostState = computed(() =>
447
447
  --_callout-icon: var(--ui-danger-solid);
448
448
  }
449
449
  :global(.content :where(:not([data-hn-ui-callout])):is(a)) {
450
- color: var(--ui-accent-active);
450
+ color: var(--ui-accent-subtle-text);
451
451
  text-decoration: underline;
452
452
  text-decoration-thickness: 0.06em;
453
453
  text-underline-offset: 0.18em;
package/vue/UiCard.vue CHANGED
@@ -60,7 +60,7 @@ const propValidityContract = {
60
60
  required: false,
61
61
  target: { attribute: 'treatment' },
62
62
  description:
63
- 'How much of the theme\'s decorative material the surface expresses. standard preserves its restrained treatment; expressive uses the full material\n treatment. This does not add elevation or require glass.',
63
+ 'How much of the theme\'s decorative material the surface expresses. standard preserves its restrained treatment; expressive uses the full material\n treatment. Its glass rim can transmit and frost the surrounding scene while content remains opaque. Surface separation controls the rim, independently of frosting. This does not add elevation or require glass.',
64
64
  values: ['standard', 'expressive'],
65
65
  default: 'standard',
66
66
  },
@@ -329,13 +329,9 @@ const hostState = computed(() =>
329
329
  }
330
330
 
331
331
  :global(:scope[data-ui-card-state~="treatment=expressive"]:where([data-hn-ui-card])) {
332
- --_ui-panel-glass: calc(
333
- clamp(0, var(--ui-glassiness, 0), 1) + 2 * pow(clamp(0, var(--ui-glassiness, 0), 1), 4)
334
- );
332
+ --_ui-panel-glass: clamp(0, var(--ui-glassiness, 0), 1);
335
333
  --_ui-panel-separation: clamp(0, var(--ui-surface-separation, 0), 1);
336
- --_ui-panel-rim: calc(
337
- (var(--_ui-panel-separation) + var(--_ui-panel-glass) * 0.25) * 0.65 * 8px
338
- );
334
+ --_ui-panel-rim: calc(var(--_ui-panel-separation) * 8px);
339
335
  border-width: calc(var(--ui-border-width) + var(--_ui-panel-rim));
340
336
  border-color: transparent;
341
337
  background:
@@ -350,10 +346,8 @@ const hostState = computed(() =>
350
346
  var(--_ui-card-elevation),
351
347
  var(--ui-material-glow, 0 0 transparent),
352
348
  inset 0 0 0 var(--ui-border-width) var(--ui-material-edge, var(--ui-border-strong));
353
- backdrop-filter: blur(calc(var(--_ui-panel-glass) * 0.65 * 18px))
354
- saturate(calc(1 + var(--_ui-panel-glass) * 0.65 * 0.18));
355
- -webkit-backdrop-filter: blur(calc(var(--_ui-panel-glass) * 0.65 * 18px))
356
- saturate(calc(1 + var(--_ui-panel-glass) * 0.65 * 0.18));
349
+ -webkit-backdrop-filter: blur(calc(var(--_ui-panel-glass) * 32px));
350
+ backdrop-filter: blur(calc(var(--_ui-panel-glass) * 32px));
357
351
  }
358
352
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
359
353
  :global(:scope[data-ui-card-state~="treatment=expressive"]:where([data-hn-ui-card])) {
@@ -365,8 +359,8 @@ const hostState = computed(() =>
365
359
  background: var(--_ui-card-surface);
366
360
  border-width: var(--ui-border-width);
367
361
  border-color: var(--ui-border-strong);
368
- backdrop-filter: none;
369
362
  -webkit-backdrop-filter: none;
363
+ backdrop-filter: none;
370
364
  }
371
365
  }
372
366
  @media (forced-colors: active) {
@@ -375,8 +369,8 @@ const hostState = computed(() =>
375
369
  color: CanvasText;
376
370
  border: var(--ui-border-width) solid CanvasText;
377
371
  box-shadow: none;
378
- backdrop-filter: none;
379
372
  -webkit-backdrop-filter: none;
373
+ backdrop-filter: none;
380
374
  }
381
375
  }
382
376
 
@@ -496,7 +496,7 @@ useComponentHost(() => import('../components/ui-checkbox/ui-checkbox.js'), {
496
496
  border-color: var(--ui-accent-solid);
497
497
  background-color: var(--ui-accent-solid);
498
498
  background-image: var(--ui-accent-highlight, none);
499
- box-shadow: var(--ui-control-inset);
499
+ box-shadow: none;
500
500
  }
501
501
  :global(input:checked:where([data-hn-ui-checkbox])::after) {
502
502
  inset: 50% auto auto 50% !important;
package/vue/UiDialog.vue CHANGED
@@ -372,7 +372,7 @@ useComponentHost(() => import('../components/ui-dialog/ui-dialog.js'), {
372
372
  }
373
373
 
374
374
  /* Purpose and measured size shape one shared separation lever. The content plane stays opaque;
375
- transparency, saturation and edge light belong to the surrounding decorative material. */
375
+ transparency, frosting and edge light belong to the surrounding decorative material. */
376
376
 
377
377
  /* Own the layout wrapper; nested component roots are outside these scoped rules. */
378
378
 
@@ -432,22 +432,10 @@ useComponentHost(() => import('../components/ui-dialog/ui-dialog.js'), {
432
432
  overlay var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete;
433
433
  }
434
434
  :global(:scope:where([data-hn-ui-dialog])) {
435
- --_ui-material-glassiness: calc(
436
- clamp(0, var(--ui-glassiness, 0), 1) + 2 * pow(clamp(0, var(--ui-glassiness, 0), 1), 4)
437
- );
435
+ --_ui-material-glassiness: clamp(0, var(--ui-glassiness, 0), 1);
438
436
  --_ui-material-separation: clamp(0, var(--ui-surface-separation, 0), 1);
439
- --_ui-material-active: clamp(
440
- 0,
441
- calc((var(--_ui-material-glassiness) + var(--_ui-material-separation)) * 100000),
442
- 1
443
- );
444
- --_ui-material-rim: calc(
445
- (
446
- var(--_ui-material-separation) + var(--_ui-material-glassiness) * 0.25
447
- ) *
448
- var(--_ui-material-scale, 1) *
449
- 8px
450
- );
437
+ --_ui-material-active: clamp(0, calc(var(--_ui-material-separation) * 100000), 1);
438
+ --_ui-material-rim: calc(var(--_ui-material-separation) * var(--_ui-material-scale, 1) * 8px);
451
439
  --_ui-material-content-color: var(
452
440
  --ui-dialog-surface,
453
441
  var(--ui-material-content, var(--ui-overlay-surface, var(--ui-surface-elevated)))
@@ -489,12 +477,12 @@ useComponentHost(() => import('../components/ui-dialog/ui-dialog.js'), {
489
477
  var(--ui-elevation-dialog, var(--ui-shadow-xl))
490
478
  )
491
479
  );
492
- backdrop-filter: blur(
493
- calc(var(--_ui-material-glassiness) * var(--_ui-material-scale, 1) * 18px)
494
- ) saturate(calc(1 + var(--_ui-material-glassiness) * var(--_ui-material-scale, 1) * 0.18));
495
480
  -webkit-backdrop-filter: blur(
496
- calc(var(--_ui-material-glassiness) * var(--_ui-material-scale, 1) * 18px)
497
- ) saturate(calc(1 + var(--_ui-material-glassiness) * var(--_ui-material-scale, 1) * 0.18));
481
+ calc(var(--_ui-material-glassiness) * var(--_ui-material-scale, 1) * 32px)
482
+ );
483
+ backdrop-filter: blur(
484
+ calc(var(--_ui-material-glassiness) * var(--_ui-material-scale, 1) * 32px)
485
+ );
498
486
  }
499
487
 
500
488
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
@@ -506,8 +494,8 @@ useComponentHost(() => import('../components/ui-dialog/ui-dialog.js'), {
506
494
  @media (prefers-reduced-transparency: reduce) {
507
495
  :global(:scope:where([data-hn-ui-dialog])) {
508
496
  background: var(--_ui-material-content-color);
509
- backdrop-filter: none;
510
497
  -webkit-backdrop-filter: none;
498
+ backdrop-filter: none;
511
499
  }
512
500
  }
513
501
 
@@ -516,8 +504,8 @@ useComponentHost(() => import('../components/ui-dialog/ui-dialog.js'), {
516
504
  background: Canvas;
517
505
  border-color: CanvasText;
518
506
  box-shadow: none;
519
- backdrop-filter: none;
520
507
  -webkit-backdrop-filter: none;
508
+ backdrop-filter: none;
521
509
  }
522
510
  }
523
511
 
@@ -667,22 +655,10 @@ useComponentHost(() => import('../components/ui-dialog/ui-dialog.js'), {
667
655
  overlay var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete;
668
656
  }
669
657
  :global(:where(.ui-dialog):where(:scope, :not([data-hn], [data-slotted]:not([data-slotted~="ui-dialog"]))):where([data-hn-ui-dialog])) {
670
- --_ui-material-glassiness: calc(
671
- clamp(0, var(--ui-glassiness, 0), 1) + 2 * pow(clamp(0, var(--ui-glassiness, 0), 1), 4)
672
- );
658
+ --_ui-material-glassiness: clamp(0, var(--ui-glassiness, 0), 1);
673
659
  --_ui-material-separation: clamp(0, var(--ui-surface-separation, 0), 1);
674
- --_ui-material-active: clamp(
675
- 0,
676
- calc((var(--_ui-material-glassiness) + var(--_ui-material-separation)) * 100000),
677
- 1
678
- );
679
- --_ui-material-rim: calc(
680
- (
681
- var(--_ui-material-separation) + var(--_ui-material-glassiness) * 0.25
682
- ) *
683
- var(--_ui-material-scale, 1) *
684
- 8px
685
- );
660
+ --_ui-material-active: clamp(0, calc(var(--_ui-material-separation) * 100000), 1);
661
+ --_ui-material-rim: calc(var(--_ui-material-separation) * var(--_ui-material-scale, 1) * 8px);
686
662
  --_ui-material-content-color: var(
687
663
  --ui-dialog-surface,
688
664
  var(--ui-material-content, var(--ui-overlay-surface, var(--ui-surface-elevated)))
@@ -724,12 +700,12 @@ useComponentHost(() => import('../components/ui-dialog/ui-dialog.js'), {
724
700
  var(--ui-elevation-dialog, var(--ui-shadow-xl))
725
701
  )
726
702
  );
727
- backdrop-filter: blur(
728
- calc(var(--_ui-material-glassiness) * var(--_ui-material-scale, 1) * 18px)
729
- ) saturate(calc(1 + var(--_ui-material-glassiness) * var(--_ui-material-scale, 1) * 0.18));
730
703
  -webkit-backdrop-filter: blur(
731
- calc(var(--_ui-material-glassiness) * var(--_ui-material-scale, 1) * 18px)
732
- ) saturate(calc(1 + var(--_ui-material-glassiness) * var(--_ui-material-scale, 1) * 0.18));
704
+ calc(var(--_ui-material-glassiness) * var(--_ui-material-scale, 1) * 32px)
705
+ );
706
+ backdrop-filter: blur(
707
+ calc(var(--_ui-material-glassiness) * var(--_ui-material-scale, 1) * 32px)
708
+ );
733
709
  }
734
710
 
735
711
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
@@ -741,8 +717,8 @@ useComponentHost(() => import('../components/ui-dialog/ui-dialog.js'), {
741
717
  @media (prefers-reduced-transparency: reduce) {
742
718
  :global(:where(.ui-dialog):where(:scope, :not([data-hn], [data-slotted]:not([data-slotted~="ui-dialog"]))):where([data-hn-ui-dialog])) {
743
719
  background: var(--_ui-material-content-color);
744
- backdrop-filter: none;
745
720
  -webkit-backdrop-filter: none;
721
+ backdrop-filter: none;
746
722
  }
747
723
  }
748
724
 
@@ -751,8 +727,8 @@ useComponentHost(() => import('../components/ui-dialog/ui-dialog.js'), {
751
727
  background: Canvas;
752
728
  border-color: CanvasText;
753
729
  box-shadow: none;
754
- backdrop-filter: none;
755
730
  -webkit-backdrop-filter: none;
731
+ backdrop-filter: none;
756
732
  }
757
733
  }
758
734
 
@@ -541,7 +541,7 @@ useComponentHost(() => import('../components/ui-editor-mention-menu/ui-editor-me
541
541
  width: 32px;
542
542
  height: 32px;
543
543
  flex: 0 0 auto;
544
- color: var(--ui-accent-active, var(--ui-accent-solid));
544
+ color: var(--ui-accent-subtle-text);
545
545
  background: var(--ui-accent-soft, var(--ui-accent-subtle));
546
546
  border-radius: var(--ui-radius-round);
547
547
  font-size: var(--ui-font-size-xs);
@@ -167,7 +167,7 @@ checkHydratedRoot('li', 'ui-editor-mention-menu-item')
167
167
  inline-size: 32px;
168
168
  block-size: 32px;
169
169
  flex: 0 0 auto;
170
- color: var(--ui-accent-active);
170
+ color: var(--ui-accent-subtle-text);
171
171
  background: var(--ui-accent-soft);
172
172
  border-radius: var(--ui-radius-round);
173
173
  font-size: var(--ui-font-size-xs);
@@ -623,7 +623,7 @@ useComponentHost(
623
623
  background: var(--ui-accent-subtle, rgb(59 130 246 / 0.1));
624
624
  }
625
625
  :global(:scope button.danger) {
626
- color: var(--ui-danger);
626
+ color: var(--ui-danger-subtle-text);
627
627
  }
628
628
  :global(.swatches) {
629
629
  display: flex !important;
@@ -736,7 +736,7 @@ useComponentHost(() => import('../components/ui-editor-table-toolbar/ui-editor-t
736
736
  }
737
737
  :global(:scope button.active) {
738
738
  background: var(--ui-accent-soft, var(--ui-accent-subtle));
739
- color: var(--ui-accent-active);
739
+ color: var(--ui-accent-subtle-text);
740
740
  }
741
741
  :global(.group button) {
742
742
  border-radius: var(--ui-radius-sm);
@@ -749,7 +749,7 @@ useComponentHost(() => import('../components/ui-editor-table-toolbar/ui-editor-t
749
749
  border-radius: var(--ui-radius-sm);
750
750
  }
751
751
  :global(:scope button.danger) {
752
- color: var(--ui-danger);
752
+ color: var(--ui-danger-subtle-text);
753
753
  }
754
754
  :global(:scope) {
755
755
  --_ui-default-icon-size: var(--ui-editor-toolbar-icon-size, 1rem);