@deque/cauldron-styles 6.26.0 → 6.27.0-canary.058d302b

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 +248 -111
  2. package/package.json +1 -1
package/dist/index.css CHANGED
@@ -195,6 +195,7 @@
195
195
 
196
196
  :root {
197
197
  --workspace-background-color: #f0f2f5;
198
+ --heading-text-color: var(--header-text-color-dark);
198
199
  }
199
200
 
200
201
  .cauldron--theme-dark {
@@ -244,7 +245,6 @@ h4,
244
245
  h5,
245
246
  h6,
246
247
  [role='heading'] {
247
- --heading-text-color: var(--header-text-color-dark);
248
248
  color: var(--heading-text-color);
249
249
  }
250
250
 
@@ -265,8 +265,7 @@ button,
265
265
  line-height: normal;
266
266
  vertical-align: middle;
267
267
  text-align: center;
268
- -moz-user-select: none;
269
- user-select: none;
268
+ user-select: none;
270
269
  -webkit-user-drag: none;
271
270
  box-sizing: border-box;
272
271
  border: 0;
@@ -376,7 +375,7 @@ p {
376
375
 
377
376
  .cauldron--theme-dark .Layout {
378
377
  background-color: var(--dark-workspace-color);
379
- color: var(--white);
378
+ color: var(--layout-dark-color, var(--white));
380
379
  }
381
380
 
382
381
  .cauldron--theme-dark .Layout .Main:focus {
@@ -602,11 +601,6 @@ textarea:focus:hover,
602
601
  inset 0 1px 2px rgba(0, 0, 0, 0.05);
603
602
  }
604
603
 
605
- input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
606
- color: var(--field-placeholder-color);
607
- font-style: italic;
608
- }
609
-
610
604
  input::placeholder,
611
605
  textarea::placeholder {
612
606
  color: var(--field-placeholder-color);
@@ -925,9 +919,7 @@ textarea.Field--has-error:focus:hover,
925
919
  opacity: 0;
926
920
  top: 8px;
927
921
  left: 8px;
928
- -webkit-appearance: none;
929
- -moz-appearance: none;
930
- appearance: none;
922
+ appearance: none;
931
923
  }
932
924
 
933
925
  .Checkbox input[type='checkbox']:indeterminate ~ .Checkbox__overlay.Icon {
@@ -996,9 +988,7 @@ textarea.Field--has-error:focus:hover,
996
988
  opacity: 0;
997
989
  top: 8px;
998
990
  left: 8px;
999
- -webkit-appearance: none;
1000
- -moz-appearance: none;
1001
- appearance: none;
991
+ appearance: none;
1002
992
  }
1003
993
 
1004
994
  .Field__label:hover ~ .Checkbox__overlay:not(.Checkbox__overlay--disabled),
@@ -1252,7 +1242,6 @@ textarea.Field--has-error:focus:hover,
1252
1242
  justify-items: center;
1253
1243
  justify-content: center;
1254
1244
  gap: var(--space-smallest);
1255
- min-width: -moz-max-content;
1256
1245
  min-width: max-content;
1257
1246
  }
1258
1247
 
@@ -1476,13 +1465,11 @@ button.Link {
1476
1465
  font-size: inherit;
1477
1466
  vertical-align: baseline;
1478
1467
  cursor: auto;
1479
- -moz-user-select: text;
1480
- user-select: text;
1468
+ user-select: text;
1481
1469
  }
1482
1470
 
1483
1471
  .Button--thin {
1484
1472
  min-height: var(--button-thin-height);
1485
- min-width: -moz-max-content;
1486
1473
  min-width: max-content;
1487
1474
  font-size: var(--button-thin-text-size);
1488
1475
  padding: 0 var(--space-small);
@@ -1497,8 +1484,10 @@ button.Link {
1497
1484
  min-width: var(--button-thin-height);
1498
1485
  }
1499
1486
 
1487
+ /* Custom property for button sibling gap. Will be deprecated in https://github.com/dequelabs/cauldron/issues/1944 */
1488
+
1500
1489
  [class*='Button--'] + [class*='Button--'] {
1501
- margin-left: var(--space-smallest);
1490
+ margin-left: var(--button-sibling-gap, var(--space-smallest));
1502
1491
  }
1503
1492
 
1504
1493
  /* Dark Theme */
@@ -1701,6 +1690,12 @@ button.Link {
1701
1690
  --button-background-color-error-disabled
1702
1691
  );
1703
1692
  --icon-button-icon-size: var(--icon-size);
1693
+ --icon-button-hover-shadow-primary: 0 0 0 1px
1694
+ var(--icon-button-outline-color-primary);
1695
+ --icon-button-hover-shadow-secondary: 0 0 0 1px
1696
+ var(--icon-button-outline-color-secondary);
1697
+ --icon-button-hover-shadow-error: 0 0 0 1px
1698
+ var(--icon-button-outline-color-error);
1704
1699
  }
1705
1700
 
1706
1701
  .IconButton {
@@ -1797,7 +1792,7 @@ a.IconButton {
1797
1792
  }
1798
1793
 
1799
1794
  .IconButton--primary:not([disabled]):not([aria-disabled='true']):hover:before {
1800
- box-shadow: 0 0 0 1px var(--icon-button-outline-color-primary);
1795
+ box-shadow: var(--icon-button-hover-shadow-primary);
1801
1796
  }
1802
1797
 
1803
1798
  .IconButton--primary:active {
@@ -1816,14 +1811,14 @@ a.IconButton {
1816
1811
  .IconButton--tertiary:not([disabled]):not([aria-disabled='true']):is(
1817
1812
  :hover
1818
1813
  ):before {
1819
- box-shadow: 0 0 0 1px var(--icon-button-outline-color-secondary);
1814
+ box-shadow: var(--icon-button-hover-shadow-secondary);
1820
1815
  }
1821
1816
 
1822
1817
  .IconButton--tertiary:is(
1823
- :not(:hover, :focus, :active),
1824
- [disabled],
1825
- [aria-disabled='true']
1826
- ) {
1818
+ :not(:hover, :focus, :active),
1819
+ [disabled],
1820
+ [aria-disabled='true']
1821
+ ) {
1827
1822
  border-color: transparent;
1828
1823
  background-color: transparent;
1829
1824
  }
@@ -1839,7 +1834,7 @@ a.IconButton {
1839
1834
  }
1840
1835
 
1841
1836
  .IconButton--error:not([disabled]):not([aria-disabled='true']):hover:before {
1842
- box-shadow: 0 0 0 1px var(--icon-button-outline-color-error);
1837
+ box-shadow: var(--icon-button-hover-shadow-error);
1843
1838
  }
1844
1839
 
1845
1840
  .IconButton--error:active {
@@ -1875,6 +1870,17 @@ a.IconButton {
1875
1870
  --icon-button-background-color-error-active: var(
1876
1871
  --button-background-color-error-active
1877
1872
  );
1873
+
1874
+ /* Hover shadows (double ring in dark theme) */
1875
+ --icon-button-hover-shadow-primary:
1876
+ 0 0 0 1px var(--icon-button-outline-shadow-color),
1877
+ 0 0 0 2px var(--icon-button-outline-color-primary);
1878
+ --icon-button-hover-shadow-secondary:
1879
+ 0 0 0 1px var(--icon-button-outline-shadow-color),
1880
+ 0 0 0 2px var(--icon-button-outline-color-secondary);
1881
+ --icon-button-hover-shadow-error:
1882
+ 0 0 0 1px var(--icon-button-outline-shadow-color),
1883
+ 0 0 0 2px var(--icon-button-outline-color-error);
1878
1884
  }
1879
1885
 
1880
1886
  .cauldron--theme-dark .IconButton--primary {
@@ -1911,34 +1917,9 @@ a.IconButton {
1911
1917
  color: var(--icon-button-disabled-color);
1912
1918
  }
1913
1919
 
1914
- .cauldron--theme-dark
1915
- .IconButton--primary:not([disabled]):not(
1916
- [aria-disabled='true']
1917
- ):hover:before {
1918
- box-shadow: 0 0 0 1px var(--icon-button-outline-shadow-color),
1919
- 0 0 0 2px var(--icon-button-outline-color-primary);
1920
- }
1921
-
1922
- .cauldron--theme-dark
1923
- .IconButton--secondary:not([disabled]):not(
1924
- [aria-disabled='true']
1925
- ):hover:before,
1926
- .cauldron--theme-dark
1927
- .IconButton--tertiary:not([disabled]):not(
1928
- [aria-disabled='true']
1929
- ):hover:before {
1930
- box-shadow: 0 0 0 1px var(--icon-button-outline-shadow-color),
1931
- 0 0 0 2px var(--icon-button-outline-color-secondary);
1932
- }
1933
-
1934
- .cauldron--theme-dark
1935
- .IconButton--error:not([disabled]):not([aria-disabled='true']):hover:before {
1936
- box-shadow: 0 0 0 1px var(--icon-button-outline-shadow-color),
1937
- 0 0 0 2px var(--icon-button-outline-color-error);
1938
- }
1939
-
1940
1920
  .cauldron--theme-dark .IconButton:focus:before {
1941
- box-shadow: 0 0 0 2px var(--icon-button-outline-shadow-color),
1921
+ box-shadow:
1922
+ 0 0 0 2px var(--icon-button-outline-shadow-color),
1942
1923
  0 0 0 4px var(--button-focus-ring-color, --focus);
1943
1924
  }
1944
1925
 
@@ -1954,10 +1935,16 @@ a.IconButton {
1954
1935
  --dialog-footer-background-color: var(--gray-20);
1955
1936
  --dialog-heading-text-color: var(--header-text-color-dark);
1956
1937
  --dialog-padding: var(--space-small);
1938
+ --dialog-header-padding: var(--space-smallest) 0;
1939
+ --dialog-header-border: 1px solid var(--dialog-border-color);
1940
+ --dialog-content-padding: var(--dialog-padding);
1941
+ --dialog-footer-padding: var(--dialog-padding);
1942
+ --dialog-footer-border: 1px solid var(--dialog-border-color);
1957
1943
  --dialog-header-height: 2.625rem;
1958
1944
  --dialog-close-button-size: var(--target-size-minimum);
1959
1945
  --dialog-vertical-offset: 6.25rem;
1960
1946
  --dialog-bottom-spacing: 1.875rem;
1947
+ --dialog-content-line-height: inherit;
1961
1948
  }
1962
1949
 
1963
1950
  .cauldron--theme-dark {
@@ -2000,12 +1987,12 @@ a.IconButton {
2000
1987
  .Dialog__header {
2001
1988
  display: flex;
2002
1989
  background-color: var(--dialog-header-background-color);
2003
- border-bottom: 1px solid var(--dialog-border-color);
1990
+ border-bottom: var(--dialog-header-border);
2004
1991
  align-items: center;
2005
1992
  justify-content: space-between;
2006
1993
  min-height: var(--dialog-header-height);
2007
1994
  font-weight: var(--font-weight-bold);
2008
- padding: var(--space-smallest) 0;
1995
+ padding: var(--dialog-header-padding);
2009
1996
  gap: var(--space-smallest);
2010
1997
  }
2011
1998
 
@@ -2071,7 +2058,8 @@ a.IconButton {
2071
2058
  }
2072
2059
 
2073
2060
  .Dialog__content {
2074
- padding: var(--dialog-padding);
2061
+ padding: var(--dialog-content-padding);
2062
+ line-height: var(--dialog-content-line-height);
2075
2063
  }
2076
2064
 
2077
2065
  .Dialog__content p:first-child {
@@ -2084,8 +2072,8 @@ a.IconButton {
2084
2072
 
2085
2073
  .Dialog__footer {
2086
2074
  background-color: var(--dialog-footer-background-color);
2087
- border-top: 1px solid var(--dialog-border-color);
2088
- padding: var(--dialog-padding);
2075
+ border-top: var(--dialog-footer-border);
2076
+ padding: var(--dialog-footer-padding);
2089
2077
  }
2090
2078
 
2091
2079
  /**
@@ -2129,6 +2117,15 @@ a.IconButton {
2129
2117
  border-width: 4px;
2130
2118
  }
2131
2119
 
2120
+ /* Compensate for the larger dark theme border so Dialog dimensions remain consistent */
2121
+
2122
+ .cauldron--theme-dark .Dialog__content {
2123
+ --dialog-content-padding-compensation: 3px;
2124
+ padding: calc(
2125
+ var(--dialog-content-padding) - var(--dialog-content-padding-compensation)
2126
+ );
2127
+ }
2128
+
2132
2129
  .cauldron--theme-dark .Dialog__header {
2133
2130
  border-bottom: 1px solid var(--stroke-dark);
2134
2131
  }
@@ -2160,6 +2157,33 @@ a.IconButton {
2160
2157
  border-top: none;
2161
2158
  }
2162
2159
 
2160
+ .cauldron--theme-dark .Alert .Dialog__inner {
2161
+ background-color: var(--accent-dark);
2162
+ }
2163
+
2164
+ .cauldron--theme-dark .Alert .Dialog__header {
2165
+ background-color: var(--accent-medium);
2166
+ border-bottom: none;
2167
+ }
2168
+
2169
+ .cauldron--theme-dark .Alert .Dialog__footer {
2170
+ background-color: transparent;
2171
+ border-top: none;
2172
+ }
2173
+
2174
+ .cauldron--theme-dark .Alert .Dialog__content .Link,
2175
+ .cauldron--theme-dark .Alert .Dialog__content .Link:hover {
2176
+ color: currentColor;
2177
+ }
2178
+
2179
+ /* Dark theme: checked checkbox/radio icons in Dialogs should inherit the
2180
+ dialog's text color rather than using the global checked color */
2181
+
2182
+ .cauldron--theme-dark .Dialog .Checkbox__overlay.Icon--checkbox-checked,
2183
+ .cauldron--theme-dark .Dialog .Radio__overlay.Icon--radio-checked {
2184
+ color: currentColor;
2185
+ }
2186
+
2163
2187
  :root {
2164
2188
  --link-text-color: var(--gray-90);
2165
2189
  --link-text-color-hover: #3873a3;
@@ -2174,7 +2198,7 @@ a.IconButton {
2174
2198
  .Link {
2175
2199
  text-decoration: underline;
2176
2200
  color: var(--link-text-color);
2177
- padding: var(--space-quarter);
2201
+ padding: var(--link-padding, var(--space-quarter));
2178
2202
  background: transparent;
2179
2203
  vertical-align: baseline;
2180
2204
  }
@@ -2190,8 +2214,7 @@ a.IconButton {
2190
2214
  }
2191
2215
 
2192
2216
  .Link:where(:has(.Icon)) {
2193
- max-width: -moz-max-content;
2194
- max-width: max-content;
2217
+ width: fit-content;
2195
2218
  display: inline-flex;
2196
2219
  align-items: center;
2197
2220
  gap: var(--space-half);
@@ -2205,6 +2228,8 @@ a.IconButton {
2205
2228
  --options-menu-hover-background-color: var(--gray-20);
2206
2229
  --options-menu-active-border-color: var(--accent-primary);
2207
2230
  --options-menu-border-color: var(--gray-40);
2231
+ --options-menu-width: auto;
2232
+ --options-menu-item-font-size: var(--text-size-smaller);
2208
2233
  }
2209
2234
 
2210
2235
  .cauldron--theme-dark {
@@ -2219,6 +2244,7 @@ a.IconButton {
2219
2244
  .OptionsMenu {
2220
2245
  position: relative;
2221
2246
  color: var(--text-color-base);
2247
+ width: var(--options-menu-width);
2222
2248
  }
2223
2249
 
2224
2250
  .OptionsMenu__trigger {
@@ -2243,7 +2269,7 @@ a.IconButton {
2243
2269
  color: var(--options-menu-text-color);
2244
2270
  display: none;
2245
2271
  position: absolute;
2246
- font-size: var(--text-size-smaller);
2272
+ font-size: var(--options-menu-item-font-size);
2247
2273
  list-style-type: none;
2248
2274
  margin: 0;
2249
2275
  padding: 0;
@@ -2349,12 +2375,18 @@ a.IconButton {
2349
2375
  --select-min-height: 33px;
2350
2376
  --select-width: 300px;
2351
2377
  --select-arrow-spacing: 10px;
2378
+ --field-select-max-width: 100%;
2379
+ --field-select-margin-bottom: var(--space-small);
2352
2380
  }
2353
2381
 
2354
2382
  .Field__select {
2355
2383
  display: flex;
2356
2384
  flex-direction: column;
2357
- margin-bottom: var(--space-small);
2385
+ margin-bottom: var(--field-select-margin-bottom);
2386
+ }
2387
+
2388
+ .Field__select + .Field__select {
2389
+ margin-top: 0;
2358
2390
  }
2359
2391
 
2360
2392
  .Field__select--disabled {
@@ -2364,7 +2396,7 @@ a.IconButton {
2364
2396
  .Field__select--wrapper {
2365
2397
  position: relative;
2366
2398
  width: var(--select-width);
2367
- max-width: 100%;
2399
+ max-width: var(--field-select-max-width);
2368
2400
  }
2369
2401
 
2370
2402
  .arrow-down {
@@ -2391,12 +2423,9 @@ a.IconButton {
2391
2423
  font-style: normal;
2392
2424
  font-size: var(--text-size-small);
2393
2425
  color: var(--field-content-color);
2394
- -webkit-text-decoration: rgb(102, 102, 102);
2395
- text-decoration: rgb(102, 102, 102);
2426
+ text-decoration: rgb(102, 102, 102);
2396
2427
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
2397
- -webkit-appearance: none;
2398
- -moz-appearance: none;
2399
- appearance: none;
2428
+ appearance: none;
2400
2429
  }
2401
2430
 
2402
2431
  .Field__select--wrapper select:not([disabled]):hover {
@@ -2405,7 +2434,8 @@ a.IconButton {
2405
2434
 
2406
2435
  .Field__select--wrapper select:focus {
2407
2436
  border-color: var(--field-border-color-focus);
2408
- box-shadow: 0 0 0 1px var(--field-border-color-focus),
2437
+ box-shadow:
2438
+ 0 0 0 1px var(--field-border-color-focus),
2409
2439
  0 0 5px var(--field-border-color-focus-glow),
2410
2440
  inset 0 1px 2px rgba(0, 0, 0, 0.05);
2411
2441
  }
@@ -2414,30 +2444,36 @@ a.IconButton {
2414
2444
  border-color: var(--field-border-color-focus-hover);
2415
2445
  }
2416
2446
 
2417
- .Field__select--wrapper select:invalid,
2447
+ /* autoprefixer: off */
2448
+
2449
+ .Field__select--wrapper select:user-invalid,
2418
2450
  .Field--has-error select {
2419
2451
  border-width: 1px;
2420
2452
  border-color: var(--field-border-color-error);
2421
2453
  }
2422
2454
 
2455
+ .Field__select--wrapper select:user-invalid:hover,
2423
2456
  .Field__select--wrapper.Field--has-error select:hover {
2424
2457
  border-color: var(--field-border-color-error-hover);
2425
2458
  box-shadow: 0 0 0 1px var(--field-border-color-error-hover);
2426
2459
  }
2427
2460
 
2428
- .Field__select--wrapper select:invalid:focus,
2461
+ .Field__select--wrapper select:user-invalid:focus,
2429
2462
  .Field__select--wrapper.Field--has-error select:focus {
2430
2463
  border-color: var(--field-border-color-error);
2431
- box-shadow: rgba(0, 0, 0, 0.05) 0 1px 2px 0 inset,
2464
+ box-shadow:
2465
+ rgba(0, 0, 0, 0.05) 0 1px 2px 0 inset,
2432
2466
  var(--field-border-color-error) 0 0 0 1px,
2433
2467
  var(--field-border-color-error-focus-glow) 0 0 5px 0;
2434
2468
  }
2435
2469
 
2436
- .Field__select--wrapper select:invalid:focus:hover,
2470
+ .Field__select--wrapper select:user-invalid:focus:hover,
2437
2471
  .Field__select--wrapper.Field--has-error select:focus:hover {
2438
2472
  border-color: var(--field-border-color-error-hover);
2439
2473
  }
2440
2474
 
2475
+ /* autoprefixer: on */
2476
+
2441
2477
  :root {
2442
2478
  --menu-width: 257px;
2443
2479
  }
@@ -2569,9 +2605,7 @@ a.IconButton {
2569
2605
  .RadioCard input[type='radio'] {
2570
2606
  position: absolute;
2571
2607
  opacity: 0;
2572
- -webkit-appearance: none;
2573
- -moz-appearance: none;
2574
- appearance: none;
2608
+ appearance: none;
2575
2609
  height: 1px;
2576
2610
  width: 1px;
2577
2611
  }
@@ -2672,7 +2706,7 @@ a.IconButton {
2672
2706
 
2673
2707
  .Toast {
2674
2708
  top: var(--top-bar-height);
2675
- position: fixed;
2709
+ position: var(--toast-position, fixed);
2676
2710
  right: 0;
2677
2711
  left: 0;
2678
2712
  color: #0b0e11;
@@ -2943,22 +2977,30 @@ button.TooltipTabstop {
2943
2977
  --top-bar-accent-warning-other: var(--accent-danger-light);
2944
2978
  --top-bar-height: 70px;
2945
2979
  --top-bar-height-thin: 43px;
2980
+ --top-bar-position: fixed;
2981
+ --top-bar-padding-inline-start: 0;
2982
+ --top-bar-menu-flex: auto;
2983
+ --top-bar-button-max-width: none;
2984
+ --top-bar-button-flex-direction: row;
2985
+ --top-bar-button-font-size: var(--text-size-small);
2986
+ --top-bar-item-padding: 0 var(--space-small);
2987
+ --top-bar-border-bottom: solid 1px var(--top-bar-border-bottom-color);
2946
2988
  }
2947
2989
 
2948
2990
  .TopBar {
2949
- position: fixed;
2991
+ position: var(--top-bar-position);
2950
2992
  width: 100%;
2951
2993
  height: var(--top-bar-height);
2952
2994
  top: 0;
2953
2995
  flex: none;
2954
- flex-direction: row;
2955
2996
  box-sizing: border-box;
2956
2997
  z-index: var(--z-index-top-bar);
2957
2998
  display: flex;
2958
2999
  align-items: center;
2959
3000
  background-color: var(--top-bar-background-color);
2960
3001
  color: var(--top-bar-text-color);
2961
- border-bottom: solid 1px var(--top-bar-border-bottom-color);
3002
+ border-bottom: var(--top-bar-border-bottom);
3003
+ padding-inline-start: var(--top-bar-padding-inline-start);
2962
3004
  }
2963
3005
 
2964
3006
  .TopBar--thin .TopBar {
@@ -2969,12 +3011,15 @@ button.TooltipTabstop {
2969
3011
  list-style-type: none;
2970
3012
  display: flex;
2971
3013
  align-items: center;
2972
- flex: auto;
3014
+ flex: var(--top-bar-menu-flex);
2973
3015
  }
2974
3016
 
2975
3017
  .TopBar li button {
2976
3018
  background: transparent;
2977
3019
  color: inherit;
3020
+ max-width: var(--top-bar-button-max-width);
3021
+ font-size: var(--top-bar-button-font-size);
3022
+ flex-direction: var(--top-bar-button-flex-direction);
2978
3023
  }
2979
3024
 
2980
3025
  .TopBar > ul > li {
@@ -2989,7 +3034,7 @@ button.TooltipTabstop {
2989
3034
  }
2990
3035
 
2991
3036
  .TopBar > ul > li:not(.TopBar__menu-trigger) {
2992
- padding: 0 var(--space-small);
3037
+ padding: var(--top-bar-item-padding);
2993
3038
  font-size: var(--text-size-small);
2994
3039
  height: var(--top-bar-height);
2995
3040
  display: flex;
@@ -3086,10 +3131,7 @@ button.TooltipTabstop {
3086
3131
  --top-bar-border-bottom-color: var(--gray-70);
3087
3132
  --top-bar-text-color: var(--accent-light);
3088
3133
  --top-bar-background-color-active: #0b0e11;
3089
- }
3090
-
3091
- .cauldron--theme-dark .TopBar {
3092
- border-bottom: none;
3134
+ --top-bar-border-bottom: none;
3093
3135
  }
3094
3136
 
3095
3137
  .cauldron--theme-dark .TopBar [aria-current='page'] {
@@ -3147,7 +3189,8 @@ button.TooltipTabstop {
3147
3189
  border-radius: 2px;
3148
3190
  }
3149
3191
 
3150
- .SkipLink span {
3192
+ .SkipLink .SkipLink__item--first,
3193
+ .SkipLink .SkipLink__item--second {
3151
3194
  display: block;
3152
3195
  }
3153
3196
 
@@ -3352,6 +3395,9 @@ button.TooltipTabstop {
3352
3395
  --code-text-color: var(--accent-primary-active);
3353
3396
  --code-border-color: var(--stroke-light);
3354
3397
  --code-background-color: var(--background-light);
3398
+ --code-padding: var(--space-smaller);
3399
+ --code-border: 1px solid var(--code-border-color);
3400
+ --code-display: block;
3355
3401
  }
3356
3402
 
3357
3403
  .cauldron--theme-dark {
@@ -3370,10 +3416,10 @@ button.TooltipTabstop {
3370
3416
  }
3371
3417
 
3372
3418
  .Code.hljs {
3373
- display: block;
3374
- padding: var(--space-smaller);
3419
+ display: var(--code-display);
3420
+ padding: var(--code-padding);
3375
3421
  background: var(--code-background-color);
3376
- border: 1px solid var(--code-border-color);
3422
+ border: var(--code-border);
3377
3423
  border-radius: 3px;
3378
3424
  color: var(--code-text-color);
3379
3425
  word-break: break-all;
@@ -3586,10 +3632,17 @@ button.TooltipTabstop {
3586
3632
  var(--space-largest);
3587
3633
  --tab-panel-horizontal-padding: var(--space-large) var(--space-small);
3588
3634
  --tabs-active-text-color: var(--accent-primary-active);
3635
+ --tab-height: 2.875rem;
3636
+ --tab-font-size: inherit;
3637
+ --tab-flex: initial;
3638
+ --tab-panel-border: none;
3639
+ --tabs-horizontal-border-bottom: 1px solid var(--tabs-border-color);
3640
+ --tabs-width: fit-content;
3589
3641
  }
3590
3642
 
3591
3643
  .cauldron--theme-dark {
3592
3644
  --tabs-border-color: var(--accent-dark);
3645
+ --tabs-horizontal-border-bottom: 1px solid var(--tabs-border-color);
3593
3646
  --tab-shadow-color: var(--accent-info);
3594
3647
  --tab-panel-background-color: var(--accent-medium);
3595
3648
  --tab-inactive-background-color: var(--accent-medium);
@@ -3601,8 +3654,7 @@ button.TooltipTabstop {
3601
3654
  }
3602
3655
 
3603
3656
  .Tabs {
3604
- width: -moz-fit-content;
3605
- width: fit-content;
3657
+ width: var(--tabs-width);
3606
3658
  }
3607
3659
 
3608
3660
  .Tabs--vertical {
@@ -3621,7 +3673,7 @@ button.TooltipTabstop {
3621
3673
 
3622
3674
  .Tabs--horizontal {
3623
3675
  width: 100%;
3624
- border-bottom: 1px solid var(--tabs-border-color);
3676
+ border-bottom: var(--tabs-horizontal-border-bottom);
3625
3677
  background-color: var(--tab-inactive-background-color);
3626
3678
  }
3627
3679
 
@@ -3643,12 +3695,14 @@ button.TooltipTabstop {
3643
3695
  display: flex;
3644
3696
  justify-content: center;
3645
3697
  align-items: center;
3646
- height: 2.875rem;
3698
+ height: var(--tab-height);
3647
3699
  white-space: nowrap;
3648
3700
  list-style-type: none;
3649
3701
  background-color: var(--tab-inactive-background-color);
3650
3702
  color: var(--tab-inactive-text-color);
3651
3703
  padding: var(--space-small);
3704
+ font-size: var(--tab-font-size);
3705
+ flex: var(--tab-flex);
3652
3706
  }
3653
3707
 
3654
3708
  .Tabs--vertical .Tab {
@@ -3690,6 +3744,7 @@ button.TooltipTabstop {
3690
3744
  overflow-wrap: break-word;
3691
3745
  color: var(--tab-panel-color);
3692
3746
  background-color: var(--tab-panel-background-color);
3747
+ border: var(--tab-panel-border);
3693
3748
  }
3694
3749
 
3695
3750
  .TabPanel > * {
@@ -3709,6 +3764,7 @@ button.TooltipTabstop {
3709
3764
  --tag-text-color: var(--gray-90);
3710
3765
  --tag-background-color: var(--background-light);
3711
3766
  --tag-border-color: var(--gray-30);
3767
+ --tag-margin: 0;
3712
3768
 
3713
3769
  --tag-height: var(--button-height);
3714
3770
  --tag-small-height: 1.5rem;
@@ -3731,6 +3787,7 @@ button.TooltipTabstop {
3731
3787
  justify-content: center;
3732
3788
  align-items: center;
3733
3789
  padding: 0 var(--space-smallest);
3790
+ margin: var(--tag-margin);
3734
3791
  min-height: var(--tag-height);
3735
3792
  font-size: var(--tag-font-size);
3736
3793
  }
@@ -4227,14 +4284,16 @@ button.TooltipTabstop {
4227
4284
  --panel-padding: var(--space-small);
4228
4285
  --panel-divider-border-color: var(--gray-40);
4229
4286
  --panel-content-color: var(--gray-80);
4287
+ --panel-border: 1px solid var(--panel-border-color);
4288
+ --panel-box-shadow: var(--drop-shadow-raised);
4230
4289
  }
4231
4290
 
4232
4291
  .Panel {
4233
4292
  padding: var(--panel-padding);
4234
4293
  margin: 0;
4235
- border: 1px solid var(--panel-border-color);
4294
+ border: var(--panel-border);
4236
4295
  border-radius: 3px;
4237
- box-shadow: var(--drop-shadow-raised);
4296
+ box-shadow: var(--panel-box-shadow);
4238
4297
  background-color: var(--panel-background-color);
4239
4298
  word-break: break-word;
4240
4299
  color: var(--panel-content-color);
@@ -4646,23 +4705,36 @@ fieldset.Panel {
4646
4705
  --progress-bar-background-color: var(--accent-dark);
4647
4706
  --progress-bar-fill-color: var(--accent-info-light);
4648
4707
  --progress-bar-animation-timing: 150ms;
4708
+ --progress-bar-padding: 2px;
4709
+ --progress-bar-border-radius: calc((var(--space-small) * 0.5) + 2px);
4710
+ --progress-bar-fill-height: var(--space-small);
4711
+ --progress-bar-fill-border-radius: calc(var(--space-small) * 0.5);
4712
+ --progress-bar-fill-min-width: var(--space-small);
4649
4713
  }
4650
4714
 
4651
4715
  .ProgressBar {
4652
4716
  background-color: var(--progress-bar-background-color);
4653
- padding: 2px;
4654
- border-radius: calc((var(--space-small) * 0.5) + 2px);
4717
+ padding: var(--progress-bar-padding);
4718
+ border-radius: var(--progress-bar-border-radius);
4655
4719
  margin-bottom: var(--space-smallest);
4656
4720
  }
4657
4721
 
4658
4722
  .ProgressBar--fill {
4659
- border-radius: calc(var(--space-small) * 0.5);
4723
+ border-radius: var(--progress-bar-fill-border-radius);
4660
4724
  background-color: var(--progress-bar-fill-color);
4661
- height: var(--space-small);
4662
- min-width: var(--space-small);
4725
+ height: var(--progress-bar-fill-height);
4726
+ min-width: var(--progress-bar-fill-min-width);
4663
4727
  transition: width linear var(--progress-bar-animation-timing);
4664
4728
  }
4665
4729
 
4730
+ .ProgressBar--thin {
4731
+ --progress-bar-padding: 3px;
4732
+ --progress-bar-border-radius: 3px;
4733
+ --progress-bar-fill-height: var(--space-half);
4734
+ --progress-bar-fill-border-radius: 1px;
4735
+ --progress-bar-fill-min-width: 1px;
4736
+ }
4737
+
4666
4738
  .cauldron--theme-dark .Icon--robot circle {
4667
4739
  stroke: var(--accent-light);
4668
4740
  stroke-width: 2px;
@@ -5115,6 +5187,9 @@ fieldset.Panel {
5115
5187
  --accordion-trigger-box-shadow-hover: var(--accent-primary);
5116
5188
  --accordion-trigger-border-color: var(--gray-40);
5117
5189
  --accordion-trigger-icon-color: var(--gray-90);
5190
+ --accordion-trigger-padding: calc(var(--space-small) - var(--space-half));
5191
+ --accordion-trigger-text-decoration: underline solid
5192
+ var(--accordion-trigger-text-color);
5118
5193
  --accordion-panel-background-color: var(--white);
5119
5194
  --accordion-panel-text-color: var(--gray-90);
5120
5195
  --accordion-panel-border-color: var(--gray-40);
@@ -5142,7 +5217,7 @@ fieldset.Panel {
5142
5217
  .Accordion__trigger,
5143
5218
  button.Accordion__trigger {
5144
5219
  background-color: var(--accordion-trigger-background-color);
5145
- padding: calc(var(--space-small) - var(--space-half));
5220
+ padding: var(--accordion-trigger-padding);
5146
5221
  width: 100%;
5147
5222
  display: flex;
5148
5223
  align-items: center;
@@ -5151,8 +5226,7 @@ button.Accordion__trigger {
5151
5226
  font-size: var(--text-size-small);
5152
5227
  margin-top: var(--space-small);
5153
5228
  color: var(--accordion-trigger-text-color);
5154
- -webkit-text-decoration: underline solid var(--accordion-trigger-text-color);
5155
- text-decoration: underline solid var(--accordion-trigger-text-color);
5229
+ text-decoration: var(--accordion-trigger-text-decoration);
5156
5230
  }
5157
5231
 
5158
5232
  .Accordion__trigger[aria-expanded='true'] {
@@ -5165,8 +5239,7 @@ button.Accordion__trigger {
5165
5239
  box-shadow: inset 8px 0 0 -4px var(--accordion-trigger-box-shadow-hover);
5166
5240
  color: var(--accordion-trigger-text-color-hover);
5167
5241
  transition: all 0.2s ease-in-out;
5168
- -webkit-text-decoration: underline solid var(--accordion-trigger-text-color-hover);
5169
- text-decoration: underline solid var(--accordion-trigger-text-color-hover);
5242
+ text-decoration: underline solid var(--accordion-trigger-text-color-hover);
5170
5243
  }
5171
5244
 
5172
5245
  .Accordion__trigger:hover .Icon {
@@ -5226,7 +5299,7 @@ button.Accordion__trigger {
5226
5299
  display: grid;
5227
5300
  grid-template-columns: auto 1fr;
5228
5301
  gap: 0 var(--space-small);
5229
- padding: var(--space-large);
5302
+ padding: var(--notice-padding, var(--space-large));
5230
5303
  align-items: start;
5231
5304
  border-radius: 4px;
5232
5305
  border: 1px solid var(--notice-border-color);
@@ -5329,6 +5402,7 @@ button.Accordion__trigger {
5329
5402
  --combobox-listbox-background-color: var(--accent-medium);
5330
5403
  --combobox-group-label-background-color: var(--accent-dark);
5331
5404
  --combobox-option-selected-icon-color: var(--accent-info);
5405
+ --combobox-arrow-color: var(--text-color-light);
5332
5406
  }
5333
5407
 
5334
5408
  .Combobox :where(.TextFieldWrapper) {
@@ -5437,6 +5511,7 @@ button.Accordion__trigger {
5437
5511
  position: absolute;
5438
5512
  right: 0;
5439
5513
  pointer-events: none;
5514
+ color: var(--combobox-arrow-color, currentColor);
5440
5515
  }
5441
5516
 
5442
5517
  .Combobox__arrow:before {
@@ -5784,8 +5859,7 @@ button.Accordion__trigger {
5784
5859
 
5785
5860
  .TextEllipsis:where([role='button']) {
5786
5861
  text-align: inherit;
5787
- -moz-user-select: inherit;
5788
- user-select: inherit;
5862
+ user-select: inherit;
5789
5863
  }
5790
5864
 
5791
5865
  .TextEllipsis--multiline {
@@ -6313,3 +6387,66 @@ button.Accordion__trigger {
6313
6387
  .ActionListItem__description {
6314
6388
  color: var(--action-list-item-disabled-text-color);
6315
6389
  }
6390
+
6391
+ /**
6392
+ * Compact density preset for constrained viewports.
6393
+ *
6394
+ * Apply the `.cauldron--density-compact` class to the root element (e.g. <body>)
6395
+ * alongside the theme class to get tighter sizing across all components.
6396
+ * This is designed for embedded UIs like browser extension panels.
6397
+ *
6398
+ * Works orthogonally to theme classes:
6399
+ * <body class="cauldron--theme-dark cauldron--density-compact">
6400
+ */
6401
+
6402
+ .cauldron--density-compact {
6403
+ /* TopBar: static positioning for embedded contexts, compact button layout */
6404
+ --top-bar-position: static;
6405
+ --top-bar-padding-inline-start: var(--space-small);
6406
+ --top-bar-menu-flex: initial;
6407
+ --top-bar-button-max-width: 80px;
6408
+ --top-bar-button-flex-direction: column;
6409
+ --top-bar-button-font-size: var(--text-size-smallest);
6410
+ --top-bar-item-padding: 0;
6411
+
6412
+ /* Tabs: fill width, smaller font */
6413
+ --tabs-width: auto;
6414
+ --tab-font-size: var(--text-size-small);
6415
+ --tab-flex: 1;
6416
+
6417
+ /* Tags: use small variant sizing by default */
6418
+ --tag-height: var(--tag-small-height);
6419
+ --tag-font-size: var(--text-size-smaller);
6420
+
6421
+ /* Dialog: viewport-aware positioning for short viewports (e.g. docked devtools) */
6422
+ --dialog-vertical-offset: clamp(8px, calc(18vh - 50px), 100px);
6423
+ --dialog-content-line-height: 1.4;
6424
+
6425
+ /* OptionsMenu: auto-width for narrow viewports */
6426
+ --options-menu-width: auto;
6427
+
6428
+ /* Toast: static positioning (no fixed TopBar to anchor to) */
6429
+ --toast-position: static;
6430
+
6431
+ /* Field select: constrained width */
6432
+ --select-width: clamp(0px, 25rem, 100%);
6433
+
6434
+ /* Code: inline compact display */
6435
+ --code-display: inline;
6436
+ --code-padding: var(--space-quarter) var(--space-half);
6437
+ --code-border: none;
6438
+ }
6439
+
6440
+ /* TopBar buttons: vertical icon-above-label layout in compact mode */
6441
+
6442
+ .cauldron--density-compact .TopBar li button:not(.Link) {
6443
+ display: flex;
6444
+ align-items: center;
6445
+ white-space: normal;
6446
+ }
6447
+
6448
+ /* TopBar: restore padding on items containing text links (not icon buttons) */
6449
+
6450
+ .cauldron--density-compact .TopBar > ul > li:has(button.Link) {
6451
+ padding: 0 var(--space-small);
6452
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deque/cauldron-styles",
3
- "version": "6.26.0",
3
+ "version": "6.27.0-canary.058d302b",
4
4
  "license": "MPL-2.0",
5
5
  "description": "deque cauldron pattern library styles",
6
6
  "repository": "https://github.com/dequelabs/cauldron",