@webority/theme 0.99.0 → 0.101.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 (75) hide show
  1. package/README.md +9 -9
  2. package/dist/published-theme.json +8 -31
  3. package/dist/purge-safelist.json +1 -0
  4. package/dist/webority-theme.css +1 -1
  5. package/index.scss +4 -3
  6. package/package.json +6 -3
  7. package/scss/_bootstrap.generated.scss +18 -0
  8. package/scss/_components.scss +38 -38
  9. package/scss/_marketing.scss +8 -8
  10. package/scss/_tokens.generated.scss +831 -0
  11. package/scss/_tokens.scss +4 -638
  12. package/scss/_variables.scss +7 -12
  13. package/scss/_wui-components.scss +1 -1
  14. package/scss/_wui-residual.scss +8 -0
  15. package/scss/wui/_avatar-picker.scss +2 -2
  16. package/scss/wui/_calendar.scss +6 -6
  17. package/scss/wui/_card.scss +1 -1
  18. package/scss/wui/_carousel.scss +2 -2
  19. package/scss/wui/_chart-card.scss +2 -2
  20. package/scss/wui/_chart.scss +8 -8
  21. package/scss/wui/_chat.scss +2 -2
  22. package/scss/wui/_choice.scss +78 -78
  23. package/scss/wui/_code-block.scss +2 -2
  24. package/scss/wui/_command-palette.scss +9 -9
  25. package/scss/wui/_comment-thread.scss +5 -5
  26. package/scss/wui/_consent-banner.scss +2 -2
  27. package/scss/wui/_controls.scss +52 -52
  28. package/scss/wui/_data.scss +38 -38
  29. package/scss/wui/_disclosure.scss +6 -6
  30. package/scss/wui/_display.scss +51 -51
  31. package/scss/wui/_dock.scss +4 -4
  32. package/scss/wui/_drawer.scss +3 -3
  33. package/scss/wui/_file-viewer.scss +2 -2
  34. package/scss/wui/_filter-popover.scss +1 -1
  35. package/scss/wui/_floating.scss +1 -1
  36. package/scss/wui/_flow.scss +60 -60
  37. package/scss/wui/_groups.scss +7 -7
  38. package/scss/wui/_hover-card.scss +1 -1
  39. package/scss/wui/_image-crop.scss +3 -3
  40. package/scss/wui/_interaction.scss +3 -3
  41. package/scss/wui/_kanban.scss +4 -4
  42. package/scss/wui/_lightbox.scss +2 -2
  43. package/scss/wui/_media.scss +28 -28
  44. package/scss/wui/_mention-input.scss +4 -4
  45. package/scss/wui/_menu-motion.scss +1 -1
  46. package/scss/wui/_modal-remote.scss +2 -2
  47. package/scss/wui/_navigation-menu.scss +4 -4
  48. package/scss/wui/_navigation.scss +25 -25
  49. package/scss/wui/_notification-center.scss +4 -4
  50. package/scss/wui/_onboarding-checklist.scss +2 -2
  51. package/scss/wui/_overlays.scss +21 -21
  52. package/scss/wui/_pending.scss +1 -1
  53. package/scss/wui/_rich-text.scss +7 -7
  54. package/scss/wui/_rolling-number.scss +1 -1
  55. package/scss/wui/_score-scale.scss +1 -1
  56. package/scss/wui/_sections.scss +8 -8
  57. package/scss/wui/_shell-parts.scss +15 -15
  58. package/scss/wui/_shell.scss +20 -20
  59. package/scss/wui/_shortcuts.scss +1 -1
  60. package/scss/wui/_sortable.scss +2 -2
  61. package/scss/wui/_split-view.scss +4 -4
  62. package/scss/wui/_theme-toggle.scss +1 -1
  63. package/scss/wui/_tone-pill.scss +2 -2
  64. package/scss/wui/_toolbar.scss +2 -2
  65. package/scss/wui/_tree.scss +3 -3
  66. package/scss/wui/_typography.scss +6 -6
  67. package/scss/wui/_utilities.scss +27 -19
  68. package/scss/wui/_whats-new.scss +4 -4
  69. package/scss/wui/_workspace.scss +16 -16
  70. package/scss/wui/tour/_advance.scss +1 -1
  71. package/scss/wui/tour/_base.scss +1 -1
  72. package/scss/wui/tour/_end.scss +1 -1
  73. package/scss/wui/tour/_motion.scss +1 -1
  74. package/token-meanings.json +56 -64
  75. package/scss/_wui-aliases.scss +0 -495
@@ -183,15 +183,10 @@ $link-color: $wui-primary-ink !default;
183
183
  // ---- Body / text ----------------------------------------------------
184
184
  // $body-bg left at Bootstrap's $white — do not restate pure defaults here.
185
185
  $body-color: #252F4A; // text-1 from locked palette
186
- $body-secondary-color: #4B5675;
187
- $body-tertiary-color: #626A82; // matches --wui-text-3, AA on every neutral surface
188
- $body-secondary-bg: #F9FBFC;
189
- $body-tertiary-bg: #F5F6FA;
190
186
 
191
187
 
192
188
  // ---- Borders --------------------------------------------------------
193
189
  $border-color: #EBEDF3;
194
- $border-color-translucent: rgba(13, 24, 43, 0.08);
195
190
 
196
191
  // One ladder; every component derives from it (Bootstrap's own model). Set a
197
192
  // component's radius by pointing it at a rung, never by hardcoding a px value —
@@ -202,7 +197,6 @@ $border-radius: 0.5rem; // 8px — buttons, inputs, dropdowns (BS 0.375)
202
197
  $border-radius-sm: 0.375rem; // 6px (BS 0.25)
203
198
  $border-radius-lg: 0.75rem; // 12px — cards, toasts (BS 0.5)
204
199
  $border-radius-2xl: 1.5rem; // 24px (BS 2rem via $border-radius-xxl)
205
- $border-radius-pill: 9999px; // same visual as BS 50rem; explicit for token clarity
206
200
 
207
201
 
208
202
  // ---- Typography -----------------------------------------------------
@@ -213,15 +207,12 @@ $font-family-sans-serif: 'Webority Sans', 'Inter', -apple-system, BlinkMacSystem
213
207
  $font-family-display: 'Webority Serif', Cambria, Georgia, 'Times New Roman', 'Noto Serif', serif;
214
208
  $font-family-monospace: 'JetBrains Mono', SFMono-Regular, Menlo, Monaco, Consolas, monospace;
215
209
 
216
- $line-height-base: 1.55; // leading.body (BS 1.5)
217
- $headings-line-height: 1.2; // leading.heading (BS 1.2)
218
210
 
219
211
  $headings-font-weight: 600; // BS 500
220
212
  $headings-letter-spacing: -0.02em;
221
213
  $headings-color: #071437;
222
214
 
223
215
  $display-font-weight: 500;
224
- $display-line-height: 1.05; // leading.display
225
216
 
226
217
  $h3-font-size: 1.5rem; // 24px (BS 1.75rem)
227
218
  $h4-font-size: 1.25rem; // 20px (BS 1.5rem)
@@ -256,7 +247,7 @@ $spacers: (
256
247
  // Elevation rule: in-page surfaces are FLAT (borders only).
257
248
  // Bootstrap utility ladder (.shadow / .shadow-sm / .shadow-lg) is zeroed so
258
249
  // products cannot reintroduce random depth. Floating UI (dropdown / modal /
259
- // toast) uses the overlay rungs — same values as --wui-shadow-overlay* in tokens.
250
+ // toast) uses the overlay rungs — same values as --wui-shadow-popover in tokens.
260
251
  $wui-shadow-overlay: 0 8px 28px -6px rgba(7, 20, 55, 0.14);
261
252
  $wui-shadow-overlay-lg: 0 24px 60px -16px rgba(7, 20, 55, 0.28);
262
253
 
@@ -267,7 +258,7 @@ $box-shadow-lg: none;
267
258
 
268
259
  // ---- Buttons --------------------------------------------------------
269
260
  $btn-font-weight: 500;
270
- // Height comes from --wui-control-height (see _components.scss) so buttons line
261
+ // Height comes from --wui-control-md (see _components.scss) so buttons line
271
262
  // up with inputs; the padding just needs to sit inside that.
272
263
  $btn-padding-y: 0.5rem;
273
264
  $btn-padding-x: 1.25rem;
@@ -292,7 +283,7 @@ $input-border-color: $border-color;
292
283
  // post-CSS focus uses var(--color-primary) so runtime rebrand tracks.
293
284
  $input-focus-box-shadow: none; // border IS the focus cue
294
285
  $input-focus-color: $body-color;
295
- $input-padding-y: 0.5rem; // filler inside --wui-control-height (36px at md)
286
+ $input-padding-y: 0.5rem; // filler inside --wui-control-md (36px)
296
287
  $input-padding-x: 0.875rem; // 14px
297
288
  $input-border-radius: $border-radius;
298
289
  // Themed, so it flips in dark mode. The old fixed #99A1B7 was 2.58:1 on white and read as typed text on dark.
@@ -379,3 +370,7 @@ $zindex-toast: 1700;
379
370
  // `--bs-table-color` / `--bs-table-bg`; see the base `.table` rules.)
380
371
  $table-cell-padding-y: 0.75rem; // 12px
381
372
  $table-cell-padding-x: 0.75rem; // 12px
373
+
374
+ // Bootstrap $ defaults generated from the token source. Every value is !default, so a brand $ set
375
+ // before or after this file still wins.
376
+ @import "bootstrap.generated";
@@ -10,7 +10,7 @@
10
10
  // selects, avatars, empty states, etc). App-screen / marketing / page-specific
11
11
  // rules were dropped. Custom-property references (--color-*, --radius-*,
12
12
  // --shadow-*, etc.) are left exactly as written — a separate aliases partial
13
- // (_wui-aliases.scss) resolves them onto --wui-* tokens.
13
+ // (_tokens.generated.scss) resolves them onto --wui-* tokens.
14
14
  //
15
15
  // Plain CSS is valid SCSS; nothing here has been re-nested or renamed.
16
16
  // ============================================================================
@@ -0,0 +1,8 @@
1
+ // The theme names the token source does not generate. Every other name comes from _tokens.generated.scss.
2
+
3
+ :root {
4
+ /// meaning: Weekday calendars start their week on, from 0 for Sunday to 6 for Saturday.
5
+ --wui-first-day: 1;
6
+ /// meaning: Offset that draws the focus ring inside a scrolling container.
7
+ --wui-focus-ring-inset: calc(-1 * var(--wui-focus-ring-width));
8
+ }
@@ -26,7 +26,7 @@
26
26
  border: 1px solid var(--color-border);
27
27
  border-radius: 50%;
28
28
  background: color-mix(in srgb, var(--color-primary) 12%, var(--color-surface));
29
- color: var(--color-primary-ink);
29
+ color: var(--color-primary-text);
30
30
  font: inherit;
31
31
  cursor: pointer;
32
32
  }
@@ -73,7 +73,7 @@
73
73
  border: 2px solid var(--color-surface);
74
74
  border-radius: 50%;
75
75
  background: var(--color-primary);
76
- color: var(--color-primary-text);
76
+ color: var(--color-on-primary);
77
77
  }
78
78
  .wui-avatar-picker-face:disabled:not([aria-busy="true"]) .wui-avatar-picker-badge {
79
79
  display: none;
@@ -3,7 +3,7 @@
3
3
  //
4
4
  // Part of the wui-components layer; see _wui-components.scss for the load order. The calendar
5
5
  // engine paints the grid from its own --fc-* custom properties, so the whole theme is those
6
- // variables set from tokens below, which the dark remap in _wui-aliases.scss flips with the rest
6
+ // variables set from tokens below, which the dark remap in _tokens.generated.scss flips with the rest
7
7
  // of the portal: there is no theme watcher and no engine selector here. The toolbar, view switch
8
8
  // and status line are the element's own markup.
9
9
 
@@ -78,7 +78,7 @@ wui-calendar .fc .fc-day-other .fc-daygrid-day-number {
78
78
  .wui-calendar-nav-btn:hover {
79
79
  background: var(--color-primary-soft);
80
80
  border-color: var(--color-primary);
81
- color: var(--color-primary-ink);
81
+ color: var(--color-primary-text);
82
82
  }
83
83
  .wui-calendar-today-btn:focus-visible,
84
84
  .wui-calendar-nav-btn:focus-visible,
@@ -124,12 +124,12 @@ wui-calendar .fc .fc-day-other .fc-daygrid-day-number {
124
124
  color 0.14s ease;
125
125
  }
126
126
  .wui-calendar-view-btn:hover {
127
- color: var(--color-primary-ink);
127
+ color: var(--color-primary-text);
128
128
  }
129
129
  .wui-calendar-view-btn[aria-pressed="true"] {
130
130
  background: color-mix(in srgb, var(--color-primary) 8%, var(--color-surface));
131
131
  box-shadow: inset 0 0 0 2px var(--color-primary);
132
- color: var(--color-primary-ink);
132
+ color: var(--color-primary-text);
133
133
  }
134
134
 
135
135
  // On a phone the title takes a row of its own between the two controls, and every control is a
@@ -230,7 +230,7 @@ wui-calendar[data-view="week"] .wui-calendar-surface > * {
230
230
  .wui-calendar-event-primary {
231
231
  --fc-event-bg-color: var(--color-primary-soft);
232
232
  --fc-event-border-color: var(--color-primary);
233
- --fc-event-text-color: var(--color-primary-ink);
233
+ --fc-event-text-color: var(--color-primary-text);
234
234
  }
235
235
  .wui-calendar-event-success {
236
236
  --fc-event-bg-color: var(--color-success-soft);
@@ -292,5 +292,5 @@ wui-calendar[data-view="month"] .wui-calendar-chip-title {
292
292
 
293
293
  // The shared pressed wash of wui/interaction, restated here so it ships with this on-demand layer.
294
294
  :is(.wui-calendar-nav-btn, .wui-calendar-today-btn, .wui-calendar-view-btn):active:not(:disabled, [aria-disabled="true"]) {
295
- background-image: linear-gradient(var(--color-pressed-overlay), var(--color-pressed-overlay)) !important;
295
+ background-image: linear-gradient(var(--wui-pressed-overlay), var(--wui-pressed-overlay)) !important;
296
296
  }
@@ -199,7 +199,7 @@
199
199
  cursor: pointer;
200
200
  transition:
201
201
  border-color 0.15s ease,
202
- transform 0.2s var(--wui-ease-out-quart),
202
+ transform 0.2s var(--wui-ease-out),
203
203
  box-shadow 0.2s ease;
204
204
  }
205
205
  button.card-clickable {
@@ -79,7 +79,7 @@
79
79
  color 160ms var(--wui-ease-ui);
80
80
  &:hover {
81
81
  background: var(--color-primary-soft);
82
- color: var(--color-primary-ink);
82
+ color: var(--color-primary-text);
83
83
  }
84
84
  &:focus-visible {
85
85
  outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
@@ -139,7 +139,7 @@
139
139
  border: 1px solid var(--color-primary);
140
140
  border-radius: 999px;
141
141
  background: var(--color-surface);
142
- color: var(--color-primary-ink);
142
+ color: var(--color-primary-text);
143
143
  font: inherit;
144
144
  font-weight: 600;
145
145
  cursor: pointer;
@@ -7,7 +7,7 @@
7
7
  :where(.wui-sparkline) {
8
8
  display: inline-block;
9
9
  vertical-align: middle;
10
- color: var(--color-primary-ink);
10
+ color: var(--color-primary-text);
11
11
  }
12
12
  .wui-sparkline polyline {
13
13
  stroke-width: 1.5;
@@ -31,7 +31,7 @@
31
31
  }
32
32
  .wui-chart-card-tool[aria-pressed="true"] {
33
33
  background: var(--color-primary-soft);
34
- color: var(--color-primary-ink);
34
+ color: var(--color-primary-text);
35
35
  }
36
36
  // The legend toggle is useful only while the chart shows a legend: two or more series, in the
37
37
  // chart view. Before the element has drawn there is none, so the button waits for it.
@@ -1,7 +1,7 @@
1
1
  // Charts: the <wui-chart> element behind AppChart.
2
2
  //
3
3
  // Part of the wui-components layer; see _wui-components.scss for the load order. The element draws
4
- // series in the --wui-chart-* colours. Every colour is a token the dark remap in _wui-aliases.scss
4
+ // series in the --wui-chart-* colours. Every colour is a token the dark remap in _tokens.generated.scss
5
5
  // flips with the rest of the portal.
6
6
 
7
7
  // ============================================================================
@@ -36,14 +36,14 @@ wui-chart {
36
36
  min-height: 24px;
37
37
  padding: 2px 6px;
38
38
  border: 0;
39
- border-radius: var(--radius-sm);
39
+ border-radius: var(--wui-radius-sm);
40
40
  background: transparent;
41
41
  color: var(--color-text-muted);
42
42
  font: inherit;
43
43
  cursor: pointer;
44
44
  transition:
45
- color 150ms var(--wui-ease-out-quart),
46
- background-color 150ms var(--wui-ease-out-quart);
45
+ color 150ms var(--wui-ease-out),
46
+ background-color 150ms var(--wui-ease-out);
47
47
  }
48
48
  .wui-chart-legend-item:hover {
49
49
  background: var(--color-bg-muted);
@@ -58,7 +58,7 @@ wui-chart {
58
58
  width: 10px;
59
59
  height: 10px;
60
60
  border-radius: 3px;
61
- transition: opacity 150ms var(--wui-ease-out-quart);
61
+ transition: opacity 150ms var(--wui-ease-out);
62
62
  }
63
63
  .wui-chart-legend-swatch-line {
64
64
  width: 14px;
@@ -79,8 +79,8 @@ wui-chart {
79
79
  .wui-chart-surface {
80
80
  position: relative;
81
81
  width: 100%;
82
- border-radius: var(--radius-sm);
83
- transition: opacity 200ms var(--wui-ease-out-quart);
82
+ border-radius: var(--wui-radius-sm);
83
+ transition: opacity 200ms var(--wui-ease-out);
84
84
  }
85
85
  .wui-chart-surface:focus-visible {
86
86
  outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
@@ -173,7 +173,7 @@ wui-chart[aria-busy="true"] .wui-chart-surface {
173
173
  .wui-chart-table-wrap {
174
174
  overflow: auto;
175
175
  border: 1px solid var(--color-border);
176
- border-radius: var(--radius-sm);
176
+ border-radius: var(--wui-radius-sm);
177
177
  }
178
178
  .wui-chart-table {
179
179
  width: 100%;
@@ -36,7 +36,7 @@ wui-chat[position="start"] .wui-chat-launcher {
36
36
  width: min(440px, 100%);
37
37
  background: var(--color-surface);
38
38
  border-inline-start: 1px solid var(--color-border);
39
- box-shadow: var(--wui-shadow-overlay-lg);
39
+ box-shadow: var(--wui-shadow-modal);
40
40
  }
41
41
  wui-chat[position="start"] .wui-chat-panel {
42
42
  inset-inline-end: auto;
@@ -79,7 +79,7 @@ wui-chat[position="start"] .wui-chat-panel {
79
79
  // The question box starts one line tall, as tall as Send beside it, and grows with its text
80
80
  // up to a few lines. Its padding is equal top and bottom, so one line of text sits centred in it.
81
81
  .wui-chat-composer .form-control {
82
- min-height: var(--wui-control-height);
82
+ min-height: var(--wui-control-md);
83
83
  max-height: 9rem;
84
84
  padding-block: 10px;
85
85
  resize: none;