@deque/cauldron-styles 6.25.3 → 6.26.0-canary.2dbe2449

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 (2) hide show
  1. package/dist/index.css +292 -79
  2. package/package.json +1 -1
package/dist/index.css CHANGED
@@ -195,6 +195,8 @@
195
195
 
196
196
  :root {
197
197
  --workspace-background-color: #f0f2f5;
198
+ --heading-text-color: var(--header-text-color-dark);
199
+ --heading-font-family: var(--base-font-family);
198
200
  }
199
201
 
200
202
  .cauldron--theme-dark {
@@ -244,8 +246,8 @@ h4,
244
246
  h5,
245
247
  h6,
246
248
  [role='heading'] {
247
- --heading-text-color: var(--header-text-color-dark);
248
249
  color: var(--heading-text-color);
250
+ font-family: var(--heading-font-family);
249
251
  }
250
252
 
251
253
  ul {
@@ -376,7 +378,7 @@ p {
376
378
 
377
379
  .cauldron--theme-dark .Layout {
378
380
  background-color: var(--dark-workspace-color);
379
- color: var(--white);
381
+ color: var(--layout-dark-color, var(--white));
380
382
  }
381
383
 
382
384
  .cauldron--theme-dark .Layout .Main:focus {
@@ -1210,12 +1212,13 @@ textarea.Field--has-error:focus:hover,
1210
1212
  --button-background-color-badge-active: var(--gray-20);
1211
1213
 
1212
1214
  --button-background-color-danger: var(--error);
1213
- --button-background-color-danger-disabled: #db6379;
1215
+ --button-background-color-danger-disabled: var(--accent-error-disabled);
1214
1216
  --button-background-color-danger-active: var(--accent-error-active);
1215
1217
  --button-outline-color-danger: var(--error);
1218
+ --button-outline-color-danger-disabled: var(--gray-40);
1216
1219
 
1217
1220
  --button-background-color-error: var(--error);
1218
- --button-background-color-error-disabled: #db6379;
1221
+ --button-background-color-error-disabled: var(--accent-error-disabled);
1219
1222
  --button-background-color-error-active: var(--accent-error-active);
1220
1223
  --button-outline-color-error: var(--error);
1221
1224
 
@@ -1416,6 +1419,18 @@ button.Link {
1416
1419
  background-color: var(--button-background-color-error-disabled);
1417
1420
  }
1418
1421
 
1422
+ .Button--danger[aria-disabled='true'],
1423
+ .Button--danger[disabled] {
1424
+ color: var(--button-text-color-light);
1425
+ background-color: var(--button-background-color-danger-disabled);
1426
+ }
1427
+
1428
+ .Button--danger-secondary[aria-disabled='true'],
1429
+ .Button--danger-secondary[disabled] {
1430
+ color: var(--button-text-color-disabled);
1431
+ border: 1px solid var(--button-outline-color-danger-disabled);
1432
+ }
1433
+
1419
1434
  .Button--error:not([disabled]):not([aria-disabled='true']):active {
1420
1435
  background-color: var(--button-background-color-error-active);
1421
1436
  }
@@ -1485,7 +1500,21 @@ button.Link {
1485
1500
  }
1486
1501
 
1487
1502
  [class*='Button--'] + [class*='Button--'] {
1488
- margin-left: var(--space-smallest);
1503
+ margin-left: var(--button-adjacent-spacing, var(--space-smallest));
1504
+ }
1505
+
1506
+ /* Gap-based button grouping — use instead of relying on adjacent-sibling margins.
1507
+ Handles flex-wrap correctly and avoids spacing issues in flex containers.
1508
+ See https://github.com/dequelabs/cauldron/issues/1944 */
1509
+
1510
+ .ButtonGroup {
1511
+ display: flex;
1512
+ flex-wrap: wrap;
1513
+ gap: var(--button-group-gap, var(--space-smallest));
1514
+ }
1515
+
1516
+ .ButtonGroup > [class*='Button--'] + [class*='Button--'] {
1517
+ margin-left: 0;
1489
1518
  }
1490
1519
 
1491
1520
  /* Dark Theme */
@@ -1688,6 +1717,12 @@ button.Link {
1688
1717
  --button-background-color-error-disabled
1689
1718
  );
1690
1719
  --icon-button-icon-size: var(--icon-size);
1720
+ --icon-button-hover-shadow-primary: 0 0 0 1px
1721
+ var(--icon-button-outline-color-primary);
1722
+ --icon-button-hover-shadow-secondary: 0 0 0 1px
1723
+ var(--icon-button-outline-color-secondary);
1724
+ --icon-button-hover-shadow-error: 0 0 0 1px
1725
+ var(--icon-button-outline-color-error);
1691
1726
  }
1692
1727
 
1693
1728
  .IconButton {
@@ -1784,7 +1819,7 @@ a.IconButton {
1784
1819
  }
1785
1820
 
1786
1821
  .IconButton--primary:not([disabled]):not([aria-disabled='true']):hover:before {
1787
- box-shadow: 0 0 0 1px var(--icon-button-outline-color-primary);
1822
+ box-shadow: var(--icon-button-hover-shadow-primary);
1788
1823
  }
1789
1824
 
1790
1825
  .IconButton--primary:active {
@@ -1803,14 +1838,14 @@ a.IconButton {
1803
1838
  .IconButton--tertiary:not([disabled]):not([aria-disabled='true']):is(
1804
1839
  :hover
1805
1840
  ):before {
1806
- box-shadow: 0 0 0 1px var(--icon-button-outline-color-secondary);
1841
+ box-shadow: var(--icon-button-hover-shadow-secondary);
1807
1842
  }
1808
1843
 
1809
1844
  .IconButton--tertiary:is(
1810
- :not(:hover, :focus, :active),
1811
- [disabled],
1812
- [aria-disabled='true']
1813
- ) {
1845
+ :not(:hover, :focus, :active),
1846
+ [disabled],
1847
+ [aria-disabled='true']
1848
+ ) {
1814
1849
  border-color: transparent;
1815
1850
  background-color: transparent;
1816
1851
  }
@@ -1826,7 +1861,7 @@ a.IconButton {
1826
1861
  }
1827
1862
 
1828
1863
  .IconButton--error:not([disabled]):not([aria-disabled='true']):hover:before {
1829
- box-shadow: 0 0 0 1px var(--icon-button-outline-color-error);
1864
+ box-shadow: var(--icon-button-hover-shadow-error);
1830
1865
  }
1831
1866
 
1832
1867
  .IconButton--error:active {
@@ -1862,6 +1897,17 @@ a.IconButton {
1862
1897
  --icon-button-background-color-error-active: var(
1863
1898
  --button-background-color-error-active
1864
1899
  );
1900
+
1901
+ /* Hover shadows (double ring in dark theme) */
1902
+ --icon-button-hover-shadow-primary:
1903
+ 0 0 0 1px var(--icon-button-outline-shadow-color),
1904
+ 0 0 0 2px var(--icon-button-outline-color-primary);
1905
+ --icon-button-hover-shadow-secondary:
1906
+ 0 0 0 1px var(--icon-button-outline-shadow-color),
1907
+ 0 0 0 2px var(--icon-button-outline-color-secondary);
1908
+ --icon-button-hover-shadow-error:
1909
+ 0 0 0 1px var(--icon-button-outline-shadow-color),
1910
+ 0 0 0 2px var(--icon-button-outline-color-error);
1865
1911
  }
1866
1912
 
1867
1913
  .cauldron--theme-dark .IconButton--primary {
@@ -1898,34 +1944,9 @@ a.IconButton {
1898
1944
  color: var(--icon-button-disabled-color);
1899
1945
  }
1900
1946
 
1901
- .cauldron--theme-dark
1902
- .IconButton--primary:not([disabled]):not(
1903
- [aria-disabled='true']
1904
- ):hover:before {
1905
- box-shadow: 0 0 0 1px var(--icon-button-outline-shadow-color),
1906
- 0 0 0 2px var(--icon-button-outline-color-primary);
1907
- }
1908
-
1909
- .cauldron--theme-dark
1910
- .IconButton--secondary:not([disabled]):not(
1911
- [aria-disabled='true']
1912
- ):hover:before,
1913
- .cauldron--theme-dark
1914
- .IconButton--tertiary:not([disabled]):not(
1915
- [aria-disabled='true']
1916
- ):hover:before {
1917
- box-shadow: 0 0 0 1px var(--icon-button-outline-shadow-color),
1918
- 0 0 0 2px var(--icon-button-outline-color-secondary);
1919
- }
1920
-
1921
- .cauldron--theme-dark
1922
- .IconButton--error:not([disabled]):not([aria-disabled='true']):hover:before {
1923
- box-shadow: 0 0 0 1px var(--icon-button-outline-shadow-color),
1924
- 0 0 0 2px var(--icon-button-outline-color-error);
1925
- }
1926
-
1927
1947
  .cauldron--theme-dark .IconButton:focus:before {
1928
- box-shadow: 0 0 0 2px var(--icon-button-outline-shadow-color),
1948
+ box-shadow:
1949
+ 0 0 0 2px var(--icon-button-outline-shadow-color),
1929
1950
  0 0 0 4px var(--button-focus-ring-color, --focus);
1930
1951
  }
1931
1952
 
@@ -1941,8 +1962,17 @@ a.IconButton {
1941
1962
  --dialog-footer-background-color: var(--gray-20);
1942
1963
  --dialog-heading-text-color: var(--header-text-color-dark);
1943
1964
  --dialog-padding: var(--space-small);
1965
+ --dialog-header-padding: var(--space-smallest) 0;
1966
+ --dialog-header-border: 1px solid var(--dialog-border-color);
1967
+ --dialog-content-padding: var(--dialog-padding);
1968
+ --dialog-footer-padding: var(--dialog-padding);
1969
+ --dialog-footer-border: 1px solid var(--dialog-border-color);
1944
1970
  --dialog-header-height: 2.625rem;
1945
1971
  --dialog-close-button-size: var(--target-size-minimum);
1972
+ --dialog-vertical-offset: 6.25rem;
1973
+ --dialog-bottom-spacing: 1.875rem;
1974
+ --dialog-content-line-height: inherit;
1975
+ --dialog-z-index: auto;
1946
1976
  }
1947
1977
 
1948
1978
  .cauldron--theme-dark {
@@ -1960,6 +1990,7 @@ a.IconButton {
1960
1990
  overflow-x: auto;
1961
1991
  position: fixed;
1962
1992
  top: 0;
1993
+ z-index: var(--dialog-z-index);
1963
1994
  background-color: var(--scrim-background-color);
1964
1995
  }
1965
1996
 
@@ -1971,7 +2002,7 @@ a.IconButton {
1971
2002
  width: 400px;
1972
2003
  max-width: 90%;
1973
2004
  left: 50%;
1974
- top: 100px;
2005
+ top: var(--dialog-vertical-offset);
1975
2006
  display: flex;
1976
2007
  flex-direction: column;
1977
2008
  transform: translateX(-50%);
@@ -1985,12 +2016,12 @@ a.IconButton {
1985
2016
  .Dialog__header {
1986
2017
  display: flex;
1987
2018
  background-color: var(--dialog-header-background-color);
1988
- border-bottom: 1px solid var(--dialog-border-color);
2019
+ border-bottom: var(--dialog-header-border);
1989
2020
  align-items: center;
1990
2021
  justify-content: space-between;
1991
2022
  min-height: var(--dialog-header-height);
1992
2023
  font-weight: var(--font-weight-bold);
1993
- padding: var(--space-smallest) 0;
2024
+ padding: var(--dialog-header-padding);
1994
2025
  gap: var(--space-smallest);
1995
2026
  }
1996
2027
 
@@ -2056,7 +2087,8 @@ a.IconButton {
2056
2087
  }
2057
2088
 
2058
2089
  .Dialog__content {
2059
- padding: var(--dialog-padding);
2090
+ padding: var(--dialog-content-padding);
2091
+ line-height: var(--dialog-content-line-height);
2060
2092
  }
2061
2093
 
2062
2094
  .Dialog__content p:first-child {
@@ -2067,10 +2099,14 @@ a.IconButton {
2067
2099
  margin-bottom: 0;
2068
2100
  }
2069
2101
 
2102
+ .Dialog__content .Field {
2103
+ width: 100%;
2104
+ }
2105
+
2070
2106
  .Dialog__footer {
2071
2107
  background-color: var(--dialog-footer-background-color);
2072
- border-top: 1px solid var(--dialog-border-color);
2073
- padding: var(--dialog-padding);
2108
+ border-top: var(--dialog-footer-border);
2109
+ padding: var(--dialog-footer-padding);
2074
2110
  }
2075
2111
 
2076
2112
  /**
@@ -2095,6 +2131,18 @@ a.IconButton {
2095
2131
  padding-top: 0;
2096
2132
  }
2097
2133
 
2134
+ @media (min-width: 20rem) {
2135
+ .Dialog__inner {
2136
+ max-height: calc(
2137
+ 100vh - var(--dialog-vertical-offset) - var(--dialog-bottom-spacing)
2138
+ );
2139
+ }
2140
+
2141
+ .Dialog__content {
2142
+ overflow-y: auto;
2143
+ }
2144
+ }
2145
+
2098
2146
  /* Dark Theme */
2099
2147
 
2100
2148
  .cauldron--theme-dark .Dialog__inner {
@@ -2102,6 +2150,15 @@ a.IconButton {
2102
2150
  border-width: 4px;
2103
2151
  }
2104
2152
 
2153
+ /* Compensate for the larger dark theme border so Dialog dimensions remain consistent */
2154
+
2155
+ .cauldron--theme-dark .Dialog__content {
2156
+ --dialog-content-padding-compensation: 3px;
2157
+ padding: calc(
2158
+ var(--dialog-content-padding) - var(--dialog-content-padding-compensation)
2159
+ );
2160
+ }
2161
+
2105
2162
  .cauldron--theme-dark .Dialog__header {
2106
2163
  border-bottom: 1px solid var(--stroke-dark);
2107
2164
  }
@@ -2133,6 +2190,33 @@ a.IconButton {
2133
2190
  border-top: none;
2134
2191
  }
2135
2192
 
2193
+ .cauldron--theme-dark .Alert .Dialog__inner {
2194
+ background-color: var(--accent-dark);
2195
+ }
2196
+
2197
+ .cauldron--theme-dark .Alert .Dialog__header {
2198
+ background-color: var(--accent-medium);
2199
+ border-bottom: none;
2200
+ }
2201
+
2202
+ .cauldron--theme-dark .Alert .Dialog__footer {
2203
+ background-color: transparent;
2204
+ border-top: none;
2205
+ }
2206
+
2207
+ .cauldron--theme-dark .Alert .Dialog__content .Link,
2208
+ .cauldron--theme-dark .Alert .Dialog__content .Link:hover {
2209
+ color: currentColor;
2210
+ }
2211
+
2212
+ /* Dark theme: checked checkbox/radio icons in Dialogs should inherit the
2213
+ dialog's text color rather than using the global checked color */
2214
+
2215
+ .cauldron--theme-dark .Dialog .Checkbox__overlay.Icon--checkbox-checked,
2216
+ .cauldron--theme-dark .Dialog .Radio__overlay.Icon--radio-checked {
2217
+ color: currentColor;
2218
+ }
2219
+
2136
2220
  :root {
2137
2221
  --link-text-color: var(--gray-90);
2138
2222
  --link-text-color-hover: #3873a3;
@@ -2147,7 +2231,7 @@ a.IconButton {
2147
2231
  .Link {
2148
2232
  text-decoration: underline;
2149
2233
  color: var(--link-text-color);
2150
- padding: var(--space-quarter);
2234
+ padding: var(--link-padding, var(--space-quarter));
2151
2235
  background: transparent;
2152
2236
  vertical-align: baseline;
2153
2237
  }
@@ -2178,6 +2262,8 @@ a.IconButton {
2178
2262
  --options-menu-hover-background-color: var(--gray-20);
2179
2263
  --options-menu-active-border-color: var(--accent-primary);
2180
2264
  --options-menu-border-color: var(--gray-40);
2265
+ --options-menu-width: auto;
2266
+ --options-menu-item-font-size: var(--text-size-smaller);
2181
2267
  }
2182
2268
 
2183
2269
  .cauldron--theme-dark {
@@ -2192,6 +2278,7 @@ a.IconButton {
2192
2278
  .OptionsMenu {
2193
2279
  position: relative;
2194
2280
  color: var(--text-color-base);
2281
+ width: var(--options-menu-width);
2195
2282
  }
2196
2283
 
2197
2284
  .OptionsMenu__trigger {
@@ -2216,7 +2303,7 @@ a.IconButton {
2216
2303
  color: var(--options-menu-text-color);
2217
2304
  display: none;
2218
2305
  position: absolute;
2219
- font-size: var(--text-size-smaller);
2306
+ font-size: var(--options-menu-item-font-size);
2220
2307
  list-style-type: none;
2221
2308
  margin: 0;
2222
2309
  padding: 0;
@@ -2322,12 +2409,18 @@ a.IconButton {
2322
2409
  --select-min-height: 33px;
2323
2410
  --select-width: 300px;
2324
2411
  --select-arrow-spacing: 10px;
2412
+ --field-select-max-width: 100%;
2413
+ --field-select-margin-bottom: var(--space-small);
2325
2414
  }
2326
2415
 
2327
2416
  .Field__select {
2328
2417
  display: flex;
2329
2418
  flex-direction: column;
2330
- margin-bottom: var(--space-small);
2419
+ margin-bottom: var(--field-select-margin-bottom);
2420
+ }
2421
+
2422
+ .Field__select + .Field__select {
2423
+ margin-top: 0;
2331
2424
  }
2332
2425
 
2333
2426
  .Field__select--disabled {
@@ -2337,7 +2430,7 @@ a.IconButton {
2337
2430
  .Field__select--wrapper {
2338
2431
  position: relative;
2339
2432
  width: var(--select-width);
2340
- max-width: 100%;
2433
+ max-width: var(--field-select-max-width);
2341
2434
  }
2342
2435
 
2343
2436
  .arrow-down {
@@ -2378,7 +2471,8 @@ a.IconButton {
2378
2471
 
2379
2472
  .Field__select--wrapper select:focus {
2380
2473
  border-color: var(--field-border-color-focus);
2381
- box-shadow: 0 0 0 1px var(--field-border-color-focus),
2474
+ box-shadow:
2475
+ 0 0 0 1px var(--field-border-color-focus),
2382
2476
  0 0 5px var(--field-border-color-focus-glow),
2383
2477
  inset 0 1px 2px rgba(0, 0, 0, 0.05);
2384
2478
  }
@@ -2401,7 +2495,8 @@ a.IconButton {
2401
2495
  .Field__select--wrapper select:invalid:focus,
2402
2496
  .Field__select--wrapper.Field--has-error select:focus {
2403
2497
  border-color: var(--field-border-color-error);
2404
- box-shadow: rgba(0, 0, 0, 0.05) 0 1px 2px 0 inset,
2498
+ box-shadow:
2499
+ rgba(0, 0, 0, 0.05) 0 1px 2px 0 inset,
2405
2500
  var(--field-border-color-error) 0 0 0 1px,
2406
2501
  var(--field-border-color-error-focus-glow) 0 0 5px 0;
2407
2502
  }
@@ -2645,7 +2740,7 @@ a.IconButton {
2645
2740
 
2646
2741
  .Toast {
2647
2742
  top: var(--top-bar-height);
2648
- position: fixed;
2743
+ position: var(--toast-position, fixed);
2649
2744
  right: 0;
2650
2745
  left: 0;
2651
2746
  color: #0b0e11;
@@ -2916,22 +3011,31 @@ button.TooltipTabstop {
2916
3011
  --top-bar-accent-warning-other: var(--accent-danger-light);
2917
3012
  --top-bar-height: 70px;
2918
3013
  --top-bar-height-thin: 43px;
3014
+ --top-bar-position: fixed;
3015
+ --top-bar-padding-inline-start: 0;
3016
+ --top-bar-menu-flex: auto;
3017
+ --top-bar-button-max-width: none;
3018
+ --top-bar-button-flex-direction: row;
3019
+ --top-bar-button-font-size: var(--text-size-small);
3020
+ --top-bar-item-padding: 0 var(--space-small);
3021
+ --top-bar-border-bottom: solid 1px var(--top-bar-border-bottom-color);
2919
3022
  }
2920
3023
 
2921
3024
  .TopBar {
2922
- position: fixed;
3025
+ position: var(--top-bar-position);
2923
3026
  width: 100%;
2924
3027
  height: var(--top-bar-height);
2925
3028
  top: 0;
2926
3029
  flex: none;
2927
- flex-direction: row;
2928
3030
  box-sizing: border-box;
2929
3031
  z-index: var(--z-index-top-bar);
2930
3032
  display: flex;
2931
3033
  align-items: center;
2932
3034
  background-color: var(--top-bar-background-color);
2933
3035
  color: var(--top-bar-text-color);
2934
- border-bottom: solid 1px var(--top-bar-border-bottom-color);
3036
+ border-bottom: var(--top-bar-border-bottom);
3037
+ -webkit-padding-start: var(--top-bar-padding-inline-start);
3038
+ padding-inline-start: var(--top-bar-padding-inline-start);
2935
3039
  }
2936
3040
 
2937
3041
  .TopBar--thin .TopBar {
@@ -2942,12 +3046,15 @@ button.TooltipTabstop {
2942
3046
  list-style-type: none;
2943
3047
  display: flex;
2944
3048
  align-items: center;
2945
- flex: auto;
3049
+ flex: var(--top-bar-menu-flex);
2946
3050
  }
2947
3051
 
2948
3052
  .TopBar li button {
2949
3053
  background: transparent;
2950
3054
  color: inherit;
3055
+ max-width: var(--top-bar-button-max-width);
3056
+ font-size: var(--top-bar-button-font-size);
3057
+ flex-direction: var(--top-bar-button-flex-direction);
2951
3058
  }
2952
3059
 
2953
3060
  .TopBar > ul > li {
@@ -2962,7 +3069,7 @@ button.TooltipTabstop {
2962
3069
  }
2963
3070
 
2964
3071
  .TopBar > ul > li:not(.TopBar__menu-trigger) {
2965
- padding: 0 var(--space-small);
3072
+ padding: var(--top-bar-item-padding);
2966
3073
  font-size: var(--text-size-small);
2967
3074
  height: var(--top-bar-height);
2968
3075
  display: flex;
@@ -3059,10 +3166,7 @@ button.TooltipTabstop {
3059
3166
  --top-bar-border-bottom-color: var(--gray-70);
3060
3167
  --top-bar-text-color: var(--accent-light);
3061
3168
  --top-bar-background-color-active: #0b0e11;
3062
- }
3063
-
3064
- .cauldron--theme-dark .TopBar {
3065
- border-bottom: none;
3169
+ --top-bar-border-bottom: none;
3066
3170
  }
3067
3171
 
3068
3172
  .cauldron--theme-dark .TopBar [aria-current='page'] {
@@ -3325,6 +3429,10 @@ button.TooltipTabstop {
3325
3429
  --code-text-color: var(--accent-primary-active);
3326
3430
  --code-border-color: var(--stroke-light);
3327
3431
  --code-background-color: var(--background-light);
3432
+ --code-padding: var(--space-smaller);
3433
+ --code-border: 1px solid var(--code-border-color);
3434
+ --code-display: block;
3435
+ --code-margin: 0 0 var(--space-smallest) 0;
3328
3436
  }
3329
3437
 
3330
3438
  .cauldron--theme-dark {
@@ -3343,10 +3451,11 @@ button.TooltipTabstop {
3343
3451
  }
3344
3452
 
3345
3453
  .Code.hljs {
3346
- display: block;
3347
- padding: var(--space-smaller);
3454
+ display: var(--code-display);
3455
+ padding: var(--code-padding);
3456
+ margin: var(--code-margin);
3348
3457
  background: var(--code-background-color);
3349
- border: 1px solid var(--code-border-color);
3458
+ border: var(--code-border);
3350
3459
  border-radius: 3px;
3351
3460
  color: var(--code-text-color);
3352
3461
  word-break: break-all;
@@ -3559,10 +3668,17 @@ button.TooltipTabstop {
3559
3668
  var(--space-largest);
3560
3669
  --tab-panel-horizontal-padding: var(--space-large) var(--space-small);
3561
3670
  --tabs-active-text-color: var(--accent-primary-active);
3671
+ --tab-height: 2.875rem;
3672
+ --tab-font-size: inherit;
3673
+ --tab-flex: initial;
3674
+ --tab-panel-border: none;
3675
+ --tabs-horizontal-border-bottom: 1px solid var(--tabs-border-color);
3676
+ --tabs-width: fit-content;
3562
3677
  }
3563
3678
 
3564
3679
  .cauldron--theme-dark {
3565
3680
  --tabs-border-color: var(--accent-dark);
3681
+ --tabs-horizontal-border-bottom: 1px solid var(--tabs-border-color);
3566
3682
  --tab-shadow-color: var(--accent-info);
3567
3683
  --tab-panel-background-color: var(--accent-medium);
3568
3684
  --tab-inactive-background-color: var(--accent-medium);
@@ -3574,8 +3690,7 @@ button.TooltipTabstop {
3574
3690
  }
3575
3691
 
3576
3692
  .Tabs {
3577
- width: -moz-fit-content;
3578
- width: fit-content;
3693
+ width: var(--tabs-width);
3579
3694
  }
3580
3695
 
3581
3696
  .Tabs--vertical {
@@ -3594,7 +3709,7 @@ button.TooltipTabstop {
3594
3709
 
3595
3710
  .Tabs--horizontal {
3596
3711
  width: 100%;
3597
- border-bottom: 1px solid var(--tabs-border-color);
3712
+ border-bottom: var(--tabs-horizontal-border-bottom);
3598
3713
  background-color: var(--tab-inactive-background-color);
3599
3714
  }
3600
3715
 
@@ -3616,12 +3731,14 @@ button.TooltipTabstop {
3616
3731
  display: flex;
3617
3732
  justify-content: center;
3618
3733
  align-items: center;
3619
- height: 2.875rem;
3734
+ height: var(--tab-height);
3620
3735
  white-space: nowrap;
3621
3736
  list-style-type: none;
3622
3737
  background-color: var(--tab-inactive-background-color);
3623
3738
  color: var(--tab-inactive-text-color);
3624
3739
  padding: var(--space-small);
3740
+ font-size: var(--tab-font-size);
3741
+ flex: var(--tab-flex);
3625
3742
  }
3626
3743
 
3627
3744
  .Tabs--vertical .Tab {
@@ -3663,6 +3780,7 @@ button.TooltipTabstop {
3663
3780
  overflow-wrap: break-word;
3664
3781
  color: var(--tab-panel-color);
3665
3782
  background-color: var(--tab-panel-background-color);
3783
+ border: var(--tab-panel-border);
3666
3784
  }
3667
3785
 
3668
3786
  .TabPanel > * {
@@ -3682,6 +3800,7 @@ button.TooltipTabstop {
3682
3800
  --tag-text-color: var(--gray-90);
3683
3801
  --tag-background-color: var(--background-light);
3684
3802
  --tag-border-color: var(--gray-30);
3803
+ --tag-margin: 0;
3685
3804
 
3686
3805
  --tag-height: var(--button-height);
3687
3806
  --tag-small-height: 1.5rem;
@@ -3704,6 +3823,7 @@ button.TooltipTabstop {
3704
3823
  justify-content: center;
3705
3824
  align-items: center;
3706
3825
  padding: 0 var(--space-smallest);
3826
+ margin: var(--tag-margin);
3707
3827
  min-height: var(--tag-height);
3708
3828
  font-size: var(--tag-font-size);
3709
3829
  }
@@ -4200,14 +4320,16 @@ button.TooltipTabstop {
4200
4320
  --panel-padding: var(--space-small);
4201
4321
  --panel-divider-border-color: var(--gray-40);
4202
4322
  --panel-content-color: var(--gray-80);
4323
+ --panel-border: 1px solid var(--panel-border-color);
4324
+ --panel-box-shadow: var(--drop-shadow-raised);
4203
4325
  }
4204
4326
 
4205
4327
  .Panel {
4206
4328
  padding: var(--panel-padding);
4207
4329
  margin: 0;
4208
- border: 1px solid var(--panel-border-color);
4330
+ border: var(--panel-border);
4209
4331
  border-radius: 3px;
4210
- box-shadow: var(--drop-shadow-raised);
4332
+ box-shadow: var(--panel-box-shadow);
4211
4333
  background-color: var(--panel-background-color);
4212
4334
  word-break: break-word;
4213
4335
  color: var(--panel-content-color);
@@ -4619,23 +4741,36 @@ fieldset.Panel {
4619
4741
  --progress-bar-background-color: var(--accent-dark);
4620
4742
  --progress-bar-fill-color: var(--accent-info-light);
4621
4743
  --progress-bar-animation-timing: 150ms;
4744
+ --progress-bar-padding: 2px;
4745
+ --progress-bar-border-radius: calc((var(--space-small) * 0.5) + 2px);
4746
+ --progress-bar-fill-height: var(--space-small);
4747
+ --progress-bar-fill-border-radius: calc(var(--space-small) * 0.5);
4748
+ --progress-bar-fill-min-width: var(--space-small);
4622
4749
  }
4623
4750
 
4624
4751
  .ProgressBar {
4625
4752
  background-color: var(--progress-bar-background-color);
4626
- padding: 2px;
4627
- border-radius: calc((var(--space-small) * 0.5) + 2px);
4753
+ padding: var(--progress-bar-padding);
4754
+ border-radius: var(--progress-bar-border-radius);
4628
4755
  margin-bottom: var(--space-smallest);
4629
4756
  }
4630
4757
 
4631
4758
  .ProgressBar--fill {
4632
- border-radius: calc(var(--space-small) * 0.5);
4759
+ border-radius: var(--progress-bar-fill-border-radius);
4633
4760
  background-color: var(--progress-bar-fill-color);
4634
- height: var(--space-small);
4635
- min-width: var(--space-small);
4761
+ height: var(--progress-bar-fill-height);
4762
+ min-width: var(--progress-bar-fill-min-width);
4636
4763
  transition: width linear var(--progress-bar-animation-timing);
4637
4764
  }
4638
4765
 
4766
+ .ProgressBar--thin {
4767
+ --progress-bar-padding: 3px;
4768
+ --progress-bar-border-radius: 3px;
4769
+ --progress-bar-fill-height: var(--space-half);
4770
+ --progress-bar-fill-border-radius: 1px;
4771
+ --progress-bar-fill-min-width: 1px;
4772
+ }
4773
+
4639
4774
  .cauldron--theme-dark .Icon--robot circle {
4640
4775
  stroke: var(--accent-light);
4641
4776
  stroke-width: 2px;
@@ -5088,6 +5223,9 @@ fieldset.Panel {
5088
5223
  --accordion-trigger-box-shadow-hover: var(--accent-primary);
5089
5224
  --accordion-trigger-border-color: var(--gray-40);
5090
5225
  --accordion-trigger-icon-color: var(--gray-90);
5226
+ --accordion-trigger-padding: calc(var(--space-small) - var(--space-half));
5227
+ --accordion-trigger-text-decoration: underline solid
5228
+ var(--accordion-trigger-text-color);
5091
5229
  --accordion-panel-background-color: var(--white);
5092
5230
  --accordion-panel-text-color: var(--gray-90);
5093
5231
  --accordion-panel-border-color: var(--gray-40);
@@ -5115,7 +5253,7 @@ fieldset.Panel {
5115
5253
  .Accordion__trigger,
5116
5254
  button.Accordion__trigger {
5117
5255
  background-color: var(--accordion-trigger-background-color);
5118
- padding: calc(var(--space-small) - var(--space-half));
5256
+ padding: var(--accordion-trigger-padding);
5119
5257
  width: 100%;
5120
5258
  display: flex;
5121
5259
  align-items: center;
@@ -5124,8 +5262,8 @@ button.Accordion__trigger {
5124
5262
  font-size: var(--text-size-small);
5125
5263
  margin-top: var(--space-small);
5126
5264
  color: var(--accordion-trigger-text-color);
5127
- -webkit-text-decoration: underline solid var(--accordion-trigger-text-color);
5128
- text-decoration: underline solid var(--accordion-trigger-text-color);
5265
+ -webkit-text-decoration: var(--accordion-trigger-text-decoration);
5266
+ text-decoration: var(--accordion-trigger-text-decoration);
5129
5267
  }
5130
5268
 
5131
5269
  .Accordion__trigger[aria-expanded='true'] {
@@ -5199,7 +5337,7 @@ button.Accordion__trigger {
5199
5337
  display: grid;
5200
5338
  grid-template-columns: auto 1fr;
5201
5339
  gap: 0 var(--space-small);
5202
- padding: var(--space-large);
5340
+ padding: var(--notice-padding, var(--space-large));
5203
5341
  align-items: start;
5204
5342
  border-radius: 4px;
5205
5343
  border: 1px solid var(--notice-border-color);
@@ -5302,6 +5440,7 @@ button.Accordion__trigger {
5302
5440
  --combobox-listbox-background-color: var(--accent-medium);
5303
5441
  --combobox-group-label-background-color: var(--accent-dark);
5304
5442
  --combobox-option-selected-icon-color: var(--accent-info);
5443
+ --combobox-arrow-color: var(--text-color-light);
5305
5444
  }
5306
5445
 
5307
5446
  .Combobox :where(.TextFieldWrapper) {
@@ -5410,6 +5549,7 @@ button.Accordion__trigger {
5410
5549
  position: absolute;
5411
5550
  right: 0;
5412
5551
  pointer-events: none;
5552
+ color: var(--combobox-arrow-color, currentColor);
5413
5553
  }
5414
5554
 
5415
5555
  .Combobox__arrow:before {
@@ -6286,3 +6426,76 @@ button.Accordion__trigger {
6286
6426
  .ActionListItem__description {
6287
6427
  color: var(--action-list-item-disabled-text-color);
6288
6428
  }
6429
+
6430
+ /**
6431
+ * Compact density preset for constrained viewports.
6432
+ *
6433
+ * Apply the `.cauldron--density-compact` class to the root element (e.g. <body>)
6434
+ * alongside the theme class to get tighter sizing across all components.
6435
+ * This is designed for embedded UIs like browser extension panels.
6436
+ *
6437
+ * Works orthogonally to theme classes:
6438
+ * <body class="cauldron--theme-dark cauldron--density-compact">
6439
+ */
6440
+
6441
+ .cauldron--density-compact {
6442
+ /* TopBar: static positioning for embedded contexts, compact button layout */
6443
+ --top-bar-position: static;
6444
+ --top-bar-padding-inline-start: var(--space-small);
6445
+ --top-bar-menu-flex: initial;
6446
+ --top-bar-button-max-width: 80px;
6447
+ --top-bar-button-flex-direction: column;
6448
+ --top-bar-button-font-size: var(--text-size-smallest);
6449
+ --top-bar-item-padding: 0;
6450
+
6451
+ /* Tabs: fill width, smaller font */
6452
+ --tabs-width: auto;
6453
+ --tab-font-size: var(--text-size-small);
6454
+ --tab-flex: 1;
6455
+
6456
+ /* Tags: use small variant sizing by default */
6457
+ --tag-height: var(--tag-small-height);
6458
+ --tag-font-size: var(--text-size-smaller);
6459
+
6460
+ /* Dialog: viewport-aware positioning for short viewports (e.g. docked devtools) */
6461
+ --dialog-vertical-offset: clamp(8px, calc(18vh - 50px), 100px);
6462
+ --dialog-content-line-height: 1.4;
6463
+
6464
+ /* ProgressBar: thinner default */
6465
+ --progress-bar-padding: 3px;
6466
+ --progress-bar-border-radius: 3px;
6467
+ --progress-bar-fill-height: var(--space-half);
6468
+ --progress-bar-fill-border-radius: 1px;
6469
+ --progress-bar-fill-min-width: 1px;
6470
+
6471
+ /* OptionsMenu: auto-width for narrow viewports */
6472
+ --options-menu-width: auto;
6473
+
6474
+ /* Toast: static positioning (no fixed TopBar to anchor to) */
6475
+ --toast-position: static;
6476
+
6477
+ /* Field select: constrained width */
6478
+ --select-width: clamp(0px, 25rem, 100%);
6479
+
6480
+ /* ExpandCollapse: adjust trigger icon position */
6481
+ --expandcollapse-trigger-icon-offset: -8px;
6482
+
6483
+ /* Code: inline compact display */
6484
+ --code-display: inline;
6485
+ --code-padding: var(--space-quarter) var(--space-half);
6486
+ --code-border: none;
6487
+ }
6488
+
6489
+ /* TopBar buttons: vertical icon-above-label layout in compact mode */
6490
+
6491
+ .cauldron--density-compact .TopBar li button:not(.Link) {
6492
+ display: flex;
6493
+ align-items: center;
6494
+ white-space: normal;
6495
+ }
6496
+
6497
+ /* TopBar: restore padding on items containing text links (not icon buttons) */
6498
+
6499
+ .cauldron--density-compact .TopBar > ul > li:has(button.Link) {
6500
+ padding: 0 var(--space-small);
6501
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deque/cauldron-styles",
3
- "version": "6.25.3",
3
+ "version": "6.26.0-canary.2dbe2449",
4
4
  "license": "MPL-2.0",
5
5
  "description": "deque cauldron pattern library styles",
6
6
  "repository": "https://github.com/dequelabs/cauldron",