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="neumorphism"])[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="neumorphism"])[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="neumorphism"])[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="neumorphism"]) .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="neumorphism"]) .ui-check, :where([data-ui="neumorphism"]) .ui-radio, :where([data-ui="neumorphism"]) .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="neumorphism"]) .ui-check-control, :where([data-ui="neumorphism"]) .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="neumorphism"]) .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="neumorphism"]) .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="neumorphism"]) .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="neumorphism"]) .ui-switch:has(input:checked) .ui-switch-thumb {
2020
2036
  transform: translateX(1.25rem);
2021
2037
  }
2022
2038
 
@@ -2214,7 +2230,7 @@
2214
2230
  background-size: var(--neo-theme-bg-size);
2215
2231
  }
2216
2232
 
2217
- .neo-title, .neo-heading, .neo-kicker, .neo-button, .neo-badge, .neo-nav-link {
2233
+ .neo-title, .neo-heading, .neo-kicker, .neo-button, .neo-badge, .neo-nav-link, :where([data-ui="neumorphism"]) .ui-button, :where([data-ui="neumorphism"]) .ui-badge, :where([data-ui="neumorphism"]) .ui-nav-link {
2218
2234
  font-family: var(--neo-font-heading);
2219
2235
  }
2220
2236
 
@@ -2260,7 +2276,7 @@
2260
2276
  height: 1px;
2261
2277
  }
2262
2278
 
2263
- .neo-surface, .neo-card, .neo-panel, .neo-toolbar, .neo-table-wrap {
2279
+ .neo-surface, .neo-card, .neo-panel, .neo-toolbar, .neo-table-wrap, :where([data-ui="neumorphism"]) .ui-card, :where([data-ui="neumorphism"]) .ui-toolbar, :where([data-ui="neumorphism"]) .ui-table-wrap {
2264
2280
  background: linear-gradient(180deg,#ffffff2e,#ffffff08),linear-gradient(135deg,rgb(var(--neo-primary-rgb)/.07),transparent 46%),var(--neo-surface);
2265
2281
  color: var(--neo-text);
2266
2282
  border: 1px solid var(--neo-border);
@@ -2270,11 +2286,11 @@
2270
2286
  position: relative;
2271
2287
  }
2272
2288
 
2273
- .neo-card, .neo-panel {
2289
+ .neo-card, .neo-panel, :where([data-ui="neumorphism"]) .ui-card {
2274
2290
  padding: var(--neo-space-6);
2275
2291
  }
2276
2292
 
2277
- .neo-toolbar {
2293
+ .neo-toolbar, :where([data-ui="neumorphism"]) .ui-toolbar {
2278
2294
  justify-content: space-between;
2279
2295
  align-items: center;
2280
2296
  gap: var(--neo-space-4);
@@ -2307,7 +2323,7 @@
2307
2323
  transform: translateY(-2px);
2308
2324
  }
2309
2325
 
2310
- .neo-button, .neo-icon-button {
2326
+ .neo-button, .neo-icon-button, :where([data-ui="neumorphism"]) .ui-button, :where([data-ui="neumorphism"]) .ui-icon-button {
2311
2327
  appearance: none;
2312
2328
  justify-content: center;
2313
2329
  align-items: center;
@@ -2331,87 +2347,87 @@
2331
2347
  display: inline-flex;
2332
2348
  }
2333
2349
 
2334
- .neo-button:hover, .neo-icon-button:hover {
2350
+ .neo-button:hover, .neo-icon-button:hover, :where([data-ui="neumorphism"]) .ui-button:hover, :where([data-ui="neumorphism"]) .ui-icon-button:hover {
2335
2351
  border-color: var(--neo-primary);
2336
2352
  transform: translateY(-1px);
2337
2353
  }
2338
2354
 
2339
- .neo-button:active, .neo-icon-button:active, .neo-button[aria-pressed="true"], .neo-icon-button[aria-pressed="true"], .neo-button.is-active, .neo-icon-button.is-active {
2355
+ .neo-button:active, .neo-icon-button:active, .neo-button[aria-pressed="true"], .neo-icon-button[aria-pressed="true"], .neo-button.is-active, .neo-icon-button.is-active, :where([data-ui="neumorphism"]) .ui-button:active, :where([data-ui="neumorphism"]) .ui-icon-button:active, :where([data-ui="neumorphism"]) .ui-button[aria-pressed="true"], :where([data-ui="neumorphism"]) .ui-icon-button[aria-pressed="true"], :where([data-ui="neumorphism"]) .ui-button.is-active, :where([data-ui="neumorphism"]) .ui-icon-button.is-active {
2340
2356
  transform: translateY(1px);
2341
2357
  box-shadow: inset 0 3px 10px #0000002e;
2342
2358
  }
2343
2359
 
2344
- .neo-button-primary {
2360
+ .neo-button-primary, :where([data-ui="neumorphism"]) .ui-button:where([data-ui-variant="primary"]) {
2345
2361
  background: var(--neo-primary);
2346
2362
  color: var(--neo-on-primary);
2347
2363
  border-color: var(--neo-primary);
2348
2364
  }
2349
2365
 
2350
- .neo-button-primary:hover {
2366
+ .neo-button-primary:hover, :where([data-ui="neumorphism"]) .ui-button:where([data-ui-variant="primary"]):hover {
2351
2367
  background: var(--neo-primary-hover);
2352
2368
  border-color: var(--neo-primary-hover);
2353
2369
  }
2354
2370
 
2355
- .neo-button-secondary {
2371
+ .neo-button-secondary, :where([data-ui="neumorphism"]) .ui-button:where([data-ui-variant="secondary"]) {
2356
2372
  background: var(--neo-secondary);
2357
2373
  color: var(--neo-on-secondary);
2358
2374
  border-color: var(--neo-secondary);
2359
2375
  }
2360
2376
 
2361
- .neo-button-secondary:hover {
2377
+ .neo-button-secondary:hover, :where([data-ui="neumorphism"]) .ui-button:where([data-ui-variant="secondary"]):hover {
2362
2378
  background: var(--neo-secondary-hover);
2363
2379
  border-color: var(--neo-secondary-hover);
2364
2380
  }
2365
2381
 
2366
- .neo-button-danger {
2382
+ .neo-button-danger, :where([data-ui="neumorphism"]) .ui-button:where([data-ui-variant="danger"]) {
2367
2383
  background: var(--neo-danger);
2368
2384
  color: var(--neo-on-danger);
2369
2385
  border-color: var(--neo-danger);
2370
2386
  }
2371
2387
 
2372
- .neo-button-ghost {
2388
+ .neo-button-ghost, :where([data-ui="neumorphism"]) .ui-button:where([data-ui-variant="ghost"]) {
2373
2389
  color: var(--neo-text);
2374
2390
  box-shadow: none;
2375
2391
  background: none;
2376
2392
  }
2377
2393
 
2378
- .neo-icon-button {
2394
+ .neo-icon-button, :where([data-ui="neumorphism"]) .ui-icon-button {
2379
2395
  border-radius: var(--neo-radius-pill);
2380
2396
  width: 2.75rem;
2381
2397
  padding: 0;
2382
2398
  }
2383
2399
 
2384
- .neo-button:disabled, .neo-icon-button:disabled, .neo-disabled {
2400
+ .neo-button:disabled, .neo-icon-button:disabled, .neo-disabled, :where([data-ui="neumorphism"]) .ui-button:disabled, :where([data-ui="neumorphism"]) .ui-icon-button:disabled {
2385
2401
  opacity: .55;
2386
2402
  cursor: not-allowed;
2387
2403
  transform: none;
2388
2404
  }
2389
2405
 
2390
- .neo-card, .neo-panel {
2406
+ .neo-card, .neo-panel, :where([data-ui="neumorphism"]) .ui-card {
2391
2407
  background: var(--neo-card-bg);
2392
2408
  }
2393
2409
 
2394
- .neo-toolbar, .neo-table-wrap, .neo-button:not(.neo-button-primary):not(.neo-button-secondary):not(.neo-button-danger):not(.neo-button-ghost), .neo-icon-button {
2410
+ .neo-toolbar, .neo-table-wrap, .neo-button:not(.neo-button-primary):not(.neo-button-secondary):not(.neo-button-danger):not(.neo-button-ghost), .neo-icon-button, :where([data-ui="neumorphism"]) .ui-toolbar, :where([data-ui="neumorphism"]) .ui-table-wrap, :where([data-ui="neumorphism"]) .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="neumorphism"]) .ui-icon-button {
2395
2411
  background: var(--neo-control-bg);
2396
2412
  }
2397
2413
 
2398
- .neo-button, .neo-icon-button, .neo-badge, .neo-nav-link {
2414
+ .neo-button, .neo-icon-button, .neo-badge, .neo-nav-link, :where([data-ui="neumorphism"]) .ui-button, :where([data-ui="neumorphism"]) .ui-icon-button, :where([data-ui="neumorphism"]) .ui-badge, :where([data-ui="neumorphism"]) .ui-nav-link {
2399
2415
  font-family: var(--neo-font-control);
2400
2416
  }
2401
2417
 
2402
- .neo-field {
2418
+ .neo-field, :where([data-ui="neumorphism"]) .ui-field {
2403
2419
  gap: var(--neo-space-2);
2404
2420
  flex-direction: column;
2405
2421
  display: flex;
2406
2422
  }
2407
2423
 
2408
- .neo-label {
2424
+ .neo-label, :where([data-ui="neumorphism"]) .ui-label {
2409
2425
  color: var(--neo-text);
2410
2426
  font-size: .925rem;
2411
2427
  font-weight: 800;
2412
2428
  }
2413
2429
 
2414
- .neo-input, .neo-textarea, .neo-select {
2430
+ .neo-input, .neo-textarea, .neo-select, :where([data-ui="neumorphism"]) .ui-input, :where([data-ui="neumorphism"]) .ui-textarea, :where([data-ui="neumorphism"]) .ui-select {
2415
2431
  background: var(--neo-surface-soft);
2416
2432
  width: 100%;
2417
2433
  min-height: 2.875rem;
@@ -2424,32 +2440,32 @@
2424
2440
  padding: .75rem 1rem;
2425
2441
  }
2426
2442
 
2427
- .neo-textarea {
2443
+ .neo-textarea, :where([data-ui="neumorphism"]) .ui-textarea {
2428
2444
  resize: vertical;
2429
2445
  min-height: 8rem;
2430
2446
  }
2431
2447
 
2432
- .neo-input::placeholder, .neo-textarea::placeholder {
2448
+ .neo-input::placeholder, .neo-textarea::placeholder, :where([data-ui="neumorphism"]) .ui-input::placeholder, :where([data-ui="neumorphism"]) .ui-textarea::placeholder {
2433
2449
  color: var(--neo-text-muted);
2434
2450
  opacity: .82;
2435
2451
  }
2436
2452
 
2437
- .neo-input:hover, .neo-textarea:hover, .neo-select:hover {
2453
+ .neo-input:hover, .neo-textarea:hover, .neo-select:hover, :where([data-ui="neumorphism"]) .ui-input:hover, :where([data-ui="neumorphism"]) .ui-textarea:hover, :where([data-ui="neumorphism"]) .ui-select:hover {
2438
2454
  border-color: rgb(var(--neo-primary-rgb)/.58);
2439
2455
  }
2440
2456
 
2441
- .neo-input:focus, .neo-textarea:focus, .neo-select:focus {
2457
+ .neo-input:focus, .neo-textarea:focus, .neo-select:focus, :where([data-ui="neumorphism"]) .ui-input:focus, :where([data-ui="neumorphism"]) .ui-textarea:focus, :where([data-ui="neumorphism"]) .ui-select:focus {
2442
2458
  border-color: var(--neo-focus);
2443
2459
  box-shadow: var(--neo-focus-ring);
2444
2460
  }
2445
2461
 
2446
- .neo-help-text {
2462
+ .neo-help-text, :where([data-ui="neumorphism"]) .ui-help-text {
2447
2463
  color: var(--neo-text-muted);
2448
2464
  font-size: .875rem;
2449
2465
  line-height: 1.45;
2450
2466
  }
2451
2467
 
2452
- .neo-check, .neo-radio {
2468
+ .neo-check, .neo-radio, :where([data-ui="neumorphism"]) .ui-check, :where([data-ui="neumorphism"]) .ui-radio {
2453
2469
  align-items: center;
2454
2470
  gap: var(--neo-space-2);
2455
2471
  color: var(--neo-text);
@@ -2457,13 +2473,13 @@
2457
2473
  display: inline-flex;
2458
2474
  }
2459
2475
 
2460
- .neo-check input, .neo-radio input {
2476
+ .neo-check input, .neo-radio input, :where([data-ui="neumorphism"]) .ui-check input, :where([data-ui="neumorphism"]) .ui-radio input {
2461
2477
  opacity: 0;
2462
2478
  pointer-events: none;
2463
2479
  position: absolute;
2464
2480
  }
2465
2481
 
2466
- .neo-check-control, .neo-radio-control {
2482
+ .neo-check-control, .neo-radio-control, :where([data-ui="neumorphism"]) .ui-check-control, :where([data-ui="neumorphism"]) .ui-radio-control {
2467
2483
  background: var(--neo-surface-soft);
2468
2484
  border: 1px solid var(--neo-border);
2469
2485
  width: 1.35rem;
@@ -2473,28 +2489,28 @@
2473
2489
  display: inline-grid;
2474
2490
  }
2475
2491
 
2476
- .neo-check-control {
2492
+ .neo-check-control, :where([data-ui="neumorphism"]) .ui-check-control {
2477
2493
  border-radius: var(--neo-radius-xs);
2478
2494
  }
2479
2495
 
2480
- .neo-radio-control {
2496
+ .neo-radio-control, :where([data-ui="neumorphism"]) .ui-radio-control {
2481
2497
  border-radius: 50%;
2482
2498
  }
2483
2499
 
2484
- .neo-check input:checked + .neo-check-control, .neo-radio input:checked + .neo-radio-control {
2500
+ .neo-check input:checked + .neo-check-control, .neo-radio input:checked + .neo-radio-control, :where([data-ui="neumorphism"]) .ui-check input:checked+.ui-check-control, :where([data-ui="neumorphism"]) .ui-radio input:checked+.ui-radio-control {
2485
2501
  background: var(--neo-primary);
2486
2502
  border-color: var(--neo-primary);
2487
2503
  box-shadow: var(--neo-focus-ring);
2488
2504
  }
2489
2505
 
2490
- .neo-check input:checked + .neo-check-control:after {
2506
+ .neo-check input:checked + .neo-check-control:after, :where([data-ui="neumorphism"]) .ui-check input:checked+.ui-check-control:after {
2491
2507
  content: "✓";
2492
2508
  color: var(--neo-on-primary);
2493
2509
  font-size: .9rem;
2494
2510
  font-weight: 900;
2495
2511
  }
2496
2512
 
2497
- .neo-radio input:checked + .neo-radio-control:after {
2513
+ .neo-radio input:checked + .neo-radio-control:after, :where([data-ui="neumorphism"]) .ui-radio input:checked+.ui-radio-control:after {
2498
2514
  content: "";
2499
2515
  background: var(--neo-on-primary);
2500
2516
  border-radius: 50%;
@@ -2502,7 +2518,7 @@
2502
2518
  height: .55rem;
2503
2519
  }
2504
2520
 
2505
- .neo-switch {
2521
+ .neo-switch, :where([data-ui="neumorphism"]) .ui-switch {
2506
2522
  align-items: center;
2507
2523
  gap: var(--neo-space-3);
2508
2524
  color: var(--neo-text);
@@ -2510,13 +2526,13 @@
2510
2526
  display: inline-flex;
2511
2527
  }
2512
2528
 
2513
- .neo-switch input {
2529
+ .neo-switch input, :where([data-ui="neumorphism"]) .ui-switch input {
2514
2530
  opacity: 0;
2515
2531
  pointer-events: none;
2516
2532
  position: absolute;
2517
2533
  }
2518
2534
 
2519
- .neo-switch-track {
2535
+ .neo-switch-track, :where([data-ui="neumorphism"]) .ui-switch-track {
2520
2536
  background: var(--neo-surface-soft);
2521
2537
  border: 1px solid var(--neo-border);
2522
2538
  border-radius: var(--neo-radius-pill);
@@ -2526,7 +2542,7 @@
2526
2542
  position: relative;
2527
2543
  }
2528
2544
 
2529
- .neo-switch-thumb {
2545
+ .neo-switch-thumb, :where([data-ui="neumorphism"]) .ui-switch-thumb {
2530
2546
  background: var(--neo-surface-strong);
2531
2547
  border: 1px solid var(--neo-border);
2532
2548
  width: 1.34rem;
@@ -2539,17 +2555,17 @@
2539
2555
  left: .22rem;
2540
2556
  }
2541
2557
 
2542
- .neo-switch input:checked + .neo-switch-track {
2558
+ .neo-switch input:checked + .neo-switch-track, :where([data-ui="neumorphism"]) .ui-switch input:checked+.ui-switch-track {
2543
2559
  background: var(--neo-primary);
2544
2560
  border-color: var(--neo-primary);
2545
2561
  }
2546
2562
 
2547
- .neo-switch input:checked + .neo-switch-track .neo-switch-thumb {
2563
+ .neo-switch input:checked + .neo-switch-track .neo-switch-thumb, :where([data-ui="neumorphism"]) .ui-switch input:checked+.ui-switch-track .ui-switch-thumb {
2548
2564
  background: var(--neo-on-primary);
2549
2565
  left: calc(100% - 1.56rem);
2550
2566
  }
2551
2567
 
2552
- .neo-badge {
2568
+ .neo-badge, :where([data-ui="neumorphism"]) .ui-badge {
2553
2569
  align-items: center;
2554
2570
  gap: var(--neo-space-1);
2555
2571
  background: var(--neo-surface-soft);
@@ -2564,37 +2580,37 @@
2564
2580
  display: inline-flex;
2565
2581
  }
2566
2582
 
2567
- .neo-badge-primary {
2583
+ .neo-badge-primary, :where([data-ui="neumorphism"]) .ui-badge:where([data-ui-variant="primary"]) {
2568
2584
  background: var(--neo-primary);
2569
2585
  color: var(--neo-on-primary);
2570
2586
  border-color: var(--neo-primary);
2571
2587
  }
2572
2588
 
2573
- .neo-badge-secondary {
2589
+ .neo-badge-secondary, :where([data-ui="neumorphism"]) .ui-badge:where([data-ui-variant="secondary"]) {
2574
2590
  background: var(--neo-secondary);
2575
2591
  color: var(--neo-on-secondary);
2576
2592
  border-color: var(--neo-secondary);
2577
2593
  }
2578
2594
 
2579
- .neo-badge-success {
2595
+ .neo-badge-success, :where([data-ui="neumorphism"]) .ui-badge:where([data-ui-variant="success"]) {
2580
2596
  background: var(--neo-success);
2581
2597
  color: var(--neo-on-success);
2582
2598
  border-color: var(--neo-success);
2583
2599
  }
2584
2600
 
2585
- .neo-badge-warning {
2601
+ .neo-badge-warning, :where([data-ui="neumorphism"]) .ui-badge:where([data-ui-variant="warning"]) {
2586
2602
  background: var(--neo-warning);
2587
2603
  color: var(--neo-on-warning);
2588
2604
  border-color: var(--neo-warning);
2589
2605
  }
2590
2606
 
2591
- .neo-badge-danger {
2607
+ .neo-badge-danger, :where([data-ui="neumorphism"]) .ui-badge:where([data-ui-variant="danger"]) {
2592
2608
  background: var(--neo-danger);
2593
2609
  color: var(--neo-on-danger);
2594
2610
  border-color: var(--neo-danger);
2595
2611
  }
2596
2612
 
2597
- .neo-nav {
2613
+ .neo-nav, :where([data-ui="neumorphism"]) .ui-nav {
2598
2614
  align-items: center;
2599
2615
  gap: var(--neo-space-2);
2600
2616
  padding: var(--neo-space-2);
@@ -2606,7 +2622,7 @@
2606
2622
  display: flex;
2607
2623
  }
2608
2624
 
2609
- .neo-nav-link {
2625
+ .neo-nav-link, :where([data-ui="neumorphism"]) .ui-nav-link {
2610
2626
  min-height: 2.5rem;
2611
2627
  color: var(--neo-text-muted);
2612
2628
  border-radius: var(--neo-radius-pill);
@@ -2619,12 +2635,12 @@
2619
2635
  display: inline-flex;
2620
2636
  }
2621
2637
 
2622
- .neo-nav-link:hover {
2638
+ .neo-nav-link:hover, :where([data-ui="neumorphism"]) .ui-nav-link:hover {
2623
2639
  color: var(--neo-text);
2624
2640
  background: var(--neo-surface-soft);
2625
2641
  }
2626
2642
 
2627
- .neo-nav-link[aria-current="page"], .neo-nav-link.is-active {
2643
+ .neo-nav-link[aria-current="page"], .neo-nav-link.is-active, :where([data-ui="neumorphism"]) .ui-nav-link[aria-current="page"], :where([data-ui="neumorphism"]) .ui-nav-link.is-active {
2628
2644
  color: var(--neo-on-primary);
2629
2645
  background: var(--neo-primary);
2630
2646
  }
@@ -2654,7 +2670,7 @@
2654
2670
  box-shadow: inset .12rem .12rem .24rem #0000001f;
2655
2671
  }
2656
2672
 
2657
- .neo-progress {
2673
+ .neo-progress, :where([data-ui="neumorphism"]) .ui-progress {
2658
2674
  background: var(--neo-surface-soft);
2659
2675
  border: 1px solid var(--neo-border);
2660
2676
  border-radius: var(--neo-radius-pill);
@@ -2663,14 +2679,14 @@
2663
2679
  overflow: hidden;
2664
2680
  }
2665
2681
 
2666
- .neo-progress-bar {
2682
+ .neo-progress-bar, :where([data-ui="neumorphism"]) .ui-progress-bar {
2667
2683
  height: 100%;
2668
2684
  width: var(--neo-progress-value, 50%);
2669
2685
  background: linear-gradient(90deg,var(--neo-primary),var(--neo-accent));
2670
2686
  border-radius: inherit;
2671
2687
  }
2672
2688
 
2673
- .neo-alert {
2689
+ .neo-alert, :where([data-ui="neumorphism"]) .ui-alert {
2674
2690
  gap: var(--neo-space-2);
2675
2691
  padding: var(--neo-space-4);
2676
2692
  background: var(--neo-surface);
@@ -2681,45 +2697,45 @@
2681
2697
  display: grid;
2682
2698
  }
2683
2699
 
2684
- .neo-alert-success {
2700
+ .neo-alert-success, :where([data-ui="neumorphism"]) .ui-alert:where([data-ui-variant="success"]) {
2685
2701
  border-left-color: var(--neo-success);
2686
2702
  }
2687
2703
 
2688
- .neo-alert-warning {
2704
+ .neo-alert-warning, :where([data-ui="neumorphism"]) .ui-alert:where([data-ui-variant="warning"]) {
2689
2705
  border-left-color: var(--neo-warning);
2690
2706
  }
2691
2707
 
2692
- .neo-alert-danger {
2708
+ .neo-alert-danger, :where([data-ui="neumorphism"]) .ui-alert:where([data-ui-variant="danger"]) {
2693
2709
  border-left-color: var(--neo-danger);
2694
2710
  }
2695
2711
 
2696
- .neo-alert-title {
2712
+ .neo-alert-title, :where([data-ui="neumorphism"]) .ui-alert-title {
2697
2713
  margin: 0;
2698
2714
  font-weight: 900;
2699
2715
  }
2700
2716
 
2701
- .neo-alert-body {
2717
+ .neo-alert-body, :where([data-ui="neumorphism"]) .ui-alert-body {
2702
2718
  color: var(--neo-text-muted);
2703
2719
  margin: 0;
2704
2720
  line-height: 1.55;
2705
2721
  }
2706
2722
 
2707
- .neo-table-wrap {
2723
+ .neo-table-wrap, :where([data-ui="neumorphism"]) .ui-table-wrap {
2708
2724
  overflow: auto;
2709
2725
  }
2710
2726
 
2711
- .neo-table {
2727
+ .neo-table, :where([data-ui="neumorphism"]) .ui-table {
2712
2728
  border-collapse: collapse;
2713
2729
  width: 100%;
2714
2730
  }
2715
2731
 
2716
- .neo-table th, .neo-table td {
2732
+ .neo-table th, .neo-table td, :where([data-ui="neumorphism"]) .ui-table th, :where([data-ui="neumorphism"]) .ui-table td {
2717
2733
  text-align: left;
2718
2734
  border-bottom: 1px solid var(--neo-border);
2719
2735
  padding: .95rem 1rem;
2720
2736
  }
2721
2737
 
2722
- .neo-table th {
2738
+ .neo-table th, :where([data-ui="neumorphism"]) .ui-table th {
2723
2739
  color: var(--neo-text);
2724
2740
  text-transform: uppercase;
2725
2741
  letter-spacing: .08em;
@@ -2728,11 +2744,11 @@
2728
2744
  font-weight: 900;
2729
2745
  }
2730
2746
 
2731
- .neo-table td {
2747
+ .neo-table td, :where([data-ui="neumorphism"]) .ui-table td {
2732
2748
  color: var(--neo-text-muted);
2733
2749
  }
2734
2750
 
2735
- .neo-table tr:hover td {
2751
+ .neo-table tr:hover td, :where([data-ui="neumorphism"]) .ui-table tr:hover td {
2736
2752
  background: rgb(var(--neo-primary-rgb)/.045);
2737
2753
  }
2738
2754
 
@@ -2838,7 +2854,7 @@
2838
2854
  background: var(--neo-bg);
2839
2855
  }
2840
2856
 
2841
- .neo-surface, .neo-card, .neo-panel, .neo-toolbar, .neo-table-wrap {
2857
+ .neo-surface, .neo-card, .neo-panel, .neo-toolbar, .neo-table-wrap, :where([data-ui="neumorphism"]) .ui-card, :where([data-ui="neumorphism"]) .ui-toolbar, :where([data-ui="neumorphism"]) .ui-table-wrap {
2842
2858
  border-color: rgb(var(--neo-border-rgb)/.14);
2843
2859
  box-shadow: 10px 10px 22px var(--neo-nm-dark),-10px -10px 22px var(--neo-nm-light);
2844
2860
  }
@@ -2847,15 +2863,15 @@
2847
2863
  box-shadow: 16px 16px 32px var(--neo-nm-dark),-16px -16px 32px var(--neo-nm-light);
2848
2864
  }
2849
2865
 
2850
- .neo-well, .neo-inset, .neo-input, .neo-textarea, .neo-select, .neo-progress {
2866
+ .neo-well, .neo-inset, .neo-input, .neo-textarea, .neo-select, .neo-progress, :where([data-ui="neumorphism"]) .ui-input, :where([data-ui="neumorphism"]) .ui-textarea, :where([data-ui="neumorphism"]) .ui-select, :where([data-ui="neumorphism"]) .ui-progress {
2851
2867
  box-shadow: inset 5px 5px 11px var(--neo-nm-dark),inset -5px -5px 11px var(--neo-nm-light);
2852
2868
  }
2853
2869
 
2854
- .neo-button, .neo-icon-button, .neo-badge, .neo-nav {
2870
+ .neo-button, .neo-icon-button, .neo-badge, .neo-nav, :where([data-ui="neumorphism"]) .ui-button, :where([data-ui="neumorphism"]) .ui-icon-button, :where([data-ui="neumorphism"]) .ui-badge, :where([data-ui="neumorphism"]) .ui-nav {
2855
2871
  box-shadow: 5px 5px 11px var(--neo-nm-dark),-5px -5px 11px var(--neo-nm-light);
2856
2872
  }
2857
2873
 
2858
- .neo-button:active, .neo-icon-button:active, .neo-button.is-active, .neo-icon-button.is-active, .neo-nav-link.is-active {
2874
+ .neo-button:active, .neo-icon-button:active, .neo-button.is-active, .neo-icon-button.is-active, .neo-nav-link.is-active, :where([data-ui="neumorphism"]) .ui-button:active, :where([data-ui="neumorphism"]) .ui-icon-button:active, :where([data-ui="neumorphism"]) .ui-button.is-active, :where([data-ui="neumorphism"]) .ui-icon-button.is-active, :where([data-ui="neumorphism"]) .ui-nav-link.is-active {
2859
2875
  box-shadow: inset 4px 4px 9px var(--neo-nm-dark),inset -4px -4px 9px var(--neo-nm-light);
2860
2876
  }
2861
2877
 
@@ -2885,12 +2901,12 @@
2885
2901
  inline-size: 3rem;
2886
2902
  }
2887
2903
 
2888
- .neo-button[aria-busy="true"], .neo-icon-button[aria-busy="true"], [data-ui="neumorphism"] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"]) {
2904
+ .neo-button[aria-busy="true"], .neo-icon-button[aria-busy="true"], [data-ui="neumorphism"] :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="neumorphism"]) .ui-button[aria-busy="true"], :where([data-ui="neumorphism"]) .ui-icon-button[aria-busy="true"] {
2889
2905
  cursor: progress;
2890
2906
  gap: .55rem;
2891
2907
  }
2892
2908
 
2893
- .neo-button[aria-busy="true"]:after, .neo-icon-button[aria-busy="true"]:after, [data-ui="neumorphism"] :where(button[aria-busy="true"], input[type="button"][aria-busy="true"], input[type="submit"][aria-busy="true"], input[type="reset"][aria-busy="true"]):after {
2909
+ .neo-button[aria-busy="true"]:after, .neo-icon-button[aria-busy="true"]:after, [data-ui="neumorphism"] :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="neumorphism"]) .ui-button[aria-busy="true"]:after, :where([data-ui="neumorphism"]) .ui-icon-button[aria-busy="true"]:after {
2894
2910
  content: "";
2895
2911
  border: .16em solid rgb(var(--neo-primary-text-rgb)/.42);
2896
2912
  border-block-start-color: currentColor;