@scattered-light/base-ui-theme 0.1.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 (105) hide show
  1. package/README.md +19 -0
  2. package/dist/index.d.ts +103 -0
  3. package/dist/index.js +313 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/styles/base/borders.css +26 -0
  6. package/dist/styles/base/breakpoints.css +26 -0
  7. package/dist/styles/base/colors.css +150 -0
  8. package/dist/styles/base/global.css +108 -0
  9. package/dist/styles/base/reset-accessibility.css +119 -0
  10. package/dist/styles/base/reset.css +451 -0
  11. package/dist/styles/base/shadows.css +42 -0
  12. package/dist/styles/base/spacing.css +62 -0
  13. package/dist/styles/base/transitions.css +29 -0
  14. package/dist/styles/base/typography.css +63 -0
  15. package/dist/styles/base/z-index.css +22 -0
  16. package/dist/styles/components/AGGrid.css +6 -0
  17. package/dist/styles/components/Accordion.css +184 -0
  18. package/dist/styles/components/AlertDialog.css +172 -0
  19. package/dist/styles/components/Autocomplete.css +261 -0
  20. package/dist/styles/components/Avatar.css +154 -0
  21. package/dist/styles/components/Button.css +164 -0
  22. package/dist/styles/components/Checkbox.css +199 -0
  23. package/dist/styles/components/CheckboxGroup.css +21 -0
  24. package/dist/styles/components/Collapsible.css +115 -0
  25. package/dist/styles/components/Combobox.css +514 -0
  26. package/dist/styles/components/ContextMenu.css +209 -0
  27. package/dist/styles/components/Dialog.css +159 -0
  28. package/dist/styles/components/Field.css +138 -0
  29. package/dist/styles/components/Fieldset.css +48 -0
  30. package/dist/styles/components/Form.css +22 -0
  31. package/dist/styles/components/Input.css +106 -0
  32. package/dist/styles/components/Menu.css +158 -0
  33. package/dist/styles/components/Menubar.css +201 -0
  34. package/dist/styles/components/Meter.css +104 -0
  35. package/dist/styles/components/NavigationMenu.css +469 -0
  36. package/dist/styles/components/NumberField.css +182 -0
  37. package/dist/styles/components/Popover.css +167 -0
  38. package/dist/styles/components/PreviewCard.css +148 -0
  39. package/dist/styles/components/Progress.css +130 -0
  40. package/dist/styles/components/Radio.css +178 -0
  41. package/dist/styles/components/ScrollArea.css +103 -0
  42. package/dist/styles/components/Select.css +297 -0
  43. package/dist/styles/components/Separator.css +34 -0
  44. package/dist/styles/components/Slider.css +163 -0
  45. package/dist/styles/components/Switch.css +197 -0
  46. package/dist/styles/components/Tabs.css +163 -0
  47. package/dist/styles/components/Toast.css +261 -0
  48. package/dist/styles/components/Toggle.css +103 -0
  49. package/dist/styles/components/ToggleGroup.css +19 -0
  50. package/dist/styles/components/Toolbar.css +78 -0
  51. package/dist/styles/components/Tooltip.css +87 -0
  52. package/dist/styles/index.css +103 -0
  53. package/dist/styles/semantic/accessibility.css +77 -0
  54. package/dist/styles/semantic/accordion.css +102 -0
  55. package/dist/styles/semantic/ag-grid.css +114 -0
  56. package/dist/styles/semantic/alert-dialog.css +78 -0
  57. package/dist/styles/semantic/autocomplete.css +162 -0
  58. package/dist/styles/semantic/avatar.css +96 -0
  59. package/dist/styles/semantic/badge.css +16 -0
  60. package/dist/styles/semantic/button.css +145 -0
  61. package/dist/styles/semantic/card.css +14 -0
  62. package/dist/styles/semantic/checkbox-group.css +18 -0
  63. package/dist/styles/semantic/checkbox.css +117 -0
  64. package/dist/styles/semantic/collapsible.css +123 -0
  65. package/dist/styles/semantic/combobox.css +325 -0
  66. package/dist/styles/semantic/context-menu.css +131 -0
  67. package/dist/styles/semantic/dialog.css +91 -0
  68. package/dist/styles/semantic/dropdown.css +16 -0
  69. package/dist/styles/semantic/field.css +73 -0
  70. package/dist/styles/semantic/fieldset.css +45 -0
  71. package/dist/styles/semantic/form.css +20 -0
  72. package/dist/styles/semantic/input.css +83 -0
  73. package/dist/styles/semantic/menu.css +104 -0
  74. package/dist/styles/semantic/menubar.css +70 -0
  75. package/dist/styles/semantic/meter.css +88 -0
  76. package/dist/styles/semantic/modal.css +14 -0
  77. package/dist/styles/semantic/navigation-menu.css +171 -0
  78. package/dist/styles/semantic/number-field.css +142 -0
  79. package/dist/styles/semantic/popover.css +113 -0
  80. package/dist/styles/semantic/preview-card.css +108 -0
  81. package/dist/styles/semantic/progress.css +85 -0
  82. package/dist/styles/semantic/radio.css +103 -0
  83. package/dist/styles/semantic/scroll-area.css +64 -0
  84. package/dist/styles/semantic/select.css +197 -0
  85. package/dist/styles/semantic/separator.css +37 -0
  86. package/dist/styles/semantic/slider.css +120 -0
  87. package/dist/styles/semantic/switch.css +158 -0
  88. package/dist/styles/semantic/tabs.css +150 -0
  89. package/dist/styles/semantic/toast.css +171 -0
  90. package/dist/styles/semantic/toggle-group.css +29 -0
  91. package/dist/styles/semantic/toggle.css +94 -0
  92. package/dist/styles/semantic/toolbar.css +47 -0
  93. package/dist/styles/semantic/tooltip.css +56 -0
  94. package/dist/styles/theme/README.md +179 -0
  95. package/dist/styles/theme/theme-accessibility.css +13 -0
  96. package/dist/styles/theme/theme-primitives.css +7 -0
  97. package/dist/styles/theme/theme-radius.css +12 -0
  98. package/dist/styles/theme/theme-roles.css +66 -0
  99. package/dist/styles/theme/theme-spacing.css +28 -0
  100. package/dist/styles/theme/theme-stroke.css +7 -0
  101. package/dist/styles/theme/theme-typography.css +218 -0
  102. package/dist/styles/utilities/color-styles.css +34 -0
  103. package/dist/styles/utilities/layout-styles.css +19 -0
  104. package/dist/styles/utilities/text-styles.css +102 -0
  105. package/package.json +75 -0
@@ -0,0 +1,150 @@
1
+ /* Colors - Mojave Theme */
2
+ /* Modern color system with custom properties and color-mix */
3
+
4
+ :root {
5
+ /* Base colors */
6
+ --color-glare: #ffffff;
7
+ --color-midnight: #000000;
8
+
9
+ /* Stone palette (neutrals) */
10
+ --color-stone-50: #fafbfa;
11
+ --color-stone-100: #f8f9f7;
12
+ --color-stone-200: #f0f3ee;
13
+ --color-stone-300: #e9ede6;
14
+ --color-stone-400: #d2dbd1;
15
+ --color-stone-500: #bbc9bf;
16
+ --color-stone-600: #a6b4aa;
17
+ --color-stone-700: #919f95;
18
+ --color-stone-800: #7c8980;
19
+ --color-stone-900: #667169;
20
+ --color-stone-1000: #4e5951;
21
+ --color-stone-1100: #353e37;
22
+ --color-stone-1200: #1b1e1b;
23
+
24
+ /* Mirage palette (primary/accent - purple hues) */
25
+ --color-mirage-50: #fdfbff;
26
+ --color-mirage-100: #f6e7fe;
27
+ --color-mirage-200: #e6c6fe;
28
+ --color-mirage-300: #d5a3fb;
29
+ --color-mirage-400: #b979ec;
30
+ --color-mirage-500: #a04fde;
31
+ --color-mirage-600: #883ac3;
32
+ --color-mirage-700: #6f349d;
33
+ --color-mirage-800: #532973;
34
+ --color-mirage-900: #371f4b;
35
+ --color-mirage-1000: #1c1423;
36
+
37
+ /* Ember palette (warm orange/red hues) */
38
+ --color-ember-100: #ffe8e0;
39
+ --color-ember-200: #ffc5b4;
40
+ --color-ember-300: #ff9d84;
41
+ --color-ember-400: #ed6f52;
42
+ --color-ember-500: #b75d47;
43
+ --color-ember-600: #934f3e;
44
+ --color-ember-700: #784336;
45
+ --color-ember-800: #57342b;
46
+ --color-ember-900: #3b241f;
47
+ --color-ember-1000: #201512;
48
+
49
+ /* Dune palette (sandy/beige hues) */
50
+ --color-dune-100: #f1ecdb;
51
+ --color-dune-200: #dad2ab;
52
+ --color-dune-300: #c4b77a;
53
+ --color-dune-400: #9f9569;
54
+ --color-dune-500: #7e7758;
55
+ --color-dune-600: #68624b;
56
+ --color-dune-700: #55513f;
57
+ --color-dune-800: #403d31;
58
+ --color-dune-900: #2c2a23;
59
+ --color-dune-1000: #191714;
60
+
61
+ /* Silhouette palette (mauve/burgundy hues) */
62
+ --color-silhouette-100: #f8eaec;
63
+ --color-silhouette-200: #e5ccd2;
64
+ --color-silhouette-300: #d0aeb6;
65
+ --color-silhouette-400: #b58994;
66
+ --color-silhouette-500: #9b6876;
67
+ --color-silhouette-600: #875362;
68
+ --color-silhouette-700: #774151;
69
+ --color-silhouette-800: #612c3d;
70
+ --color-silhouette-900: #421f2a;
71
+ --color-silhouette-1000: #251218;
72
+
73
+ /* Data Visualization / Reporting Colors */
74
+ /* Primary data colors - high contrast, distinct hues */
75
+ --color-data-violet: #a04fdf;
76
+ --color-data-coral: #ef7053;
77
+ --color-data-gold: #c4b679;
78
+ --color-data-burgundy: #612c3d;
79
+ --color-data-mint: #86e6ca;
80
+ --color-data-navy: #154975;
81
+ --color-data-periwinkle: #bbc3fe;
82
+ --color-data-forest: #0b5313;
83
+ --color-data-lime: #74ce4b;
84
+ --color-data-yellow: #dac925;
85
+
86
+ /* Secondary data colors - lighter tints for backgrounds/accents */
87
+ --color-data-lavender: #b4a1e2;
88
+ --color-data-peach: #ffc3b5;
89
+ --color-data-cream: #f1e5af;
90
+ --color-data-mauve: #a6838e;
91
+ --color-data-seafoam: #bfecdf;
92
+ --color-data-sky: #7fa8cb;
93
+ --color-data-ice: #e5e8ff;
94
+ --color-data-sage: #b1d0b5;
95
+ --color-data-chartreuse: #d0fabd;
96
+ --color-data-ivory: #fffce1;
97
+ }
98
+
99
+ /* Dark mode support */
100
+ @media (prefers-color-scheme: dark) {
101
+ :root {
102
+ --color-glare: #1b1e1b;
103
+
104
+ /* Invert stone palette */
105
+ --color-stone-50: #2f3a33;
106
+ --color-stone-100: #4a5650;
107
+ --color-stone-200: #5c6a5f;
108
+ --color-stone-300: #7c8980;
109
+ --color-stone-400: #919f95;
110
+ --color-stone-500: #a4b5a7;
111
+ --color-stone-600: #bbc9bf;
112
+ --color-stone-700: #d2dbd1;
113
+ --color-stone-800: #e9ede6;
114
+ --color-stone-900: #f0f3ee;
115
+ --color-stone-1000: #f8f9f7;
116
+ --color-stone-1100: #fafbfa;
117
+ --color-stone-1200: #ffffff;
118
+
119
+ /* Adjust mirage for dark mode */
120
+ --color-mirage-600: #b687f3;
121
+ --color-mirage-700: #c89ff6;
122
+ }
123
+ }
124
+
125
+ /* Forced dark mode class */
126
+ [data-theme='dark'] {
127
+ --color-glare: #1b1e1b;
128
+
129
+ --color-stone-50: #2f3a33;
130
+ --color-stone-100: #4a5650;
131
+ --color-stone-200: #5c6a5f;
132
+ --color-stone-300: #7c8980;
133
+ --color-stone-400: #919f95;
134
+ --color-stone-500: #a4b5a7;
135
+ --color-stone-600: #bbc9bf;
136
+ --color-stone-700: #d2dbd1;
137
+ --color-stone-800: #e9ede6;
138
+ --color-stone-900: #f0f3ee;
139
+ --color-stone-1000: #f8f9f7;
140
+ --color-stone-1100: #fafbfa;
141
+ --color-stone-1200: #ffffff;
142
+
143
+ --color-mirage-600: #b687f3;
144
+ --color-mirage-700: #c89ff6;
145
+ }
146
+
147
+ /* Forced light mode class */
148
+ [data-theme='light'] {
149
+ color-scheme: light;
150
+ }
@@ -0,0 +1,108 @@
1
+ /* Global Component Tokens - Mojave Theme */
2
+
3
+ :root {
4
+ /* ============================================
5
+ DEFAULT PAGE SETTINGS
6
+ ============================================ */
7
+ --default-page-background-color: var(--color-glare);
8
+
9
+ /* ============================================
10
+ DEFAULT PAGE SETTINGS
11
+ ============================================ */
12
+ --typography-default-text-color: var(--color-mirage-1000);
13
+ --typography-default-link-color: var(--color-mirage-500);
14
+ --typography-default-link-hover-color: var(--color-mirage-600);
15
+ --typography-default-link-underline-color: var(--color-mirage-300);
16
+ --typography-default-link-underline-hover-color: var(--color-mirage-400);
17
+ --typography-default-mark-background-color: var(--color-mirage-100);
18
+ --typography-default-list-item-marker-color: var(--color-mirage-600);
19
+
20
+ --default-blockquote-border-color: var(--color-mirage-600);
21
+ --default-blockquote-cite-color: var(--color-stone-700);
22
+
23
+ --default-code-background-color: var(--color-stone-100);
24
+ --default-code-border-color: var(--color-stone-300);
25
+ --default-code-border-text-color: var(--color-mirage-800);
26
+
27
+ --default-pre-background-color: var(--color-glare);
28
+ --default-pre-border-color: var(--color-stone-300);
29
+ --default-pre-text-color: var(--typography-default-text-color);
30
+
31
+ --default-field-border-color: var(--color-stone-300);
32
+
33
+ --default-kbd-background-color: var(--color-stone-1200);
34
+ --default-kbd-text-color: var(--color-glare);
35
+
36
+ --default-hr-border-color: var(--color-stone-300);
37
+
38
+ --default-text-selection-background-color: var(--color-mirage-100);
39
+ --default-text-selection-text-color: var(--color-mirage-1000);
40
+
41
+ --default-scrollbar-track-background-color: transparent;
42
+ --default-scrollbar-thumb-background-color: var(--color-stone-400);
43
+ --default-scrollbar-thumb-hover-background-color: var(--color-stone-500);
44
+
45
+ /* Semantic colors using color-mix for consistency */
46
+ --color-success: #22c55e;
47
+ --color-success-light: color-mix(in srgb, var(--color-success) 20%, white);
48
+ --color-success-dark: color-mix(in srgb, var(--color-success) 80%, black);
49
+
50
+ --color-error: #ef4444;
51
+ --color-error-light: color-mix(in srgb, var(--color-error) 20%, white);
52
+ --color-error-dark: color-mix(in srgb, var(--color-error) 80%, black);
53
+
54
+ --color-warning: #f59e0b;
55
+ --color-warning-light: color-mix(in srgb, var(--color-warning) 20%, white);
56
+ --color-warning-dark: color-mix(in srgb, var(--color-warning) 80%, black);
57
+
58
+ --color-info: #3b82f6;
59
+ --color-info-light: color-mix(in srgb, var(--color-info) 20%, white);
60
+ --color-info-dark: color-mix(in srgb, var(--color-info) 80%, black);
61
+
62
+ /* Surface colors */
63
+ --surface-base: var(--color-glare);
64
+ --surface-raised: var(--color-stone-50);
65
+ --surface-overlay: var(--color-glare);
66
+
67
+ /* Border colors */
68
+ --border-subtle: var(--color-stone-200);
69
+ --border-default: var(--color-stone-300);
70
+ --border-strong: var(--color-stone-400);
71
+ --border-accent: var(--color-mirage-600);
72
+
73
+ /* Text colors */
74
+ --text-primary: var(--color-stone-1200);
75
+ --text-secondary: var(--color-stone-800);
76
+ --text-tertiary: var(--color-stone-600);
77
+ --text-accent: var(--color-mirage-700);
78
+ --text-on-accent: var(--color-glare);
79
+ --text-disabled: var(--color-stone-500);
80
+
81
+ /* Interactive states */
82
+ --interactive-default: var(--color-mirage-600);
83
+ --interactive-hover: var(--color-mirage-700);
84
+ --interactive-active: var(--color-mirage-800);
85
+ --interactive-disabled: var(--color-stone-400);
86
+
87
+ /* Focus ring: defined in theme/theme-accessibility.css after theme roles */
88
+ }
89
+
90
+ /* Dark mode support */
91
+ @media (prefers-color-scheme: dark) {
92
+ :root {
93
+ /* Surface colors */
94
+ --surface-base: #1b1e1b;
95
+ --surface-raised: #2f3a33;
96
+ --surface-overlay: #4a5650;
97
+
98
+ /* Shadows in dark mode */
99
+ --shadow-color: 0deg 0% 0%;
100
+ }
101
+ }
102
+
103
+ /* Forced dark mode class */
104
+ [data-theme='dark'] {
105
+ --surface-base: #1b1e1b;
106
+ --surface-raised: #2f3a33;
107
+ --surface-overlay: #4a5650;
108
+ }
@@ -0,0 +1,119 @@
1
+ /* Accessibility — base rules (no theme color dependencies). Theme-specific focus/invalid: accessibility-theme.css */
2
+
3
+ /* Remove default focus; keyboard focus styled in accessibility-theme.css */
4
+ :focus {
5
+ outline: none;
6
+ }
7
+
8
+ button:focus,
9
+ input:focus,
10
+ textarea:focus,
11
+ select:focus {
12
+ outline: none;
13
+ }
14
+
15
+ :focus:not(:focus-visible) {
16
+ outline: none;
17
+ }
18
+
19
+ .sr-only {
20
+ position: absolute;
21
+ width: 1px;
22
+ height: 1px;
23
+ padding: 0;
24
+ margin: -1px;
25
+ overflow: hidden;
26
+ clip: rect(0, 0, 0, 0);
27
+ white-space: nowrap;
28
+ border-width: 0;
29
+ }
30
+
31
+ .sr-only,
32
+ .visually-hidden {
33
+ position: absolute;
34
+ width: 1px;
35
+ height: 1px;
36
+ padding: 0;
37
+ margin: -1px;
38
+ overflow: hidden;
39
+ clip: rect(0, 0, 0, 0);
40
+ white-space: nowrap;
41
+ border-width: 0;
42
+ }
43
+
44
+ .sr-only-focusable:focus,
45
+ .visually-hidden-focusable:focus {
46
+ position: static;
47
+ width: auto;
48
+ height: auto;
49
+ padding: inherit;
50
+ margin: inherit;
51
+ overflow: visible;
52
+ clip: auto;
53
+ white-space: normal;
54
+ }
55
+
56
+ main {
57
+ min-height: 100vh;
58
+ display: flex;
59
+ flex-direction: column;
60
+ }
61
+
62
+ main:focus {
63
+ outline: none;
64
+ }
65
+
66
+ @media (prefers-reduced-motion: reduce) {
67
+ *,
68
+ *::before,
69
+ *::after {
70
+ animation-duration: 0.01ms !important;
71
+ animation-iteration-count: 1 !important;
72
+ transition-duration: 0.01ms !important;
73
+ scroll-behavior: auto !important;
74
+ }
75
+ }
76
+
77
+ [aria-live='polite'],
78
+ [aria-live='assertive'] {
79
+ position: relative;
80
+ }
81
+
82
+ :disabled,
83
+ [aria-disabled='true'] {
84
+ cursor: not-allowed;
85
+ opacity: 0.6;
86
+ }
87
+
88
+ @media print {
89
+ a[href^='http']::after {
90
+ content: ' (' attr(href) ')';
91
+ font-size: 0.8em;
92
+ font-weight: normal;
93
+ }
94
+
95
+ a[href^='#']::after,
96
+ a[href^='/']::after {
97
+ content: '';
98
+ }
99
+
100
+ * {
101
+ background: white !important;
102
+ color: black !important;
103
+ box-shadow: none !important;
104
+ text-shadow: none !important;
105
+ }
106
+
107
+ a,
108
+ a:visited {
109
+ text-decoration: underline;
110
+ }
111
+
112
+ h1, h2, h3, h4, h5, h6 {
113
+ page-break-after: avoid;
114
+ }
115
+
116
+ img {
117
+ page-break-inside: avoid;
118
+ }
119
+ }