@webority/theme 0.53.0 → 0.54.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 (62) hide show
  1. package/dist/purge-safelist.json +339 -3
  2. package/dist/webority-theme.css +1 -1
  3. package/package.json +1 -1
  4. package/scss/_components.scss +43 -4
  5. package/scss/_marketing.scss +5 -0
  6. package/scss/_variables.scss +5 -4
  7. package/scss/_wui-aliases.scss +14 -0
  8. package/scss/_wui-components.scss +29 -0
  9. package/scss/wui/_avatar-picker.scss +1 -1
  10. package/scss/wui/_calendar.scss +5 -5
  11. package/scss/wui/_card.scss +2 -2
  12. package/scss/wui/_carousel.scss +182 -0
  13. package/scss/wui/_chart.scss +2 -2
  14. package/scss/wui/_choice.scss +88 -8
  15. package/scss/wui/_code-block.scss +138 -0
  16. package/scss/wui/_command-palette.scss +99 -1
  17. package/scss/wui/_comment-thread.scss +268 -0
  18. package/scss/wui/_context-menu.scss +2 -2
  19. package/scss/wui/_controls.scss +14 -12
  20. package/scss/wui/_data.scss +407 -14
  21. package/scss/wui/_disclosure.scss +2 -2
  22. package/scss/wui/_display.scss +13 -9
  23. package/scss/wui/_dock.scss +2 -2
  24. package/scss/wui/_drawer.scss +198 -0
  25. package/scss/wui/_file-viewer.scss +6 -6
  26. package/scss/wui/_groups.scss +111 -0
  27. package/scss/wui/_hover-card.scss +55 -0
  28. package/scss/wui/_illustration.scss +76 -0
  29. package/scss/wui/_image-crop.scss +6 -6
  30. package/scss/wui/_inline-edit.scss +131 -0
  31. package/scss/wui/_interaction.scss +286 -0
  32. package/scss/wui/_kanban.scss +6 -6
  33. package/scss/wui/_lightbox.scss +169 -0
  34. package/scss/wui/_media.scss +8 -5
  35. package/scss/wui/_mention-input.scss +88 -0
  36. package/scss/wui/_menubar.scss +110 -0
  37. package/scss/wui/_navigation-menu.scss +172 -0
  38. package/scss/wui/_navigation.scss +109 -6
  39. package/scss/wui/_notification-center.scss +251 -0
  40. package/scss/wui/_onboarding-checklist.scss +199 -0
  41. package/scss/wui/_overlays.scss +7 -11
  42. package/scss/wui/_rating.scss +87 -0
  43. package/scss/wui/_record-pager.scss +27 -0
  44. package/scss/wui/_relative-time.scss +10 -0
  45. package/scss/wui/_resizable.scss +98 -0
  46. package/scss/wui/_rich-text.scss +2 -2
  47. package/scss/wui/_rolling-number.scss +60 -0
  48. package/scss/wui/_sections.scss +315 -0
  49. package/scss/wui/_shell-parts.scss +12 -3
  50. package/scss/wui/_shell.scss +6 -6
  51. package/scss/wui/_shortcuts.scss +143 -0
  52. package/scss/wui/_show-more.scss +30 -0
  53. package/scss/wui/_sortable.scss +2 -2
  54. package/scss/wui/_split-view.scss +321 -0
  55. package/scss/wui/_toolbar.scss +4 -4
  56. package/scss/wui/_tour.scss +2 -2
  57. package/scss/wui/_tree.scss +2 -2
  58. package/scss/wui/_truncate.scss +32 -0
  59. package/scss/wui/_typography.scss +14 -0
  60. package/scss/wui/_utilities.scss +8 -8
  61. package/scss/wui/_whats-new.scss +147 -0
  62. package/scss/wui/_workspace.scss +2 -2
@@ -0,0 +1,138 @@
1
+ // ── Code block ──
2
+ // AppCodeBlock / <app-code-block> (a <wui-code-block> element): source with syntax colours, a header
3
+ // with a Copy button, optional line numbers and wrapping. The element hides the plain
4
+ // `.wui-code-source` once it has drawn `.wui-code-chrome`; without script the source stays.
5
+ // Colours are semantic text tokens, so light and dark follow the theme.
6
+ //
7
+ // Part of the wui-components layer, see _wui-components.scss for load order.
8
+
9
+ .wui-code-block {
10
+ display: block;
11
+ min-width: 0;
12
+ border: 1px solid var(--color-border);
13
+ border-radius: var(--wui-radius);
14
+ background: var(--color-bg-subtle);
15
+ color: var(--color-text);
16
+ font-family: var(--bs-font-monospace);
17
+ font-size: 13px;
18
+ line-height: 1.6;
19
+ overflow: hidden;
20
+ }
21
+
22
+ .wui-code-source {
23
+ margin: 0;
24
+ padding: 12px 14px;
25
+ overflow-x: auto;
26
+ color: inherit;
27
+ font: inherit;
28
+ white-space: pre;
29
+ }
30
+ .wui-code-source code {
31
+ color: inherit;
32
+ font: inherit;
33
+ }
34
+ .wui-code-block[wrap] .wui-code-source {
35
+ overflow-wrap: anywhere;
36
+ white-space: pre-wrap;
37
+ }
38
+ .wui-code-block[data-wui-ready] > .wui-code-source {
39
+ display: none;
40
+ }
41
+
42
+ .wui-code-bar {
43
+ display: flex;
44
+ align-items: center;
45
+ justify-content: space-between;
46
+ gap: 8px;
47
+ padding: 2px 6px 2px 14px;
48
+ border-bottom: 1px solid var(--color-border);
49
+ background: var(--color-bg-muted);
50
+ }
51
+ .wui-code-title {
52
+ min-width: 0;
53
+ overflow: hidden;
54
+ color: var(--color-text-muted);
55
+ font-family: var(--font-sans);
56
+ font-size: 12px;
57
+ text-overflow: ellipsis;
58
+ white-space: nowrap;
59
+ }
60
+ .wui-code-copy {
61
+ flex: none;
62
+ display: inline-flex;
63
+ align-items: center;
64
+ gap: 6px;
65
+ }
66
+ .wui-code-copy-icon {
67
+ display: inline-flex;
68
+ }
69
+
70
+ .wui-code-view {
71
+ overflow-x: auto;
72
+ padding: 12px 0;
73
+ }
74
+ .wui-code-view:focus-visible {
75
+ outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
76
+ outline-offset: var(--wui-focus-ring-inset);
77
+ }
78
+ .wui-code-pre {
79
+ margin: 0;
80
+ color: inherit;
81
+ font: inherit;
82
+ white-space: pre;
83
+ counter-reset: wui-code-line;
84
+ }
85
+ .wui-code-pre code {
86
+ display: block;
87
+ color: inherit;
88
+ font: inherit;
89
+ }
90
+ .wui-code-block[wrap] .wui-code-pre {
91
+ overflow-wrap: anywhere;
92
+ white-space: pre-wrap;
93
+ }
94
+ .wui-code-line {
95
+ display: block;
96
+ min-height: 1.6em;
97
+ padding-inline: 14px;
98
+ }
99
+ .wui-code-block[line-numbers] .wui-code-line {
100
+ position: relative;
101
+ padding-inline-start: calc(30px + var(--wui-code-digits, 2) * 1ch);
102
+ counter-increment: wui-code-line;
103
+ }
104
+ .wui-code-block[line-numbers] .wui-code-line::before {
105
+ position: absolute;
106
+ inset-inline-start: 14px;
107
+ width: calc(var(--wui-code-digits, 2) * 1ch);
108
+ content: counter(wui-code-line);
109
+ color: var(--color-text-subtle);
110
+ font-variant-numeric: tabular-nums;
111
+ text-align: end;
112
+ user-select: none;
113
+ }
114
+
115
+ .wui-code-t-comment {
116
+ color: var(--color-text-subtle);
117
+ font-style: italic;
118
+ }
119
+ .wui-code-t-string {
120
+ color: var(--color-success-text);
121
+ }
122
+ .wui-code-t-number,
123
+ .wui-code-t-literal,
124
+ .wui-code-t-variable {
125
+ color: var(--color-warning-text);
126
+ }
127
+ .wui-code-t-keyword,
128
+ .wui-code-t-tag {
129
+ color: var(--color-primary-ink);
130
+ }
131
+ .wui-code-t-function,
132
+ .wui-code-t-type,
133
+ .wui-code-t-attr {
134
+ color: var(--color-info-text);
135
+ }
136
+ .wui-code-t-punct {
137
+ color: var(--color-text-muted);
138
+ }
@@ -63,6 +63,79 @@ wui-command-palette {
63
63
  color: var(--color-primary-ink);
64
64
  }
65
65
 
66
+ // Nested pages: the Back button and the path to the open page. The element fills the trail and
67
+ // shows the bar only while a page is open.
68
+ .wui-cmd-crumbs {
69
+ display: flex;
70
+ flex: 0 0 auto;
71
+ align-items: center;
72
+ gap: 6px;
73
+ padding: 6px 12px;
74
+ border-bottom: 1px solid var(--color-border);
75
+ }
76
+ .wui-cmd-crumbs[hidden] {
77
+ display: none;
78
+ }
79
+ .wui-cmd-back {
80
+ display: inline-grid;
81
+ flex: 0 0 auto;
82
+ place-items: center;
83
+ width: 28px;
84
+ height: 28px;
85
+ padding: 0;
86
+ border: 0;
87
+ border-radius: var(--radius);
88
+ corner-shape: squircle;
89
+ background: transparent;
90
+ color: var(--color-text-muted);
91
+ cursor: pointer;
92
+ }
93
+ .wui-cmd-back:hover {
94
+ background: var(--color-bg-muted);
95
+ color: var(--color-text);
96
+ }
97
+ .wui-cmd-trail {
98
+ display: flex;
99
+ flex: 1 1 auto;
100
+ flex-wrap: wrap;
101
+ align-items: center;
102
+ min-width: 0;
103
+ margin: 0;
104
+ padding: 0;
105
+ color: var(--color-text-muted);
106
+ font-size: 13px;
107
+ list-style: none;
108
+ }
109
+ .wui-cmd-trail > li + li::before {
110
+ content: "/";
111
+ padding: 0 6px;
112
+ color: var(--color-text-subtle);
113
+ }
114
+ .wui-cmd-crumb {
115
+ padding: 2px 4px;
116
+ border: 0;
117
+ border-radius: var(--wui-radius-sm);
118
+ background: transparent;
119
+ color: inherit;
120
+ font: inherit;
121
+ }
122
+ button.wui-cmd-crumb {
123
+ cursor: pointer;
124
+ }
125
+ button.wui-cmd-crumb:hover {
126
+ color: var(--color-text);
127
+ text-decoration: underline;
128
+ }
129
+ span.wui-cmd-crumb[aria-current="page"] {
130
+ color: var(--color-text);
131
+ font-weight: 600;
132
+ }
133
+ .wui-cmd-back:focus-visible,
134
+ button.wui-cmd-crumb:focus-visible {
135
+ outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
136
+ outline-offset: 1px;
137
+ }
138
+
66
139
  .wui-cmd-list {
67
140
  flex: 1 1 auto;
68
141
  min-height: 0;
@@ -74,10 +147,16 @@ wui-command-palette {
74
147
  }
75
148
  .wui-cmd-list[hidden],
76
149
  .wui-cmd-group[hidden],
150
+ .wui-cmd-page[hidden],
77
151
  .wui-cmd-item[hidden] {
78
152
  display: none;
79
153
  }
80
- .wui-cmd-group + .wui-cmd-group {
154
+ // The element fills this with the recently chosen items; with none it takes no room.
155
+ .wui-cmd-recents:empty {
156
+ display: none;
157
+ }
158
+ .wui-cmd-group + .wui-cmd-group,
159
+ .wui-cmd-recents:not(:empty) + .wui-cmd-group {
81
160
  margin-top: 4px;
82
161
  }
83
162
  .wui-cmd-group-label {
@@ -150,6 +229,25 @@ wui-command-palette {
150
229
  color: var(--color-text-muted);
151
230
  font-size: 12px;
152
231
  }
232
+ .wui-cmd-item-chevron {
233
+ display: inline-flex;
234
+ flex: 0 0 auto;
235
+ color: var(--color-text-muted);
236
+ }
237
+ .wui-cmd-item > .wui-kbd {
238
+ flex: 0 0 auto;
239
+ }
240
+ .wui-cmd-item[aria-selected="true"] > .wui-kbd {
241
+ border-color: var(--color-primary-ink);
242
+ background: var(--color-surface);
243
+ color: var(--color-primary-ink);
244
+ }
245
+ // A phone has no keyboard to press them on.
246
+ @media (hover: none) and (pointer: coarse) {
247
+ .wui-cmd-item > .wui-kbd {
248
+ display: none;
249
+ }
250
+ }
153
251
  // The query inside a label: bolder, never a highlighter block.
154
252
  .wui-cmd-mark {
155
253
  padding: 0;
@@ -0,0 +1,268 @@
1
+ // ── Comment thread ──
2
+ // AppCommentThread / <app-comment-thread> / <wui-comment-thread>: comments with an avatar, the
3
+ // author and time, the body with mentions, reactions and the Reply, Edit and Delete actions;
4
+ // replies indent under their comment. The element shows and hides the boxes and the delete
5
+ // question; [aria-busy] on the host while a change is saving.
6
+ //
7
+ // Part of the wui-components layer, see _wui-components.scss for load order.
8
+
9
+ .wui-comment-thread {
10
+ display: flex;
11
+ flex-direction: column;
12
+ gap: 16px;
13
+ min-width: 0;
14
+ }
15
+
16
+ .wui-comment-list {
17
+ display: flex;
18
+ flex-direction: column;
19
+ gap: 16px;
20
+ margin: 0;
21
+ padding: 0;
22
+ list-style: none;
23
+ }
24
+ .wui-comment-replies {
25
+ gap: 12px;
26
+ margin-top: 12px;
27
+ // Under the parent's avatar, so a reply reads as belonging to it.
28
+ margin-inline-start: 20px;
29
+ padding-inline-start: 22px;
30
+ border-inline-start: 2px solid var(--color-border);
31
+ }
32
+ .wui-comment-empty {
33
+ margin: 0;
34
+ color: var(--color-text-muted);
35
+ }
36
+
37
+ .wui-comment-row {
38
+ display: flex;
39
+ align-items: flex-start;
40
+ gap: 10px;
41
+ }
42
+ .wui-comment-avatar {
43
+ flex: none;
44
+ }
45
+ .wui-comment-main {
46
+ display: flex;
47
+ flex: 1 1 auto;
48
+ flex-direction: column;
49
+ gap: 6px;
50
+ min-width: 0;
51
+ }
52
+
53
+ .wui-comment-head {
54
+ display: flex;
55
+ flex-wrap: wrap;
56
+ align-items: baseline;
57
+ gap: 2px 8px;
58
+ }
59
+ .wui-comment-author {
60
+ font-weight: 600;
61
+ color: var(--color-text);
62
+ }
63
+ .wui-comment-time,
64
+ .wui-comment-edited {
65
+ font-size: 12px;
66
+ color: var(--color-text-muted);
67
+ font-variant-numeric: tabular-nums;
68
+ }
69
+
70
+ .wui-comment-text {
71
+ color: var(--color-text);
72
+ overflow-wrap: anywhere;
73
+ // The line breaks a person typed still read as lines.
74
+ white-space: pre-wrap;
75
+ }
76
+ .wui-comment-text[hidden] {
77
+ display: none;
78
+ }
79
+ .wui-comment-text-deleted {
80
+ font-style: italic;
81
+ color: var(--color-text-muted);
82
+ }
83
+ .wui-mention {
84
+ padding: 0 2px;
85
+ border-radius: var(--wui-radius-sm);
86
+ background: var(--color-primary-soft);
87
+ color: var(--color-primary-ink);
88
+ font-weight: 500;
89
+ }
90
+
91
+ .wui-comment-reactions {
92
+ display: flex;
93
+ flex-wrap: wrap;
94
+ align-items: center;
95
+ gap: 6px;
96
+ }
97
+ .wui-reaction,
98
+ .wui-reaction-add {
99
+ display: inline-flex;
100
+ align-items: center;
101
+ gap: 4px;
102
+ min-height: 28px;
103
+ padding: 2px 8px;
104
+ border: 1px solid var(--color-border);
105
+ border-radius: 999px;
106
+ background: var(--color-surface);
107
+ color: var(--color-text);
108
+ font: inherit;
109
+ font-size: 13px;
110
+ line-height: 1;
111
+ transition:
112
+ background-color 160ms var(--wui-ease-ui),
113
+ border-color 160ms var(--wui-ease-ui);
114
+ }
115
+ button.wui-reaction,
116
+ .wui-reaction-add {
117
+ cursor: pointer;
118
+ }
119
+ button.wui-reaction:hover,
120
+ .wui-reaction-add:hover {
121
+ background: var(--color-bg-muted);
122
+ }
123
+ .wui-reaction-mine {
124
+ border-color: var(--color-primary);
125
+ background: var(--color-primary-soft);
126
+ color: var(--color-primary-ink);
127
+ }
128
+ .wui-reaction-count {
129
+ font-variant-numeric: tabular-nums;
130
+ }
131
+ .wui-reaction-add {
132
+ color: var(--color-text-muted);
133
+ }
134
+
135
+ .wui-reaction-picker {
136
+ position: fixed;
137
+ z-index: var(--wui-z-menu);
138
+ display: flex;
139
+ gap: 2px;
140
+ padding: 4px;
141
+ background: var(--color-surface);
142
+ border: 1px solid var(--color-border);
143
+ border-radius: var(--radius-lg);
144
+ corner-shape: squircle;
145
+ box-shadow: var(--shadow-overlay);
146
+ }
147
+ .wui-reaction-picker[hidden] {
148
+ display: none;
149
+ }
150
+ .wui-reaction-choice {
151
+ display: inline-flex;
152
+ align-items: center;
153
+ justify-content: center;
154
+ width: 36px;
155
+ height: 36px;
156
+ border: 0;
157
+ border-radius: var(--radius);
158
+ background: transparent;
159
+ font-size: 18px;
160
+ cursor: pointer;
161
+ }
162
+ .wui-reaction-choice:hover {
163
+ background: var(--color-bg-muted);
164
+ }
165
+
166
+ .wui-comment-actions {
167
+ display: flex;
168
+ flex-wrap: wrap;
169
+ gap: 4px 12px;
170
+ }
171
+ .wui-comment-actions[hidden] {
172
+ display: none;
173
+ }
174
+ .wui-comment-action {
175
+ padding: 2px 0;
176
+ border: 0;
177
+ background: transparent;
178
+ color: var(--color-text-muted);
179
+ font: inherit;
180
+ font-size: 13px;
181
+ font-weight: 500;
182
+ cursor: pointer;
183
+ }
184
+ .wui-comment-action:hover {
185
+ color: var(--color-primary-ink);
186
+ }
187
+
188
+ .wui-comment-confirm {
189
+ display: flex;
190
+ flex-wrap: wrap;
191
+ align-items: center;
192
+ gap: 8px;
193
+ }
194
+ .wui-comment-confirm[hidden] {
195
+ display: none;
196
+ }
197
+ .wui-comment-confirm-text {
198
+ font-size: 13px;
199
+ color: var(--color-text);
200
+ }
201
+
202
+ .wui-comment-editor,
203
+ .wui-comment-reply,
204
+ .wui-comment-composer {
205
+ display: flex;
206
+ flex-direction: column;
207
+ gap: 8px;
208
+ }
209
+ .wui-comment-reply {
210
+ margin-top: 12px;
211
+ margin-inline-start: 42px;
212
+ }
213
+ .wui-comment-editor[hidden],
214
+ .wui-comment-reply[hidden] {
215
+ display: none;
216
+ }
217
+ .wui-comment-form-actions {
218
+ display: flex;
219
+ flex-wrap: wrap;
220
+ gap: 8px;
221
+ }
222
+
223
+ .wui-comment-error {
224
+ font-size: 12px;
225
+ // The AA text shade, as .field-error: the fill red is under 4.5:1 at this size.
226
+ color: var(--color-danger-text);
227
+ }
228
+ .wui-comment-error[hidden] {
229
+ display: none;
230
+ }
231
+
232
+ .wui-comment-action:focus-visible,
233
+ .wui-reaction:focus-visible,
234
+ .wui-reaction-add:focus-visible,
235
+ .wui-reaction-choice:focus-visible {
236
+ outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
237
+ outline-offset: var(--wui-focus-ring-offset);
238
+ }
239
+
240
+ @media (pointer: coarse) {
241
+ .wui-reaction,
242
+ .wui-reaction-add,
243
+ .wui-reaction-choice {
244
+ min-height: 44px;
245
+ min-width: 44px;
246
+ justify-content: center;
247
+ }
248
+ .wui-comment-action {
249
+ min-height: 44px;
250
+ }
251
+ }
252
+
253
+ @media (max-width: 575.98px) {
254
+ .wui-comment-replies {
255
+ margin-inline-start: 8px;
256
+ padding-inline-start: 12px;
257
+ }
258
+ .wui-comment-reply {
259
+ margin-inline-start: 0;
260
+ }
261
+ }
262
+
263
+ @media (prefers-reduced-motion: reduce) {
264
+ .wui-reaction,
265
+ .wui-reaction-add {
266
+ transition: none;
267
+ }
268
+ }
@@ -35,8 +35,8 @@ wui-context-menu {
35
35
 
36
36
  // A row the user can reach with the keyboard shows where it is.
37
37
  .dropdown-item:focus-visible {
38
- outline: 2px solid var(--color-primary);
39
- outline-offset: -2px;
38
+ outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
39
+ outline-offset: var(--wui-focus-ring-inset);
40
40
  }
41
41
  // Listed but unchoosable: quiet, and no hover tint.
42
42
  .dropdown-item[aria-disabled="true"] {
@@ -145,14 +145,15 @@
145
145
  border-color: var(--color-primary);
146
146
  box-shadow: 0 0 0 2px var(--color-primary-soft);
147
147
  }
148
- // Keyboard focus keeps a restrained brand ring — a keyboard user MUST see where focus is
149
- // (a11y). :focus-visible matches keyboard/AT focus only, never a plain mouse click.
148
+ // Keyboard focus draws the shared ring, never the soft hover glow (under 3:1 and identical to
149
+ // hover). :focus-visible matches keyboard/AT focus only, never a plain mouse click.
150
150
  .form-check-input:focus-visible,
151
151
  .wui-check:focus-visible,
152
152
  .wui-radio:focus-visible {
153
- outline: none;
153
+ outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
154
+ outline-offset: var(--wui-focus-ring-offset);
154
155
  border-color: var(--color-primary);
155
- box-shadow: 0 0 0 2px var(--color-primary-soft);
156
+ box-shadow: none;
156
157
  }
157
158
  // A plain MOUSE click must leave NO lingering focus/active glow, ring, border tint or
158
159
  // darkening — Bootstrap paints all of them on :focus/:active. Neutralise them for pointer
@@ -762,8 +763,8 @@ $wui-field-error-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/
762
763
  background: transparent;
763
764
  }
764
765
  .pw-toggle:focus-visible {
765
- outline: 2px solid var(--color-primary);
766
- outline-offset: 2px;
766
+ outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
767
+ outline-offset: var(--wui-focus-ring-offset);
767
768
  }
768
769
  .pw-toggle .pw-eye-off {
769
770
  display: none;
@@ -805,8 +806,8 @@ $wui-field-error-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/
805
806
  background: var(--color-bg-muted);
806
807
  }
807
808
  .input-clear:focus-visible {
808
- outline: 2px solid var(--color-primary);
809
- outline-offset: 2px;
809
+ outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
810
+ outline-offset: var(--wui-focus-ring-offset);
810
811
  }
811
812
  @keyframes wui-clear-in {
812
813
  from { opacity: 0; transform: translateY(-50%) scale(0.72); }
@@ -1256,7 +1257,8 @@ wui-select[compact] {
1256
1257
  background: var(--color-bg-muted);
1257
1258
  }
1258
1259
  .num-btn:focus-visible {
1259
- outline: none;
1260
+ outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
1261
+ outline-offset: var(--wui-focus-ring-inset);
1260
1262
  color: var(--color-primary-ink);
1261
1263
  }
1262
1264
  .num-btn:active:not(:disabled) {
@@ -1419,8 +1421,8 @@ wui-select[compact] {
1419
1421
  border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
1420
1422
  }
1421
1423
  .choice-chip:has(input:focus-visible) {
1422
- outline: 2px solid var(--color-primary);
1423
- outline-offset: 2px;
1424
+ outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
1425
+ outline-offset: var(--wui-focus-ring-offset);
1424
1426
  }
1425
1427
  .choice-chip input {
1426
1428
  position: absolute;
@@ -1687,7 +1689,7 @@ wui-otp {
1687
1689
  box-shadow: 0 3px 14px color-mix(in srgb, var(--color-primary) 28%, transparent);
1688
1690
  }
1689
1691
  .slider-thumb:focus-visible {
1690
- outline: 2px solid var(--color-primary);
1692
+ outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
1691
1693
  outline-offset: 4px;
1692
1694
  }
1693
1695
  .slider-thumb:disabled,