ui-style-kit-css 2.1.0 → 2.2.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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * UI Style Kit CSS v2.1.0
2
+ * UI Style Kit CSS v2.2.0
3
3
  * CSS theme and UI style preset library.
4
4
  * License: MIT
5
5
  */
@@ -846,6 +846,22 @@
846
846
  --usk-native-shadow: none;
847
847
  --usk-native-shadow-md: var(--usk-native-shadow);
848
848
  --usk-native-focus-ring: 0 0 0 3px rgb(var(--usk-focus-rgb) / .28);
849
+ --usk-motion-duration: 140ms;
850
+ --usk-motion-easing: cubic-bezier(0.2, 0, 0.2, 1);
851
+
852
+ /* Shared semantic values are fully typed so optional companion and third-party consumers can use them directly. */
853
+ --ui-color-bg: rgb(var(--usk-bg-rgb));
854
+ --ui-color-surface: var(--usk-native-surface-strong);
855
+ --ui-color-text: var(--usk-native-text);
856
+ --ui-color-muted: var(--usk-native-text-muted);
857
+ --ui-color-primary: var(--usk-native-primary);
858
+ --ui-color-on-primary: var(--usk-native-on-primary);
859
+ --ui-color-border: var(--usk-native-border);
860
+ --ui-radius-control: var(--usk-native-radius);
861
+ --ui-shadow-control: var(--usk-native-shadow);
862
+ --ui-focus-color: var(--usk-native-focus);
863
+ --ui-motion-duration: var(--usk-motion-duration);
864
+ --ui-motion-easing: var(--usk-motion-easing);
849
865
  }
850
866
 
851
867
  [data-ui][data-theme][data-mode] :where(h1, h2, h3, h4, h5, h6) {
@@ -1536,7 +1552,7 @@
1536
1552
  [class~="rg-alert"],
1537
1553
  [class~="rg-table-wrap"],
1538
1554
  [class~="rg-nav"]
1539
- ) {
1555
+ ), [data-ui]:where([data-ui="brutalism"])[data-theme][data-mode] :where([class~="saas-surface"],[class~="saas-surface-sm"],[class~="saas-surface-lg"],.ui-card,[class~="saas-panel"],.ui-toolbar,[class~="saas-well"],[class~="saas-inset"],.ui-field,.ui-alert,.ui-table-wrap,.ui-nav,[class~="bento-surface"],[class~="bento-surface-sm"],[class~="bento-surface-lg"],.ui-card,[class~="bento-panel"],.ui-toolbar,[class~="bento-well"],[class~="bento-inset"],.ui-field,.ui-alert,.ui-table-wrap,.ui-nav,[class~="max-surface"],[class~="max-surface-sm"],[class~="max-surface-lg"],.ui-card,[class~="max-panel"],.ui-toolbar,[class~="max-well"],[class~="max-inset"],.ui-field,.ui-alert,.ui-table-wrap,.ui-nav,[class~="bau-surface"],[class~="bau-surface-sm"],[class~="bau-surface-lg"],.ui-card,[class~="bau-panel"],.ui-toolbar,[class~="bau-well"],[class~="bau-inset"],.ui-field,.ui-alert,.ui-table-wrap,.ui-nav,[class~="tactile-surface"],[class~="tactile-surface-sm"],[class~="tactile-surface-lg"],.ui-card,[class~="tactile-panel"],.ui-toolbar,[class~="tactile-well"],[class~="tactile-inset"],.ui-field,.ui-alert,.ui-table-wrap,.ui-nav,[class~="neo-surface"],[class~="neo-surface-sm"],[class~="neo-surface-lg"],.ui-card,[class~="neo-panel"],.ui-toolbar,[class~="neo-well"],[class~="neo-inset"],.ui-field,.ui-alert,.ui-table-wrap,.ui-nav,[class~="retro-surface"],[class~="retro-surface-sm"],[class~="retro-surface-lg"],.ui-card,[class~="retro-panel"],.ui-toolbar,[class~="retro-well"],[class~="retro-inset"],.ui-field,.ui-alert,.ui-table-wrap,.ui-nav,[class~="brutal-surface"],.ui-card,[class~="brutal-panel"],.ui-toolbar,[class~="brutal-well"],[class~="brutal-inset"],.ui-field,.ui-alert,.ui-table-wrap,.ui-nav,.ui-card,[class~="cyber-panel"],.ui-toolbar,[class~="cyber-well"],[class~="cyber-inset"],.ui-field,.ui-alert,.ui-table-wrap,.ui-nav,.ui-card,[class~="y2k-panel"],.ui-toolbar,[class~="y2k-well"],[class~="y2k-inset"],.ui-field,.ui-alert,.ui-table-wrap,.ui-nav,.ui-card,[class~="rg-panel"],.ui-toolbar,[class~="rg-well"],[class~="rg-inset"],.ui-field,.ui-alert,.ui-table-wrap,.ui-nav) {
1540
1556
  max-inline-size: 100%;
1541
1557
  min-inline-size: 0;
1542
1558
  overflow-wrap: anywhere;
@@ -1587,7 +1603,7 @@
1587
1603
  [class~="rg-icon-button"],
1588
1604
  [class~="rg-badge"],
1589
1605
  [class~="rg-nav-link"]
1590
- ) {
1606
+ ), [data-ui]:where([data-ui="brutalism"])[data-theme][data-mode] :where(.ui-button,.ui-icon-button,.ui-badge,.ui-nav-link,.ui-button,.ui-icon-button,.ui-badge,.ui-nav-link,.ui-button,.ui-icon-button,.ui-badge,.ui-nav-link,.ui-button,.ui-icon-button,.ui-badge,.ui-nav-link,.ui-button,.ui-icon-button,.ui-badge,.ui-nav-link,.ui-button,.ui-icon-button,.ui-badge,.ui-nav-link,.ui-button,.ui-icon-button,.ui-badge,.ui-nav-link,.ui-button,.ui-icon-button,.ui-badge,.ui-nav-link,.ui-button,.ui-icon-button,.ui-badge,.ui-nav-link,.ui-button,.ui-icon-button,.ui-badge,.ui-nav-link,.ui-button,.ui-icon-button,.ui-badge,.ui-nav-link) {
1591
1607
  max-inline-size: 100%;
1592
1608
  min-inline-size: 0;
1593
1609
  white-space: normal;
@@ -1627,7 +1643,7 @@
1627
1643
  .rg-button,
1628
1644
  .rg-icon-button,
1629
1645
  .rg-button-pill
1630
- ) {
1646
+ ), [data-ui]:where([data-ui="brutalism"])[data-theme][data-mode] :where(.ui-button,.ui-icon-button,.saas-button-pill,.ui-button,.ui-icon-button,.bento-button-pill,.ui-button,.ui-icon-button,.max-button-pill,.ui-button,.ui-icon-button,.bau-button-pill,.ui-button,.ui-icon-button,.tactile-button-pill,.ui-button,.ui-icon-button,.neo-button-pill,.ui-button,.ui-icon-button,.retro-button-pill,.ui-button,.ui-icon-button,.brutal-button-pill,.ui-button,.ui-icon-button,.cyber-button-pill,.ui-button,.ui-icon-button,.y2k-button-pill,.ui-button,.ui-icon-button,.rg-button-pill) {
1631
1647
  box-sizing: border-box;
1632
1648
  display: inline-flex;
1633
1649
  align-items: center;
@@ -1951,13 +1967,13 @@
1951
1967
  .saas-divider, .bento-divider, .max-divider, .bau-divider, .tactile-divider, .neo-divider, .retro-divider, .brutal-divider, .cyber-divider, .y2k-divider, .rg-divider { inline-size: 100%; block-size: 1px; border: 0; background: var(--usk-native-border); }
1952
1968
  .saas-disabled, .bento-disabled, .max-disabled, .bau-disabled, .tactile-disabled, .neo-disabled, .retro-disabled, .brutal-disabled, .cyber-disabled, .y2k-disabled, .rg-disabled { opacity: .55; cursor: not-allowed; pointer-events: none; }
1953
1969
 
1954
- .saas-button-ghost, .bento-button-ghost, .max-button-ghost, .bau-button-ghost, .tactile-button-ghost, .neo-button-ghost, .retro-button-ghost, .brutal-button-ghost, .cyber-button-ghost, .y2k-button-ghost, .rg-button-ghost {
1970
+ .saas-button-ghost, .bento-button-ghost, .max-button-ghost, .bau-button-ghost, .tactile-button-ghost, .neo-button-ghost, .retro-button-ghost, .brutal-button-ghost, .cyber-button-ghost, .y2k-button-ghost, .rg-button-ghost, :where([data-ui="brutalism"]) .ui-button:where([data-ui-variant="ghost"]) {
1955
1971
  color: var(--usk-native-primary);
1956
1972
  background: transparent;
1957
1973
  border-color: var(--usk-native-border);
1958
1974
  }
1959
1975
 
1960
- .saas-check, .saas-radio, .saas-switch, .bento-check, .bento-radio, .bento-switch, .max-check, .max-radio, .max-switch, .bau-check, .bau-radio, .bau-switch, .tactile-check, .tactile-radio, .tactile-switch, .neo-check, .neo-radio, .neo-switch, .retro-check, .retro-radio, .retro-switch, .brutal-check, .brutal-radio, .brutal-switch, .cyber-check, .cyber-radio, .cyber-switch, .y2k-check, .y2k-radio, .y2k-switch, .rg-check, .rg-radio, .rg-switch {
1976
+ .saas-check, .saas-radio, .saas-switch, .bento-check, .bento-radio, .bento-switch, .max-check, .max-radio, .max-switch, .bau-check, .bau-radio, .bau-switch, .tactile-check, .tactile-radio, .tactile-switch, .neo-check, .neo-radio, .neo-switch, .retro-check, .retro-radio, .retro-switch, .brutal-check, .brutal-radio, .brutal-switch, .cyber-check, .cyber-radio, .cyber-switch, .y2k-check, .y2k-radio, .y2k-switch, .rg-check, .rg-radio, .rg-switch, :where([data-ui="brutalism"]) .ui-check, :where([data-ui="brutalism"]) .ui-radio, :where([data-ui="brutalism"]) .ui-switch {
1961
1977
  display: inline-flex;
1962
1978
  align-items: center;
1963
1979
  gap: var(--usk-native-field-gap);
@@ -1965,13 +1981,13 @@
1965
1981
  color: var(--usk-native-text);
1966
1982
  }
1967
1983
 
1968
- .saas-check-control, .saas-radio-control, .bento-check-control, .bento-radio-control, .max-check-control, .max-radio-control, .bau-check-control, .bau-radio-control, .tactile-check-control, .tactile-radio-control, .neo-check-control, .neo-radio-control, .retro-check-control, .retro-radio-control, .brutal-check-control, .brutal-radio-control, .cyber-check-control, .cyber-radio-control, .y2k-check-control, .y2k-radio-control, .rg-check-control, .rg-radio-control {
1984
+ .saas-check-control, .saas-radio-control, .bento-check-control, .bento-radio-control, .max-check-control, .max-radio-control, .bau-check-control, .bau-radio-control, .tactile-check-control, .tactile-radio-control, .neo-check-control, .neo-radio-control, .retro-check-control, .retro-radio-control, .brutal-check-control, .brutal-radio-control, .cyber-check-control, .cyber-radio-control, .y2k-check-control, .y2k-radio-control, .rg-check-control, .rg-radio-control, :where([data-ui="brutalism"]) .ui-check-control, :where([data-ui="brutalism"]) .ui-radio-control {
1969
1985
  inline-size: 1.5rem;
1970
1986
  block-size: 1.5rem;
1971
1987
  accent-color: var(--usk-native-primary);
1972
1988
  }
1973
1989
 
1974
- .saas-switch-track, .bento-switch-track, .max-switch-track, .bau-switch-track, .tactile-switch-track, .neo-switch-track, .retro-switch-track, .brutal-switch-track, .cyber-switch-track, .y2k-switch-track, .rg-switch-track {
1990
+ .saas-switch-track, .bento-switch-track, .max-switch-track, .bau-switch-track, .tactile-switch-track, .neo-switch-track, .retro-switch-track, .brutal-switch-track, .cyber-switch-track, .y2k-switch-track, .rg-switch-track, :where([data-ui="brutalism"]) .ui-switch-track {
1975
1991
  position: relative;
1976
1992
  display: inline-flex;
1977
1993
  align-items: center;
@@ -1983,7 +1999,7 @@
1983
1999
  border-radius: 999px;
1984
2000
  }
1985
2001
 
1986
- .saas-switch-thumb, .bento-switch-thumb, .max-switch-thumb, .bau-switch-thumb, .tactile-switch-thumb, .neo-switch-thumb, .retro-switch-thumb, .brutal-switch-thumb, .cyber-switch-thumb, .y2k-switch-thumb, .rg-switch-thumb {
2002
+ .saas-switch-thumb, .bento-switch-thumb, .max-switch-thumb, .bau-switch-thumb, .tactile-switch-thumb, .neo-switch-thumb, .retro-switch-thumb, .brutal-switch-thumb, .cyber-switch-thumb, .y2k-switch-thumb, .rg-switch-thumb, :where([data-ui="brutalism"]) .ui-switch-thumb {
1987
2003
  inline-size: 1rem;
1988
2004
  block-size: 1rem;
1989
2005
  background: var(--usk-native-thumb);
@@ -2002,7 +2018,7 @@
2002
2018
  .brutal-switch:has(input:checked) .brutal-switch-track,
2003
2019
  .cyber-switch:has(input:checked) .cyber-switch-track,
2004
2020
  .y2k-switch:has(input:checked) .y2k-switch-track,
2005
- .rg-switch:has(input:checked) .rg-switch-track {
2021
+ .rg-switch:has(input:checked) .rg-switch-track, :where([data-ui="brutalism"]) .ui-switch:has(input:checked) .ui-switch-track {
2006
2022
  background: var(--usk-native-track-fill);
2007
2023
  }
2008
2024
 
@@ -2016,7 +2032,7 @@
2016
2032
  .brutal-switch:has(input:checked) .brutal-switch-thumb,
2017
2033
  .cyber-switch:has(input:checked) .cyber-switch-thumb,
2018
2034
  .y2k-switch:has(input:checked) .y2k-switch-thumb,
2019
- .rg-switch:has(input:checked) .rg-switch-thumb {
2035
+ .rg-switch:has(input:checked) .rg-switch-thumb, :where([data-ui="brutalism"]) .ui-switch:has(input:checked) .ui-switch-thumb {
2020
2036
  transform: translateX(1.25rem);
2021
2037
  }
2022
2038
 
@@ -2260,12 +2276,12 @@
2260
2276
  inline-size: 3rem;
2261
2277
  }
2262
2278
 
2263
- .brutal-button[aria-busy="true"], .brutal-icon-button[aria-busy="true"], [data-ui="brutalism"] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"]) {
2279
+ .brutal-button[aria-busy="true"], .brutal-icon-button[aria-busy="true"], [data-ui="brutalism"] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"]), :where([data-ui="brutalism"]) .ui-button[aria-busy="true"], :where([data-ui="brutalism"]) .ui-icon-button[aria-busy="true"] {
2264
2280
  cursor: progress;
2265
2281
  gap: .55rem;
2266
2282
  }
2267
2283
 
2268
- .brutal-button[aria-busy="true"]:after, .brutal-icon-button[aria-busy="true"]:after, [data-ui="brutalism"] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"]):after {
2284
+ .brutal-button[aria-busy="true"]:after, .brutal-icon-button[aria-busy="true"]:after, [data-ui="brutalism"] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"]):after, :where([data-ui="brutalism"]) .ui-button[aria-busy="true"]:after, :where([data-ui="brutalism"]) .ui-icon-button[aria-busy="true"]:after {
2269
2285
  content: "";
2270
2286
  border: .16em solid rgb(var(--brutal-primary-text-rgb)/.42);
2271
2287
  border-block-start-color: currentColor;
@@ -2282,7 +2298,7 @@
2282
2298
  }
2283
2299
  }
2284
2300
 
2285
- .brutal-title, .brutal-heading, .brutal-kicker, .brutal-button, .brutal-badge, .brutal-nav-link {
2301
+ .brutal-title, .brutal-heading, .brutal-kicker, .brutal-button, .brutal-badge, .brutal-nav-link, :where([data-ui="brutalism"]) .ui-button, :where([data-ui="brutalism"]) .ui-badge, :where([data-ui="brutalism"]) .ui-nav-link {
2286
2302
  font-family: var(--brutal-font-heading);
2287
2303
  text-transform: uppercase;
2288
2304
  }
@@ -2321,7 +2337,7 @@
2321
2337
  color: var(--brutal-text-muted);
2322
2338
  }
2323
2339
 
2324
- .brutal-card, .brutal-panel, .brutal-surface, .brutal-toolbar, .brutal-table-wrap {
2340
+ .brutal-card, .brutal-panel, .brutal-surface, .brutal-toolbar, .brutal-table-wrap, :where([data-ui="brutalism"]) .ui-card, :where([data-ui="brutalism"]) .ui-toolbar, :where([data-ui="brutalism"]) .ui-table-wrap {
2325
2341
  background: var(--brutal-surface-strong);
2326
2342
  color: var(--brutal-text);
2327
2343
  border: 3px solid var(--brutal-border);
@@ -2330,11 +2346,11 @@
2330
2346
  transition: transform var(--brutal-transition-fast),box-shadow var(--brutal-transition-fast),background var(--brutal-transition-fast);
2331
2347
  }
2332
2348
 
2333
- .brutal-card, .brutal-panel {
2349
+ .brutal-card, .brutal-panel, :where([data-ui="brutalism"]) .ui-card {
2334
2350
  padding: var(--brutal-space-6);
2335
2351
  }
2336
2352
 
2337
- .brutal-toolbar {
2353
+ .brutal-toolbar, :where([data-ui="brutalism"]) .ui-toolbar {
2338
2354
  justify-content: space-between;
2339
2355
  align-items: center;
2340
2356
  gap: var(--brutal-space-4);
@@ -2365,7 +2381,7 @@
2365
2381
  transform: translate(4px, 4px);
2366
2382
  }
2367
2383
 
2368
- .brutal-button, .brutal-icon-button {
2384
+ .brutal-button, .brutal-icon-button, :where([data-ui="brutalism"]) .ui-button, :where([data-ui="brutalism"]) .ui-icon-button {
2369
2385
  appearance: none;
2370
2386
  justify-content: center;
2371
2387
  align-items: center;
@@ -2388,76 +2404,76 @@
2388
2404
  display: inline-flex;
2389
2405
  }
2390
2406
 
2391
- .brutal-button:hover, .brutal-icon-button:hover {
2407
+ .brutal-button:hover, .brutal-icon-button:hover, :where([data-ui="brutalism"]) .ui-button:hover, :where([data-ui="brutalism"]) .ui-icon-button:hover {
2392
2408
  box-shadow: 8px 8px 0 var(--brutal-primary);
2393
2409
  transform: translate(-2px, -2px);
2394
2410
  }
2395
2411
 
2396
- .brutal-button:active, .brutal-icon-button:active, .brutal-button.is-active, .brutal-button[aria-pressed="true"] {
2412
+ .brutal-button:active, .brutal-icon-button:active, .brutal-button.is-active, .brutal-button[aria-pressed="true"], :where([data-ui="brutalism"]) .ui-button:active, :where([data-ui="brutalism"]) .ui-icon-button:active, :where([data-ui="brutalism"]) .ui-button.is-active, :where([data-ui="brutalism"]) .ui-button[aria-pressed="true"] {
2397
2413
  box-shadow: 2px 2px 0 var(--brutal-secondary);
2398
2414
  transform: translate(4px, 4px);
2399
2415
  }
2400
2416
 
2401
- .brutal-button-primary {
2417
+ .brutal-button-primary, :where([data-ui="brutalism"]) .ui-button:where([data-ui-variant="primary"]) {
2402
2418
  background: var(--brutal-primary);
2403
2419
  color: var(--brutal-on-primary);
2404
2420
  }
2405
2421
 
2406
- .brutal-button-primary:hover {
2422
+ .brutal-button-primary:hover, :where([data-ui="brutalism"]) .ui-button:where([data-ui-variant="primary"]):hover {
2407
2423
  background: var(--brutal-primary-hover);
2408
2424
  }
2409
2425
 
2410
- .brutal-button-secondary {
2426
+ .brutal-button-secondary, :where([data-ui="brutalism"]) .ui-button:where([data-ui-variant="secondary"]) {
2411
2427
  background: var(--brutal-secondary);
2412
2428
  color: var(--brutal-on-secondary);
2413
2429
  box-shadow: 6px 6px 0 var(--brutal-primary);
2414
2430
  }
2415
2431
 
2416
- .brutal-button-secondary:hover {
2432
+ .brutal-button-secondary:hover, :where([data-ui="brutalism"]) .ui-button:where([data-ui-variant="secondary"]):hover {
2417
2433
  background: var(--brutal-secondary-hover);
2418
2434
  }
2419
2435
 
2420
- .brutal-button-danger {
2436
+ .brutal-button-danger, :where([data-ui="brutalism"]) .ui-button:where([data-ui-variant="danger"]) {
2421
2437
  background: var(--brutal-danger);
2422
2438
  color: var(--brutal-on-danger);
2423
2439
  }
2424
2440
 
2425
- .brutal-icon-button {
2441
+ .brutal-icon-button, :where([data-ui="brutalism"]) .ui-icon-button {
2426
2442
  width: 2.85rem;
2427
2443
  padding: 0;
2428
2444
  }
2429
2445
 
2430
- .brutal-button:disabled, .brutal-icon-button:disabled, .brutal-disabled {
2446
+ .brutal-button:disabled, .brutal-icon-button:disabled, .brutal-disabled, :where([data-ui="brutalism"]) .ui-button:disabled, :where([data-ui="brutalism"]) .ui-icon-button:disabled {
2431
2447
  opacity: .55;
2432
2448
  cursor: not-allowed;
2433
2449
  transform: none;
2434
2450
  }
2435
2451
 
2436
- .brutal-card, .brutal-panel {
2452
+ .brutal-card, .brutal-panel, :where([data-ui="brutalism"]) .ui-card {
2437
2453
  background: var(--brutal-card-bg);
2438
2454
  }
2439
2455
 
2440
- .brutal-toolbar, .brutal-table-wrap, .brutal-button:not(.brutal-button-primary):not(.brutal-button-secondary):not(.brutal-button-danger):not(.brutal-button-ghost), .brutal-icon-button {
2456
+ .brutal-toolbar, .brutal-table-wrap, .brutal-button:not(.brutal-button-primary):not(.brutal-button-secondary):not(.brutal-button-danger):not(.brutal-button-ghost), .brutal-icon-button, :where([data-ui="brutalism"]) .ui-toolbar, :where([data-ui="brutalism"]) .ui-table-wrap, :where([data-ui="brutalism"]) .ui-button:not(.ui-button:where([data-ui-variant="primary"])):not(.ui-button:where([data-ui-variant="secondary"])):not(.ui-button:where([data-ui-variant="danger"])):not(.ui-button:where([data-ui-variant="ghost"])), :where([data-ui="brutalism"]) .ui-icon-button {
2441
2457
  background: var(--brutal-control-bg);
2442
2458
  }
2443
2459
 
2444
- .brutal-button, .brutal-icon-button, .brutal-badge, .brutal-nav-link {
2460
+ .brutal-button, .brutal-icon-button, .brutal-badge, .brutal-nav-link, :where([data-ui="brutalism"]) .ui-button, :where([data-ui="brutalism"]) .ui-icon-button, :where([data-ui="brutalism"]) .ui-badge, :where([data-ui="brutalism"]) .ui-nav-link {
2445
2461
  font-family: var(--brutal-font-control);
2446
2462
  }
2447
2463
 
2448
- .brutal-field {
2464
+ .brutal-field, :where([data-ui="brutalism"]) .ui-field {
2449
2465
  gap: var(--brutal-space-2);
2450
2466
  flex-direction: column;
2451
2467
  display: flex;
2452
2468
  }
2453
2469
 
2454
- .brutal-label {
2470
+ .brutal-label, :where([data-ui="brutalism"]) .ui-label {
2455
2471
  text-transform: uppercase;
2456
2472
  letter-spacing: .05em;
2457
2473
  font-weight: 900;
2458
2474
  }
2459
2475
 
2460
- .brutal-input, .brutal-textarea, .brutal-select {
2476
+ .brutal-input, .brutal-textarea, .brutal-select, :where([data-ui="brutalism"]) .ui-input, :where([data-ui="brutalism"]) .ui-textarea, :where([data-ui="brutalism"]) .ui-select {
2461
2477
  background: var(--brutal-surface-strong);
2462
2478
  width: 100%;
2463
2479
  min-height: 2.9rem;
@@ -2470,22 +2486,22 @@
2470
2486
  box-shadow: inset 4px 4px #0000001f;
2471
2487
  }
2472
2488
 
2473
- .brutal-textarea {
2489
+ .brutal-textarea, :where([data-ui="brutalism"]) .ui-textarea {
2474
2490
  resize: vertical;
2475
2491
  min-height: 8rem;
2476
2492
  }
2477
2493
 
2478
- .brutal-input:focus, .brutal-textarea:focus, .brutal-select:focus {
2494
+ .brutal-input:focus, .brutal-textarea:focus, .brutal-select:focus, :where([data-ui="brutalism"]) .ui-input:focus, :where([data-ui="brutalism"]) .ui-textarea:focus, :where([data-ui="brutalism"]) .ui-select:focus {
2479
2495
  border-color: var(--brutal-focus);
2480
2496
  box-shadow: 0 0 0 4px rgb(var(--brutal-focus-rgb)/.28),inset 4px 4px 0 #0000001f;
2481
2497
  }
2482
2498
 
2483
- .brutal-help-text {
2499
+ .brutal-help-text, :where([data-ui="brutalism"]) .ui-help-text {
2484
2500
  color: var(--brutal-text-muted);
2485
2501
  font-size: .9rem;
2486
2502
  }
2487
2503
 
2488
- .brutal-badge {
2504
+ .brutal-badge, :where([data-ui="brutalism"]) .ui-badge {
2489
2505
  background: var(--brutal-surface-strong);
2490
2506
  min-height: 1.8rem;
2491
2507
  color: var(--brutal-text);
@@ -2498,32 +2514,32 @@
2498
2514
  display: inline-flex;
2499
2515
  }
2500
2516
 
2501
- .brutal-badge-primary {
2517
+ .brutal-badge-primary, :where([data-ui="brutalism"]) .ui-badge:where([data-ui-variant="primary"]) {
2502
2518
  background: var(--brutal-primary);
2503
2519
  color: var(--brutal-on-primary);
2504
2520
  }
2505
2521
 
2506
- .brutal-badge-secondary {
2522
+ .brutal-badge-secondary, :where([data-ui="brutalism"]) .ui-badge:where([data-ui-variant="secondary"]) {
2507
2523
  background: var(--brutal-secondary);
2508
2524
  color: var(--brutal-on-secondary);
2509
2525
  }
2510
2526
 
2511
- .brutal-badge-success {
2527
+ .brutal-badge-success, :where([data-ui="brutalism"]) .ui-badge:where([data-ui-variant="success"]) {
2512
2528
  background: var(--brutal-success);
2513
2529
  color: var(--brutal-on-success);
2514
2530
  }
2515
2531
 
2516
- .brutal-badge-warning {
2532
+ .brutal-badge-warning, :where([data-ui="brutalism"]) .ui-badge:where([data-ui-variant="warning"]) {
2517
2533
  background: var(--brutal-warning);
2518
2534
  color: var(--brutal-on-warning);
2519
2535
  }
2520
2536
 
2521
- .brutal-badge-danger {
2537
+ .brutal-badge-danger, :where([data-ui="brutalism"]) .ui-badge:where([data-ui-variant="danger"]) {
2522
2538
  background: var(--brutal-danger);
2523
2539
  color: var(--brutal-on-danger);
2524
2540
  }
2525
2541
 
2526
- .brutal-nav {
2542
+ .brutal-nav, :where([data-ui="brutalism"]) .ui-nav {
2527
2543
  gap: var(--brutal-space-2);
2528
2544
  padding: var(--brutal-space-2);
2529
2545
  background: var(--brutal-surface-strong);
@@ -2533,7 +2549,7 @@
2533
2549
  display: flex;
2534
2550
  }
2535
2551
 
2536
- .brutal-nav-link {
2552
+ .brutal-nav-link, :where([data-ui="brutalism"]) .ui-nav-link {
2537
2553
  min-height: 2.5rem;
2538
2554
  color: var(--brutal-text);
2539
2555
  border: 3px solid #0000;
@@ -2544,12 +2560,12 @@
2544
2560
  display: inline-flex;
2545
2561
  }
2546
2562
 
2547
- .brutal-nav-link:hover {
2563
+ .brutal-nav-link:hover, :where([data-ui="brutalism"]) .ui-nav-link:hover {
2548
2564
  border-color: var(--brutal-border);
2549
2565
  background: var(--brutal-surface-soft);
2550
2566
  }
2551
2567
 
2552
- .brutal-nav-link.is-active, .brutal-nav-link[aria-current="page"] {
2568
+ .brutal-nav-link.is-active, .brutal-nav-link[aria-current="page"], :where([data-ui="brutalism"]) .ui-nav-link.is-active, :where([data-ui="brutalism"]) .ui-nav-link[aria-current="page"] {
2553
2569
  background: var(--brutal-primary);
2554
2570
  color: var(--brutal-on-primary);
2555
2571
  border-color: var(--brutal-border);
@@ -2582,66 +2598,66 @@
2582
2598
  transform: rotate(45deg);
2583
2599
  }
2584
2600
 
2585
- .brutal-progress {
2601
+ .brutal-progress, :where([data-ui="brutalism"]) .ui-progress {
2586
2602
  background: var(--brutal-surface-soft);
2587
2603
  border: 3px solid var(--brutal-border);
2588
2604
  width: 100%;
2589
2605
  height: 1rem;
2590
2606
  }
2591
2607
 
2592
- .brutal-progress-bar {
2608
+ .brutal-progress-bar, :where([data-ui="brutalism"]) .ui-progress-bar {
2593
2609
  height: 100%;
2594
2610
  width: var(--brutal-progress-value, 50%);
2595
2611
  background: var(--brutal-primary);
2596
2612
  }
2597
2613
 
2598
- .brutal-alert {
2614
+ .brutal-alert, :where([data-ui="brutalism"]) .ui-alert {
2599
2615
  padding: var(--brutal-space-4);
2600
2616
  background: var(--brutal-surface-strong);
2601
2617
  border: 3px solid var(--brutal-border);
2602
2618
  box-shadow: 8px 8px 0 var(--brutal-accent);
2603
2619
  }
2604
2620
 
2605
- .brutal-alert-success {
2621
+ .brutal-alert-success, :where([data-ui="brutalism"]) .ui-alert:where([data-ui-variant="success"]) {
2606
2622
  box-shadow: 8px 8px 0 var(--brutal-success);
2607
2623
  }
2608
2624
 
2609
- .brutal-alert-warning {
2625
+ .brutal-alert-warning, :where([data-ui="brutalism"]) .ui-alert:where([data-ui-variant="warning"]) {
2610
2626
  box-shadow: 8px 8px 0 var(--brutal-warning);
2611
2627
  }
2612
2628
 
2613
- .brutal-alert-danger {
2629
+ .brutal-alert-danger, :where([data-ui="brutalism"]) .ui-alert:where([data-ui-variant="danger"]) {
2614
2630
  box-shadow: 8px 8px 0 var(--brutal-danger);
2615
2631
  }
2616
2632
 
2617
- .brutal-alert-title {
2633
+ .brutal-alert-title, :where([data-ui="brutalism"]) .ui-alert-title {
2618
2634
  text-transform: uppercase;
2619
2635
  margin: 0;
2620
2636
  font-weight: 900;
2621
2637
  }
2622
2638
 
2623
- .brutal-alert-body {
2639
+ .brutal-alert-body, :where([data-ui="brutalism"]) .ui-alert-body {
2624
2640
  color: var(--brutal-text-muted);
2625
2641
  margin: .5rem 0 0;
2626
2642
  }
2627
2643
 
2628
- .brutal-table-wrap {
2644
+ .brutal-table-wrap, :where([data-ui="brutalism"]) .ui-table-wrap {
2629
2645
  box-shadow: 8px 8px 0 var(--brutal-primary);
2630
2646
  overflow: auto;
2631
2647
  }
2632
2648
 
2633
- .brutal-table {
2649
+ .brutal-table, :where([data-ui="brutalism"]) .ui-table {
2634
2650
  border-collapse: collapse;
2635
2651
  width: 100%;
2636
2652
  }
2637
2653
 
2638
- .brutal-table th, .brutal-table td {
2654
+ .brutal-table th, .brutal-table td, :where([data-ui="brutalism"]) .ui-table th, :where([data-ui="brutalism"]) .ui-table td {
2639
2655
  border: 2px solid var(--brutal-border);
2640
2656
  text-align: left;
2641
2657
  padding: .9rem 1rem;
2642
2658
  }
2643
2659
 
2644
- .brutal-table th {
2660
+ .brutal-table th, :where([data-ui="brutalism"]) .ui-table th {
2645
2661
  background: var(--brutal-primary);
2646
2662
  color: var(--brutal-on-primary);
2647
2663
  text-transform: uppercase;