ui-style-kit-css 2.1.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 (64) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +169 -54
  3. package/STYLE-MAP.md +55 -0
  4. package/dist/ui-style-kit.css +23744 -7015
  5. package/dist/ui-style-kit.min.css +2 -2
  6. package/dist/ui-style-kit.visual.css +22948 -6669
  7. package/dist/ui-style-kit.visual.min.css +2 -2
  8. package/dist/ui-style-kit.with-bridge.css +23941 -7205
  9. package/dist/ui-style-kit.with-bridge.min.css +2 -2
  10. package/dist/visual/art-deco.css +4776 -0
  11. package/dist/visual/bauhaus.css +1894 -147
  12. package/dist/visual/bento.css +1910 -166
  13. package/dist/visual/brutalism.css +1853 -98
  14. package/dist/visual/clay.css +4789 -0
  15. package/dist/visual/cyberpunk.css +1840 -94
  16. package/dist/visual/data-terminal.css +4804 -0
  17. package/dist/visual/editorial-luxe.css +4804 -0
  18. package/dist/visual/industrial-utility.css +4797 -0
  19. package/dist/visual/maximalist.css +1862 -112
  20. package/dist/visual/minimal-saas.css +1886 -147
  21. package/dist/visual/neo-noir.css +4790 -0
  22. package/dist/visual/neumorphism.css +1896 -151
  23. package/dist/visual/organic-modern.css +4767 -0
  24. package/dist/visual/paper-editorial.css +4799 -0
  25. package/dist/visual/retro-glass.css +1859 -93
  26. package/dist/visual/retrofuturism.css +1852 -113
  27. package/dist/visual/tactile.css +1851 -111
  28. package/dist/visual/technical-blueprint.css +4791 -0
  29. package/dist/visual/y2k.css +1840 -92
  30. package/docs/BRIDGE-MIGRATION.md +20 -0
  31. package/docs/ECOSYSTEM.md +39 -4
  32. package/docs/PUBLISHING.md +38 -13
  33. package/docs/STYLE-GUIDE.md +53 -13
  34. package/docs/TOKENS.md +50 -1
  35. package/docs/superpowers/plans/2026-08-29-preset-identity-system-refinement.md +649 -0
  36. package/docs/superpowers/specs/2026-08-29-preset-identity-system-refinement-design.md +212 -0
  37. package/manifest.json +482 -2
  38. package/package.json +77 -7
  39. package/styles/art-deco.css +683 -0
  40. package/styles/bauhaus.css +237 -3
  41. package/styles/bento.css +266 -7
  42. package/styles/brutalism.css +235 -3
  43. package/styles/clay.css +692 -0
  44. package/styles/components.css +608 -14
  45. package/styles/content-overflow.css +423 -4
  46. package/styles/cyberpunk.css +234 -3
  47. package/styles/data-terminal.css +691 -0
  48. package/styles/editorial-luxe.css +687 -0
  49. package/styles/industrial-utility.css +690 -0
  50. package/styles/interactive-surface-bridge.css +17 -10
  51. package/styles/interactive-surface-theme.css +17 -8
  52. package/styles/maximalist.css +238 -4
  53. package/styles/minimal-saas.css +234 -3
  54. package/styles/native-elements.css +80 -12
  55. package/styles/neo-noir.css +690 -0
  56. package/styles/neumorphism.css +234 -3
  57. package/styles/organic-modern.css +683 -0
  58. package/styles/paper-editorial.css +688 -0
  59. package/styles/retro-glass.css +242 -3
  60. package/styles/retrofuturism.css +233 -3
  61. package/styles/tactile.css +235 -3
  62. package/styles/technical-blueprint.css +686 -0
  63. package/styles/theme-colors.css +796 -5
  64. package/styles/y2k.css +237 -3
@@ -1,7 +1,7 @@
1
1
  /* =========================================================
2
2
  Brutalism Theme System
3
3
  Includes:
4
- - 10 color schemes
4
+ - 20 color schemes
5
5
  - light / dark / contrast modes
6
6
  - themed UI components and utilities
7
7
 
@@ -146,7 +146,7 @@
146
146
  --brutal-fg: var(--brutal-text);
147
147
  --brutal-surface-fg: var(--brutal-text);
148
148
  --brutal-muted: var(--brutal-text-muted);
149
- --brutal-border: rgb(var(--brutal-border-rgb) / var(--brutal-border-alpha));
149
+ --brutal-border: rgb(var(--brutal-border-rgb) / max(var(--brutal-border-alpha), var(--usk-border-min-alpha)));
150
150
  --brutal-control-fg: var(--brutal-text);
151
151
  --brutal-primary: rgb(var(--brutal-primary-rgb));
152
152
  --brutal-primary-hover: rgb(var(--brutal-primary-hover-rgb));
@@ -181,6 +181,10 @@
181
181
  --brutal-spinner-accent: var(--brutal-accent);
182
182
  }
183
183
 
184
+ @supports (color: color-mix(in srgb, black, white)) {
185
+ [data-ui="brutalism"][data-theme][data-mode] { --brutal-border: color-mix(in srgb, rgb(var(--brutal-border-rgb) / max(var(--brutal-border-alpha), var(--usk-border-min-alpha))), var(--brutal-text) var(--usk-border-text-mix)); }
186
+ }
187
+
184
188
  /* =========================================================
185
189
  1. Midnight Gold
186
190
  ========================================================= */
@@ -410,6 +414,234 @@
410
414
  [data-ui="brutalism"] :focus-visible { outline: 4px solid var(--brutal-focus); outline-offset: 3px; }
411
415
  @media (prefers-reduced-motion: reduce) { [data-ui="brutalism"] *, [data-ui="brutalism"] *::before, [data-ui="brutalism"] *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; } }
412
416
 
417
+
418
+ /* =========================================================
419
+ Marketing / Commercial Component Modifiers
420
+ Reusable visual patterns derived from service-oriented brand systems.
421
+ ========================================================= */
422
+
423
+ .brutal-card-media {
424
+ display: block;
425
+ inline-size: 100%;
426
+ aspect-ratio: 16 / 9;
427
+ object-fit: cover;
428
+ border: 1px solid rgb(var(--brutal-border-rgb) / .72);
429
+ border-radius: var(--brutal-radius-lg);
430
+ }
431
+
432
+ .brutal-card-service {
433
+ position: relative;
434
+ display: grid;
435
+ gap: var(--brutal-space-3);
436
+ align-content: start;
437
+ text-align: center;
438
+ overflow: visible;
439
+ }
440
+ .brutal-card-service > .brutal-icon-medallion {
441
+ justify-self: center;
442
+ margin-block-start: -2.15rem;
443
+ position: relative;
444
+ z-index: 2;
445
+ }
446
+ .brutal-card-service > .brutal-card-media + .brutal-icon-medallion { margin-block-start: -2.15rem; }
447
+
448
+ .brutal-card-feature {
449
+ display: grid;
450
+ grid-template-columns: auto minmax(0, 1fr);
451
+ gap: var(--brutal-space-4);
452
+ align-items: start;
453
+ }
454
+
455
+ .brutal-card-accent-edge {
456
+ border-inline-start: .35rem solid var(--brutal-primary);
457
+ }
458
+
459
+ .brutal-icon-medallion {
460
+ display: inline-grid;
461
+ place-items: center;
462
+ inline-size: 3.75rem;
463
+ block-size: 3.75rem;
464
+ flex: 0 0 auto;
465
+ padding: .7rem;
466
+ background: var(--brutal-primary);
467
+ color: var(--brutal-on-primary);
468
+ border: 2px solid rgb(var(--brutal-border-rgb) / .82);
469
+ border-radius: 50%;
470
+ line-height: 1;
471
+ }
472
+ .brutal-icon-medallion > :where(svg, img) { inline-size: 100%; block-size: 100%; object-fit: contain; }
473
+
474
+ .brutal-button.brutal-button-cut,
475
+ .brutal-button-cut {
476
+ border-radius: 0;
477
+ clip-path: polygon(.6rem 0, 100% 0, 100% calc(100% - .6rem), calc(100% - .6rem) 100%, 0 100%, 0 .6rem);
478
+ }
479
+ .brutal-button.brutal-button-cut:focus-visible,
480
+ .brutal-button-cut:focus-visible { outline-offset: -3px; }
481
+
482
+ .brutal-button.brutal-button-outline-heavy,
483
+ .brutal-button-outline-heavy {
484
+ background: transparent;
485
+ color: var(--brutal-primary);
486
+ border-style: solid;
487
+ border-width: 2px;
488
+ border-color: var(--brutal-primary);
489
+ box-shadow: none;
490
+ }
491
+ .brutal-button.brutal-button-outline-heavy:hover,
492
+ .brutal-button-outline-heavy:hover {
493
+ background: var(--brutal-primary);
494
+ color: var(--brutal-on-primary);
495
+ border-color: var(--brutal-primary-hover);
496
+ }
497
+
498
+ .brutal-badge-seal {
499
+ display: inline-grid;
500
+ place-items: center;
501
+ align-content: center;
502
+ inline-size: 5rem;
503
+ min-inline-size: 5rem;
504
+ aspect-ratio: 1;
505
+ padding: .65rem;
506
+ background: var(--brutal-surface-strong);
507
+ color: var(--brutal-text);
508
+ border: 2px solid var(--brutal-primary);
509
+ border-radius: 50%;
510
+ text-align: center;
511
+ font-family: var(--brutal-font-heading);
512
+ font-size: .72rem;
513
+ font-weight: 900;
514
+ line-height: 1.05;
515
+ letter-spacing: .04em;
516
+ }
517
+
518
+ .brutal-feature-strip {
519
+ display: grid;
520
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
521
+ overflow: hidden;
522
+ background: var(--brutal-card-bg);
523
+ color: var(--brutal-text);
524
+ border: 1px solid var(--brutal-border);
525
+ border-radius: var(--brutal-radius-lg);
526
+ }
527
+
528
+ .brutal-feature-item {
529
+ display: grid;
530
+ grid-template-columns: auto minmax(0, 1fr);
531
+ align-items: center;
532
+ gap: var(--brutal-space-3);
533
+ min-inline-size: 0;
534
+ padding: var(--brutal-space-4);
535
+ border-inline-end: 1px solid rgb(var(--brutal-border-rgb) / .62);
536
+ }
537
+ .brutal-feature-item:last-child { border-inline-end: 0; }
538
+ .brutal-feature-item > :where(p, small) { margin: 0; color: var(--brutal-text-muted); }
539
+
540
+ .brutal-callout-bar {
541
+ display: grid;
542
+ grid-template-columns: auto minmax(0, 1fr) auto;
543
+ align-items: center;
544
+ gap: var(--brutal-space-4);
545
+ padding: var(--brutal-space-4) var(--brutal-space-5);
546
+ background: var(--brutal-card-bg);
547
+ color: var(--brutal-text);
548
+ border: 1px solid var(--brutal-border);
549
+ border-radius: var(--brutal-radius-lg);
550
+ }
551
+ .brutal-callout-bar > :where(p, div) { min-inline-size: 0; }
552
+ .brutal-callout-bar > :where(.brutal-button, a, button):last-child { justify-self: end; }
553
+
554
+ .brutal-eyebrow {
555
+ margin: 0;
556
+ color: var(--brutal-primary);
557
+ font-family: var(--brutal-font-heading);
558
+ font-size: .76rem;
559
+ font-weight: 900;
560
+ line-height: 1.2;
561
+ letter-spacing: .14em;
562
+ text-transform: uppercase;
563
+ }
564
+
565
+ .brutal-media-scrim {
566
+ position: relative;
567
+ overflow: hidden;
568
+ isolation: isolate;
569
+ min-block-size: 12rem;
570
+ background: var(--brutal-surface-soft);
571
+ border: 1px solid var(--brutal-border);
572
+ border-radius: var(--brutal-radius-lg);
573
+ }
574
+ .brutal-media-scrim > :where(img, picture, video) {
575
+ display: block;
576
+ inline-size: 100%;
577
+ block-size: 100%;
578
+ min-block-size: inherit;
579
+ object-fit: cover;
580
+ }
581
+ .brutal-media-scrim > :where(figcaption, [data-media-caption]) {
582
+ position: absolute;
583
+ z-index: 1;
584
+ inset-inline: 0;
585
+ inset-block-end: 0;
586
+ padding: clamp(1rem, 4vw, 2rem);
587
+ color: #fff;
588
+ background: linear-gradient(to top, rgb(0 0 0 / .9), rgb(0 0 0 / .58) 56%, transparent);
589
+ }
590
+ .brutal-media-scrim > :where(figcaption, [data-media-caption]) * {
591
+ color: inherit;
592
+ }
593
+
594
+ @media (max-width: 42rem) {
595
+ .brutal-callout-bar { grid-template-columns: 1fr; align-items: start; }
596
+ .brutal-callout-bar > :where(.brutal-button, a, button):last-child { justify-self: stretch; }
597
+ .brutal-feature-item { border-inline-end: 0; border-block-end: 1px solid rgb(var(--brutal-border-rgb) / .62); }
598
+ .brutal-feature-item:last-child { border-block-end: 0; }
599
+ }
600
+
601
+ .brutal-card-service, .brutal-card-feature, .brutal-feature-strip, .brutal-callout-bar, .brutal-media-scrim { border-radius: 0; border: 3px solid var(--brutal-text); box-shadow: .45rem .45rem 0 var(--brutal-primary); }
602
+ .brutal-icon-medallion, .brutal-badge-seal { border-radius: 0; border: 3px solid var(--brutal-text); box-shadow: .3rem .3rem 0 var(--brutal-secondary); }
603
+ .brutal-card-accent-edge { border-inline-start: .6rem solid var(--brutal-primary); }
604
+ .brutal-button-outline-heavy { border-width: 3px; box-shadow: .22rem .22rem 0 var(--brutal-text); }
605
+ .brutal-button-cut { clip-path: polygon(.5rem 0, 100% 0, 100% calc(100% - .5rem), calc(100% - .5rem) 100%, 0 100%, 0 .5rem); }
606
+
607
+ /* Filled and framed actions keep blunt cuts, heavy borders, and hard displacement. */
608
+ .brutal-button.brutal-button-cut, .brutal-button-cut {
609
+ inline-size: min(100%, 14rem);
610
+ min-inline-size: 6rem;
611
+ max-inline-size: 100%;
612
+ justify-self: start;
613
+ justify-content: center;
614
+ clip-path: polygon(.52rem 0, 100% 0, 100% calc(100% - .52rem), calc(100% - .52rem) 100%, 0 100%, 0 .52rem);
615
+ }
616
+ .brutal-button.brutal-button-outline-heavy, .brutal-button-outline-heavy {
617
+ border-width: 3px;
618
+ border-radius: 0;
619
+ clip-path: polygon(0 0, calc(100% - .52rem) 0, 100% .52rem, 100% 100%, .52rem 100%, 0 calc(100% - .52rem));
620
+ box-shadow: .28rem .28rem 0 var(--brutal-text);
621
+ }
622
+
623
+ /* Marketing and native surfaces repeat the blunt border and hard displacement. */
624
+ .brutal-card-service, .brutal-media-scrim, .brutal-feature-strip, .brutal-callout-bar, .brutal-well {
625
+ border: 3px solid var(--brutal-text);
626
+ border-radius: 0;
627
+ box-shadow: .38rem .38rem 0 var(--brutal-text);
628
+ }
629
+ [data-ui="brutalism"][data-theme][data-mode] :where(button:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class])) {
630
+ border: 3px solid var(--brutal-text);
631
+ border-radius: 0;
632
+ box-shadow: .26rem .26rem 0 var(--brutal-text);
633
+ }
634
+ [data-ui="brutalism"][data-theme][data-mode] :where(dialog) {
635
+ border: 3px solid var(--brutal-text);
636
+ border-radius: 0;
637
+ box-shadow: .48rem .48rem 0 var(--brutal-text);
638
+ }
639
+
640
+ /* Busy indicators use a blunt square and an unapologetic offset shadow. */
641
+ .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 {
642
+ border: .18em solid currentColor; border-block-start-color: transparent; border-radius: 0; background: transparent; box-shadow: .12em .12em 0 currentColor; clip-path: inset(0); animation: brutal-spin .64s steps(4, end) infinite;
643
+ }
644
+
413
645
  @media (prefers-reduced-motion: reduce) {
414
646
  [data-ui="brutalism"] *, [data-ui="brutalism"] *::before, [data-ui="brutalism"] *::after { scroll-behavior: auto !important; transition-duration: 1ms !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; }
415
647
  }
@@ -417,7 +649,7 @@
417
649
  [data-ui="brutalism"] { --brutal-border-alpha: 1; }
418
650
  }
419
651
  @media (forced-colors: active) {
420
- [data-ui="brutalism"] * { forced-color-adjust: auto; }
652
+ @supports (forced-color-adjust: auto) { [data-ui="brutalism"] * { forced-color-adjust: auto; } }
421
653
  [data-ui="brutalism"] :where(:focus-visible) { outline: 3px solid CanvasText; box-shadow: none; }
422
654
  }
423
655
  @media print {