@deque/cauldron-styles 6.25.3-canary.b4d0e96f → 6.25.3-canary.c30b80bc

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 +283 -77
  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 {
@@ -1498,7 +1500,21 @@ button.Link {
1498
1500
  }
1499
1501
 
1500
1502
  [class*='Button--'] + [class*='Button--'] {
1501
- 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;
1502
1518
  }
1503
1519
 
1504
1520
  /* Dark Theme */
@@ -1701,6 +1717,12 @@ button.Link {
1701
1717
  --button-background-color-error-disabled
1702
1718
  );
1703
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);
1704
1726
  }
1705
1727
 
1706
1728
  .IconButton {
@@ -1797,7 +1819,7 @@ a.IconButton {
1797
1819
  }
1798
1820
 
1799
1821
  .IconButton--primary:not([disabled]):not([aria-disabled='true']):hover:before {
1800
- box-shadow: 0 0 0 1px var(--icon-button-outline-color-primary);
1822
+ box-shadow: var(--icon-button-hover-shadow-primary);
1801
1823
  }
1802
1824
 
1803
1825
  .IconButton--primary:active {
@@ -1816,14 +1838,14 @@ a.IconButton {
1816
1838
  .IconButton--tertiary:not([disabled]):not([aria-disabled='true']):is(
1817
1839
  :hover
1818
1840
  ):before {
1819
- box-shadow: 0 0 0 1px var(--icon-button-outline-color-secondary);
1841
+ box-shadow: var(--icon-button-hover-shadow-secondary);
1820
1842
  }
1821
1843
 
1822
1844
  .IconButton--tertiary:is(
1823
- :not(:hover, :focus, :active),
1824
- [disabled],
1825
- [aria-disabled='true']
1826
- ) {
1845
+ :not(:hover, :focus, :active),
1846
+ [disabled],
1847
+ [aria-disabled='true']
1848
+ ) {
1827
1849
  border-color: transparent;
1828
1850
  background-color: transparent;
1829
1851
  }
@@ -1839,7 +1861,7 @@ a.IconButton {
1839
1861
  }
1840
1862
 
1841
1863
  .IconButton--error:not([disabled]):not([aria-disabled='true']):hover:before {
1842
- box-shadow: 0 0 0 1px var(--icon-button-outline-color-error);
1864
+ box-shadow: var(--icon-button-hover-shadow-error);
1843
1865
  }
1844
1866
 
1845
1867
  .IconButton--error:active {
@@ -1875,6 +1897,17 @@ a.IconButton {
1875
1897
  --icon-button-background-color-error-active: var(
1876
1898
  --button-background-color-error-active
1877
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);
1878
1911
  }
1879
1912
 
1880
1913
  .cauldron--theme-dark .IconButton--primary {
@@ -1911,34 +1944,9 @@ a.IconButton {
1911
1944
  color: var(--icon-button-disabled-color);
1912
1945
  }
1913
1946
 
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
1947
  .cauldron--theme-dark .IconButton:focus:before {
1941
- 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),
1942
1950
  0 0 0 4px var(--button-focus-ring-color, --focus);
1943
1951
  }
1944
1952
 
@@ -1954,8 +1962,17 @@ a.IconButton {
1954
1962
  --dialog-footer-background-color: var(--gray-20);
1955
1963
  --dialog-heading-text-color: var(--header-text-color-dark);
1956
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);
1957
1970
  --dialog-header-height: 2.625rem;
1958
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;
1959
1976
  }
1960
1977
 
1961
1978
  .cauldron--theme-dark {
@@ -1973,6 +1990,7 @@ a.IconButton {
1973
1990
  overflow-x: auto;
1974
1991
  position: fixed;
1975
1992
  top: 0;
1993
+ z-index: var(--dialog-z-index);
1976
1994
  background-color: var(--scrim-background-color);
1977
1995
  }
1978
1996
 
@@ -1984,7 +2002,7 @@ a.IconButton {
1984
2002
  width: 400px;
1985
2003
  max-width: 90%;
1986
2004
  left: 50%;
1987
- top: 100px;
2005
+ top: var(--dialog-vertical-offset);
1988
2006
  display: flex;
1989
2007
  flex-direction: column;
1990
2008
  transform: translateX(-50%);
@@ -1998,12 +2016,12 @@ a.IconButton {
1998
2016
  .Dialog__header {
1999
2017
  display: flex;
2000
2018
  background-color: var(--dialog-header-background-color);
2001
- border-bottom: 1px solid var(--dialog-border-color);
2019
+ border-bottom: var(--dialog-header-border);
2002
2020
  align-items: center;
2003
2021
  justify-content: space-between;
2004
2022
  min-height: var(--dialog-header-height);
2005
2023
  font-weight: var(--font-weight-bold);
2006
- padding: var(--space-smallest) 0;
2024
+ padding: var(--dialog-header-padding);
2007
2025
  gap: var(--space-smallest);
2008
2026
  }
2009
2027
 
@@ -2069,7 +2087,8 @@ a.IconButton {
2069
2087
  }
2070
2088
 
2071
2089
  .Dialog__content {
2072
- padding: var(--dialog-padding);
2090
+ padding: var(--dialog-content-padding);
2091
+ line-height: var(--dialog-content-line-height);
2073
2092
  }
2074
2093
 
2075
2094
  .Dialog__content p:first-child {
@@ -2080,10 +2099,14 @@ a.IconButton {
2080
2099
  margin-bottom: 0;
2081
2100
  }
2082
2101
 
2102
+ .Dialog__content .Field {
2103
+ width: 100%;
2104
+ }
2105
+
2083
2106
  .Dialog__footer {
2084
2107
  background-color: var(--dialog-footer-background-color);
2085
- border-top: 1px solid var(--dialog-border-color);
2086
- padding: var(--dialog-padding);
2108
+ border-top: var(--dialog-footer-border);
2109
+ padding: var(--dialog-footer-padding);
2087
2110
  }
2088
2111
 
2089
2112
  /**
@@ -2108,6 +2131,18 @@ a.IconButton {
2108
2131
  padding-top: 0;
2109
2132
  }
2110
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
+
2111
2146
  /* Dark Theme */
2112
2147
 
2113
2148
  .cauldron--theme-dark .Dialog__inner {
@@ -2115,6 +2150,15 @@ a.IconButton {
2115
2150
  border-width: 4px;
2116
2151
  }
2117
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
+
2118
2162
  .cauldron--theme-dark .Dialog__header {
2119
2163
  border-bottom: 1px solid var(--stroke-dark);
2120
2164
  }
@@ -2146,6 +2190,33 @@ a.IconButton {
2146
2190
  border-top: none;
2147
2191
  }
2148
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
+
2149
2220
  :root {
2150
2221
  --link-text-color: var(--gray-90);
2151
2222
  --link-text-color-hover: #3873a3;
@@ -2160,7 +2231,7 @@ a.IconButton {
2160
2231
  .Link {
2161
2232
  text-decoration: underline;
2162
2233
  color: var(--link-text-color);
2163
- padding: var(--space-quarter);
2234
+ padding: var(--link-padding, var(--space-quarter));
2164
2235
  background: transparent;
2165
2236
  vertical-align: baseline;
2166
2237
  }
@@ -2191,6 +2262,8 @@ a.IconButton {
2191
2262
  --options-menu-hover-background-color: var(--gray-20);
2192
2263
  --options-menu-active-border-color: var(--accent-primary);
2193
2264
  --options-menu-border-color: var(--gray-40);
2265
+ --options-menu-width: auto;
2266
+ --options-menu-item-font-size: var(--text-size-smaller);
2194
2267
  }
2195
2268
 
2196
2269
  .cauldron--theme-dark {
@@ -2205,6 +2278,7 @@ a.IconButton {
2205
2278
  .OptionsMenu {
2206
2279
  position: relative;
2207
2280
  color: var(--text-color-base);
2281
+ width: var(--options-menu-width);
2208
2282
  }
2209
2283
 
2210
2284
  .OptionsMenu__trigger {
@@ -2229,7 +2303,7 @@ a.IconButton {
2229
2303
  color: var(--options-menu-text-color);
2230
2304
  display: none;
2231
2305
  position: absolute;
2232
- font-size: var(--text-size-smaller);
2306
+ font-size: var(--options-menu-item-font-size);
2233
2307
  list-style-type: none;
2234
2308
  margin: 0;
2235
2309
  padding: 0;
@@ -2335,12 +2409,18 @@ a.IconButton {
2335
2409
  --select-min-height: 33px;
2336
2410
  --select-width: 300px;
2337
2411
  --select-arrow-spacing: 10px;
2412
+ --field-select-max-width: 100%;
2413
+ --field-select-margin-bottom: var(--space-small);
2338
2414
  }
2339
2415
 
2340
2416
  .Field__select {
2341
2417
  display: flex;
2342
2418
  flex-direction: column;
2343
- margin-bottom: var(--space-small);
2419
+ margin-bottom: var(--field-select-margin-bottom);
2420
+ }
2421
+
2422
+ .Field__select + .Field__select {
2423
+ margin-top: 0;
2344
2424
  }
2345
2425
 
2346
2426
  .Field__select--disabled {
@@ -2350,7 +2430,7 @@ a.IconButton {
2350
2430
  .Field__select--wrapper {
2351
2431
  position: relative;
2352
2432
  width: var(--select-width);
2353
- max-width: 100%;
2433
+ max-width: var(--field-select-max-width);
2354
2434
  }
2355
2435
 
2356
2436
  .arrow-down {
@@ -2391,7 +2471,8 @@ a.IconButton {
2391
2471
 
2392
2472
  .Field__select--wrapper select:focus {
2393
2473
  border-color: var(--field-border-color-focus);
2394
- box-shadow: 0 0 0 1px var(--field-border-color-focus),
2474
+ box-shadow:
2475
+ 0 0 0 1px var(--field-border-color-focus),
2395
2476
  0 0 5px var(--field-border-color-focus-glow),
2396
2477
  inset 0 1px 2px rgba(0, 0, 0, 0.05);
2397
2478
  }
@@ -2414,7 +2495,8 @@ a.IconButton {
2414
2495
  .Field__select--wrapper select:invalid:focus,
2415
2496
  .Field__select--wrapper.Field--has-error select:focus {
2416
2497
  border-color: var(--field-border-color-error);
2417
- 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,
2418
2500
  var(--field-border-color-error) 0 0 0 1px,
2419
2501
  var(--field-border-color-error-focus-glow) 0 0 5px 0;
2420
2502
  }
@@ -2658,7 +2740,7 @@ a.IconButton {
2658
2740
 
2659
2741
  .Toast {
2660
2742
  top: var(--top-bar-height);
2661
- position: fixed;
2743
+ position: var(--toast-position, fixed);
2662
2744
  right: 0;
2663
2745
  left: 0;
2664
2746
  color: #0b0e11;
@@ -2745,6 +2827,10 @@ a.IconButton {
2745
2827
  color: var(--accent-medium);
2746
2828
  }
2747
2829
 
2830
+ .Toast ul {
2831
+ margin-left: var(--toast-list-margin-left, 0);
2832
+ }
2833
+
2748
2834
  .Toast:focus {
2749
2835
  outline: 0;
2750
2836
  }
@@ -2929,22 +3015,31 @@ button.TooltipTabstop {
2929
3015
  --top-bar-accent-warning-other: var(--accent-danger-light);
2930
3016
  --top-bar-height: 70px;
2931
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);
2932
3026
  }
2933
3027
 
2934
3028
  .TopBar {
2935
- position: fixed;
3029
+ position: var(--top-bar-position);
2936
3030
  width: 100%;
2937
3031
  height: var(--top-bar-height);
2938
3032
  top: 0;
2939
3033
  flex: none;
2940
- flex-direction: row;
2941
3034
  box-sizing: border-box;
2942
3035
  z-index: var(--z-index-top-bar);
2943
3036
  display: flex;
2944
3037
  align-items: center;
2945
3038
  background-color: var(--top-bar-background-color);
2946
3039
  color: var(--top-bar-text-color);
2947
- 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);
2948
3043
  }
2949
3044
 
2950
3045
  .TopBar--thin .TopBar {
@@ -2955,12 +3050,15 @@ button.TooltipTabstop {
2955
3050
  list-style-type: none;
2956
3051
  display: flex;
2957
3052
  align-items: center;
2958
- flex: auto;
3053
+ flex: var(--top-bar-menu-flex);
2959
3054
  }
2960
3055
 
2961
3056
  .TopBar li button {
2962
3057
  background: transparent;
2963
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);
2964
3062
  }
2965
3063
 
2966
3064
  .TopBar > ul > li {
@@ -2975,7 +3073,7 @@ button.TooltipTabstop {
2975
3073
  }
2976
3074
 
2977
3075
  .TopBar > ul > li:not(.TopBar__menu-trigger) {
2978
- padding: 0 var(--space-small);
3076
+ padding: var(--top-bar-item-padding);
2979
3077
  font-size: var(--text-size-small);
2980
3078
  height: var(--top-bar-height);
2981
3079
  display: flex;
@@ -3072,10 +3170,7 @@ button.TooltipTabstop {
3072
3170
  --top-bar-border-bottom-color: var(--gray-70);
3073
3171
  --top-bar-text-color: var(--accent-light);
3074
3172
  --top-bar-background-color-active: #0b0e11;
3075
- }
3076
-
3077
- .cauldron--theme-dark .TopBar {
3078
- border-bottom: none;
3173
+ --top-bar-border-bottom: none;
3079
3174
  }
3080
3175
 
3081
3176
  .cauldron--theme-dark .TopBar [aria-current='page'] {
@@ -3338,6 +3433,10 @@ button.TooltipTabstop {
3338
3433
  --code-text-color: var(--accent-primary-active);
3339
3434
  --code-border-color: var(--stroke-light);
3340
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;
3341
3440
  }
3342
3441
 
3343
3442
  .cauldron--theme-dark {
@@ -3356,10 +3455,11 @@ button.TooltipTabstop {
3356
3455
  }
3357
3456
 
3358
3457
  .Code.hljs {
3359
- display: block;
3360
- padding: var(--space-smaller);
3458
+ display: var(--code-display);
3459
+ padding: var(--code-padding);
3460
+ margin: var(--code-margin);
3361
3461
  background: var(--code-background-color);
3362
- border: 1px solid var(--code-border-color);
3462
+ border: var(--code-border);
3363
3463
  border-radius: 3px;
3364
3464
  color: var(--code-text-color);
3365
3465
  word-break: break-all;
@@ -3572,10 +3672,17 @@ button.TooltipTabstop {
3572
3672
  var(--space-largest);
3573
3673
  --tab-panel-horizontal-padding: var(--space-large) var(--space-small);
3574
3674
  --tabs-active-text-color: var(--accent-primary-active);
3675
+ --tab-height: 2.875rem;
3676
+ --tab-font-size: inherit;
3677
+ --tab-flex: initial;
3678
+ --tabpanel-border: none;
3679
+ --tabs-horizontal-border-bottom: 1px solid var(--tabs-border-color);
3680
+ --tabs-width: fit-content;
3575
3681
  }
3576
3682
 
3577
3683
  .cauldron--theme-dark {
3578
3684
  --tabs-border-color: var(--accent-dark);
3685
+ --tabs-horizontal-border-bottom: 1px solid var(--tabs-border-color);
3579
3686
  --tab-shadow-color: var(--accent-info);
3580
3687
  --tab-panel-background-color: var(--accent-medium);
3581
3688
  --tab-inactive-background-color: var(--accent-medium);
@@ -3587,8 +3694,7 @@ button.TooltipTabstop {
3587
3694
  }
3588
3695
 
3589
3696
  .Tabs {
3590
- width: -moz-fit-content;
3591
- width: fit-content;
3697
+ width: var(--tabs-width);
3592
3698
  }
3593
3699
 
3594
3700
  .Tabs--vertical {
@@ -3607,7 +3713,7 @@ button.TooltipTabstop {
3607
3713
 
3608
3714
  .Tabs--horizontal {
3609
3715
  width: 100%;
3610
- border-bottom: 1px solid var(--tabs-border-color);
3716
+ border-bottom: var(--tabs-horizontal-border-bottom);
3611
3717
  background-color: var(--tab-inactive-background-color);
3612
3718
  }
3613
3719
 
@@ -3629,12 +3735,14 @@ button.TooltipTabstop {
3629
3735
  display: flex;
3630
3736
  justify-content: center;
3631
3737
  align-items: center;
3632
- height: 2.875rem;
3738
+ height: var(--tab-height);
3633
3739
  white-space: nowrap;
3634
3740
  list-style-type: none;
3635
3741
  background-color: var(--tab-inactive-background-color);
3636
3742
  color: var(--tab-inactive-text-color);
3637
3743
  padding: var(--space-small);
3744
+ font-size: var(--tab-font-size);
3745
+ flex: var(--tab-flex);
3638
3746
  }
3639
3747
 
3640
3748
  .Tabs--vertical .Tab {
@@ -3676,6 +3784,7 @@ button.TooltipTabstop {
3676
3784
  overflow-wrap: break-word;
3677
3785
  color: var(--tab-panel-color);
3678
3786
  background-color: var(--tab-panel-background-color);
3787
+ border: var(--tabpanel-border);
3679
3788
  }
3680
3789
 
3681
3790
  .TabPanel > * {
@@ -3695,6 +3804,7 @@ button.TooltipTabstop {
3695
3804
  --tag-text-color: var(--gray-90);
3696
3805
  --tag-background-color: var(--background-light);
3697
3806
  --tag-border-color: var(--gray-30);
3807
+ --tag-margin: 0;
3698
3808
 
3699
3809
  --tag-height: var(--button-height);
3700
3810
  --tag-small-height: 1.5rem;
@@ -3717,6 +3827,7 @@ button.TooltipTabstop {
3717
3827
  justify-content: center;
3718
3828
  align-items: center;
3719
3829
  padding: 0 var(--space-smallest);
3830
+ margin: var(--tag-margin);
3720
3831
  min-height: var(--tag-height);
3721
3832
  font-size: var(--tag-font-size);
3722
3833
  }
@@ -4213,14 +4324,16 @@ button.TooltipTabstop {
4213
4324
  --panel-padding: var(--space-small);
4214
4325
  --panel-divider-border-color: var(--gray-40);
4215
4326
  --panel-content-color: var(--gray-80);
4327
+ --panel-border: 1px solid var(--panel-border-color);
4328
+ --panel-box-shadow: var(--drop-shadow-raised);
4216
4329
  }
4217
4330
 
4218
4331
  .Panel {
4219
4332
  padding: var(--panel-padding);
4220
4333
  margin: 0;
4221
- border: 1px solid var(--panel-border-color);
4334
+ border: var(--panel-border);
4222
4335
  border-radius: 3px;
4223
- box-shadow: var(--drop-shadow-raised);
4336
+ box-shadow: var(--panel-box-shadow);
4224
4337
  background-color: var(--panel-background-color);
4225
4338
  word-break: break-word;
4226
4339
  color: var(--panel-content-color);
@@ -4632,23 +4745,36 @@ fieldset.Panel {
4632
4745
  --progress-bar-background-color: var(--accent-dark);
4633
4746
  --progress-bar-fill-color: var(--accent-info-light);
4634
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);
4635
4753
  }
4636
4754
 
4637
4755
  .ProgressBar {
4638
4756
  background-color: var(--progress-bar-background-color);
4639
- padding: 2px;
4640
- border-radius: calc((var(--space-small) * 0.5) + 2px);
4757
+ padding: var(--progress-bar-padding);
4758
+ border-radius: var(--progress-bar-border-radius);
4641
4759
  margin-bottom: var(--space-smallest);
4642
4760
  }
4643
4761
 
4644
4762
  .ProgressBar--fill {
4645
- border-radius: calc(var(--space-small) * 0.5);
4763
+ border-radius: var(--progress-bar-fill-border-radius);
4646
4764
  background-color: var(--progress-bar-fill-color);
4647
- height: var(--space-small);
4648
- min-width: var(--space-small);
4765
+ height: var(--progress-bar-fill-height);
4766
+ min-width: var(--progress-bar-fill-min-width);
4649
4767
  transition: width linear var(--progress-bar-animation-timing);
4650
4768
  }
4651
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
+
4652
4778
  .cauldron--theme-dark .Icon--robot circle {
4653
4779
  stroke: var(--accent-light);
4654
4780
  stroke-width: 2px;
@@ -5101,6 +5227,9 @@ fieldset.Panel {
5101
5227
  --accordion-trigger-box-shadow-hover: var(--accent-primary);
5102
5228
  --accordion-trigger-border-color: var(--gray-40);
5103
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);
5104
5233
  --accordion-panel-background-color: var(--white);
5105
5234
  --accordion-panel-text-color: var(--gray-90);
5106
5235
  --accordion-panel-border-color: var(--gray-40);
@@ -5128,7 +5257,7 @@ fieldset.Panel {
5128
5257
  .Accordion__trigger,
5129
5258
  button.Accordion__trigger {
5130
5259
  background-color: var(--accordion-trigger-background-color);
5131
- padding: calc(var(--space-small) - var(--space-half));
5260
+ padding: var(--accordion-trigger-padding);
5132
5261
  width: 100%;
5133
5262
  display: flex;
5134
5263
  align-items: center;
@@ -5137,8 +5266,8 @@ button.Accordion__trigger {
5137
5266
  font-size: var(--text-size-small);
5138
5267
  margin-top: var(--space-small);
5139
5268
  color: var(--accordion-trigger-text-color);
5140
- -webkit-text-decoration: underline solid var(--accordion-trigger-text-color);
5141
- 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);
5142
5271
  }
5143
5272
 
5144
5273
  .Accordion__trigger[aria-expanded='true'] {
@@ -5212,7 +5341,7 @@ button.Accordion__trigger {
5212
5341
  display: grid;
5213
5342
  grid-template-columns: auto 1fr;
5214
5343
  gap: 0 var(--space-small);
5215
- padding: var(--space-large);
5344
+ padding: var(--notice-padding, var(--space-large));
5216
5345
  align-items: start;
5217
5346
  border-radius: 4px;
5218
5347
  border: 1px solid var(--notice-border-color);
@@ -5315,6 +5444,7 @@ button.Accordion__trigger {
5315
5444
  --combobox-listbox-background-color: var(--accent-medium);
5316
5445
  --combobox-group-label-background-color: var(--accent-dark);
5317
5446
  --combobox-option-selected-icon-color: var(--accent-info);
5447
+ --combobox-arrow-color: var(--text-color-light);
5318
5448
  }
5319
5449
 
5320
5450
  .Combobox :where(.TextFieldWrapper) {
@@ -5423,6 +5553,7 @@ button.Accordion__trigger {
5423
5553
  position: absolute;
5424
5554
  right: 0;
5425
5555
  pointer-events: none;
5556
+ color: var(--combobox-arrow-color, currentColor);
5426
5557
  }
5427
5558
 
5428
5559
  .Combobox__arrow:before {
@@ -6299,3 +6430,78 @@ button.Accordion__trigger {
6299
6430
  .ActionListItem__description {
6300
6431
  color: var(--action-list-item-disabled-text-color);
6301
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, no panel border */
6456
+ --tabs-width: auto;
6457
+ --tab-font-size: var(--text-size-small);
6458
+ --tab-flex: 1;
6459
+ --tabpanel-border: none;
6460
+
6461
+ /* Tags: use small variant sizing by default */
6462
+ --tag-height: var(--tag-small-height);
6463
+ --tag-font-size: var(--text-size-smaller);
6464
+
6465
+ /* Dialog: viewport-aware positioning for short viewports (e.g. docked devtools) */
6466
+ --dialog-vertical-offset: clamp(8px, calc(18vh - 50px), 100px);
6467
+ --dialog-content-line-height: 1.4;
6468
+
6469
+ /* ProgressBar: thinner default */
6470
+ --progress-bar-padding: 3px;
6471
+ --progress-bar-border-radius: 3px;
6472
+ --progress-bar-fill-height: var(--space-half);
6473
+ --progress-bar-fill-border-radius: 1px;
6474
+ --progress-bar-fill-min-width: 1px;
6475
+
6476
+ /* OptionsMenu: auto-width for narrow viewports */
6477
+ --options-menu-width: auto;
6478
+
6479
+ /* Toast: static positioning (no fixed TopBar to anchor to) */
6480
+ --toast-position: static;
6481
+ --toast-list-margin-left: 1.5em;
6482
+
6483
+ /* Field select: constrained width */
6484
+ --select-width: clamp(0px, 25rem, 100%);
6485
+
6486
+ /* ExpandCollapse: adjust trigger icon position */
6487
+ --expandcollapse-trigger-icon-offset: -8px;
6488
+
6489
+ /* Code: inline compact display */
6490
+ --code-display: inline;
6491
+ --code-padding: var(--space-quarter) var(--space-half);
6492
+ --code-border: none;
6493
+ }
6494
+
6495
+ /* TopBar buttons: vertical icon-above-label layout in compact mode */
6496
+
6497
+ .cauldron--density-compact .TopBar li button:not(.Link) {
6498
+ display: flex;
6499
+ align-items: center;
6500
+ white-space: normal;
6501
+ }
6502
+
6503
+ /* TopBar: restore padding on items containing text links (not icon buttons) */
6504
+
6505
+ .cauldron--density-compact .TopBar > ul > li:has(button.Link) {
6506
+ padding: 0 var(--space-small);
6507
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deque/cauldron-styles",
3
- "version": "6.25.3-canary.b4d0e96f",
3
+ "version": "6.25.3-canary.c30b80bc",
4
4
  "license": "MPL-2.0",
5
5
  "description": "deque cauldron pattern library styles",
6
6
  "repository": "https://github.com/dequelabs/cauldron",