@rolemodel/optics 2.2.0 → 2.3.0

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 (37) hide show
  1. package/.github/workflows/linting.yml +2 -1
  2. package/.github/workflows/publish-storybook.yml +2 -1
  3. package/.github/workflows/release-package.yml +2 -1
  4. package/.stylelintrc.json +3 -2
  5. package/.yarn/install-state.gz +0 -0
  6. package/build_token_json.js +5 -4
  7. package/dist/css/addons/panel.css +3 -3
  8. package/dist/css/addons/tom-select.css +5 -5
  9. package/dist/css/components/accordion.css +3 -3
  10. package/dist/css/components/alert.css +2 -2
  11. package/dist/css/components/avatar.css +6 -6
  12. package/dist/css/components/button.css +3 -3
  13. package/dist/css/components/button_group.css +4 -4
  14. package/dist/css/components/card.css +4 -4
  15. package/dist/css/components/confirm-dialog.css +1 -1
  16. package/dist/css/components/divider.css +7 -6
  17. package/dist/css/components/form.css +13 -14
  18. package/dist/css/components/icon.css +4 -4
  19. package/dist/css/components/modal.css +25 -43
  20. package/dist/css/components/navbar.css +6 -4
  21. package/dist/css/components/pagination.css +1 -1
  22. package/dist/css/components/segmented-control.css +5 -5
  23. package/dist/css/components/side_panel.css +4 -4
  24. package/dist/css/components/sidebar.css +11 -8
  25. package/dist/css/components/spinner.css +3 -3
  26. package/dist/css/components/switch.css +8 -8
  27. package/dist/css/components/table.css +3 -3
  28. package/dist/css/components/tooltip.css +2 -2
  29. package/dist/css/core/base.css +3 -4
  30. package/dist/css/core/layout.css +114 -7
  31. package/dist/css/core/tokens/base_tokens.css +6 -5
  32. package/dist/css/core/utilities.css +93 -68
  33. package/dist/css/optics.css +321 -209
  34. package/dist/css/optics.min.css +1 -1
  35. package/dist/package.json +15 -14
  36. package/dist/tokens/tokens.json +1 -1
  37. package/package.json +15 -14
@@ -298,7 +298,8 @@ Noto Sans supports:
298
298
  --op-transition-accordion-content: height 300ms ease, content-visibility 300ms ease allow-discrete;
299
299
  --op-transition-input: all 120ms ease-in;
300
300
  --op-transition-sidebar: all 200ms ease-in-out;
301
- --op-transition-modal: all 300ms ease-in;
301
+ --op-transition-modal-time: 300ms;
302
+ --op-transition-modal: all var(--op-transition-modal-time) ease-in;
302
303
  --op-transition-panel: right 400ms ease-in;
303
304
  --op-transition-tooltip: all 300ms ease-in 300ms;
304
305
 
@@ -418,22 +419,22 @@ Noto Sans supports:
418
419
  Start off the Screen
419
420
  */
420
421
  0% {
421
- right: -100%;
422
+ inset-inline-end: -100%;
422
423
  }
423
424
 
424
425
  /* Animate onto the screen for 0.5s */
425
426
  10% {
426
- right: var(--op-space-large);
427
+ inset-inline-end: var(--op-space-large);
427
428
  }
428
429
 
429
430
  /* Stay on the screen for 3s */
430
431
  70% {
431
- right: var(--op-space-large);
432
+ inset-inline-end: var(--op-space-large);
432
433
  }
433
434
 
434
435
  /* Animate off the screen for 1.5s */
435
436
  100% {
436
- right: -100%;
437
+ inset-inline-end: -100%;
437
438
  }
438
439
  }
439
440
  :root {
@@ -1940,8 +1941,8 @@ html {
1940
1941
  }
1941
1942
  body {
1942
1943
  overflow: auto;
1943
- height: 100vh;
1944
1944
  background: var(--op-color-background);
1945
+ block-size: 100vh;
1945
1946
  color: var(--op-color-on-background);
1946
1947
  font-size: var(--op-font-medium);
1947
1948
  }
@@ -1982,9 +1983,8 @@ h3,
1982
1983
  h4,
1983
1984
  h5,
1984
1985
  h6 {
1985
- margin-top: 0;
1986
- margin-bottom: var(--op-space-small);
1987
1986
  font-weight: var(--op-font-weight-normal);
1987
+ margin-block: 0 var(--op-space-small);
1988
1988
  }
1989
1989
  h1 {
1990
1990
  font-size: var(--op-font-3x-large);
@@ -2005,17 +2005,17 @@ h6 {
2005
2005
  font-size: var(--op-font-x-small);
2006
2006
  }
2007
2007
  p {
2008
- margin-bottom: var(--op-space-small);
2009
2008
  font-size: var(--op-font-medium);
2009
+ margin-block-end: var(--op-space-small);
2010
2010
  }
2011
2011
  small {
2012
2012
  font-size: var(--op-font-small);
2013
2013
  }
2014
2014
  .app-with-sidebar {
2015
2015
  display: grid;
2016
- width: 100%;
2017
- height: 100vh;
2016
+ block-size: 100vh;
2018
2017
  grid-template-columns: auto 1fr auto;
2018
+ inline-size: 100%;
2019
2019
  }
2020
2020
  .app-body {
2021
2021
  display: flex;
@@ -2025,39 +2025,145 @@ small {
2025
2025
  .app__header {
2026
2026
  position: sticky;
2027
2027
  z-index: var(--op-z-index-header);
2028
- top: 0;
2029
2028
  flex-grow: 0;
2030
2029
  flex-shrink: 0;
2030
+ inset-block-start: 0;
2031
2031
  }
2032
2032
  .app__content {
2033
- width: 100%;
2034
- max-width: var(--op-breakpoint-medium);
2035
2033
  flex-grow: 1;
2036
2034
  padding: 0 var(--op-space-large);
2037
2035
  margin: 0 auto;
2036
+ inline-size: 100%;
2037
+ max-inline-size: var(--op-breakpoint-medium);
2038
2038
  }
2039
2039
  .app__content-no-margin {
2040
- width: 100%;
2041
2040
  flex-grow: 1;
2042
2041
  padding: 0 var(--op-space-large);
2042
+ inline-size: 100%;
2043
2043
  overflow-y: auto;
2044
2044
  }
2045
2045
  .app__footer {
2046
2046
  position: sticky;
2047
2047
  z-index: var(--op-z-index-footer);
2048
- bottom: 0;
2049
2048
  flex-grow: 0;
2050
2049
  flex-shrink: 0;
2050
+ inset-block-end: 0;
2051
+ }
2052
+ /*
2053
+ <html lang='en'>
2054
+ <head>...</head>
2055
+ <body class="op-page">
2056
+ <div class="op-page__sidebar">...</div>
2057
+ <div class="op-page__main">
2058
+ <div class="op-page__main-header">...</div>
2059
+ <div class="op-page__main-content">...</div>
2060
+ <div class="op-page__main-footer">...</div>
2061
+ </div>
2062
+ <div class="op-page__sidebar op-page__sidebar--right">...</div>
2063
+ </body>
2064
+ </html>
2065
+ */
2066
+ :root:has(.op-page) {
2067
+ /* Reset existing Optics layout */
2068
+ overflow: unset;
2069
+
2070
+ body {
2071
+ overflow: unset;
2072
+ }
2073
+
2074
+ /* New Layout */
2075
+ html,
2076
+ body {
2077
+ padding: 0;
2078
+ margin: 0;
2079
+ block-size: 100%;
2080
+ min-block-size: 100%;
2081
+ }
2082
+ }
2083
+ .op-page {
2084
+ display: grid;
2085
+ grid-template-areas: 'sidebar-left main sidebar-right';
2086
+ grid-template-columns: minmax(0, auto) minmax(0, 1fr) minmax(0, auto);
2087
+ min-block-size: 100dvh;
2088
+
2089
+ .op-page__sidebar {
2090
+ grid-area: sidebar-left;
2091
+
2092
+ &.op-page__sidebar--right {
2093
+ grid-area: sidebar-right;
2094
+ }
2095
+ }
2096
+
2097
+ .op-page__main {
2098
+ grid-area: main;
2099
+ }
2100
+
2101
+ .op-page__sidebar {
2102
+ position: sticky;
2103
+ z-index: var(--op-z-index-sidebar);
2104
+ block-size: 100dvh;
2105
+ inset-block-start: 0;
2106
+ max-block-size: 100dvh;
2107
+
2108
+ > * {
2109
+ block-size: 100%;
2110
+ }
2111
+ }
2112
+
2113
+ .op-page__main {
2114
+ display: grid;
2115
+ grid-template-areas:
2116
+ 'main-header'
2117
+ 'main-content'
2118
+ 'main-footer';
2119
+ grid-template-columns: minmax(0, 1fr);
2120
+ grid-template-rows: minmax(0, auto) minmax(0, 1fr) minmax(0, auto);
2121
+ min-block-size: 100%;
2122
+
2123
+ .op-page__main-header {
2124
+ grid-area: main-header;
2125
+ }
2126
+
2127
+ .op-page__main-content {
2128
+ grid-area: main-content;
2129
+ }
2130
+
2131
+ .op-page__main-footer {
2132
+ grid-area: main-footer;
2133
+ }
2134
+
2135
+ .op-page__main-header {
2136
+ position: sticky;
2137
+ z-index: var(--op-z-index-header);
2138
+ inset-block-start: 0;
2139
+ }
2140
+
2141
+ .op-page__main-content {
2142
+ inline-size: 100%;
2143
+ margin-inline: auto;
2144
+ max-inline-size: var(--op-breakpoint-medium);
2145
+ padding-block: var(--op-space-medium);
2146
+ padding-inline: var(--op-space-large);
2147
+ }
2148
+
2149
+ .op-page__main-footer {
2150
+ position: sticky;
2151
+ z-index: var(--op-z-index-footer);
2152
+ inset-block-end: 0;
2153
+ }
2154
+ }
2051
2155
  }
2052
2156
  /* Container Properties */
2053
2157
  .container {
2054
- width: 100%;
2055
- max-width: var(--op-breakpoint-medium);
2056
- padding: 0 var(--op-space-large);
2057
- margin: 0 auto;
2158
+ inline-size: 100%;
2159
+ margin-block: 0;
2160
+ margin-inline: auto;
2161
+ max-inline-size: var(--op-breakpoint-medium);
2162
+ padding-block: 0;
2163
+ padding-inline: var(--op-space-large);
2058
2164
  }
2059
2165
  .container--sm {
2060
- max-width: var(--op-breakpoint-small);
2166
+ max-inline-size: var(--op-breakpoint-small);
2061
2167
  }
2062
2168
  .container--md-padding {
2063
2169
  padding: 0 var(--op-space-medium);
@@ -2066,38 +2172,38 @@ small {
2066
2172
  padding: 0 var(--op-space-small);
2067
2173
  }
2068
2174
  .container--xs {
2069
- max-width: var(--op-breakpoint-x-small);
2175
+ max-inline-size: var(--op-breakpoint-x-small);
2070
2176
  }
2071
2177
  /* Width Properties */
2072
2178
  .full-width {
2073
- width: 100%;
2179
+ inline-size: 100%;
2074
2180
  }
2075
2181
  .half-width {
2076
- width: 50%;
2182
+ inline-size: 50%;
2077
2183
  }
2078
2184
  .four-fifths-width {
2079
- width: calc(100% * 4 / 5);
2185
+ inline-size: calc(100% * 4 / 5);
2080
2186
  }
2081
2187
  .three-fifths-width {
2082
- width: calc(100% * 3 / 5);
2188
+ inline-size: calc(100% * 3 / 5);
2083
2189
  }
2084
2190
  .two-fifths-width {
2085
- width: calc(100% * 2 / 5);
2191
+ inline-size: calc(100% * 2 / 5);
2086
2192
  }
2087
2193
  .one-fifth-width {
2088
- width: calc(100% * 1 / 5);
2194
+ inline-size: calc(100% * 1 / 5);
2089
2195
  }
2090
2196
  .three-quarters-width {
2091
- width: calc(100% * 3 / 4);
2197
+ inline-size: calc(100% * 3 / 4);
2092
2198
  }
2093
2199
  .one-quarter-width {
2094
- width: calc(100% * 1 / 4);
2200
+ inline-size: calc(100% * 1 / 4);
2095
2201
  }
2096
2202
  .two-thirds-width {
2097
- width: calc(100% * 2 / 3);
2203
+ inline-size: calc(100% * 2 / 3);
2098
2204
  }
2099
2205
  .one-third-width {
2100
- width: calc(100% * 1 / 3);
2206
+ inline-size: calc(100% * 1 / 3);
2101
2207
  }
2102
2208
  /* Flex Properties */
2103
2209
  .flex {
@@ -2202,13 +2308,13 @@ small {
2202
2308
  }
2203
2309
  /* Text Alignment */
2204
2310
  .text-left {
2205
- text-align: left;
2311
+ text-align: start;
2206
2312
  }
2207
2313
  .text-center {
2208
2314
  text-align: center;
2209
2315
  }
2210
2316
  .text-right {
2211
- text-align: right;
2317
+ text-align: end;
2212
2318
  }
2213
2319
  .text-justify {
2214
2320
  text-align: justify;
@@ -2237,129 +2343,117 @@ small {
2237
2343
  }
2238
2344
  /* Vertical Margin */
2239
2345
  .margin-y-xl {
2240
- margin-top: var(--op-space-x-large);
2241
- margin-bottom: var(--op-space-x-large);
2346
+ margin-block: var(--op-space-x-large);
2242
2347
  }
2243
2348
  .margin-y-lg {
2244
- margin-top: var(--op-space-large);
2245
- margin-bottom: var(--op-space-large);
2349
+ margin-block: var(--op-space-large);
2246
2350
  }
2247
2351
  .margin-y-md {
2248
- margin-top: var(--op-space-medium);
2249
- margin-bottom: var(--op-space-medium);
2352
+ margin-block: var(--op-space-medium);
2250
2353
  }
2251
2354
  .margin-y-sm {
2252
- margin-top: var(--op-space-small);
2253
- margin-bottom: var(--op-space-small);
2355
+ margin-block: var(--op-space-small);
2254
2356
  }
2255
2357
  .margin-y-xs {
2256
- margin-top: var(--op-space-x-small);
2257
- margin-bottom: var(--op-space-x-small);
2358
+ margin-block: var(--op-space-x-small);
2258
2359
  }
2259
2360
  .margin-y-none {
2260
- margin-top: 0;
2261
- margin-bottom: 0;
2361
+ margin-block: 0;
2262
2362
  }
2263
2363
  /* Horizontal Margin */
2264
2364
  .margin-x-xl {
2265
- margin-right: var(--op-space-x-large);
2266
- margin-left: var(--op-space-x-large);
2365
+ margin-inline: var(--op-space-x-large);
2267
2366
  }
2268
2367
  .margin-x-lg {
2269
- margin-right: var(--op-space-large);
2270
- margin-left: var(--op-space-large);
2368
+ margin-inline: var(--op-space-large);
2271
2369
  }
2272
2370
  .margin-x-md {
2273
- margin-right: var(--op-space-medium);
2274
- margin-left: var(--op-space-medium);
2371
+ margin-inline: var(--op-space-medium);
2275
2372
  }
2276
2373
  .margin-x-sm {
2277
- margin-right: var(--op-space-small);
2278
- margin-left: var(--op-space-small);
2374
+ margin-inline: var(--op-space-small);
2279
2375
  }
2280
2376
  .margin-x-xs {
2281
- margin-right: var(--op-space-x-small);
2282
- margin-left: var(--op-space-x-small);
2377
+ margin-inline: var(--op-space-x-small);
2283
2378
  }
2284
2379
  .margin-x-none {
2285
- margin-right: 0;
2286
- margin-left: 0;
2380
+ margin-inline: 0;
2287
2381
  }
2288
2382
  /* Top Margin */
2289
2383
  .margin-top-xl {
2290
- margin-top: var(--op-space-x-large);
2384
+ margin-block-start: var(--op-space-x-large);
2291
2385
  }
2292
2386
  .margin-top-lg {
2293
- margin-top: var(--op-space-large);
2387
+ margin-block-start: var(--op-space-large);
2294
2388
  }
2295
2389
  .margin-top-md {
2296
- margin-top: var(--op-space-medium);
2390
+ margin-block-start: var(--op-space-medium);
2297
2391
  }
2298
2392
  .margin-top-sm {
2299
- margin-top: var(--op-space-small);
2393
+ margin-block-start: var(--op-space-small);
2300
2394
  }
2301
2395
  .margin-top-xs {
2302
- margin-top: var(--op-space-x-small);
2396
+ margin-block-start: var(--op-space-x-small);
2303
2397
  }
2304
2398
  .margin-top-none {
2305
- margin-top: 0;
2399
+ margin-block-start: 0;
2306
2400
  }
2307
2401
  /* Bottom Margin */
2308
2402
  .margin-bottom-xl {
2309
- margin-bottom: var(--op-space-x-large);
2403
+ margin-block-end: var(--op-space-x-large);
2310
2404
  }
2311
2405
  .margin-bottom-lg {
2312
- margin-bottom: var(--op-space-large);
2406
+ margin-block-end: var(--op-space-large);
2313
2407
  }
2314
2408
  .margin-bottom-md {
2315
- margin-bottom: var(--op-space-medium);
2409
+ margin-block-end: var(--op-space-medium);
2316
2410
  }
2317
2411
  .margin-bottom-sm {
2318
- margin-bottom: var(--op-space-small);
2412
+ margin-block-end: var(--op-space-small);
2319
2413
  }
2320
2414
  .margin-bottom-xs {
2321
- margin-bottom: var(--op-space-x-small);
2415
+ margin-block-end: var(--op-space-x-small);
2322
2416
  }
2323
2417
  .margin-bottom-none {
2324
- margin-bottom: 0;
2418
+ margin-block-end: 0;
2325
2419
  }
2326
2420
  /* Right Margin */
2327
2421
  .margin-right-xl {
2328
- margin-right: var(--op-space-x-large);
2422
+ margin-inline-end: var(--op-space-x-large);
2329
2423
  }
2330
2424
  .margin-right-lg {
2331
- margin-right: var(--op-space-large);
2425
+ margin-inline-end: var(--op-space-large);
2332
2426
  }
2333
2427
  .margin-right-md {
2334
- margin-right: var(--op-space-medium);
2428
+ margin-inline-end: var(--op-space-medium);
2335
2429
  }
2336
2430
  .margin-right-sm {
2337
- margin-right: var(--op-space-small);
2431
+ margin-inline-end: var(--op-space-small);
2338
2432
  }
2339
2433
  .margin-right-xs {
2340
- margin-right: var(--op-space-x-small);
2434
+ margin-inline-end: var(--op-space-x-small);
2341
2435
  }
2342
2436
  .margin-right-none {
2343
- margin-left: 0;
2437
+ margin-inline-start: 0;
2344
2438
  }
2345
2439
  /* Left Margin */
2346
2440
  .margin-left-xl {
2347
- margin-left: var(--op-space-x-large);
2441
+ margin-inline-start: var(--op-space-x-large);
2348
2442
  }
2349
2443
  .margin-left-lg {
2350
- margin-left: var(--op-space-large);
2444
+ margin-inline-start: var(--op-space-large);
2351
2445
  }
2352
2446
  .margin-left-md {
2353
- margin-left: var(--op-space-medium);
2447
+ margin-inline-start: var(--op-space-medium);
2354
2448
  }
2355
2449
  .margin-left-sm {
2356
- margin-left: var(--op-space-small);
2450
+ margin-inline-start: var(--op-space-small);
2357
2451
  }
2358
2452
  .margin-left-xs {
2359
- margin-left: var(--op-space-x-small);
2453
+ margin-inline-start: var(--op-space-x-small);
2360
2454
  }
2361
2455
  .margin-left-none {
2362
- margin-left: 0;
2456
+ margin-inline-start: 0;
2363
2457
  }
2364
2458
  /*
2365
2459
  Accessibility
@@ -2369,10 +2463,38 @@ small {
2369
2463
  .sr-only {
2370
2464
  position: absolute !important;
2371
2465
  overflow: hidden;
2372
- width: 1px;
2373
- height: 1px;
2466
+ block-size: 1px;
2374
2467
  clip: rect(1px 1px 1px 1px);
2375
2468
  clip: rect(1px, 1px, 1px, 1px);
2469
+ inline-size: 1px;
2470
+ }
2471
+ /* Advanced Layout Utilities */
2472
+ /* Equivalent to .flex.flex-col.gap-md */
2473
+ .op-stack {
2474
+ display: flex;
2475
+ flex-direction: column;
2476
+ }
2477
+ :where(.op-stack) {
2478
+ gap: var(--op-space-medium);
2479
+ }
2480
+ /* Equivalent to .flex.flex-wrap.items-center.gap-md */
2481
+ .op-cluster {
2482
+ display: flex;
2483
+ flex-wrap: wrap;
2484
+ }
2485
+ :where(.op-cluster) {
2486
+ align-items: center;
2487
+ gap: var(--op-space-medium);
2488
+ }
2489
+ /* Equivalent to .flex.flex-wrap.items-center.justify-between.gap-md */
2490
+ .op-split {
2491
+ display: flex;
2492
+ flex-wrap: wrap;
2493
+ justify-content: space-between;
2494
+ }
2495
+ :where(.op-split) {
2496
+ align-items: center;
2497
+ gap: var(--op-space-medium);
2376
2498
  }
2377
2499
  /* Components */
2378
2500
  .accordion {
@@ -2386,11 +2508,11 @@ small {
2386
2508
 
2387
2509
  summary {
2388
2510
  display: grid;
2389
- min-height: var(--_op-accordion-summary-min-height);
2390
2511
  align-items: center;
2391
2512
  cursor: pointer;
2392
2513
  gap: var(--op-space-2x-small);
2393
2514
  grid-template-columns: auto 1fr auto;
2515
+ min-block-size: var(--_op-accordion-summary-min-height);
2394
2516
 
2395
2517
  &::marker,
2396
2518
  &::-webkit-details-marker {
@@ -2415,7 +2537,7 @@ small {
2415
2537
  }
2416
2538
 
2417
2539
  &::details-content {
2418
- height: 0;
2540
+ block-size: 0;
2419
2541
  transition: var(--op-transition-accordion-content);
2420
2542
  }
2421
2543
 
@@ -2425,7 +2547,7 @@ small {
2425
2547
  }
2426
2548
 
2427
2549
  &::details-content {
2428
- height: auto;
2550
+ block-size: auto;
2429
2551
  }
2430
2552
  }
2431
2553
 
@@ -2479,9 +2601,9 @@ small {
2479
2601
  &.alert--flash {
2480
2602
  position: fixed;
2481
2603
  z-index: var(--op-z-index-alert-group);
2482
- top: var(--op-space-large);
2483
- right: var(--op-space-large);
2484
2604
  animation: var(--op-animation-flash);
2605
+ inset-block-start: var(--op-space-large);
2606
+ inset-inline-end: var(--op-space-large);
2485
2607
  }
2486
2608
 
2487
2609
  &.alert--warning {
@@ -2632,11 +2754,11 @@ small {
2632
2754
  z-index: 1;
2633
2755
  display: block;
2634
2756
  overflow: hidden;
2635
- width: var(--__op-avatar-size);
2636
- min-width: var(--__op-avatar-size);
2637
- height: var(--__op-avatar-size);
2638
- min-height: var(--__op-avatar-size);
2639
2757
  border-radius: var(--_op-avatar-border-radius);
2758
+ block-size: var(--__op-avatar-size);
2759
+ inline-size: var(--__op-avatar-size);
2760
+ min-block-size: var(--__op-avatar-size);
2761
+ min-inline-size: var(--__op-avatar-size);
2640
2762
 
2641
2763
  &::before {
2642
2764
  position: absolute;
@@ -2657,8 +2779,8 @@ small {
2657
2779
  }
2658
2780
 
2659
2781
  img {
2660
- width: 100%;
2661
- height: 100%;
2782
+ block-size: 100%;
2783
+ inline-size: 100%;
2662
2784
  object-fit: cover;
2663
2785
  }
2664
2786
 
@@ -2835,7 +2957,6 @@ small {
2835
2957
  --__op-btn-padding: var(--_op-btn-padding-large);
2836
2958
 
2837
2959
  display: inline-flex;
2838
- min-height: var(--__op-btn-height);
2839
2960
  align-items: center;
2840
2961
  justify-content: center;
2841
2962
  padding: var(--__op-btn-padding);
@@ -2848,6 +2969,7 @@ small {
2848
2969
  font-size: var(--__op-btn-font-size);
2849
2970
  font-weight: var(--op-font-weight-normal);
2850
2971
  gap: var(--op-space-x-small);
2972
+ min-block-size: var(--__op-btn-height);
2851
2973
  text-align: center;
2852
2974
  text-decoration: none;
2853
2975
  transition: var(--op-transition-input);
@@ -2911,9 +3033,9 @@ small {
2911
3033
 
2912
3034
  /* Icon Modifier */
2913
3035
  &.btn--icon {
2914
- width: var(--__op-btn-height);
2915
- min-width: var(--__op-btn-height);
2916
3036
  padding: 0;
3037
+ inline-size: var(--__op-btn-height);
3038
+ min-inline-size: var(--__op-btn-height);
2917
3039
  }
2918
3040
 
2919
3041
  /* Icon With Label Modifier */
@@ -3122,13 +3244,13 @@ small {
3122
3244
  }
3123
3245
 
3124
3246
  &:first-child:not(:last-child) {
3125
- border-bottom-right-radius: 0;
3126
- border-top-right-radius: 0;
3247
+ border-end-end-radius: 0;
3248
+ border-start-end-radius: 0;
3127
3249
  }
3128
3250
 
3129
3251
  &:last-child:not(:first-child) {
3130
- border-bottom-left-radius: 0;
3131
- border-top-left-radius: 0;
3252
+ border-end-start-radius: 0;
3253
+ border-start-start-radius: 0;
3132
3254
  }
3133
3255
  }
3134
3256
  }
@@ -3188,8 +3310,8 @@ small {
3188
3310
  }
3189
3311
 
3190
3312
  .card__header {
3191
- border-top-left-radius: var(--_op-card-radius);
3192
- border-top-right-radius: var(--_op-card-radius);
3313
+ border-start-end-radius: var(--_op-card-radius);
3314
+ border-start-start-radius: var(--_op-card-radius);
3193
3315
 
3194
3316
  h1,
3195
3317
  h2,
@@ -3202,8 +3324,8 @@ small {
3202
3324
  }
3203
3325
 
3204
3326
  .card__footer {
3205
- border-bottom-left-radius: var(--_op-card-radius);
3206
- border-bottom-right-radius: var(--_op-card-radius);
3327
+ border-end-end-radius: var(--_op-card-radius);
3328
+ border-end-start-radius: var(--_op-card-radius);
3207
3329
  }
3208
3330
  }
3209
3331
  .confirm-dialog-wrapper {
@@ -3251,13 +3373,13 @@ small {
3251
3373
  --_op-confirm-dialog-width: calc(100 * var(--op-size-unit)); /* 400px */
3252
3374
 
3253
3375
  z-index: var(--op-z-index-dialog-content);
3254
- width: var(--_op-confirm-dialog-width);
3255
3376
  border-radius: var(--op-radius-medium);
3256
3377
  background-color: var(--op-color-background);
3257
3378
  box-shadow: var(--op-border-all) var(--op-color-border);
3258
3379
  color: var(--op-color-on-background);
3259
3380
  contain: paint;
3260
3381
  font-size: var(--op-font-medium);
3382
+ inline-size: var(--_op-confirm-dialog-width);
3261
3383
  line-height: var(--op-line-height-base);
3262
3384
  opacity: var(--op-opacity-none);
3263
3385
  transform: scale(0.7);
@@ -3336,12 +3458,12 @@ small {
3336
3458
  /* Private API (component option defaults) */
3337
3459
  --__op-divider-height: var(--_op-divider-height-small);
3338
3460
  --__op-divider-padding: 0;
3339
-
3340
- width: 100%;
3341
- height: var(--__op-divider-height);
3342
3461
  background-color: var(--op-color-border);
3462
+ block-size: var(--__op-divider-height);
3463
+ inline-size: 100%;
3343
3464
  margin-block: var(--__op-divider-padding);
3344
3465
  margin-inline: 0;
3466
+ min-block-size: var(--__op-divider-height);
3345
3467
 
3346
3468
  /* Size Modifiers */
3347
3469
  &.divider--small {
@@ -3371,11 +3493,12 @@ small {
3371
3493
 
3372
3494
  /* Direction Modifier */
3373
3495
  &.divider--vertical {
3374
- width: var(--__op-divider-height);
3375
- height: 100%;
3376
- min-height: var(--_op-divider-vertical-min-height);
3496
+ block-size: 100%;
3497
+ inline-size: var(--__op-divider-height);
3377
3498
  margin-block: 0;
3378
3499
  margin-inline: var(--__op-divider-padding);
3500
+ min-block-size: var(--_op-divider-vertical-min-height);
3501
+ min-inline-size: var(--__op-divider-height);
3379
3502
  }
3380
3503
  }
3381
3504
  .form-control {
@@ -3390,9 +3513,8 @@ small {
3390
3513
  /* Private API (component option defaults) */
3391
3514
  --__op-form-control-height: var(--_op-form-control-height-large);
3392
3515
  --__op-form-control-font-size: var(--_op-form-control-font-large);
3393
-
3394
- min-width: var(--__op-form-control-height);
3395
- height: var(--__op-form-control-height);
3516
+ block-size: var(--__op-form-control-height);
3517
+ min-inline-size: var(--__op-form-control-height);
3396
3518
 
3397
3519
  /* Size Modifiers */
3398
3520
  &.form-control--small {
@@ -3439,12 +3561,12 @@ small {
3439
3561
  --_op-form-control-height-medium: var(--op-space-large);
3440
3562
  --_op-form-control-height-large: var(--op-space-x-large);
3441
3563
 
3442
- width: var(--__op-form-control-height);
3443
- height: var(--__op-form-control-height);
3444
3564
  align-self: center;
3445
3565
  margin: 0;
3446
3566
  accent-color: var(--op-color-primary-base);
3567
+ block-size: var(--__op-form-control-height);
3447
3568
  cursor: pointer;
3569
+ inline-size: var(--__op-form-control-height);
3448
3570
 
3449
3571
  & + label {
3450
3572
  align-self: center;
@@ -3459,18 +3581,18 @@ small {
3459
3581
  --__op-form-control-border-color: var(--op-color-neutral-plus-four);
3460
3582
 
3461
3583
  display: block;
3462
- width: 100%;
3463
- min-width: var(--__op-form-control-height);
3464
- height: var(--__op-form-control-height);
3465
3584
  border: none;
3466
3585
  border-radius: var(--op-radius-medium);
3467
3586
  appearance: none;
3468
3587
  background-color: var(--op-color-neutral-plus-eight);
3588
+ block-size: var(--__op-form-control-height);
3469
3589
  box-shadow: var(--op-border-all) var(--__op-form-control-border-color);
3470
3590
  color: var(--op-color-neutral-on-plus-eight);
3471
3591
  cursor: text;
3472
3592
  font-size: var(--__op-form-control-font-size);
3593
+ inline-size: 100%;
3473
3594
  line-height: var(--op-line-height-base);
3595
+ min-inline-size: var(--__op-form-control-height);
3474
3596
  padding-block: var(--op-space-2x-small);
3475
3597
  padding-inline: var(--op-space-small) var(--op-space-x-small);
3476
3598
 
@@ -3535,7 +3657,6 @@ small {
3535
3657
  --__op-btn-height: var(--__op-btn-base-height);
3536
3658
 
3537
3659
  display: inline-flex;
3538
- min-height: var(--__op-btn-height);
3539
3660
  align-items: center;
3540
3661
  justify-content: center;
3541
3662
  border: none;
@@ -3549,6 +3670,7 @@ small {
3549
3670
  font-weight: var(--op-font-weight-normal);
3550
3671
  gap: var(--op-space-x-small);
3551
3672
  margin-block: calc((var(--__op-form-control-height) / 2) - (var(--__op-btn-height) / 2));
3673
+ min-block-size: var(--__op-btn-height);
3552
3674
  padding-block: 0;
3553
3675
  padding-inline: var(--op-space-x-small);
3554
3676
  text-align: center;
@@ -3573,12 +3695,12 @@ select.form-control:not([multiple], [type='radio'], [type='checkbox']) {
3573
3695
  padding-inline-end: var(--op-space-3x-large);
3574
3696
  }
3575
3697
  select.form-control[multiple] {
3576
- min-height: calc(2 * var(--__op-form-control-height));
3698
+ min-block-size: calc(2 * var(--__op-form-control-height));
3577
3699
  }
3578
3700
  textarea.form-control:not([type='radio'], [type='checkbox']) {
3579
- max-width: 100%;
3580
- height: calc(2 * var(--__op-form-control-height));
3581
- min-height: var(--__op-form-control-height);
3701
+ block-size: calc(2 * var(--__op-form-control-height));
3702
+ max-inline-size: 100%;
3703
+ min-block-size: var(--__op-form-control-height);
3582
3704
  }
3583
3705
  .form-label {
3584
3706
  color: var(--op-color-on-background);
@@ -3588,9 +3710,9 @@ textarea.form-control:not([type='radio'], [type='checkbox']) {
3588
3710
  line-height: var(--op-line-height-base);
3589
3711
  }
3590
3712
  .form-error {
3591
- width: fit-content;
3592
3713
  color: var(--op-color-alerts-danger-base);
3593
3714
  font-size: var(--op-font-x-small);
3715
+ inline-size: fit-content;
3594
3716
  }
3595
3717
  .form-hint {
3596
3718
  display: block;
@@ -3761,10 +3883,10 @@ textarea.form-control:not([type='radio'], [type='checkbox']) {
3761
3883
  --__op-icon-optical-size: var(--_op-icon-optical-size-medium);
3762
3884
 
3763
3885
  display: inline-block;
3764
- width: var(--__op-icon-font-size);
3765
- height: var(--__op-icon-font-size);
3886
+ block-size: var(--__op-icon-font-size);
3766
3887
  font-size: var(--__op-icon-font-size);
3767
3888
  font-weight: var(--__op-icon-weight);
3889
+ inline-size: var(--__op-icon-font-size);
3768
3890
  line-height: var(--op-line-height-densest);
3769
3891
  vertical-align: middle;
3770
3892
 
@@ -3840,8 +3962,8 @@ textarea.form-control:not([type='radio'], [type='checkbox']) {
3840
3962
  /* Custom SVG Icons app specific */
3841
3963
  .custom-icons {
3842
3964
  svg {
3843
- width: 100%;
3844
- height: 100%;
3965
+ block-size: 100%;
3966
+ inline-size: 100%;
3845
3967
  }
3846
3968
  }
3847
3969
  .modal-wrapper {
@@ -3886,20 +4008,19 @@ textarea.form-control:not([type='radio'], [type='checkbox']) {
3886
4008
  }
3887
4009
  }
3888
4010
  }
3889
- /* stylelint-disable no-descending-specificity */
3890
4011
  .modal {
3891
4012
  /* Public API (customizable component options) */
3892
4013
  --_op-modal-width: calc(141 * var(--op-size-unit)); /* 564px */
3893
4014
  --_op-modal-max-height: calc(125 * var(--op-size-unit)); /* 500px */
3894
4015
 
3895
4016
  z-index: var(--op-z-index-dialog-content);
3896
- width: var(--_op-modal-width);
3897
4017
  border-radius: var(--op-radius-medium);
3898
4018
  background-color: var(--op-color-background);
3899
4019
  box-shadow: var(--op-border-all) var(--op-color-border);
3900
4020
  color: var(--op-color-on-background);
3901
4021
  contain: paint;
3902
4022
  font-size: var(--op-font-medium);
4023
+ inline-size: var(--_op-modal-width);
3903
4024
  line-height: var(--op-line-height-base);
3904
4025
  opacity: var(--op-opacity-none);
3905
4026
  transform: scale(0.7);
@@ -3920,8 +4041,8 @@ textarea.form-control:not([type='radio'], [type='checkbox']) {
3920
4041
  }
3921
4042
 
3922
4043
  .modal__body {
3923
- max-height: var(--_op-modal-max-height);
3924
4044
  box-shadow: var(--op-border-all) var(--op-color-border);
4045
+ max-block-size: var(--_op-modal-max-height);
3925
4046
  overflow-y: auto;
3926
4047
  }
3927
4048
 
@@ -3932,59 +4053,45 @@ textarea.form-control:not([type='radio'], [type='checkbox']) {
3932
4053
  gap: var(--op-space-small);
3933
4054
  }
3934
4055
  }
3935
- /* stylelint-enable no-descending-specificity */
3936
4056
  dialog.modal {
3937
- position: fixed;
3938
- display: block;
3939
4057
  padding: 0;
3940
4058
  border: none;
3941
- inset: 0;
4059
+ overscroll-behavior: contain;
4060
+ transform: scale(0.7);
4061
+ transition:
4062
+ display var(--op-transition-modal-time) allow-discrete,
4063
+ overlay var(--op-transition-modal-time) allow-discrete,
4064
+ transform var(--op-transition-modal-time),
4065
+ opacity var(--op-transition-modal-time);
3942
4066
 
3943
4067
  &::backdrop {
3944
- /* The Dialog backdrop does not inheret from :root so these need to be duplicated here. */
3945
- --op-color-black: hsl(0deg 0% 0%);
3946
- --_op-modal-backdrop-active-opacity: 0.5;
3947
- --op-opacity-none: 0;
3948
- --op-opacity-full: 1;
3949
-
3950
- animation: show-backdrop 300ms ease-in;
3951
- background: var(--op-color-black);
3952
- opacity: var(--_op-modal-backdrop-active-opacity);
4068
+ overflow: hidden;
4069
+ background-color: var(--op-color-black);
4070
+ opacity: var(--op-opacity-none);
4071
+ overscroll-behavior: contain;
4072
+ transition:
4073
+ display var(--op-transition-modal-time) allow-discrete,
4074
+ overlay var(--op-transition-modal-time) allow-discrete,
4075
+ transform var(--op-transition-modal-time),
4076
+ opacity var(--op-transition-modal-time);
3953
4077
  }
3954
4078
 
3955
4079
  &[open] {
3956
4080
  opacity: var(--op-opacity-full);
3957
4081
  transform: scale(1);
3958
- }
3959
-
3960
- &.modal--closing {
3961
- opacity: var(--op-opacity-none);
3962
- transform: scale(0.7);
3963
4082
 
3964
4083
  &::backdrop {
3965
- animation: hide-backdrop 300ms ease-in;
3966
- opacity: var(--op-opacity-none);
4084
+ opacity: var(--op-opacity-half);
3967
4085
  }
3968
4086
  }
3969
4087
  }
3970
- /* Using the Dialog element */
3971
- /* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog */
3972
- @keyframes show-backdrop {
3973
- from {
3974
- opacity: var(--op-opacity-none);
3975
- }
3976
-
3977
- to {
3978
- opacity: var(--_op-modal-backdrop-active-opacity);
3979
- }
3980
- }
3981
- @keyframes hide-backdrop {
3982
- from {
3983
- opacity: var(--_op-modal-backdrop-active-opacity);
3984
- }
4088
+ @starting-style {
4089
+ dialog.modal[open] {
4090
+ transform: scale(0.7);
3985
4091
 
3986
- to {
3987
- opacity: var(--op-opacity-none);
4092
+ &::backdrop {
4093
+ opacity: var(--op-opacity-none);
4094
+ }
3988
4095
  }
3989
4096
  }
3990
4097
  .navbar {
@@ -4005,18 +4112,20 @@ dialog.modal {
4005
4112
  align-items: center;
4006
4113
  padding: var(--op-space-small) var(--_op-navbar-horizontal-spacing);
4007
4114
  background-color: var(--_op-navbar-background-color);
4008
- box-shadow: var(--op-border-bottom) var(--_op-navbar-border-color);
4115
+ box-shadow:
4116
+ var(--op-border-top) var(--_op-navbar-border-color),
4117
+ var(--op-border-bottom) var(--_op-navbar-border-color);
4009
4118
  color: var(--_op-navbar-text-color);
4010
4119
  gap: var(--_op-navbar-content-spacing);
4011
4120
 
4012
4121
  /* Elements */
4013
4122
 
4014
4123
  .navbar__brand {
4015
- height: var(--_op-navbar-brand-height);
4016
- margin-right: var(--_op-navbar-horizontal-spacing);
4124
+ block-size: var(--_op-navbar-brand-height);
4125
+ margin-inline-end: var(--_op-navbar-horizontal-spacing);
4017
4126
 
4018
4127
  img {
4019
- height: 100%;
4128
+ block-size: 100%;
4020
4129
  }
4021
4130
  }
4022
4131
 
@@ -4067,7 +4176,7 @@ dialog.modal {
4067
4176
 
4068
4177
  /* ... Gap */
4069
4178
  .pagination__divider {
4070
- height: 100%;
4179
+ block-size: 100%;
4071
4180
  padding-inline: var(--op-space-x-small);
4072
4181
  }
4073
4182
  }
@@ -4109,19 +4218,19 @@ dialog.modal {
4109
4218
 
4110
4219
  position: relative;
4111
4220
  display: grid;
4112
- width: fit-content;
4113
- height: var(--__op-segmented-control-height);
4114
4221
  padding: var(--op-space-2x-small);
4115
4222
  border-radius: var(--op-radius-medium);
4116
4223
  background-color: var(--op-color-neutral-plus-eight);
4224
+ block-size: var(--__op-segmented-control-height);
4117
4225
  box-shadow: var(--op-border-all) var(--op-color-border);
4118
4226
  color: var(--op-color-neutral-on-plus-eight);
4119
4227
  font-size: var(--__op-segmented-control-font-size);
4120
4228
  gap: var(--op-space-2x-small);
4121
4229
  grid-auto-flow: column;
4230
+ inline-size: fit-content;
4122
4231
 
4123
4232
  &.segmented-control--full-width {
4124
- width: 100%;
4233
+ inline-size: 100%;
4125
4234
  }
4126
4235
 
4127
4236
  .icon {
@@ -4131,12 +4240,12 @@ dialog.modal {
4131
4240
  .segmented-control__input {
4132
4241
  position: absolute;
4133
4242
  overflow: hidden;
4134
- width: 1px;
4135
- height: 1px;
4136
4243
  padding: 0;
4137
4244
  border-width: 0;
4138
4245
  margin: -1px;
4246
+ block-size: 1px;
4139
4247
  clip: rect(0, 0, 0, 0);
4248
+ inline-size: 1px;
4140
4249
  white-space: nowrap;
4141
4250
 
4142
4251
  /* Selected Option */
@@ -4237,23 +4346,25 @@ dialog.modal {
4237
4346
 
4238
4347
  z-index: var(--op-z-index-sidebar);
4239
4348
  display: flex;
4240
- width: var(--__op-sidebar-width);
4241
- min-width: var(--__op-sidebar-width);
4242
4349
  flex-direction: column;
4243
4350
  background-color: var(--_op-sidebar-background-color);
4244
- box-shadow: var(--op-border-right) var(--_op-sidebar-border-color);
4351
+ box-shadow:
4352
+ var(--op-border-left) var(--_op-sidebar-border-color),
4353
+ var(--op-border-right) var(--_op-sidebar-border-color);
4245
4354
  color: var(--_op-sidebar-text-color);
4355
+ inline-size: var(--__op-sidebar-width);
4356
+ min-inline-size: var(--__op-sidebar-width);
4246
4357
  overflow-y: auto;
4247
4358
  transition: var(--_op-sidebar-transition);
4248
4359
 
4249
4360
  /* Elements */
4250
4361
  .sidebar__brand {
4251
- height: var(--__op-sidebar-brand-width);
4252
4362
  padding: var(--_op-sidebar-brand-spacing);
4363
+ block-size: var(--__op-sidebar-brand-width);
4253
4364
  margin-inline: auto;
4254
4365
 
4255
4366
  img {
4256
- height: 100%;
4367
+ block-size: 100%;
4257
4368
  }
4258
4369
  }
4259
4370
 
@@ -4326,13 +4437,14 @@ dialog.modal {
4326
4437
  align-items: center;
4327
4438
 
4328
4439
  > * {
4329
- /* Need to get icon behavior */
4330
- width: var(--__op-btn-height);
4331
- min-width: var(--__op-btn-height);
4332
4440
  justify-content: center;
4333
4441
  padding: 0;
4334
4442
  font-size: 0;
4335
4443
  gap: 0;
4444
+
4445
+ /* Need to get icon behavior */
4446
+ inline-size: var(--__op-btn-height);
4447
+ min-inline-size: var(--__op-btn-height);
4336
4448
  }
4337
4449
  }
4338
4450
  }
@@ -4353,13 +4465,13 @@ dialog.modal {
4353
4465
  --_op-side-panel-section-padding: var(--op-space-medium);
4354
4466
 
4355
4467
  display: flex;
4356
- width: var(--_op-side-panel-width);
4357
- min-width: var(--_op-side-panel-width);
4358
- height: 100vh;
4359
- max-height: 100%;
4360
4468
  flex-direction: column;
4361
4469
  background-color: var(--op-color-background);
4470
+ block-size: 100vh;
4362
4471
  color: var(--op-color-on-background);
4472
+ inline-size: var(--_op-side-panel-width);
4473
+ max-block-size: 100%;
4474
+ min-inline-size: var(--_op-side-panel-width);
4363
4475
 
4364
4476
  /* Modifiers */
4365
4477
  &.side-panel--border-left {
@@ -4453,12 +4565,12 @@ dialog.modal {
4453
4565
  --__op-spinner-diameter: var(--_op-spinner-diameter-large);
4454
4566
  --__op-spinner-track-width: var(--_op-spinner-track-width-large);
4455
4567
 
4456
- width: var(--__op-spinner-diameter);
4457
- height: var(--__op-spinner-diameter);
4458
4568
  border: var(--__op-spinner-track-width) solid var(--_op-spinner-track-color);
4459
4569
  border-radius: var(--__op-spinner-diameter);
4460
- border-top-color: var(--_op-spinner-indicator-color);
4461
4570
  animation: spinner var(--_op-spinner-animation-duration) var(--_op-spinner-animation-timing-function) infinite;
4571
+ block-size: var(--__op-spinner-diameter);
4572
+ border-block-start-color: var(--_op-spinner-indicator-color);
4573
+ inline-size: var(--__op-spinner-diameter);
4462
4574
 
4463
4575
  &.spinner--x-small {
4464
4576
  --__op-spinner-diameter: var(--_op-spinner-diameter-x-small);
@@ -4507,20 +4619,20 @@ dialog.modal {
4507
4619
  label {
4508
4620
  position: relative;
4509
4621
  display: block;
4510
- width: var(--__op-switch-width);
4511
- height: var(--__op-switch-height);
4512
4622
  border-radius: var(--op-radius-pill);
4513
4623
  background: var(--op-color-neutral-base);
4624
+ block-size: var(--__op-switch-height);
4514
4625
  box-shadow: inset var(--op-border-all) var(--op-color-neutral-plus-three);
4626
+ inline-size: var(--__op-switch-width);
4515
4627
  text-indent: -9999px; /* Normally text would not be put in the label, but this hides it in case you do put text in the label */
4516
4628
 
4517
4629
  &::after {
4518
4630
  position: absolute;
4519
- width: var(--__op-switch-switch-size);
4520
- height: var(--__op-switch-switch-size);
4521
4631
  border-radius: var(--op-radius-circle);
4522
4632
  background-color: var(--op-color-neutral-plus-eight);
4633
+ block-size: var(--__op-switch-switch-size);
4523
4634
  content: '';
4635
+ inline-size: var(--__op-switch-switch-size);
4524
4636
  inset-block-start: var(--__op-switch-half-switch-padding);
4525
4637
  inset-inline-start: var(--__op-switch-half-switch-padding);
4526
4638
  transition: var(--op-transition-input);
@@ -4529,12 +4641,12 @@ dialog.modal {
4529
4641
 
4530
4642
  /* Prevent labels after the toggle being full width */
4531
4643
  & + label {
4532
- width: fit-content;
4644
+ inline-size: fit-content;
4533
4645
  }
4534
4646
 
4535
4647
  input {
4536
- width: 0;
4537
- height: 0;
4648
+ block-size: 0;
4649
+ inline-size: 0;
4538
4650
  margin-inline-end: calc(-1 * var(--op-space-x-small));
4539
4651
 
4540
4652
  &:disabled {
@@ -4551,7 +4663,7 @@ dialog.modal {
4551
4663
  box-shadow: none;
4552
4664
 
4553
4665
  &::after {
4554
- left: calc(100% - var(--__op-switch-half-switch-padding));
4666
+ inset-inline-start: calc(100% - var(--__op-switch-half-switch-padding));
4555
4667
  transform: translateX(-100%);
4556
4668
  }
4557
4669
  }
@@ -4680,11 +4792,11 @@ dialog.modal {
4680
4792
  /* These allow for overriding specific padding versions easier. */
4681
4793
  --__op-table-cell-height: var(--_op-table-cell-height-default);
4682
4794
 
4683
- width: 100%;
4684
4795
  border-radius: var(--op-radius-medium);
4685
4796
  border-collapse: collapse;
4686
4797
  box-shadow: var(--op-border-all) var(--op-color-border);
4687
4798
  contain: paint;
4799
+ inline-size: 100%;
4688
4800
  table-layout: auto;
4689
4801
 
4690
4802
  /* Elements */
@@ -4702,7 +4814,7 @@ dialog.modal {
4702
4814
 
4703
4815
  th {
4704
4816
  font-weight: var(--op-font-weight-semi-bold);
4705
- text-align: left;
4817
+ text-align: start;
4706
4818
  }
4707
4819
 
4708
4820
  tbody,
@@ -4713,7 +4825,7 @@ dialog.modal {
4713
4825
 
4714
4826
  th,
4715
4827
  td {
4716
- height: var(--__op-table-cell-height);
4828
+ block-size: var(--__op-table-cell-height);
4717
4829
  font-size: var(--op-font-small);
4718
4830
  padding-block: var(--op-space-2x-small);
4719
4831
  padding-inline: var(--op-space-small);
@@ -5048,8 +5160,6 @@ dialog.modal {
5048
5160
  position: absolute;
5049
5161
  z-index: var(--op-z-index-tooltip);
5050
5162
  display: block;
5051
- width: max-content;
5052
- max-width: var(--_op-tooltip-max-width);
5053
5163
  padding: var(--_op-tooltip-padding);
5054
5164
  border-radius: var(--_op-tooltip-tooltip-radius);
5055
5165
  background-color: var(--_op-tooltip-background-color);
@@ -5057,6 +5167,8 @@ dialog.modal {
5057
5167
  content: attr(data-tooltip-text);
5058
5168
  font-family: var(--op-font-family); /* Makes tooltips on icons work */
5059
5169
  font-size: var(--_op-tooltip-tooltip-font-size);
5170
+ inline-size: max-content;
5171
+ max-inline-size: var(--_op-tooltip-max-width);
5060
5172
  overflow-wrap: break-word;
5061
5173
  pointer-events: none;
5062
5174
  text-align: center;