@deque/cauldron-styles 6.25.3-canary.537752bc → 6.25.3-canary.57a1d2f7

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 +297 -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;
@@ -2732,6 +2827,10 @@ a.IconButton {
2732
2827
  color: var(--accent-medium);
2733
2828
  }
2734
2829
 
2830
+ .Toast ul {
2831
+ margin-left: var(--toast-list-margin-left, 0);
2832
+ }
2833
+
2735
2834
  .Toast:focus {
2736
2835
  outline: 0;
2737
2836
  }
@@ -2916,22 +3015,31 @@ button.TooltipTabstop {
2916
3015
  --top-bar-accent-warning-other: var(--accent-danger-light);
2917
3016
  --top-bar-height: 70px;
2918
3017
  --top-bar-height-thin: 43px;
3018
+ --top-bar-position: fixed;
3019
+ --top-bar-padding-inline-start: 0;
3020
+ --top-bar-menu-flex: auto;
3021
+ --top-bar-button-max-width: none;
3022
+ --top-bar-button-flex-direction: row;
3023
+ --top-bar-button-font-size: var(--text-size-small);
3024
+ --top-bar-item-padding: 0 var(--space-small);
3025
+ --top-bar-border-bottom: solid 1px var(--top-bar-border-bottom-color);
2919
3026
  }
2920
3027
 
2921
3028
  .TopBar {
2922
- position: fixed;
3029
+ position: var(--top-bar-position);
2923
3030
  width: 100%;
2924
3031
  height: var(--top-bar-height);
2925
3032
  top: 0;
2926
3033
  flex: none;
2927
- flex-direction: row;
2928
3034
  box-sizing: border-box;
2929
3035
  z-index: var(--z-index-top-bar);
2930
3036
  display: flex;
2931
3037
  align-items: center;
2932
3038
  background-color: var(--top-bar-background-color);
2933
3039
  color: var(--top-bar-text-color);
2934
- border-bottom: solid 1px var(--top-bar-border-bottom-color);
3040
+ border-bottom: var(--top-bar-border-bottom);
3041
+ -webkit-padding-start: var(--top-bar-padding-inline-start);
3042
+ padding-inline-start: var(--top-bar-padding-inline-start);
2935
3043
  }
2936
3044
 
2937
3045
  .TopBar--thin .TopBar {
@@ -2942,12 +3050,15 @@ button.TooltipTabstop {
2942
3050
  list-style-type: none;
2943
3051
  display: flex;
2944
3052
  align-items: center;
2945
- flex: auto;
3053
+ flex: var(--top-bar-menu-flex);
2946
3054
  }
2947
3055
 
2948
3056
  .TopBar li button {
2949
3057
  background: transparent;
2950
3058
  color: inherit;
3059
+ max-width: var(--top-bar-button-max-width);
3060
+ font-size: var(--top-bar-button-font-size);
3061
+ flex-direction: var(--top-bar-button-flex-direction);
2951
3062
  }
2952
3063
 
2953
3064
  .TopBar > ul > li {
@@ -2962,7 +3073,7 @@ button.TooltipTabstop {
2962
3073
  }
2963
3074
 
2964
3075
  .TopBar > ul > li:not(.TopBar__menu-trigger) {
2965
- padding: 0 var(--space-small);
3076
+ padding: var(--top-bar-item-padding);
2966
3077
  font-size: var(--text-size-small);
2967
3078
  height: var(--top-bar-height);
2968
3079
  display: flex;
@@ -3059,10 +3170,7 @@ button.TooltipTabstop {
3059
3170
  --top-bar-border-bottom-color: var(--gray-70);
3060
3171
  --top-bar-text-color: var(--accent-light);
3061
3172
  --top-bar-background-color-active: #0b0e11;
3062
- }
3063
-
3064
- .cauldron--theme-dark .TopBar {
3065
- border-bottom: none;
3173
+ --top-bar-border-bottom: none;
3066
3174
  }
3067
3175
 
3068
3176
  .cauldron--theme-dark .TopBar [aria-current='page'] {
@@ -3325,6 +3433,10 @@ button.TooltipTabstop {
3325
3433
  --code-text-color: var(--accent-primary-active);
3326
3434
  --code-border-color: var(--stroke-light);
3327
3435
  --code-background-color: var(--background-light);
3436
+ --code-padding: var(--space-smaller);
3437
+ --code-border: 1px solid var(--code-border-color);
3438
+ --code-display: block;
3439
+ --code-margin: 0 0 var(--space-smallest) 0;
3328
3440
  }
3329
3441
 
3330
3442
  .cauldron--theme-dark {
@@ -3343,10 +3455,11 @@ button.TooltipTabstop {
3343
3455
  }
3344
3456
 
3345
3457
  .Code.hljs {
3346
- display: block;
3347
- padding: var(--space-smaller);
3458
+ display: var(--code-display);
3459
+ padding: var(--code-padding);
3460
+ margin: var(--code-margin);
3348
3461
  background: var(--code-background-color);
3349
- border: 1px solid var(--code-border-color);
3462
+ border: var(--code-border);
3350
3463
  border-radius: 3px;
3351
3464
  color: var(--code-text-color);
3352
3465
  word-break: break-all;
@@ -3559,10 +3672,17 @@ button.TooltipTabstop {
3559
3672
  var(--space-largest);
3560
3673
  --tab-panel-horizontal-padding: var(--space-large) var(--space-small);
3561
3674
  --tabs-active-text-color: var(--accent-primary-active);
3675
+ --tab-height: 2.875rem;
3676
+ --tab-font-size: inherit;
3677
+ --tab-flex: initial;
3678
+ --tab-panel-border: none;
3679
+ --tabs-horizontal-border-bottom: 1px solid var(--tabs-border-color);
3680
+ --tabs-width: fit-content;
3562
3681
  }
3563
3682
 
3564
3683
  .cauldron--theme-dark {
3565
3684
  --tabs-border-color: var(--accent-dark);
3685
+ --tabs-horizontal-border-bottom: 1px solid var(--tabs-border-color);
3566
3686
  --tab-shadow-color: var(--accent-info);
3567
3687
  --tab-panel-background-color: var(--accent-medium);
3568
3688
  --tab-inactive-background-color: var(--accent-medium);
@@ -3574,8 +3694,7 @@ button.TooltipTabstop {
3574
3694
  }
3575
3695
 
3576
3696
  .Tabs {
3577
- width: -moz-fit-content;
3578
- width: fit-content;
3697
+ width: var(--tabs-width);
3579
3698
  }
3580
3699
 
3581
3700
  .Tabs--vertical {
@@ -3594,7 +3713,7 @@ button.TooltipTabstop {
3594
3713
 
3595
3714
  .Tabs--horizontal {
3596
3715
  width: 100%;
3597
- border-bottom: 1px solid var(--tabs-border-color);
3716
+ border-bottom: var(--tabs-horizontal-border-bottom);
3598
3717
  background-color: var(--tab-inactive-background-color);
3599
3718
  }
3600
3719
 
@@ -3616,12 +3735,14 @@ button.TooltipTabstop {
3616
3735
  display: flex;
3617
3736
  justify-content: center;
3618
3737
  align-items: center;
3619
- height: 2.875rem;
3738
+ height: var(--tab-height);
3620
3739
  white-space: nowrap;
3621
3740
  list-style-type: none;
3622
3741
  background-color: var(--tab-inactive-background-color);
3623
3742
  color: var(--tab-inactive-text-color);
3624
3743
  padding: var(--space-small);
3744
+ font-size: var(--tab-font-size);
3745
+ flex: var(--tab-flex);
3625
3746
  }
3626
3747
 
3627
3748
  .Tabs--vertical .Tab {
@@ -3663,6 +3784,7 @@ button.TooltipTabstop {
3663
3784
  overflow-wrap: break-word;
3664
3785
  color: var(--tab-panel-color);
3665
3786
  background-color: var(--tab-panel-background-color);
3787
+ border: var(--tab-panel-border);
3666
3788
  }
3667
3789
 
3668
3790
  .TabPanel > * {
@@ -3682,6 +3804,7 @@ button.TooltipTabstop {
3682
3804
  --tag-text-color: var(--gray-90);
3683
3805
  --tag-background-color: var(--background-light);
3684
3806
  --tag-border-color: var(--gray-30);
3807
+ --tag-margin: 0;
3685
3808
 
3686
3809
  --tag-height: var(--button-height);
3687
3810
  --tag-small-height: 1.5rem;
@@ -3704,6 +3827,7 @@ button.TooltipTabstop {
3704
3827
  justify-content: center;
3705
3828
  align-items: center;
3706
3829
  padding: 0 var(--space-smallest);
3830
+ margin: var(--tag-margin);
3707
3831
  min-height: var(--tag-height);
3708
3832
  font-size: var(--tag-font-size);
3709
3833
  }
@@ -4200,14 +4324,16 @@ button.TooltipTabstop {
4200
4324
  --panel-padding: var(--space-small);
4201
4325
  --panel-divider-border-color: var(--gray-40);
4202
4326
  --panel-content-color: var(--gray-80);
4327
+ --panel-border: 1px solid var(--panel-border-color);
4328
+ --panel-box-shadow: var(--drop-shadow-raised);
4203
4329
  }
4204
4330
 
4205
4331
  .Panel {
4206
4332
  padding: var(--panel-padding);
4207
4333
  margin: 0;
4208
- border: 1px solid var(--panel-border-color);
4334
+ border: var(--panel-border);
4209
4335
  border-radius: 3px;
4210
- box-shadow: var(--drop-shadow-raised);
4336
+ box-shadow: var(--panel-box-shadow);
4211
4337
  background-color: var(--panel-background-color);
4212
4338
  word-break: break-word;
4213
4339
  color: var(--panel-content-color);
@@ -4619,23 +4745,36 @@ fieldset.Panel {
4619
4745
  --progress-bar-background-color: var(--accent-dark);
4620
4746
  --progress-bar-fill-color: var(--accent-info-light);
4621
4747
  --progress-bar-animation-timing: 150ms;
4748
+ --progress-bar-padding: 2px;
4749
+ --progress-bar-border-radius: calc((var(--space-small) * 0.5) + 2px);
4750
+ --progress-bar-fill-height: var(--space-small);
4751
+ --progress-bar-fill-border-radius: calc(var(--space-small) * 0.5);
4752
+ --progress-bar-fill-min-width: var(--space-small);
4622
4753
  }
4623
4754
 
4624
4755
  .ProgressBar {
4625
4756
  background-color: var(--progress-bar-background-color);
4626
- padding: 2px;
4627
- border-radius: calc((var(--space-small) * 0.5) + 2px);
4757
+ padding: var(--progress-bar-padding);
4758
+ border-radius: var(--progress-bar-border-radius);
4628
4759
  margin-bottom: var(--space-smallest);
4629
4760
  }
4630
4761
 
4631
4762
  .ProgressBar--fill {
4632
- border-radius: calc(var(--space-small) * 0.5);
4763
+ border-radius: var(--progress-bar-fill-border-radius);
4633
4764
  background-color: var(--progress-bar-fill-color);
4634
- height: var(--space-small);
4635
- min-width: var(--space-small);
4765
+ height: var(--progress-bar-fill-height);
4766
+ min-width: var(--progress-bar-fill-min-width);
4636
4767
  transition: width linear var(--progress-bar-animation-timing);
4637
4768
  }
4638
4769
 
4770
+ .ProgressBar--thin {
4771
+ --progress-bar-padding: 3px;
4772
+ --progress-bar-border-radius: 3px;
4773
+ --progress-bar-fill-height: var(--space-half);
4774
+ --progress-bar-fill-border-radius: 1px;
4775
+ --progress-bar-fill-min-width: 1px;
4776
+ }
4777
+
4639
4778
  .cauldron--theme-dark .Icon--robot circle {
4640
4779
  stroke: var(--accent-light);
4641
4780
  stroke-width: 2px;
@@ -5088,6 +5227,9 @@ fieldset.Panel {
5088
5227
  --accordion-trigger-box-shadow-hover: var(--accent-primary);
5089
5228
  --accordion-trigger-border-color: var(--gray-40);
5090
5229
  --accordion-trigger-icon-color: var(--gray-90);
5230
+ --accordion-trigger-padding: calc(var(--space-small) - var(--space-half));
5231
+ --accordion-trigger-text-decoration: underline solid
5232
+ var(--accordion-trigger-text-color);
5091
5233
  --accordion-panel-background-color: var(--white);
5092
5234
  --accordion-panel-text-color: var(--gray-90);
5093
5235
  --accordion-panel-border-color: var(--gray-40);
@@ -5115,7 +5257,7 @@ fieldset.Panel {
5115
5257
  .Accordion__trigger,
5116
5258
  button.Accordion__trigger {
5117
5259
  background-color: var(--accordion-trigger-background-color);
5118
- padding: calc(var(--space-small) - var(--space-half));
5260
+ padding: var(--accordion-trigger-padding);
5119
5261
  width: 100%;
5120
5262
  display: flex;
5121
5263
  align-items: center;
@@ -5124,8 +5266,8 @@ button.Accordion__trigger {
5124
5266
  font-size: var(--text-size-small);
5125
5267
  margin-top: var(--space-small);
5126
5268
  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);
5269
+ -webkit-text-decoration: var(--accordion-trigger-text-decoration);
5270
+ text-decoration: var(--accordion-trigger-text-decoration);
5129
5271
  }
5130
5272
 
5131
5273
  .Accordion__trigger[aria-expanded='true'] {
@@ -5199,7 +5341,7 @@ button.Accordion__trigger {
5199
5341
  display: grid;
5200
5342
  grid-template-columns: auto 1fr;
5201
5343
  gap: 0 var(--space-small);
5202
- padding: var(--space-large);
5344
+ padding: var(--notice-padding, var(--space-large));
5203
5345
  align-items: start;
5204
5346
  border-radius: 4px;
5205
5347
  border: 1px solid var(--notice-border-color);
@@ -5302,6 +5444,7 @@ button.Accordion__trigger {
5302
5444
  --combobox-listbox-background-color: var(--accent-medium);
5303
5445
  --combobox-group-label-background-color: var(--accent-dark);
5304
5446
  --combobox-option-selected-icon-color: var(--accent-info);
5447
+ --combobox-arrow-color: var(--text-color-light);
5305
5448
  }
5306
5449
 
5307
5450
  .Combobox :where(.TextFieldWrapper) {
@@ -5410,6 +5553,7 @@ button.Accordion__trigger {
5410
5553
  position: absolute;
5411
5554
  right: 0;
5412
5555
  pointer-events: none;
5556
+ color: var(--combobox-arrow-color, currentColor);
5413
5557
  }
5414
5558
 
5415
5559
  .Combobox__arrow:before {
@@ -6286,3 +6430,77 @@ button.Accordion__trigger {
6286
6430
  .ActionListItem__description {
6287
6431
  color: var(--action-list-item-disabled-text-color);
6288
6432
  }
6433
+
6434
+ /**
6435
+ * Compact density preset for constrained viewports.
6436
+ *
6437
+ * Apply the `.cauldron--density-compact` class to the root element (e.g. <body>)
6438
+ * alongside the theme class to get tighter sizing across all components.
6439
+ * This is designed for embedded UIs like browser extension panels.
6440
+ *
6441
+ * Works orthogonally to theme classes:
6442
+ * <body class="cauldron--theme-dark cauldron--density-compact">
6443
+ */
6444
+
6445
+ .cauldron--density-compact {
6446
+ /* TopBar: static positioning for embedded contexts, compact button layout */
6447
+ --top-bar-position: static;
6448
+ --top-bar-padding-inline-start: var(--space-small);
6449
+ --top-bar-menu-flex: initial;
6450
+ --top-bar-button-max-width: 80px;
6451
+ --top-bar-button-flex-direction: column;
6452
+ --top-bar-button-font-size: var(--text-size-smallest);
6453
+ --top-bar-item-padding: 0;
6454
+
6455
+ /* Tabs: fill width, smaller font */
6456
+ --tabs-width: auto;
6457
+ --tab-font-size: var(--text-size-small);
6458
+ --tab-flex: 1;
6459
+
6460
+ /* Tags: use small variant sizing by default */
6461
+ --tag-height: var(--tag-small-height);
6462
+ --tag-font-size: var(--text-size-smaller);
6463
+
6464
+ /* Dialog: viewport-aware positioning for short viewports (e.g. docked devtools) */
6465
+ --dialog-vertical-offset: clamp(8px, calc(18vh - 50px), 100px);
6466
+ --dialog-content-line-height: 1.4;
6467
+
6468
+ /* ProgressBar: thinner default */
6469
+ --progress-bar-padding: 3px;
6470
+ --progress-bar-border-radius: 3px;
6471
+ --progress-bar-fill-height: var(--space-half);
6472
+ --progress-bar-fill-border-radius: 1px;
6473
+ --progress-bar-fill-min-width: 1px;
6474
+
6475
+ /* OptionsMenu: auto-width for narrow viewports */
6476
+ --options-menu-width: auto;
6477
+
6478
+ /* Toast: static positioning (no fixed TopBar to anchor to) */
6479
+ --toast-position: static;
6480
+ --toast-list-margin-left: 1.5em;
6481
+
6482
+ /* Field select: constrained width */
6483
+ --select-width: clamp(0px, 25rem, 100%);
6484
+
6485
+ /* ExpandCollapse: adjust trigger icon position */
6486
+ --expandcollapse-trigger-icon-offset: -8px;
6487
+
6488
+ /* Code: inline compact display */
6489
+ --code-display: inline;
6490
+ --code-padding: var(--space-quarter) var(--space-half);
6491
+ --code-border: none;
6492
+ }
6493
+
6494
+ /* TopBar buttons: vertical icon-above-label layout in compact mode */
6495
+
6496
+ .cauldron--density-compact .TopBar li button:not(.Link) {
6497
+ display: flex;
6498
+ align-items: center;
6499
+ white-space: normal;
6500
+ }
6501
+
6502
+ /* TopBar: restore padding on items containing text links (not icon buttons) */
6503
+
6504
+ .cauldron--density-compact .TopBar > ul > li:has(button.Link) {
6505
+ padding: 0 var(--space-small);
6506
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deque/cauldron-styles",
3
- "version": "6.25.3-canary.537752bc",
3
+ "version": "6.25.3-canary.57a1d2f7",
4
4
  "license": "MPL-2.0",
5
5
  "description": "deque cauldron pattern library styles",
6
6
  "repository": "https://github.com/dequelabs/cauldron",