@digiko-npm/designsystem 0.9.42 → 0.9.43

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 +232 -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 +1 -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.42 */
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
 
@@ -4403,7 +4412,7 @@ hr {
4403
4412
  inset-inline-end: var(--ds-space-4);
4404
4413
  height: 0.75rem;
4405
4414
  transform: translateY(-50%);
4406
- background: var(--ds-color-bg-muted);
4415
+ background: var(--ds-color-surface-muted);
4407
4416
  border-radius: var(--ds-radius-sm);
4408
4417
  animation: ds-table-skeleton-pulse 1.5s ease-in-out infinite;
4409
4418
  }
@@ -4641,7 +4650,7 @@ hr {
4641
4650
  }
4642
4651
  .ds-description-list--striped .ds-description-list__item:nth-child(odd) {
4643
4652
 
4644
- background-color: var(--ds-color-bg-subtle);
4653
+ background-color: var(--ds-color-surface);
4645
4654
  padding-inline: var(--ds-space-3);
4646
4655
  border-radius: var(--ds-radius-md);
4647
4656
  }
@@ -4754,7 +4763,7 @@ hr {
4754
4763
  width: 1rem;
4755
4764
  height: 1rem;
4756
4765
  border-radius: var(--ds-radius-full);
4757
- background-color: var(--ds-color-bg-muted);
4766
+ background-color: var(--ds-color-surface-muted);
4758
4767
  border: 2px solid var(--ds-color-border);
4759
4768
  z-index: 1;
4760
4769
  }
@@ -4865,7 +4874,7 @@ hr {
4865
4874
 
4866
4875
  width: 100%;
4867
4876
  height: 0.5rem;
4868
- background-color: var(--ds-color-bg-muted);
4877
+ background-color: var(--ds-color-surface-muted);
4869
4878
  border-radius: var(--ds-radius-full);
4870
4879
  overflow: hidden;
4871
4880
 
@@ -5082,7 +5091,7 @@ hr {
5082
5091
  .ds-skeleton {
5083
5092
 
5084
5093
  display: block;
5085
- background-color: var(--ds-color-bg-muted);
5094
+ background-color: var(--ds-color-surface-muted);
5086
5095
  border-radius: var(--ds-radius-md);
5087
5096
  animation: ds-skeleton-pulse var(--ds-duration-slower) var(--ds-ease-default) infinite;
5088
5097
 
@@ -5639,7 +5648,7 @@ hr {
5639
5648
  .ds-sidebar__link--active:hover {
5640
5649
 
5641
5650
  color: var(--ds-color-text);
5642
- background-color: var(--ds-color-bg-elevated);
5651
+ background-color: var(--ds-color-surface-elevated);
5643
5652
  }
5644
5653
 
5645
5654
 
@@ -5812,7 +5821,7 @@ hr {
5812
5821
 
5813
5822
  border-block-end: none;
5814
5823
  gap: var(--ds-space-1);
5815
- background-color: var(--ds-color-bg-muted);
5824
+ background-color: var(--ds-color-surface-muted);
5816
5825
  border-radius: var(--ds-radius-lg);
5817
5826
  padding: var(--ds-space-1);
5818
5827
 
@@ -5840,7 +5849,7 @@ hr {
5840
5849
  .ds-tabs--pills .ds-tab--active,
5841
5850
  .ds-tabs--pills .ds-tab--active:hover {
5842
5851
 
5843
- background-color: var(--ds-color-bg-elevated);
5852
+ background-color: var(--ds-color-surface-elevated);
5844
5853
  color: var(--ds-color-text);
5845
5854
  box-shadow: var(--ds-shadow-sm);
5846
5855
  border-block-end: none;
@@ -6017,14 +6026,14 @@ hr {
6017
6026
  font-weight: var(--ds-weight-medium);
6018
6027
  line-height: var(--ds-leading-snug);
6019
6028
  color: var(--ds-color-text-tertiary);
6020
- background-color: var(--ds-color-bg-muted);
6029
+ background-color: var(--ds-color-surface-muted);
6021
6030
  border-radius: var(--ds-radius-full);
6022
6031
  min-width: 1.25rem;
6023
6032
  }
6024
6033
  .ds-tab--active .ds-tab__count {
6025
6034
 
6026
6035
  color: var(--ds-color-text-secondary);
6027
- background-color: var(--ds-color-bg-elevated);
6036
+ background-color: var(--ds-color-surface-elevated);
6028
6037
  }
6029
6038
 
6030
6039
 
@@ -6264,7 +6273,7 @@ hr {
6264
6273
  align-items: center;
6265
6274
  gap: var(--ds-space-0-5);
6266
6275
  padding: var(--ds-space-0-5);
6267
- background-color: var(--ds-color-bg-muted);
6276
+ background-color: var(--ds-color-surface-muted);
6268
6277
  border-radius: var(--ds-radius-lg);
6269
6278
  border: 1px solid var(--ds-color-border-subtle);
6270
6279
 
@@ -6317,7 +6326,7 @@ hr {
6317
6326
  .ds-segmented__item--active,
6318
6327
  .ds-segmented__item--active:hover {
6319
6328
 
6320
- background-color: var(--ds-color-bg-elevated);
6329
+ background-color: var(--ds-color-surface-elevated);
6321
6330
  color: var(--ds-color-text);
6322
6331
  box-shadow: var(--ds-shadow-sm);
6323
6332
  }
@@ -6640,7 +6649,7 @@ hr {
6640
6649
  .ds-toolbar__btn--active:hover {
6641
6650
 
6642
6651
  color: var(--ds-color-text);
6643
- background: var(--ds-color-bg-elevated);
6652
+ background: var(--ds-color-surface-elevated);
6644
6653
  border-color: var(--ds-color-border);
6645
6654
  }
6646
6655
  .ds-toolbar__badge {
@@ -6704,7 +6713,7 @@ hr {
6704
6713
  }
6705
6714
  .ds-toolbar__segmented-btn--active {
6706
6715
 
6707
- background: var(--ds-color-bg-elevated);
6716
+ background: var(--ds-color-surface-elevated);
6708
6717
  color: var(--ds-color-text);
6709
6718
  }
6710
6719
 
@@ -7967,7 +7976,7 @@ hr {
7967
7976
  display: flex;
7968
7977
  flex-direction: column;
7969
7978
  padding-block: var(--ds-space-1-5);
7970
- background-color: var(--ds-color-bg-muted);
7979
+ background-color: var(--ds-color-surface-muted);
7971
7980
  border: 1px solid var(--ds-color-border);
7972
7981
  border-radius: var(--ds-radius-xl);
7973
7982
  box-shadow: var(--ds-shadow-lg);
@@ -8055,7 +8064,7 @@ hr {
8055
8064
  }
8056
8065
  .ds-dropdown__item:hover {
8057
8066
 
8058
- background-color: var(--ds-color-bg-muted-hover);
8067
+ background-color: var(--ds-color-surface-muted-hover);
8059
8068
  color: var(--ds-color-text);
8060
8069
  }
8061
8070
  .ds-dropdown__item:focus-visible {
@@ -8067,7 +8076,7 @@ hr {
8067
8076
  .ds-dropdown__item--active,
8068
8077
  .ds-dropdown__item--active:hover {
8069
8078
 
8070
- background-color: var(--ds-color-bg-elevated);
8079
+ background-color: var(--ds-color-surface-elevated);
8071
8080
  color: var(--ds-color-text);
8072
8081
  }
8073
8082
  .ds-dropdown__item--danger:hover {
@@ -8170,7 +8179,7 @@ hr {
8170
8179
 
8171
8180
  position: absolute;
8172
8181
  z-index: var(--ds-z-dropdown);
8173
- background-color: var(--ds-color-bg-muted);
8182
+ background-color: var(--ds-color-surface-muted);
8174
8183
  border: 1px solid var(--ds-color-border);
8175
8184
  border-radius: var(--ds-radius-xl);
8176
8185
  box-shadow: var(--ds-shadow-lg);
@@ -8344,7 +8353,7 @@ hr {
8344
8353
  height: 4px;
8345
8354
  margin: var(--ds-space-2) auto;
8346
8355
  border-radius: var(--ds-radius-full);
8347
- background-color: var(--ds-color-bg-muted);
8356
+ background-color: var(--ds-color-surface-muted);
8348
8357
  flex-shrink: 0;
8349
8358
  }
8350
8359
  .ds-bottom-sheet__header {
@@ -8538,7 +8547,7 @@ hr {
8538
8547
  }
8539
8548
  .ds-command__content {
8540
8549
 
8541
- background-color: var(--ds-color-bg-muted);
8550
+ background-color: var(--ds-color-surface-muted);
8542
8551
  border: 1px solid var(--ds-color-border);
8543
8552
  border-radius: var(--ds-radius-xl);
8544
8553
  box-shadow: var(--ds-shadow-lg);
@@ -8620,13 +8629,13 @@ hr {
8620
8629
  }
8621
8630
  .ds-command__item:hover {
8622
8631
 
8623
- background-color: var(--ds-color-bg-muted-hover);
8632
+ background-color: var(--ds-color-surface-muted-hover);
8624
8633
  color: var(--ds-color-text);
8625
8634
  }
8626
8635
  .ds-command__item--active,
8627
8636
  .ds-command__item--active:hover {
8628
8637
 
8629
- background-color: var(--ds-color-bg-elevated);
8638
+ background-color: var(--ds-color-surface-elevated);
8630
8639
  color: var(--ds-color-text);
8631
8640
 
8632
8641
 
@@ -8767,7 +8776,7 @@ hr {
8767
8776
  }
8768
8777
  .ds-card--elevated {
8769
8778
 
8770
- background-color: var(--ds-color-bg-muted);
8779
+ background-color: var(--ds-color-surface-muted);
8771
8780
  box-shadow: var(--ds-shadow-lg);
8772
8781
  }
8773
8782
  .ds-card--hover:hover {
@@ -8813,7 +8822,7 @@ hr {
8813
8822
  width: 100%;
8814
8823
  aspect-ratio: 16/10;
8815
8824
  object-fit: cover;
8816
- background-color: var(--ds-color-bg-muted);
8825
+ background-color: var(--ds-color-surface-muted);
8817
8826
 
8818
8827
 
8819
8828
 
@@ -9418,7 +9427,7 @@ hr {
9418
9427
  position: relative;
9419
9428
  overflow: hidden;
9420
9429
  border-radius: var(--ds-radius-xl);
9421
- background-color: var(--ds-color-bg-muted);
9430
+ background-color: var(--ds-color-surface-muted);
9422
9431
  cursor: pointer;
9423
9432
 
9424
9433
 
@@ -9454,7 +9463,7 @@ hr {
9454
9463
  border-radius: var(--ds-radius-md);
9455
9464
  overflow: hidden;
9456
9465
  cursor: pointer;
9457
- background: var(--ds-color-bg-muted);
9466
+ background: var(--ds-color-surface-muted);
9458
9467
  transition:
9459
9468
  border-color var(--ds-duration-fast) var(--ds-ease-default),
9460
9469
  opacity var(--ds-duration-fast) var(--ds-ease-default);
@@ -9498,7 +9507,7 @@ hr {
9498
9507
  height: 4rem;
9499
9508
  border: 1px solid var(--ds-color-border);
9500
9509
  border-radius: var(--ds-radius-md);
9501
- background-color: var(--ds-color-bg-muted);
9510
+ background-color: var(--ds-color-surface-muted);
9502
9511
  color: var(--ds-color-text-secondary);
9503
9512
  font-size: var(--ds-text-sm);
9504
9513
  font-weight: var(--ds-weight-medium);
@@ -9907,7 +9916,7 @@ hr {
9907
9916
  .ds-admin__sidebar-badge {
9908
9917
  border-radius: var(--ds-radius-md);
9909
9918
  border: 1px solid var(--ds-color-border);
9910
- background-color: var(--ds-color-bg-muted);
9919
+ background-color: var(--ds-color-surface-muted);
9911
9920
  padding: var(--ds-space-0-5) var(--ds-space-1-5);
9912
9921
  font-size: var(--ds-text-xs);
9913
9922
  font-weight: var(--ds-weight-medium);
@@ -9945,7 +9954,7 @@ hr {
9945
9954
 
9946
9955
  .ds-admin__nav-item--active,
9947
9956
  .ds-admin__nav-item--active:hover {
9948
- background-color: var(--ds-color-bg-elevated);
9957
+ background-color: var(--ds-color-surface-elevated);
9949
9958
  color: var(--ds-color-text);
9950
9959
  }
9951
9960
 
@@ -9995,7 +10004,7 @@ hr {
9995
10004
  }
9996
10005
 
9997
10006
  .ds-admin__subnav-item--active {
9998
- background-color: var(--ds-color-bg-elevated);
10007
+ background-color: var(--ds-color-surface-elevated);
9999
10008
  color: var(--ds-color-text);
10000
10009
  }
10001
10010
 
@@ -10229,13 +10238,13 @@ hr {
10229
10238
  .ds-prose-block code {
10230
10239
  font-family: var(--ds-font-mono);
10231
10240
  font-size: var(--ds-text-sm);
10232
- background-color: var(--ds-color-bg-muted);
10241
+ background-color: var(--ds-color-surface-muted);
10233
10242
  padding: 0.125em 0.375em;
10234
10243
  border-radius: var(--ds-radius-sm);
10235
10244
  }
10236
10245
 
10237
10246
  .ds-prose-block pre {
10238
- background-color: var(--ds-color-bg-muted);
10247
+ background-color: var(--ds-color-surface-muted);
10239
10248
  padding: var(--ds-space-4);
10240
10249
  border-radius: var(--ds-radius-lg);
10241
10250
  overflow-x: auto;
@@ -10287,6 +10296,153 @@ hr {
10287
10296
  margin-block-end: 1em;
10288
10297
  }
10289
10298
 
10299
+ /* ==========================================================================
10300
+ Editorial long-form typography (promoted from esys blog — 12 Apr 2026)
10301
+
10302
+ Three classes that together make an article page look like a magazine
10303
+ instead of a dashboard. They fill the gap between .ds-hero-title (too
10304
+ big for articles) and .ds-prose-block (whose h2 is 4xl — too heavy for
10305
+ reading rhythm).
10306
+
10307
+ Usage:
10308
+ <h1 class="ds-editorial-title">The title of the article</h1>
10309
+ <p class="ds-editorial-lede">The lead paragraph, larger than body.</p>
10310
+ <div class="ds-editorial-body">
10311
+ <h2>Section</h2>
10312
+ <p>Body text at 17px, line-height loose, with proper h2/h3 scale.</p>
10313
+ </div>
10314
+
10315
+ Designed for: blog posts, long-form articles, editorial landing, magazine
10316
+ layouts. NOT for admin UI, dashboards, or functional copy — use
10317
+ .ds-heading-ui / .ds-section-title / .ds-prose-block for those.
10318
+ ========================================================================== */
10319
+
10320
+ .ds-editorial-title {
10321
+ font-family: var(--ds-font-display);
10322
+ font-size: var(--ds-text-editorial-title);
10323
+ font-weight: var(--ds-font-display-weight);
10324
+ line-height: var(--ds-leading-tight);
10325
+ letter-spacing: var(--ds-tracking-tight);
10326
+ color: var(--ds-color-text);
10327
+ margin: 0;
10328
+ }
10329
+
10330
+ .ds-editorial-lede {
10331
+ font-family: var(--ds-font-sans);
10332
+ font-size: var(--ds-text-editorial-lede);
10333
+ line-height: var(--ds-leading-normal);
10334
+ color: var(--ds-color-text-secondary);
10335
+ margin: 0;
10336
+ max-width: 600px;
10337
+ }
10338
+
10339
+ .ds-editorial-body {
10340
+ color: var(--ds-color-text);
10341
+ font-size: var(--ds-text-editorial-body);
10342
+ line-height: var(--ds-leading-loose);
10343
+ }
10344
+
10345
+ .ds-editorial-body > * + * {
10346
+ margin-block-start: var(--ds-space-4);
10347
+ }
10348
+
10349
+ .ds-editorial-body h2 {
10350
+ font-family: var(--ds-font-display);
10351
+ font-size: var(--ds-text-2xl);
10352
+ font-weight: var(--ds-font-display-weight);
10353
+ line-height: var(--ds-leading-tight);
10354
+ letter-spacing: var(--ds-tracking-tight);
10355
+ color: var(--ds-color-text);
10356
+ margin-block-start: var(--ds-space-8);
10357
+ margin-block-end: 0;
10358
+ }
10359
+
10360
+ .ds-editorial-body h3 {
10361
+ font-family: var(--ds-font-display);
10362
+ font-size: var(--ds-text-xl);
10363
+ font-weight: var(--ds-font-display-weight);
10364
+ line-height: var(--ds-leading-snug);
10365
+ letter-spacing: var(--ds-tracking-tight);
10366
+ color: var(--ds-color-text);
10367
+ margin-block-start: var(--ds-space-6);
10368
+ margin-block-end: 0;
10369
+ }
10370
+
10371
+ .ds-editorial-body h4 {
10372
+ font-family: var(--ds-font-display);
10373
+ font-size: var(--ds-text-lg);
10374
+ font-weight: var(--ds-font-display-weight);
10375
+ color: var(--ds-color-text);
10376
+ margin-block-start: var(--ds-space-5);
10377
+ margin-block-end: 0;
10378
+ }
10379
+
10380
+ .ds-editorial-body a {
10381
+ color: var(--ds-color-interactive);
10382
+ text-decoration: underline;
10383
+ text-underline-offset: 2px;
10384
+ }
10385
+
10386
+ .ds-editorial-body a:hover {
10387
+ text-decoration: none;
10388
+ }
10389
+
10390
+ .ds-editorial-body strong {
10391
+ color: var(--ds-color-text);
10392
+ font-weight: var(--ds-weight-semibold);
10393
+ }
10394
+
10395
+ .ds-editorial-body ul,
10396
+ .ds-editorial-body ol {
10397
+ padding-inline-start: var(--ds-space-6);
10398
+ }
10399
+
10400
+ .ds-editorial-body ul { list-style-type: disc; }
10401
+ .ds-editorial-body ol { list-style-type: decimal; }
10402
+
10403
+ .ds-editorial-body li + li {
10404
+ margin-block-start: var(--ds-space-2);
10405
+ }
10406
+
10407
+ .ds-editorial-body blockquote {
10408
+ border-inline-start: 3px solid var(--ds-color-border-hover);
10409
+ padding-inline-start: var(--ds-space-4);
10410
+ color: var(--ds-color-text-secondary);
10411
+ font-style: italic;
10412
+ }
10413
+
10414
+ .ds-editorial-body img {
10415
+ max-width: 100%;
10416
+ height: auto;
10417
+ border-radius: var(--ds-radius-md);
10418
+ }
10419
+
10420
+ .ds-editorial-body hr {
10421
+ border: none;
10422
+ border-block-start: 1px solid var(--ds-color-border);
10423
+ margin-block: var(--ds-space-6);
10424
+ }
10425
+
10426
+ .ds-editorial-body pre {
10427
+ background: var(--ds-color-surface-muted);
10428
+ padding: var(--ds-space-4);
10429
+ border-radius: var(--ds-radius-md);
10430
+ overflow-x: auto;
10431
+ }
10432
+
10433
+ .ds-editorial-body code {
10434
+ background: var(--ds-color-surface-muted);
10435
+ padding: 0.125em 0.375em;
10436
+ border-radius: var(--ds-radius-sm);
10437
+ font-family: var(--ds-font-mono);
10438
+ font-size: 0.9em;
10439
+ }
10440
+
10441
+ .ds-editorial-body pre code {
10442
+ background: transparent;
10443
+ padding: 0;
10444
+ }
10445
+
10290
10446
 
10291
10447
  /* === Action — Trigger operations and commands === */
10292
10448
  /* ==========================================================================
@@ -10386,7 +10542,7 @@ hr {
10386
10542
  }
10387
10543
  .ds-btn--secondary {
10388
10544
 
10389
- background-color: var(--ds-color-bg-muted);
10545
+ background-color: var(--ds-color-surface-muted);
10390
10546
  color: var(--ds-color-text);
10391
10547
  border-color: var(--ds-color-border);
10392
10548
 
@@ -10395,7 +10551,7 @@ hr {
10395
10551
  .ds-btn--secondary:hover {
10396
10552
 
10397
10553
  border-color: var(--ds-color-border-hover);
10398
- background-color: var(--ds-color-bg-muted-hover);
10554
+ background-color: var(--ds-color-surface-muted-hover);
10399
10555
  opacity: 1;
10400
10556
  }
10401
10557
  .ds-btn--outline {
@@ -10883,7 +11039,7 @@ hr {
10883
11039
  padding: var(--ds-space-0-5) var(--ds-space-1-5);
10884
11040
  font-family: var(--ds-font-mono);
10885
11041
  font-size: var(--ds-text-xs);
10886
- background-color: var(--ds-color-bg-muted);
11042
+ background-color: var(--ds-color-surface-muted);
10887
11043
  border: 1px solid var(--ds-color-border);
10888
11044
  border-block-end-width: 2px;
10889
11045
  border-radius: var(--ds-radius-sm);
@@ -11016,7 +11172,7 @@ hr {
11016
11172
  font-family: inherit;
11017
11173
  line-height: 1;
11018
11174
  color: var(--ds-color-text-tertiary);
11019
- background: var(--ds-color-bg-muted);
11175
+ background: var(--ds-color-surface-muted);
11020
11176
  border: 1px solid var(--ds-color-border);
11021
11177
  border-radius: var(--ds-radius-sm);
11022
11178
  pointer-events: none;
@@ -11053,7 +11209,7 @@ hr {
11053
11209
  position: fixed;
11054
11210
  max-height: min(22rem, calc(100dvh - 5rem));
11055
11211
  overflow-y: auto;
11056
- background: var(--ds-color-bg-muted);
11212
+ background: var(--ds-color-surface-muted);
11057
11213
  border: 1px solid var(--ds-color-border);
11058
11214
  border-radius: var(--ds-radius-lg);
11059
11215
  box-shadow: var(--ds-shadow-lg);
@@ -11103,7 +11259,7 @@ hr {
11103
11259
 
11104
11260
  .ds-search__result--active,
11105
11261
  .ds-search__result--active:hover {
11106
- background: var(--ds-color-bg-elevated);
11262
+ background: var(--ds-color-surface-elevated);
11107
11263
  }
11108
11264
 
11109
11265
  .ds-search__result:focus-visible {
@@ -11231,7 +11387,7 @@ hr {
11231
11387
  border-inline-start: none;
11232
11388
  border-inline-end: none;
11233
11389
  max-height: calc(100dvh - var(--ds-search-bar-height, 3.5rem));
11234
- background: var(--ds-color-bg-muted);
11390
+ background: var(--ds-color-surface-muted);
11235
11391
  backdrop-filter: blur(var(--ds-blur-lg)) saturate(1.5);
11236
11392
  -webkit-backdrop-filter: blur(var(--ds-blur-lg)) saturate(1.5);
11237
11393
  }
@@ -12007,11 +12163,11 @@ a:hover .ds-sortable__handle,
12007
12163
  /* --- Background Color --- */
12008
12164
  .ds-bg-base { background-color: var(--ds-color-bg); }
12009
12165
  .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); }
12166
+ .ds-bg-subtle { background-color: var(--ds-color-surface); }
12167
+ .ds-bg-elevated { background-color: var(--ds-color-surface-elevated); }
12012
12168
  .ds-bg-inverted { background-color: var(--ds-color-inverted); color: var(--ds-color-on-inverted); }
12013
12169
  .ds-bg-hover { background-color: var(--ds-color-surface-hover); }
12014
- .ds-bg-muted { background-color: var(--ds-color-bg-muted); }
12170
+ .ds-bg-muted { background-color: var(--ds-color-surface-muted); }
12015
12171
  .ds-bg-overlay { background-color: var(--ds-color-overlay); }
12016
12172
  .ds-bg-nav { background-color: var(--ds-color-nav-bg); }
12017
12173
 
@@ -12462,9 +12618,9 @@ a:hover .ds-sortable__handle,
12462
12618
 
12463
12619
  /* --- Hover: Background --- */
12464
12620
  .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); }
12621
+ .hover\:ds-bg-subtle:hover { background-color: var(--ds-color-surface); }
12622
+ .hover\:ds-bg-muted:hover { background-color: var(--ds-color-surface-muted); }
12623
+ .hover\:ds-bg-elevated:hover { background-color: var(--ds-color-surface-elevated); }
12468
12624
  .hover\:ds-bg-surface:hover { background-color: var(--ds-color-surface); }
12469
12625
  .hover\:ds-bg-hover:hover { background-color: var(--ds-color-surface-hover); }
12470
12626
  .hover\:ds-bg-inverted:hover { background-color: var(--ds-color-inverted); }
@@ -12543,8 +12699,8 @@ a:hover .ds-sortable__handle,
12543
12699
  ========================================================================== */
12544
12700
 
12545
12701
  .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); }
12702
+ .active\:ds-bg-muted:active { background-color: var(--ds-color-surface-muted); }
12703
+ .active\:ds-bg-elevated:active { background-color: var(--ds-color-surface-elevated); }
12548
12704
  .active\:ds-scale-95:active { transform: scale(0.95); }
12549
12705
  .active\:ds-scale-98:active { transform: scale(0.98); }
12550
12706
 
@@ -12562,7 +12718,7 @@ a:hover .ds-sortable__handle,
12562
12718
  .disabled\:ds-cursor-not-allowed[aria-disabled="true"] { cursor: not-allowed; }
12563
12719
 
12564
12720
  .disabled\:ds-bg-subtle:disabled,
12565
- .disabled\:ds-bg-subtle[aria-disabled="true"] { background-color: var(--ds-color-bg-subtle); }
12721
+ .disabled\:ds-bg-subtle[aria-disabled="true"] { background-color: var(--ds-color-surface); }
12566
12722
 
12567
12723
  .disabled\:ds-pointer-events-none:disabled,
12568
12724
  .disabled\:ds-pointer-events-none[aria-disabled="true"] { pointer-events: none; }