@digiko-npm/designsystem 0.9.42 → 0.9.44

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 (38) hide show
  1. package/dist/designsystem.css +243 -76
  2. package/dist/designsystem.min.css +2 -2
  3. package/package.json +1 -1
  4. package/src/base/typography.css +1 -1
  5. package/src/components/admin-layout.css +3 -3
  6. package/src/components/avatar.css +1 -1
  7. package/src/components/badge.css +1 -1
  8. package/src/components/bottom-sheet.css +1 -1
  9. package/src/components/button.css +2 -2
  10. package/src/components/card.css +2 -2
  11. package/src/components/chip.css +1 -1
  12. package/src/components/combobox.css +3 -3
  13. package/src/components/command.css +3 -3
  14. package/src/components/custom-select.css +3 -3
  15. package/src/components/datepicker.css +5 -5
  16. package/src/components/description-list.css +1 -1
  17. package/src/components/drop-zone.css +1 -1
  18. package/src/components/dropdown.css +3 -3
  19. package/src/components/gallery.css +3 -3
  20. package/src/components/kbd.css +1 -1
  21. package/src/components/nav.css +1 -1
  22. package/src/components/popover.css +1 -1
  23. package/src/components/progress.css +1 -1
  24. package/src/components/prose.css +149 -2
  25. package/src/components/search.css +4 -4
  26. package/src/components/segmented-control.css +2 -2
  27. package/src/components/skeleton.css +1 -1
  28. package/src/components/slider.css +1 -1
  29. package/src/components/stat-card.css +1 -1
  30. package/src/components/table.css +12 -1
  31. package/src/components/tabs.css +4 -4
  32. package/src/components/tag.css +7 -7
  33. package/src/components/timeline.css +1 -1
  34. package/src/components/toggle.css +2 -2
  35. package/src/components/toolbar.css +2 -2
  36. package/src/tokens/typography.css +9 -0
  37. package/src/utilities/states.css +6 -6
  38. package/src/utilities/text.css +3 -3
@@ -1,4 +1,4 @@
1
- /* @ds/designsystem v0.9.41 */
1
+ /* @ds/designsystem v0.9.43 */
2
2
  /* ==========================================================================
3
3
  @digiko-npm/designsystem
4
4
 
@@ -312,6 +312,15 @@
312
312
  --ds-text-6xl: 3.75rem; /* 60px */
313
313
  --ds-text-7xl: 4.5rem; /* 72px */
314
314
 
315
+ /* --- Editorial long-form fluid sizes ---
316
+ Promoted from esys/blog.css on 12 Apr 2026 after the blog incident.
317
+ These target magazine-style article reading, between the functional
318
+ UI scale (ds-text-*) and the display scale (ds-hero-title). Used by
319
+ .ds-editorial-title and .ds-editorial-lede in components/prose.css. */
320
+ --ds-text-editorial-title: clamp(2.5rem, 4vw + 1.5rem, 4.5rem); /* 40 → 72px */
321
+ --ds-text-editorial-lede: clamp(1.125rem, 0.5vw + 1rem, 1.375rem); /* 18 → 22px */
322
+ --ds-text-editorial-body: 1.0625rem; /* 17px fixed — sweet spot for long-form body */
323
+
315
324
  /* --- Font Weights --- */
316
325
  --ds-weight-light: 300;
317
326
  --ds-weight-normal: 400;
@@ -696,7 +705,7 @@ strong, b {
696
705
  code, kbd, samp {
697
706
  font-family: var(--ds-font-mono);
698
707
  font-size: 0.9em;
699
- background-color: var(--ds-color-bg-elevated);
708
+ background-color: var(--ds-color-surface-elevated);
700
709
  padding: 2px 6px;
701
710
  border-radius: var(--ds-radius-sm);
702
711
  }
@@ -1312,7 +1321,7 @@ hr {
1312
1321
  padding: 2px;
1313
1322
  border: 1px solid var(--ds-color-border);
1314
1323
  border-radius: var(--ds-radius-full);
1315
- background-color: var(--ds-color-bg-elevated);
1324
+ background-color: var(--ds-color-surface-elevated);
1316
1325
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12);
1317
1326
  cursor: pointer;
1318
1327
  transition: background-color var(--ds-duration-normal) var(--ds-ease-out),
@@ -1397,7 +1406,7 @@ hr {
1397
1406
  }
1398
1407
  .ds-toggle:hover {
1399
1408
 
1400
- background-color: var(--ds-color-bg-elevated-hover);
1409
+ background-color: var(--ds-color-surface-elevated-hover);
1401
1410
  }
1402
1411
  .ds-toggle[aria-checked="true"]:hover,
1403
1412
  .ds-toggle--checked:hover {
@@ -1608,7 +1617,7 @@ hr {
1608
1617
  .ds-custom-select__panel {
1609
1618
  position: fixed;
1610
1619
  z-index: var(--ds-z-dropdown);
1611
- background-color: var(--ds-color-bg-muted);
1620
+ background-color: var(--ds-color-surface-muted);
1612
1621
  border: 1px solid var(--ds-color-border);
1613
1622
  border-radius: var(--ds-radius-xl);
1614
1623
  box-shadow: var(--ds-shadow-lg);
@@ -1707,7 +1716,7 @@ hr {
1707
1716
 
1708
1717
  .ds-custom-select__option--selected,
1709
1718
  .ds-custom-select__option--selected:hover {
1710
- background-color: var(--ds-color-bg-elevated);
1719
+ background-color: var(--ds-color-surface-elevated);
1711
1720
  color: var(--ds-color-text);
1712
1721
  font-weight: var(--ds-weight-medium);
1713
1722
  }
@@ -1852,7 +1861,7 @@ hr {
1852
1861
  font-family: var(--ds-font-sans);
1853
1862
  line-height: var(--ds-leading-none);
1854
1863
  border-radius: var(--ds-radius-full);
1855
- background-color: var(--ds-color-bg-muted);
1864
+ background-color: var(--ds-color-surface-muted);
1856
1865
  border: 1px solid var(--ds-color-border);
1857
1866
  color: var(--ds-color-text-secondary);
1858
1867
  white-space: nowrap;
@@ -2085,7 +2094,7 @@ hr {
2085
2094
  max-height: 16rem;
2086
2095
  overflow-y: auto;
2087
2096
  overscroll-behavior: contain;
2088
- background-color: var(--ds-color-bg-muted);
2097
+ background-color: var(--ds-color-surface-muted);
2089
2098
  border: 1px solid var(--ds-color-border);
2090
2099
  border-radius: var(--ds-radius-xl);
2091
2100
  box-shadow: var(--ds-shadow-lg);
@@ -2160,7 +2169,7 @@ hr {
2160
2169
 
2161
2170
  .ds-combobox__option--active,
2162
2171
  .ds-combobox__option--active:hover {
2163
- background-color: var(--ds-color-bg-elevated);
2172
+ background-color: var(--ds-color-surface-elevated);
2164
2173
  color: var(--ds-color-text);
2165
2174
  }
2166
2175
 
@@ -2260,7 +2269,7 @@ hr {
2260
2269
  font-family: var(--ds-font-sans);
2261
2270
  line-height: var(--ds-leading-none);
2262
2271
  border-radius: var(--ds-radius-full);
2263
- background-color: var(--ds-color-bg-muted);
2272
+ background-color: var(--ds-color-surface-muted);
2264
2273
  border: 1px solid var(--ds-color-border);
2265
2274
  color: var(--ds-color-text-secondary);
2266
2275
  white-space: nowrap;
@@ -2767,7 +2776,7 @@ hr {
2767
2776
  z-index: var(--ds-z-dropdown);
2768
2777
  inset-block-start: calc(100% + var(--ds-offset-sm));
2769
2778
  inset-inline-start: 0;
2770
- background-color: var(--ds-color-bg-muted);
2779
+ background-color: var(--ds-color-surface-muted);
2771
2780
  border: 1px solid var(--ds-color-border);
2772
2781
  border-radius: var(--ds-radius-xl);
2773
2782
  box-shadow: var(--ds-shadow-lg);
@@ -2822,7 +2831,7 @@ hr {
2822
2831
  }
2823
2832
  .ds-datepicker__nav:hover {
2824
2833
 
2825
- background-color: var(--ds-color-bg-muted-hover);
2834
+ background-color: var(--ds-color-surface-muted-hover);
2826
2835
  color: var(--ds-color-text);
2827
2836
  }
2828
2837
  .ds-datepicker__nav:focus-visible {
@@ -2883,7 +2892,7 @@ hr {
2883
2892
  }
2884
2893
  .ds-datepicker__day:hover {
2885
2894
 
2886
- background-color: var(--ds-color-bg-muted-hover);
2895
+ background-color: var(--ds-color-surface-muted-hover);
2887
2896
  }
2888
2897
  .ds-datepicker__day:focus-visible {
2889
2898
 
@@ -2939,7 +2948,7 @@ hr {
2939
2948
  }
2940
2949
  .ds-datepicker__today:hover {
2941
2950
 
2942
- background-color: var(--ds-color-bg-muted-hover);
2951
+ background-color: var(--ds-color-surface-muted-hover);
2943
2952
  color: var(--ds-color-text);
2944
2953
  border-color: var(--ds-color-border-hover);
2945
2954
  }
@@ -2971,7 +2980,7 @@ hr {
2971
2980
  }
2972
2981
  .ds-datepicker__step:hover {
2973
2982
 
2974
- background-color: var(--ds-color-bg-muted-hover);
2983
+ background-color: var(--ds-color-surface-muted-hover);
2975
2984
  color: var(--ds-color-text);
2976
2985
  }
2977
2986
  .ds-datepicker__step:focus-visible {
@@ -3167,7 +3176,7 @@ hr {
3167
3176
  appearance: none;
3168
3177
  width: 100%;
3169
3178
  height: 0.375rem;
3170
- background-color: var(--ds-color-bg-muted);
3179
+ background-color: var(--ds-color-surface-muted);
3171
3180
  border-radius: var(--ds-radius-full);
3172
3181
  outline: none;
3173
3182
  cursor: pointer;
@@ -3390,7 +3399,7 @@ hr {
3390
3399
  width: 3rem;
3391
3400
  height: 3rem;
3392
3401
  border-radius: var(--ds-radius-xl);
3393
- background-color: var(--ds-color-bg-muted);
3402
+ background-color: var(--ds-color-surface-muted);
3394
3403
  color: var(--ds-color-text-secondary);
3395
3404
  transition: color var(--ds-duration-fast) var(--ds-ease-default);
3396
3405
  }
@@ -3613,7 +3622,7 @@ hr {
3613
3622
  border-radius: var(--ds-radius-full);
3614
3623
  white-space: nowrap;
3615
3624
  border: 1px solid var(--ds-color-border);
3616
- background-color: var(--ds-color-bg-muted);
3625
+ background-color: var(--ds-color-surface-muted);
3617
3626
  color: var(--ds-color-text-secondary);
3618
3627
 
3619
3628
  /* Semantic variants — subtle bg + bright text + subtle border */
@@ -3731,7 +3740,7 @@ hr {
3731
3740
  font-family: var(--ds-font-sans);
3732
3741
  line-height: var(--ds-leading-none);
3733
3742
  border-radius: var(--ds-radius-full);
3734
- background-color: var(--ds-color-bg-muted);
3743
+ background-color: var(--ds-color-surface-muted);
3735
3744
  border: 1px solid var(--ds-color-border);
3736
3745
  color: var(--ds-color-text-secondary);
3737
3746
  white-space: nowrap;
@@ -3793,37 +3802,37 @@ hr {
3793
3802
  }
3794
3803
  .ds-tag--primary {
3795
3804
 
3796
- background-color: var(--ds-color-interactive-subtle, var(--ds-color-bg-muted));
3805
+ background-color: var(--ds-color-interactive-subtle, var(--ds-color-surface-muted));
3797
3806
  color: var(--ds-color-interactive);
3798
3807
  border-color: var(--ds-color-interactive-border, var(--ds-color-interactive));
3799
3808
  }
3800
3809
  .ds-tag--success {
3801
3810
 
3802
- background-color: var(--ds-color-success-subtle, var(--ds-color-bg-muted));
3811
+ background-color: var(--ds-color-success-subtle, var(--ds-color-surface-muted));
3803
3812
  color: var(--ds-color-success);
3804
3813
  border-color: var(--ds-color-success-border, var(--ds-color-success));
3805
3814
  }
3806
3815
  .ds-tag--warning {
3807
3816
 
3808
- background-color: var(--ds-color-warning-subtle, var(--ds-color-bg-muted));
3817
+ background-color: var(--ds-color-warning-subtle, var(--ds-color-surface-muted));
3809
3818
  color: var(--ds-color-warning);
3810
3819
  border-color: var(--ds-color-warning-border, var(--ds-color-warning));
3811
3820
  }
3812
3821
  .ds-tag--error {
3813
3822
 
3814
- background-color: var(--ds-color-error-subtle, var(--ds-color-bg-muted));
3823
+ background-color: var(--ds-color-error-subtle, var(--ds-color-surface-muted));
3815
3824
  color: var(--ds-color-error);
3816
3825
  border-color: var(--ds-color-error-border, var(--ds-color-error));
3817
3826
  }
3818
3827
  .ds-tag--info {
3819
3828
 
3820
- background-color: var(--ds-color-info-subtle, var(--ds-color-bg-muted));
3829
+ background-color: var(--ds-color-info-subtle, var(--ds-color-surface-muted));
3821
3830
  color: var(--ds-color-info);
3822
3831
  border-color: var(--ds-color-info-border, var(--ds-color-info));
3823
3832
  }
3824
3833
  .ds-tag--purple {
3825
3834
 
3826
- background-color: var(--ds-color-accent-purple-subtle, var(--ds-color-bg-muted));
3835
+ background-color: var(--ds-color-accent-purple-subtle, var(--ds-color-surface-muted));
3827
3836
  color: var(--ds-color-accent-purple, var(--ds-color-interactive));
3828
3837
  border-color: var(--ds-color-accent-purple-border, var(--ds-color-accent-purple, var(--ds-color-interactive)));
3829
3838
  }
@@ -3937,7 +3946,7 @@ hr {
3937
3946
  font-size: var(--ds-text-xs);
3938
3947
  font-family: inherit;
3939
3948
  color: var(--ds-color-text-secondary);
3940
- background: var(--ds-color-bg-muted);
3949
+ background: var(--ds-color-surface-muted);
3941
3950
  border: 1px solid var(--ds-color-border);
3942
3951
  border-radius: var(--ds-radius-full);
3943
3952
  white-space: nowrap;
@@ -4010,7 +4019,7 @@ hr {
4010
4019
  width: var(--ds-size-3);
4011
4020
  height: var(--ds-size-3);
4012
4021
  border-radius: var(--ds-radius-full);
4013
- background-color: var(--ds-color-bg-muted);
4022
+ background-color: var(--ds-color-surface-muted);
4014
4023
  color: var(--ds-color-text-secondary);
4015
4024
  font-family: var(--ds-font-sans);
4016
4025
  font-size: var(--ds-text-sm);
@@ -4189,7 +4198,7 @@ hr {
4189
4198
  display: flex;
4190
4199
  align-items: center;
4191
4200
  justify-content: center;
4192
- background-color: var(--ds-color-bg-muted);
4201
+ background-color: var(--ds-color-surface-muted);
4193
4202
  color: var(--ds-color-text-secondary);
4194
4203
  }
4195
4204
 
@@ -4215,6 +4224,7 @@ hr {
4215
4224
  <th class="ds-table__cell--checkbox"><input class="ds-checkbox" /></th>
4216
4225
  <th><button class="ds-table__sort ds-table__sort--asc">Name</button></th>
4217
4226
  <th>Email</th>
4227
+ <th class="ds-table__cell--truncate">City</th>
4218
4228
  <th class="ds-table__cell--shrink">Actions</th>
4219
4229
  </tr>
4220
4230
  </thead>
@@ -4358,6 +4368,16 @@ hr {
4358
4368
 
4359
4369
  /* --- Special cell types --- */
4360
4370
 
4371
+ /* Truncate cell: long text with ellipsis (city names, categories, etc.)
4372
+ Default max-width is 12rem. Override per cell via inline --_cell-max. */
4373
+ .ds-table__cell--truncate {
4374
+ --_cell-max: 12rem;
4375
+ max-width: var(--_cell-max);
4376
+ overflow: hidden;
4377
+ text-overflow: ellipsis;
4378
+ white-space: nowrap;
4379
+ }
4380
+
4361
4381
  /* Shrink cell: action buttons, icons, checkboxes */
4362
4382
  .ds-table__cell--shrink {
4363
4383
  width: 1%;
@@ -4403,7 +4423,7 @@ hr {
4403
4423
  inset-inline-end: var(--ds-space-4);
4404
4424
  height: 0.75rem;
4405
4425
  transform: translateY(-50%);
4406
- background: var(--ds-color-bg-muted);
4426
+ background: var(--ds-color-surface-muted);
4407
4427
  border-radius: var(--ds-radius-sm);
4408
4428
  animation: ds-table-skeleton-pulse 1.5s ease-in-out infinite;
4409
4429
  }
@@ -4641,7 +4661,7 @@ hr {
4641
4661
  }
4642
4662
  .ds-description-list--striped .ds-description-list__item:nth-child(odd) {
4643
4663
 
4644
- background-color: var(--ds-color-bg-subtle);
4664
+ background-color: var(--ds-color-surface);
4645
4665
  padding-inline: var(--ds-space-3);
4646
4666
  border-radius: var(--ds-radius-md);
4647
4667
  }
@@ -4754,7 +4774,7 @@ hr {
4754
4774
  width: 1rem;
4755
4775
  height: 1rem;
4756
4776
  border-radius: var(--ds-radius-full);
4757
- background-color: var(--ds-color-bg-muted);
4777
+ background-color: var(--ds-color-surface-muted);
4758
4778
  border: 2px solid var(--ds-color-border);
4759
4779
  z-index: 1;
4760
4780
  }
@@ -4865,7 +4885,7 @@ hr {
4865
4885
 
4866
4886
  width: 100%;
4867
4887
  height: 0.5rem;
4868
- background-color: var(--ds-color-bg-muted);
4888
+ background-color: var(--ds-color-surface-muted);
4869
4889
  border-radius: var(--ds-radius-full);
4870
4890
  overflow: hidden;
4871
4891
 
@@ -5082,7 +5102,7 @@ hr {
5082
5102
  .ds-skeleton {
5083
5103
 
5084
5104
  display: block;
5085
- background-color: var(--ds-color-bg-muted);
5105
+ background-color: var(--ds-color-surface-muted);
5086
5106
  border-radius: var(--ds-radius-md);
5087
5107
  animation: ds-skeleton-pulse var(--ds-duration-slower) var(--ds-ease-default) infinite;
5088
5108
 
@@ -5639,7 +5659,7 @@ hr {
5639
5659
  .ds-sidebar__link--active:hover {
5640
5660
 
5641
5661
  color: var(--ds-color-text);
5642
- background-color: var(--ds-color-bg-elevated);
5662
+ background-color: var(--ds-color-surface-elevated);
5643
5663
  }
5644
5664
 
5645
5665
 
@@ -5812,7 +5832,7 @@ hr {
5812
5832
 
5813
5833
  border-block-end: none;
5814
5834
  gap: var(--ds-space-1);
5815
- background-color: var(--ds-color-bg-muted);
5835
+ background-color: var(--ds-color-surface-muted);
5816
5836
  border-radius: var(--ds-radius-lg);
5817
5837
  padding: var(--ds-space-1);
5818
5838
 
@@ -5840,7 +5860,7 @@ hr {
5840
5860
  .ds-tabs--pills .ds-tab--active,
5841
5861
  .ds-tabs--pills .ds-tab--active:hover {
5842
5862
 
5843
- background-color: var(--ds-color-bg-elevated);
5863
+ background-color: var(--ds-color-surface-elevated);
5844
5864
  color: var(--ds-color-text);
5845
5865
  box-shadow: var(--ds-shadow-sm);
5846
5866
  border-block-end: none;
@@ -6017,14 +6037,14 @@ hr {
6017
6037
  font-weight: var(--ds-weight-medium);
6018
6038
  line-height: var(--ds-leading-snug);
6019
6039
  color: var(--ds-color-text-tertiary);
6020
- background-color: var(--ds-color-bg-muted);
6040
+ background-color: var(--ds-color-surface-muted);
6021
6041
  border-radius: var(--ds-radius-full);
6022
6042
  min-width: 1.25rem;
6023
6043
  }
6024
6044
  .ds-tab--active .ds-tab__count {
6025
6045
 
6026
6046
  color: var(--ds-color-text-secondary);
6027
- background-color: var(--ds-color-bg-elevated);
6047
+ background-color: var(--ds-color-surface-elevated);
6028
6048
  }
6029
6049
 
6030
6050
 
@@ -6264,7 +6284,7 @@ hr {
6264
6284
  align-items: center;
6265
6285
  gap: var(--ds-space-0-5);
6266
6286
  padding: var(--ds-space-0-5);
6267
- background-color: var(--ds-color-bg-muted);
6287
+ background-color: var(--ds-color-surface-muted);
6268
6288
  border-radius: var(--ds-radius-lg);
6269
6289
  border: 1px solid var(--ds-color-border-subtle);
6270
6290
 
@@ -6317,7 +6337,7 @@ hr {
6317
6337
  .ds-segmented__item--active,
6318
6338
  .ds-segmented__item--active:hover {
6319
6339
 
6320
- background-color: var(--ds-color-bg-elevated);
6340
+ background-color: var(--ds-color-surface-elevated);
6321
6341
  color: var(--ds-color-text);
6322
6342
  box-shadow: var(--ds-shadow-sm);
6323
6343
  }
@@ -6640,7 +6660,7 @@ hr {
6640
6660
  .ds-toolbar__btn--active:hover {
6641
6661
 
6642
6662
  color: var(--ds-color-text);
6643
- background: var(--ds-color-bg-elevated);
6663
+ background: var(--ds-color-surface-elevated);
6644
6664
  border-color: var(--ds-color-border);
6645
6665
  }
6646
6666
  .ds-toolbar__badge {
@@ -6704,7 +6724,7 @@ hr {
6704
6724
  }
6705
6725
  .ds-toolbar__segmented-btn--active {
6706
6726
 
6707
- background: var(--ds-color-bg-elevated);
6727
+ background: var(--ds-color-surface-elevated);
6708
6728
  color: var(--ds-color-text);
6709
6729
  }
6710
6730
 
@@ -7967,7 +7987,7 @@ hr {
7967
7987
  display: flex;
7968
7988
  flex-direction: column;
7969
7989
  padding-block: var(--ds-space-1-5);
7970
- background-color: var(--ds-color-bg-muted);
7990
+ background-color: var(--ds-color-surface-muted);
7971
7991
  border: 1px solid var(--ds-color-border);
7972
7992
  border-radius: var(--ds-radius-xl);
7973
7993
  box-shadow: var(--ds-shadow-lg);
@@ -8055,7 +8075,7 @@ hr {
8055
8075
  }
8056
8076
  .ds-dropdown__item:hover {
8057
8077
 
8058
- background-color: var(--ds-color-bg-muted-hover);
8078
+ background-color: var(--ds-color-surface-muted-hover);
8059
8079
  color: var(--ds-color-text);
8060
8080
  }
8061
8081
  .ds-dropdown__item:focus-visible {
@@ -8067,7 +8087,7 @@ hr {
8067
8087
  .ds-dropdown__item--active,
8068
8088
  .ds-dropdown__item--active:hover {
8069
8089
 
8070
- background-color: var(--ds-color-bg-elevated);
8090
+ background-color: var(--ds-color-surface-elevated);
8071
8091
  color: var(--ds-color-text);
8072
8092
  }
8073
8093
  .ds-dropdown__item--danger:hover {
@@ -8170,7 +8190,7 @@ hr {
8170
8190
 
8171
8191
  position: absolute;
8172
8192
  z-index: var(--ds-z-dropdown);
8173
- background-color: var(--ds-color-bg-muted);
8193
+ background-color: var(--ds-color-surface-muted);
8174
8194
  border: 1px solid var(--ds-color-border);
8175
8195
  border-radius: var(--ds-radius-xl);
8176
8196
  box-shadow: var(--ds-shadow-lg);
@@ -8344,7 +8364,7 @@ hr {
8344
8364
  height: 4px;
8345
8365
  margin: var(--ds-space-2) auto;
8346
8366
  border-radius: var(--ds-radius-full);
8347
- background-color: var(--ds-color-bg-muted);
8367
+ background-color: var(--ds-color-surface-muted);
8348
8368
  flex-shrink: 0;
8349
8369
  }
8350
8370
  .ds-bottom-sheet__header {
@@ -8538,7 +8558,7 @@ hr {
8538
8558
  }
8539
8559
  .ds-command__content {
8540
8560
 
8541
- background-color: var(--ds-color-bg-muted);
8561
+ background-color: var(--ds-color-surface-muted);
8542
8562
  border: 1px solid var(--ds-color-border);
8543
8563
  border-radius: var(--ds-radius-xl);
8544
8564
  box-shadow: var(--ds-shadow-lg);
@@ -8620,13 +8640,13 @@ hr {
8620
8640
  }
8621
8641
  .ds-command__item:hover {
8622
8642
 
8623
- background-color: var(--ds-color-bg-muted-hover);
8643
+ background-color: var(--ds-color-surface-muted-hover);
8624
8644
  color: var(--ds-color-text);
8625
8645
  }
8626
8646
  .ds-command__item--active,
8627
8647
  .ds-command__item--active:hover {
8628
8648
 
8629
- background-color: var(--ds-color-bg-elevated);
8649
+ background-color: var(--ds-color-surface-elevated);
8630
8650
  color: var(--ds-color-text);
8631
8651
 
8632
8652
 
@@ -8767,7 +8787,7 @@ hr {
8767
8787
  }
8768
8788
  .ds-card--elevated {
8769
8789
 
8770
- background-color: var(--ds-color-bg-muted);
8790
+ background-color: var(--ds-color-surface-muted);
8771
8791
  box-shadow: var(--ds-shadow-lg);
8772
8792
  }
8773
8793
  .ds-card--hover:hover {
@@ -8813,7 +8833,7 @@ hr {
8813
8833
  width: 100%;
8814
8834
  aspect-ratio: 16/10;
8815
8835
  object-fit: cover;
8816
- background-color: var(--ds-color-bg-muted);
8836
+ background-color: var(--ds-color-surface-muted);
8817
8837
 
8818
8838
 
8819
8839
 
@@ -9418,7 +9438,7 @@ hr {
9418
9438
  position: relative;
9419
9439
  overflow: hidden;
9420
9440
  border-radius: var(--ds-radius-xl);
9421
- background-color: var(--ds-color-bg-muted);
9441
+ background-color: var(--ds-color-surface-muted);
9422
9442
  cursor: pointer;
9423
9443
 
9424
9444
 
@@ -9454,7 +9474,7 @@ hr {
9454
9474
  border-radius: var(--ds-radius-md);
9455
9475
  overflow: hidden;
9456
9476
  cursor: pointer;
9457
- background: var(--ds-color-bg-muted);
9477
+ background: var(--ds-color-surface-muted);
9458
9478
  transition:
9459
9479
  border-color var(--ds-duration-fast) var(--ds-ease-default),
9460
9480
  opacity var(--ds-duration-fast) var(--ds-ease-default);
@@ -9498,7 +9518,7 @@ hr {
9498
9518
  height: 4rem;
9499
9519
  border: 1px solid var(--ds-color-border);
9500
9520
  border-radius: var(--ds-radius-md);
9501
- background-color: var(--ds-color-bg-muted);
9521
+ background-color: var(--ds-color-surface-muted);
9502
9522
  color: var(--ds-color-text-secondary);
9503
9523
  font-size: var(--ds-text-sm);
9504
9524
  font-weight: var(--ds-weight-medium);
@@ -9907,7 +9927,7 @@ hr {
9907
9927
  .ds-admin__sidebar-badge {
9908
9928
  border-radius: var(--ds-radius-md);
9909
9929
  border: 1px solid var(--ds-color-border);
9910
- background-color: var(--ds-color-bg-muted);
9930
+ background-color: var(--ds-color-surface-muted);
9911
9931
  padding: var(--ds-space-0-5) var(--ds-space-1-5);
9912
9932
  font-size: var(--ds-text-xs);
9913
9933
  font-weight: var(--ds-weight-medium);
@@ -9945,7 +9965,7 @@ hr {
9945
9965
 
9946
9966
  .ds-admin__nav-item--active,
9947
9967
  .ds-admin__nav-item--active:hover {
9948
- background-color: var(--ds-color-bg-elevated);
9968
+ background-color: var(--ds-color-surface-elevated);
9949
9969
  color: var(--ds-color-text);
9950
9970
  }
9951
9971
 
@@ -9995,7 +10015,7 @@ hr {
9995
10015
  }
9996
10016
 
9997
10017
  .ds-admin__subnav-item--active {
9998
- background-color: var(--ds-color-bg-elevated);
10018
+ background-color: var(--ds-color-surface-elevated);
9999
10019
  color: var(--ds-color-text);
10000
10020
  }
10001
10021
 
@@ -10229,13 +10249,13 @@ hr {
10229
10249
  .ds-prose-block code {
10230
10250
  font-family: var(--ds-font-mono);
10231
10251
  font-size: var(--ds-text-sm);
10232
- background-color: var(--ds-color-bg-muted);
10252
+ background-color: var(--ds-color-surface-muted);
10233
10253
  padding: 0.125em 0.375em;
10234
10254
  border-radius: var(--ds-radius-sm);
10235
10255
  }
10236
10256
 
10237
10257
  .ds-prose-block pre {
10238
- background-color: var(--ds-color-bg-muted);
10258
+ background-color: var(--ds-color-surface-muted);
10239
10259
  padding: var(--ds-space-4);
10240
10260
  border-radius: var(--ds-radius-lg);
10241
10261
  overflow-x: auto;
@@ -10287,6 +10307,153 @@ hr {
10287
10307
  margin-block-end: 1em;
10288
10308
  }
10289
10309
 
10310
+ /* ==========================================================================
10311
+ Editorial long-form typography (promoted from esys blog — 12 Apr 2026)
10312
+
10313
+ Three classes that together make an article page look like a magazine
10314
+ instead of a dashboard. They fill the gap between .ds-hero-title (too
10315
+ big for articles) and .ds-prose-block (whose h2 is 4xl — too heavy for
10316
+ reading rhythm).
10317
+
10318
+ Usage:
10319
+ <h1 class="ds-editorial-title">The title of the article</h1>
10320
+ <p class="ds-editorial-lede">The lead paragraph, larger than body.</p>
10321
+ <div class="ds-editorial-body">
10322
+ <h2>Section</h2>
10323
+ <p>Body text at 17px, line-height loose, with proper h2/h3 scale.</p>
10324
+ </div>
10325
+
10326
+ Designed for: blog posts, long-form articles, editorial landing, magazine
10327
+ layouts. NOT for admin UI, dashboards, or functional copy — use
10328
+ .ds-heading-ui / .ds-section-title / .ds-prose-block for those.
10329
+ ========================================================================== */
10330
+
10331
+ .ds-editorial-title {
10332
+ font-family: var(--ds-font-display);
10333
+ font-size: var(--ds-text-editorial-title);
10334
+ font-weight: var(--ds-font-display-weight);
10335
+ line-height: var(--ds-leading-tight);
10336
+ letter-spacing: var(--ds-tracking-tight);
10337
+ color: var(--ds-color-text);
10338
+ margin: 0;
10339
+ }
10340
+
10341
+ .ds-editorial-lede {
10342
+ font-family: var(--ds-font-sans);
10343
+ font-size: var(--ds-text-editorial-lede);
10344
+ line-height: var(--ds-leading-normal);
10345
+ color: var(--ds-color-text-secondary);
10346
+ margin: 0;
10347
+ max-width: 600px;
10348
+ }
10349
+
10350
+ .ds-editorial-body {
10351
+ color: var(--ds-color-text);
10352
+ font-size: var(--ds-text-editorial-body);
10353
+ line-height: var(--ds-leading-loose);
10354
+ }
10355
+
10356
+ .ds-editorial-body > * + * {
10357
+ margin-block-start: var(--ds-space-4);
10358
+ }
10359
+
10360
+ .ds-editorial-body h2 {
10361
+ font-family: var(--ds-font-display);
10362
+ font-size: var(--ds-text-2xl);
10363
+ font-weight: var(--ds-font-display-weight);
10364
+ line-height: var(--ds-leading-tight);
10365
+ letter-spacing: var(--ds-tracking-tight);
10366
+ color: var(--ds-color-text);
10367
+ margin-block-start: var(--ds-space-8);
10368
+ margin-block-end: 0;
10369
+ }
10370
+
10371
+ .ds-editorial-body h3 {
10372
+ font-family: var(--ds-font-display);
10373
+ font-size: var(--ds-text-xl);
10374
+ font-weight: var(--ds-font-display-weight);
10375
+ line-height: var(--ds-leading-snug);
10376
+ letter-spacing: var(--ds-tracking-tight);
10377
+ color: var(--ds-color-text);
10378
+ margin-block-start: var(--ds-space-6);
10379
+ margin-block-end: 0;
10380
+ }
10381
+
10382
+ .ds-editorial-body h4 {
10383
+ font-family: var(--ds-font-display);
10384
+ font-size: var(--ds-text-lg);
10385
+ font-weight: var(--ds-font-display-weight);
10386
+ color: var(--ds-color-text);
10387
+ margin-block-start: var(--ds-space-5);
10388
+ margin-block-end: 0;
10389
+ }
10390
+
10391
+ .ds-editorial-body a {
10392
+ color: var(--ds-color-interactive);
10393
+ text-decoration: underline;
10394
+ text-underline-offset: 2px;
10395
+ }
10396
+
10397
+ .ds-editorial-body a:hover {
10398
+ text-decoration: none;
10399
+ }
10400
+
10401
+ .ds-editorial-body strong {
10402
+ color: var(--ds-color-text);
10403
+ font-weight: var(--ds-weight-semibold);
10404
+ }
10405
+
10406
+ .ds-editorial-body ul,
10407
+ .ds-editorial-body ol {
10408
+ padding-inline-start: var(--ds-space-6);
10409
+ }
10410
+
10411
+ .ds-editorial-body ul { list-style-type: disc; }
10412
+ .ds-editorial-body ol { list-style-type: decimal; }
10413
+
10414
+ .ds-editorial-body li + li {
10415
+ margin-block-start: var(--ds-space-2);
10416
+ }
10417
+
10418
+ .ds-editorial-body blockquote {
10419
+ border-inline-start: 3px solid var(--ds-color-border-hover);
10420
+ padding-inline-start: var(--ds-space-4);
10421
+ color: var(--ds-color-text-secondary);
10422
+ font-style: italic;
10423
+ }
10424
+
10425
+ .ds-editorial-body img {
10426
+ max-width: 100%;
10427
+ height: auto;
10428
+ border-radius: var(--ds-radius-md);
10429
+ }
10430
+
10431
+ .ds-editorial-body hr {
10432
+ border: none;
10433
+ border-block-start: 1px solid var(--ds-color-border);
10434
+ margin-block: var(--ds-space-6);
10435
+ }
10436
+
10437
+ .ds-editorial-body pre {
10438
+ background: var(--ds-color-surface-muted);
10439
+ padding: var(--ds-space-4);
10440
+ border-radius: var(--ds-radius-md);
10441
+ overflow-x: auto;
10442
+ }
10443
+
10444
+ .ds-editorial-body code {
10445
+ background: var(--ds-color-surface-muted);
10446
+ padding: 0.125em 0.375em;
10447
+ border-radius: var(--ds-radius-sm);
10448
+ font-family: var(--ds-font-mono);
10449
+ font-size: 0.9em;
10450
+ }
10451
+
10452
+ .ds-editorial-body pre code {
10453
+ background: transparent;
10454
+ padding: 0;
10455
+ }
10456
+
10290
10457
 
10291
10458
  /* === Action — Trigger operations and commands === */
10292
10459
  /* ==========================================================================
@@ -10386,7 +10553,7 @@ hr {
10386
10553
  }
10387
10554
  .ds-btn--secondary {
10388
10555
 
10389
- background-color: var(--ds-color-bg-muted);
10556
+ background-color: var(--ds-color-surface-muted);
10390
10557
  color: var(--ds-color-text);
10391
10558
  border-color: var(--ds-color-border);
10392
10559
 
@@ -10395,7 +10562,7 @@ hr {
10395
10562
  .ds-btn--secondary:hover {
10396
10563
 
10397
10564
  border-color: var(--ds-color-border-hover);
10398
- background-color: var(--ds-color-bg-muted-hover);
10565
+ background-color: var(--ds-color-surface-muted-hover);
10399
10566
  opacity: 1;
10400
10567
  }
10401
10568
  .ds-btn--outline {
@@ -10883,7 +11050,7 @@ hr {
10883
11050
  padding: var(--ds-space-0-5) var(--ds-space-1-5);
10884
11051
  font-family: var(--ds-font-mono);
10885
11052
  font-size: var(--ds-text-xs);
10886
- background-color: var(--ds-color-bg-muted);
11053
+ background-color: var(--ds-color-surface-muted);
10887
11054
  border: 1px solid var(--ds-color-border);
10888
11055
  border-block-end-width: 2px;
10889
11056
  border-radius: var(--ds-radius-sm);
@@ -11016,7 +11183,7 @@ hr {
11016
11183
  font-family: inherit;
11017
11184
  line-height: 1;
11018
11185
  color: var(--ds-color-text-tertiary);
11019
- background: var(--ds-color-bg-muted);
11186
+ background: var(--ds-color-surface-muted);
11020
11187
  border: 1px solid var(--ds-color-border);
11021
11188
  border-radius: var(--ds-radius-sm);
11022
11189
  pointer-events: none;
@@ -11053,7 +11220,7 @@ hr {
11053
11220
  position: fixed;
11054
11221
  max-height: min(22rem, calc(100dvh - 5rem));
11055
11222
  overflow-y: auto;
11056
- background: var(--ds-color-bg-muted);
11223
+ background: var(--ds-color-surface-muted);
11057
11224
  border: 1px solid var(--ds-color-border);
11058
11225
  border-radius: var(--ds-radius-lg);
11059
11226
  box-shadow: var(--ds-shadow-lg);
@@ -11103,7 +11270,7 @@ hr {
11103
11270
 
11104
11271
  .ds-search__result--active,
11105
11272
  .ds-search__result--active:hover {
11106
- background: var(--ds-color-bg-elevated);
11273
+ background: var(--ds-color-surface-elevated);
11107
11274
  }
11108
11275
 
11109
11276
  .ds-search__result:focus-visible {
@@ -11231,7 +11398,7 @@ hr {
11231
11398
  border-inline-start: none;
11232
11399
  border-inline-end: none;
11233
11400
  max-height: calc(100dvh - var(--ds-search-bar-height, 3.5rem));
11234
- background: var(--ds-color-bg-muted);
11401
+ background: var(--ds-color-surface-muted);
11235
11402
  backdrop-filter: blur(var(--ds-blur-lg)) saturate(1.5);
11236
11403
  -webkit-backdrop-filter: blur(var(--ds-blur-lg)) saturate(1.5);
11237
11404
  }
@@ -12007,11 +12174,11 @@ a:hover .ds-sortable__handle,
12007
12174
  /* --- Background Color --- */
12008
12175
  .ds-bg-base { background-color: var(--ds-color-bg); }
12009
12176
  .ds-bg-surface { background-color: var(--ds-color-surface); }
12010
- .ds-bg-subtle { background-color: var(--ds-color-bg-subtle); }
12011
- .ds-bg-elevated { background-color: var(--ds-color-bg-elevated); }
12177
+ .ds-bg-subtle { background-color: var(--ds-color-surface); }
12178
+ .ds-bg-elevated { background-color: var(--ds-color-surface-elevated); }
12012
12179
  .ds-bg-inverted { background-color: var(--ds-color-inverted); color: var(--ds-color-on-inverted); }
12013
12180
  .ds-bg-hover { background-color: var(--ds-color-surface-hover); }
12014
- .ds-bg-muted { background-color: var(--ds-color-bg-muted); }
12181
+ .ds-bg-muted { background-color: var(--ds-color-surface-muted); }
12015
12182
  .ds-bg-overlay { background-color: var(--ds-color-overlay); }
12016
12183
  .ds-bg-nav { background-color: var(--ds-color-nav-bg); }
12017
12184
 
@@ -12462,9 +12629,9 @@ a:hover .ds-sortable__handle,
12462
12629
 
12463
12630
  /* --- Hover: Background --- */
12464
12631
  .hover\:ds-bg-base:hover { background-color: var(--ds-color-bg); }
12465
- .hover\:ds-bg-subtle:hover { background-color: var(--ds-color-bg-subtle); }
12466
- .hover\:ds-bg-muted:hover { background-color: var(--ds-color-bg-muted); }
12467
- .hover\:ds-bg-elevated:hover { background-color: var(--ds-color-bg-elevated); }
12632
+ .hover\:ds-bg-subtle:hover { background-color: var(--ds-color-surface); }
12633
+ .hover\:ds-bg-muted:hover { background-color: var(--ds-color-surface-muted); }
12634
+ .hover\:ds-bg-elevated:hover { background-color: var(--ds-color-surface-elevated); }
12468
12635
  .hover\:ds-bg-surface:hover { background-color: var(--ds-color-surface); }
12469
12636
  .hover\:ds-bg-hover:hover { background-color: var(--ds-color-surface-hover); }
12470
12637
  .hover\:ds-bg-inverted:hover { background-color: var(--ds-color-inverted); }
@@ -12543,8 +12710,8 @@ a:hover .ds-sortable__handle,
12543
12710
  ========================================================================== */
12544
12711
 
12545
12712
  .active\:ds-bg-hover:active { background-color: var(--ds-color-surface-hover); }
12546
- .active\:ds-bg-muted:active { background-color: var(--ds-color-bg-muted); }
12547
- .active\:ds-bg-elevated:active { background-color: var(--ds-color-bg-elevated); }
12713
+ .active\:ds-bg-muted:active { background-color: var(--ds-color-surface-muted); }
12714
+ .active\:ds-bg-elevated:active { background-color: var(--ds-color-surface-elevated); }
12548
12715
  .active\:ds-scale-95:active { transform: scale(0.95); }
12549
12716
  .active\:ds-scale-98:active { transform: scale(0.98); }
12550
12717
 
@@ -12562,7 +12729,7 @@ a:hover .ds-sortable__handle,
12562
12729
  .disabled\:ds-cursor-not-allowed[aria-disabled="true"] { cursor: not-allowed; }
12563
12730
 
12564
12731
  .disabled\:ds-bg-subtle:disabled,
12565
- .disabled\:ds-bg-subtle[aria-disabled="true"] { background-color: var(--ds-color-bg-subtle); }
12732
+ .disabled\:ds-bg-subtle[aria-disabled="true"] { background-color: var(--ds-color-surface); }
12566
12733
 
12567
12734
  .disabled\:ds-pointer-events-none:disabled,
12568
12735
  .disabled\:ds-pointer-events-none[aria-disabled="true"] { pointer-events: none; }