@clusterenvision/ui-scss 1.94.3

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 (224) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +152 -0
  3. package/dist/ce-ui-min.css +2951 -0
  4. package/dist/ce-ui-min.css.map +1 -0
  5. package/dist/ce-ui.css +4894 -0
  6. package/dist/ce-ui.css.map +1 -0
  7. package/dist/components/advanced/calendar.css +37 -0
  8. package/dist/components/advanced/carousel.css +59 -0
  9. package/dist/components/advanced/chat.css +29 -0
  10. package/dist/components/advanced/code-block.css +16 -0
  11. package/dist/components/advanced/editor.css +122 -0
  12. package/dist/components/advanced/rating.css +19 -0
  13. package/dist/components/advanced/steps.css +46 -0
  14. package/dist/components/advanced/timeline.css +32 -0
  15. package/dist/components/buttons/button-group.css +28 -0
  16. package/dist/components/buttons/button.css +305 -0
  17. package/dist/components/buttons/icon-button.css +32 -0
  18. package/dist/components/charts/chart-types.css +36 -0
  19. package/dist/components/containers/accordion.css +65 -0
  20. package/dist/components/containers/card.css +60 -0
  21. package/dist/components/containers/drawer.css +33 -0
  22. package/dist/components/containers/modal.css +61 -0
  23. package/dist/components/containers/panel.css +27 -0
  24. package/dist/components/containers/toast.css +38 -0
  25. package/dist/components/content/avatar.css +54 -0
  26. package/dist/components/content/badge.css +44 -0
  27. package/dist/components/content/chip.css +234 -0
  28. package/dist/components/content/divider.css +27 -0
  29. package/dist/components/content/image.css +23 -0
  30. package/dist/components/feedback/alert.css +50 -0
  31. package/dist/components/feedback/message.css +18 -0
  32. package/dist/components/feedback/progress-bar.css +22 -0
  33. package/dist/components/feedback/skeleton.css +35 -0
  34. package/dist/components/feedback/snackbar.css +30 -0
  35. package/dist/components/form-controls/checkbox.css +183 -0
  36. package/dist/components/form-controls/date-picker.css +26 -0
  37. package/dist/components/form-controls/file-upload.css +48 -0
  38. package/dist/components/form-controls/form-group.css +19 -0
  39. package/dist/components/form-controls/input.css +96 -0
  40. package/dist/components/form-controls/radio.css +20 -0
  41. package/dist/components/form-controls/range.css +42 -0
  42. package/dist/components/form-controls/select.css +243 -0
  43. package/dist/components/form-controls/textarea.css +28 -0
  44. package/dist/components/form-controls/toggle.css +38 -0
  45. package/dist/components/navigation/breadcrumbs.css +33 -0
  46. package/dist/components/navigation/menu.css +43 -0
  47. package/dist/components/navigation/navbar.css +64 -0
  48. package/dist/components/navigation/pagination.css +45 -0
  49. package/dist/components/navigation/sidebar.css +35 -0
  50. package/dist/components/navigation/tabs.css +25 -0
  51. package/dist/components/overlays/backdrop.css +6 -0
  52. package/dist/components/overlays/dropdown.css +77 -0
  53. package/dist/components/overlays/loader.css +28 -0
  54. package/dist/components/overlays/popover.css +54 -0
  55. package/dist/components/overlays/tooltip.css +37 -0
  56. package/dist/components/specialty/ce-atm-card.css +204 -0
  57. package/dist/components/tables-lists/data-table.css +48 -0
  58. package/dist/components/tables-lists/list.css +22 -0
  59. package/dist/components/tables-lists/table.css +40 -0
  60. package/dist/components/tables-lists/tree-view.css +37 -0
  61. package/dist/themes/core/package.json +12 -0
  62. package/dist/themes/core/tokens.css +120 -0
  63. package/dist/themes/core/tokens.d.ts +69 -0
  64. package/dist/themes/core/tokens.json +136 -0
  65. package/dist/themes/premium/package.json +12 -0
  66. package/dist/themes/premium/tokens.css +120 -0
  67. package/dist/themes/premium/tokens.d.ts +69 -0
  68. package/dist/themes/premium/tokens.json +136 -0
  69. package/dist/tokens/tokens.css +120 -0
  70. package/dist/tokens/tokens.d.ts +69 -0
  71. package/dist/tokens/tokens.json +133 -0
  72. package/package.json +61 -0
  73. package/src/abstracts/_functions.scss +34 -0
  74. package/src/abstracts/_mixins.scss +162 -0
  75. package/src/abstracts/_placeholders.scss +18 -0
  76. package/src/abstracts/_variables.scss +413 -0
  77. package/src/abstracts/_z-index.scss +9 -0
  78. package/src/accessibility/_focus-ring.scss +11 -0
  79. package/src/accessibility/_theme-switcher.scss +41 -0
  80. package/src/base/_animations.scss +32 -0
  81. package/src/base/_forms.scss +62 -0
  82. package/src/base/_reset.scss +102 -0
  83. package/src/base/_theme-base.scss +162 -0
  84. package/src/base/_typography.scss +38 -0
  85. package/src/components/advanced/_calendar.scss +47 -0
  86. package/src/components/advanced/_carousel.scss +87 -0
  87. package/src/components/advanced/_chat.scss +37 -0
  88. package/src/components/advanced/_code-block.scss +22 -0
  89. package/src/components/advanced/_editor.scss +156 -0
  90. package/src/components/advanced/_modal.scss +96 -0
  91. package/src/components/advanced/_notification-center.scss +172 -0
  92. package/src/components/advanced/_popover.scss +68 -0
  93. package/src/components/advanced/_rating.scss +22 -0
  94. package/src/components/advanced/_stepper.scss +135 -0
  95. package/src/components/advanced/_steps.scss +57 -0
  96. package/src/components/advanced/_timeline.scss +47 -0
  97. package/src/components/advanced/_wizard.scss +132 -0
  98. package/src/components/buttons/_button-group.scss +40 -0
  99. package/src/components/buttons/_button.scss +296 -0
  100. package/src/components/buttons/_icon-button.scss +42 -0
  101. package/src/components/charts/_chart-types.scss +74 -0
  102. package/src/components/containers/_accordion.scss +65 -0
  103. package/src/components/containers/_card.scss +65 -0
  104. package/src/components/containers/_drawer.scss +48 -0
  105. package/src/components/containers/_modal.scss +78 -0
  106. package/src/components/containers/_panel.scss +37 -0
  107. package/src/components/containers/_toast.scss +40 -0
  108. package/src/components/content/_avatar.scss +56 -0
  109. package/src/components/content/_badge.scss +42 -0
  110. package/src/components/content/_calendar.scss +147 -0
  111. package/src/components/content/_carousel.scss +112 -0
  112. package/src/components/content/_chip.scss +246 -0
  113. package/src/components/content/_divider.scss +49 -0
  114. package/src/components/content/_image.scss +32 -0
  115. package/src/components/content/_rating.scss +60 -0
  116. package/src/components/content/_rich-text-editor.scss +153 -0
  117. package/src/components/content/_timeline-advanced.scss +138 -0
  118. package/src/components/content/_timeline.scss +86 -0
  119. package/src/components/feedback/_advanced-notification.scss +156 -0
  120. package/src/components/feedback/_alert.scss +86 -0
  121. package/src/components/feedback/_message.scss +26 -0
  122. package/src/components/feedback/_notification-center.scss +118 -0
  123. package/src/components/feedback/_progress-bar.scss +48 -0
  124. package/src/components/feedback/_skeleton.scss +47 -0
  125. package/src/components/feedback/_snackbar.scss +38 -0
  126. package/src/components/feedback/_spinner.scss +211 -0
  127. package/src/components/feedback/_toast-queue.scss +164 -0
  128. package/src/components/form-controls/_autocomplete.scss +80 -0
  129. package/src/components/form-controls/_checkbox.scss +202 -0
  130. package/src/components/form-controls/_date-picker.scss +50 -0
  131. package/src/components/form-controls/_file-upload.scss +61 -0
  132. package/src/components/form-controls/_form-group.scss +26 -0
  133. package/src/components/form-controls/_input.scss +139 -0
  134. package/src/components/form-controls/_multi-select.scss +175 -0
  135. package/src/components/form-controls/_radio.scss +27 -0
  136. package/src/components/form-controls/_range.scss +54 -0
  137. package/src/components/form-controls/_select.scss +242 -0
  138. package/src/components/form-controls/_textarea.scss +45 -0
  139. package/src/components/form-controls/_toggle.scss +47 -0
  140. package/src/components/navigation/_breadcrumbs.scss +41 -0
  141. package/src/components/navigation/_menu.scss +75 -0
  142. package/src/components/navigation/_navbar.scss +79 -0
  143. package/src/components/navigation/_pagination.scss +85 -0
  144. package/src/components/navigation/_sidebar.scss +44 -0
  145. package/src/components/navigation/_stepper.scss +115 -0
  146. package/src/components/navigation/_tabs.scss +50 -0
  147. package/src/components/navigation/_tree-view.scss +95 -0
  148. package/src/components/navigation/_wizard.scss +132 -0
  149. package/src/components/overlays/_backdrop.scss +10 -0
  150. package/src/components/overlays/_dropdown.scss +110 -0
  151. package/src/components/overlays/_loader.scss +32 -0
  152. package/src/components/overlays/_popover.scss +64 -0
  153. package/src/components/overlays/_tooltip.scss +64 -0
  154. package/src/components/specialty/_ce-atm-card.scss +255 -0
  155. package/src/components/tables/_data-grid.scss +92 -0
  156. package/src/components/tables/_filter-grid.scss +29 -0
  157. package/src/components/tables-lists/_data-table.scss +63 -0
  158. package/src/components/tables-lists/_list.scss +30 -0
  159. package/src/components/tables-lists/_table.scss +79 -0
  160. package/src/components/tables-lists/_tree-view.scss +47 -0
  161. package/src/layout/_container.scss +20 -0
  162. package/src/layout/_footer.scss +41 -0
  163. package/src/layout/_grid.scss +23 -0
  164. package/src/layout/_header.scss +41 -0
  165. package/src/layout/_section.scss +26 -0
  166. package/src/layout/_sidebar.scss +39 -0
  167. package/src/layout/_stack.scss +23 -0
  168. package/src/main.css +3250 -0
  169. package/src/main.css.map +1 -0
  170. package/src/main.scss +158 -0
  171. package/src/minimal.scss +62 -0
  172. package/src/themes/_cool-slate.scss +11 -0
  173. package/src/themes/_dark.scss +11 -0
  174. package/src/themes/_default.scss +12 -0
  175. package/src/themes/_forest.scss +11 -0
  176. package/src/themes/_glassy-aero-windows.scss +9 -0
  177. package/src/themes/_glassy-amber.scss +21 -0
  178. package/src/themes/_glassy-aurora-sky.scss +9 -0
  179. package/src/themes/_glassy-blue.scss +10 -0
  180. package/src/themes/_glassy-cyan.scss +9 -0
  181. package/src/themes/_glassy-emerald-mist.scss +9 -0
  182. package/src/themes/_glassy-frosted-silver.scss +9 -0
  183. package/src/themes/_glassy-glass-white.scss +9 -0
  184. package/src/themes/_glassy-gold.scss +9 -0
  185. package/src/themes/_glassy-green.scss +10 -0
  186. package/src/themes/_glassy-ice-black.scss +13 -0
  187. package/src/themes/_glassy-mac-dark.scss +13 -0
  188. package/src/themes/_glassy-midnight-blue.scss +12 -0
  189. package/src/themes/_glassy-neon-cyber.scss +9 -0
  190. package/src/themes/_glassy-orange.scss +10 -0
  191. package/src/themes/_glassy-pink.scss +9 -0
  192. package/src/themes/_glassy-purple.scss +10 -0
  193. package/src/themes/_glassy-rose-gold.scss +9 -0
  194. package/src/themes/_glassy-sakura-glass.scss +9 -0
  195. package/src/themes/_glassy-silver.scss +9 -0
  196. package/src/themes/_glassy-teal.scss +9 -0
  197. package/src/themes/_high-contrast.scss +11 -0
  198. package/src/themes/_light.scss +10 -0
  199. package/src/themes/_mac.scss +10 -0
  200. package/src/themes/_minimal-mono.scss +11 -0
  201. package/src/themes/_mintwave.scss +9 -0
  202. package/src/themes/_neutral-light.scss +11 -0
  203. package/src/themes/_nordwave.scss +9 -0
  204. package/src/themes/_ocean.scss +9 -0
  205. package/src/themes/_orange.scss +9 -0
  206. package/src/themes/_purple.scss +9 -0
  207. package/src/themes/_red.scss +9 -0
  208. package/src/themes/_skyfade.scss +9 -0
  209. package/src/themes/_soft-pastel.scss +11 -0
  210. package/src/themes/_solarized.scss +9 -0
  211. package/src/themes/_standard-dark.scss +8 -0
  212. package/src/themes/_standard-default.scss +9 -0
  213. package/src/themes/_transparent.scss +9 -0
  214. package/src/themes/_true-dark.scss +11 -0
  215. package/src/themes/_warm-neutral.scss +11 -0
  216. package/src/themes.zip +0 -0
  217. package/src/tokens/tokens.json +133 -0
  218. package/src/utilities/_display.scss +11 -0
  219. package/src/utilities/_flex.scss +9 -0
  220. package/src/utilities/_position.scss +6 -0
  221. package/src/utilities/_screen-reader.scss +9 -0
  222. package/src/utilities/_spacing.scss +22 -0
  223. package/src/utilities/_text.scss +14 -0
  224. package/src/utilities/_visibility.scss +4 -0
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@clusterenvision/ui-scss",
3
+ "version": "1.94.3",
4
+ "type": "module",
5
+ "main": "dist/ce-ui.css",
6
+ "style": "dist/ce-ui.css",
7
+ "files": [
8
+ "src/",
9
+ "dist/",
10
+ "src/main.scss"
11
+ ],
12
+ "scripts": {
13
+ "build": "npm run build:tokens && sass src/main.scss dist/ce-ui.css && sass src/minimal.scss dist/ce-ui-min.css && npm run build:components",
14
+ "build:components": "node scripts/build-components.js",
15
+ "build:minimal": "sass src/minimal.scss dist/ce-ui-min.css",
16
+ "docs:dev": "vitepress dev docs",
17
+ "docs:build": "npm run build:tokens && vitepress build docs",
18
+ "docs:serve": "vitepress serve docs",
19
+ "build:css": "sass src/main.scss tests/public/css/main.css && sass src/main.scss docs/.vitepress/theme/main.css",
20
+ "build:tokens": "node scripts/generate-tokens.js",
21
+ "themes:export": "node scripts/export-product-themes.js",
22
+ "tokens:baseline": "node scripts/update-token-baseline.js",
23
+ "tokens:diff": "node scripts/token-diff.js",
24
+ "tokens:diff:check": "node scripts/token-diff.js --check",
25
+ "tokens:changelog": "node scripts/check-token-changelog.js",
26
+ "docs:tokens": "node scripts/sync-docs-tokens.js",
27
+ "lint:tokens": "node scripts/lint-tokens.js",
28
+ "lint:tokens:update": "node scripts/lint-tokens.js --update-baseline",
29
+ "lint:rtl": "node scripts/lint-rtl.js",
30
+ "lint:rtl:update": "node scripts/lint-rtl.js --update-baseline",
31
+ "test:tokens": "node scripts/generate-tokens.js && node --test tests/tokens/tokens.test.js",
32
+ "audit:visual": "node scripts/audit-visual-consistency.js",
33
+ "audit:visual:fix": "node scripts/audit-visual-consistency.js --fix",
34
+ "analyze:css": "node scripts/analyze-css-bundles.js",
35
+ "report:css-vars": "node scripts/report-css-vars.js",
36
+ "check:css-leakage": "node scripts/check-component-css-leakage.js",
37
+ "vrt:baseline": "npm run build:css && npx playwright test --config tests/visual/playwright.config.ts --update-snapshots",
38
+ "vrt:test": "npm run build:css && npx playwright test --config tests/visual/playwright.config.ts",
39
+ "vrt:update": "npm run vrt:baseline",
40
+ "check:dist": "node scripts/check-dist.js",
41
+ "ci:check": "npm run check:dist && npm run analyze:css && npm run report:css-vars && npm run check:css-leakage && npm run tokens:diff && npm run tokens:changelog"
42
+ },
43
+ "devDependencies": {
44
+ "@playwright/test": "^1.60.0",
45
+ "sass": "^1.101.0",
46
+ "vitepress": "^1.6.4"
47
+ },
48
+ "description": "Modular, scalable, reusable SCSS design system for Angular, React, Vue, Blazor, and HTML.",
49
+ "directories": {
50
+ "doc": "docs"
51
+ },
52
+ "keywords": [
53
+ "scss",
54
+ "design-system",
55
+ "component-library",
56
+ "responsive",
57
+ "enterprise"
58
+ ],
59
+ "author": "Cluster Envision",
60
+ "license": "MIT"
61
+ }
@@ -0,0 +1,34 @@
1
+ // abstracts/_functions.scss
2
+ @use 'variables' as *;
3
+ @use 'sass:map';
4
+
5
+ @function color($name) {
6
+ @return map.get($colors, $name);
7
+ }
8
+
9
+ @function glassy-color($theme, $key) {
10
+ @return map.get(map.get($glassy-colors, $theme), $key);
11
+ }
12
+
13
+
14
+ @function space($size) {
15
+ @return map.get($spacing, $size);
16
+ }
17
+
18
+ @function radius($size) {
19
+ @return map.get($radius, $size);
20
+ }
21
+
22
+
23
+ @function shadow($key) {
24
+ @if map.has-key($shadow, $key) {
25
+ @return map.get($shadow, $key);
26
+ }
27
+
28
+ @warn "Unknown shadow `#{$key}`. Returning `none`.";
29
+ @return none;
30
+ }
31
+
32
+ @function z($layer) {
33
+ @return map.get($z-index, $layer);
34
+ }
@@ -0,0 +1,162 @@
1
+ // abstracts/_mixins.scss
2
+ @use "sass:meta";
3
+ @use "variables" as vars;
4
+ @use "functions" as fn;
5
+
6
+ @mixin flex-center {
7
+ display: flex;
8
+ justify-content: center;
9
+ align-items: center;
10
+ }
11
+
12
+ @mixin elevation($size) {
13
+ box-shadow: vars.shadow($size);
14
+ }
15
+
16
+ @mixin elevation-token($level) {
17
+ box-shadow: var(--ce-shadow-#{$level}, #{fn.shadow($level)});
18
+ }
19
+
20
+ @mixin typography(
21
+ $size: md,
22
+ $weight: regular,
23
+ $line-height: normal,
24
+ $letter-spacing: null,
25
+ $family: null
26
+ ) {
27
+ $font-family: var(--ce-typography-font-family, var(--ce-font-family, #{vars.$font-family-base}));
28
+ @if $family != null {
29
+ $font-family: $family;
30
+ }
31
+
32
+ $font-size: var(--ce-typography-font-size-#{$size}, #{$size});
33
+ @if meta.type-of($size) == number {
34
+ $font-size: $size;
35
+ }
36
+
37
+ $font-weight: var(--ce-typography-font-weight-#{$weight}, #{$weight});
38
+ @if meta.type-of($weight) == number {
39
+ $font-weight: $weight;
40
+ }
41
+
42
+ $line-height-val: var(--ce-typography-line-height-#{$line-height}, #{$line-height});
43
+ @if meta.type-of($line-height) == number {
44
+ $line-height-val: $line-height;
45
+ }
46
+
47
+ font-family: $font-family;
48
+ font-size: $font-size;
49
+ font-weight: $font-weight;
50
+ line-height: $line-height-val;
51
+ @if $letter-spacing != null {
52
+ letter-spacing: $letter-spacing;
53
+ }
54
+ }
55
+
56
+ @mixin surface(
57
+ $bg: surface,
58
+ $text: text,
59
+ $border: border,
60
+ $radius: md,
61
+ $shadow: null
62
+ ) {
63
+ background-color: var(--ce-color-#{$bg}, var(--theme-bg, #{fn.color(white)}));
64
+ color: var(--ce-color-#{$text}, var(--theme-fg, #{fn.color(dark)}));
65
+ border: 1px solid var(--ce-color-#{$border}, var(--theme-border, #{fn.color(muted)}));
66
+ border-radius: var(--ce-radius-#{$radius}, #{fn.radius($radius)});
67
+ @if $shadow != null {
68
+ box-shadow: var(--ce-shadow-#{$shadow}, #{fn.shadow($shadow)});
69
+ }
70
+ }
71
+
72
+ @mixin state($state) {
73
+ @if $state == hover {
74
+ &:hover {
75
+ @content;
76
+ }
77
+ } @else if $state == focus {
78
+ &:focus-visible {
79
+ @content;
80
+ }
81
+ } @else if $state == active {
82
+ &:active {
83
+ @content;
84
+ }
85
+ } @else if $state == disabled {
86
+ &:disabled,
87
+ &[aria-disabled="true"] {
88
+ @content;
89
+ }
90
+ } @else if $state == loading {
91
+ &[data-state~="loading"],
92
+ &[aria-busy="true"] {
93
+ @content;
94
+ }
95
+ } @else {
96
+ @warn "Unknown state `#{$state}`.";
97
+ }
98
+ }
99
+
100
+ @mixin radius($size) {
101
+ border-radius: vars.radius($size);
102
+ }
103
+
104
+ @mixin visually-hidden {
105
+ position: absolute !important;
106
+ height: 1px;
107
+ width: 1px;
108
+ overflow: hidden;
109
+ clip: rect(1px, 1px, 1px, 1px);
110
+ white-space: nowrap;
111
+ }
112
+
113
+ @mixin media-breakpoint-up($bp) {
114
+ @if $bp == sm {
115
+ @media (min-width: 576px) {
116
+ @content;
117
+ }
118
+ } @else if $bp == md {
119
+ @media (min-width: 768px) {
120
+ @content;
121
+ }
122
+ } @else if $bp == lg {
123
+ @media (min-width: 992px) {
124
+ @content;
125
+ }
126
+ } @else if $bp == xl {
127
+ @media (min-width: 1200px) {
128
+ @content;
129
+ }
130
+ }
131
+ }
132
+
133
+ @mixin mintwave-gradient {
134
+ background: linear-gradient(
135
+ 135deg,
136
+ #{fn.color(mintwave-blue)},
137
+ #{fn.color(mintwave-green)}
138
+ );
139
+ }
140
+
141
+ @mixin responsive-font($min, $max) {
142
+ font-size: $min;
143
+
144
+ @media (min-width: 768px) {
145
+ font-size: calc(
146
+ #{$min} + (#{$max} - #{$min}) * ((100vw - 768px) / (1440 - 768))
147
+ );
148
+ }
149
+
150
+ @media (min-width: 1440px) {
151
+ font-size: $max;
152
+ }
153
+ }
154
+
155
+ @mixin glassy-surface {
156
+ background: var(--theme-bg);
157
+ border: 1px solid var(--theme-border, rgba(255, 255, 255, 0.2));
158
+ -webkit-backdrop-filter: blur(16px);
159
+ backdrop-filter: blur(16px);
160
+ border-radius: var(--theme-radius);
161
+ box-shadow: var(--theme-shadow);
162
+ }
@@ -0,0 +1,18 @@
1
+ // abstracts/_placeholders.scss
2
+
3
+ %center-content {
4
+ display: flex;
5
+ justify-content: center;
6
+ align-items: center;
7
+ }
8
+
9
+ %transition {
10
+ transition: all 0.3s ease-in-out;
11
+ }
12
+
13
+ %button-reset {
14
+ background: none;
15
+ border: none;
16
+ padding: 0;
17
+ cursor: pointer;
18
+ }
@@ -0,0 +1,413 @@
1
+ // abstracts/_variables.scss
2
+
3
+ // --------------------------------------
4
+ // Typography
5
+ // --------------------------------------
6
+ $font-family-base: 'Inter', sans-serif;
7
+ $font-size-base: 12px;
8
+ $font-weight-normal: 400;
9
+ $font-weight-bold: 600;
10
+ $line-height-base: 1.5;
11
+
12
+ // --------------------------------------
13
+ // Color Palette
14
+ // --------------------------------------
15
+ // --------------------------------------
16
+ // Color Palette
17
+ // --------------------------------------
18
+ $colors: (
19
+ // Primary System Colors
20
+ primary: #1a73e8,
21
+ secondary: #fbbc04,
22
+ success: #34a853,
23
+ danger: #ea4335,
24
+ warning: #f9ab00,
25
+ info: #4285f4,
26
+
27
+ // -------------------------------
28
+ // Base Colors
29
+ // -------------------------------
30
+ white: #ffffff,
31
+ black: #000000,
32
+ light: #f8f9fa,
33
+ dark: #202124,
34
+ muted: #9aa0a6,
35
+
36
+ // -------------------------------
37
+ // Core UI Accent Tokens
38
+ // -------------------------------
39
+ accent-blue: #0078d4,
40
+ accent-blue-strong: #005fa3,
41
+ accent-blue-soft: #e0eaff,
42
+ accent-blue-muted: #d0e7ff,
43
+ accent-rose: #d6336c,
44
+ accent-rose-soft: #ffe0e0,
45
+ accent-amber: #ffb700,
46
+ accent-lime: #2ecc40,
47
+ neutral-ink: #222222,
48
+ neutral-mid: #888888,
49
+ neutral-surface: #f5f7fa,
50
+ neutral-soft: #f8fafc,
51
+ neutral-hover: #e6f0ff,
52
+
53
+
54
+ // -------------------------------
55
+ // Grayscale (WCAG friendly steps)
56
+ // -------------------------------
57
+ gray-50: #f9f9f9,
58
+ gray-100: #f1f3f4,
59
+ gray-200: #e0e0e0,
60
+ gray-300: #dadce0,
61
+ gray-400: #c4c4c4,
62
+ gray-500: #9e9e9e,
63
+ gray-600: #70757a,
64
+ gray-700: #5f6368,
65
+ gray-800: #3c4043,
66
+ gray-900: #202124,
67
+
68
+ // -------------------------------
69
+ // Red Scale
70
+ // -------------------------------
71
+ red-50: #ffebee,
72
+ red-100: #ffcdd2,
73
+ red-200: #ef9a9a,
74
+ red-300: #e57373,
75
+ red-400: #ef5350,
76
+ red-500: #f44336,
77
+ red-600: #e53935,
78
+ red-700: #d32f2f,
79
+ red-800: #c62828,
80
+ red-900: #b71c1c,
81
+ red: #ea4335,
82
+
83
+ // -------------------------------
84
+ // Purple Scale
85
+ // -------------------------------
86
+ purple-50: #f3e5f5,
87
+ purple-100: #e1bee7,
88
+ purple-200: #ce93d8,
89
+ purple-300: #ba68c8,
90
+ purple-400: #ab47bc,
91
+ purple-500: #9c27b0,
92
+ purple-600: #8e24aa,
93
+ purple-700: #7b1fa2,
94
+ purple-800: #6a1b9a,
95
+ purple-900: #4a148c,
96
+ purple: #9c27b0,
97
+
98
+ // -------------------------------
99
+ // Yellow Scale
100
+ // -------------------------------
101
+ yellow: #fdd835,
102
+ yellow-100: #fff9c4,
103
+ yellow-300: #fff176,
104
+ yellow-500: #ffeb3b,
105
+ yellow-700: #fbc02d,
106
+
107
+ // -------------------------------
108
+ // Orange Scale
109
+ // -------------------------------
110
+ orange-50: #fff3e0,
111
+ orange-100: #ffe0b2,
112
+ orange-200: #ffcc80,
113
+ orange-300: #ffb74d,
114
+ orange-400: #ffa726,
115
+ orange-500: #ff9800,
116
+ orange-600: #fb8c00,
117
+ orange-700: #f57c00,
118
+ orange-800: #ef6c00,
119
+ orange-900: #e65100,
120
+ orange: #ff9800,
121
+
122
+ // -------------------------------
123
+ // Solarized Theme
124
+ // -------------------------------
125
+ solar-base03: #002b36,
126
+ solar-base02: #073642,
127
+ solar-base01: #586e75,
128
+ solar-base00: #657b83,
129
+ solar-base0: #839496,
130
+ solar-base1: #93a1a1,
131
+ solar-base2: #eee8d5,
132
+ solar-base3: #fdf6e3,
133
+ solar-yellow: #b58900,
134
+ solar-orange: #cb4b16,
135
+ solar-red: #dc322f,
136
+ solar-magenta: #d33682,
137
+ solar-violet: #6c71c4,
138
+ solar-blue: #268bd2,
139
+ solar-cyan: #2aa198,
140
+ solar-green: #859900,
141
+
142
+
143
+ // -------------------------------
144
+ // Ocean Theme
145
+ // -------------------------------
146
+ ocean-light: #e0f7fa,
147
+ ocean-deep: #006064,
148
+ ocean-primary: #00bcd4,
149
+ ocean-muted: #4dd0e1,
150
+
151
+ // -------------------------------
152
+ // Forest Theme
153
+ // -------------------------------
154
+ forest-light: #e8f5e9,
155
+ forest-deep: #1b5e20,
156
+ forest-primary: #4caf50,
157
+ forest-muted: #81c784,
158
+
159
+ // -------------------------------
160
+ // macOS Theme
161
+ // -------------------------------
162
+ mac-bg: #f5f5f7,
163
+ mac-text: #1d1d1f,
164
+ mac-accent: #007aff,
165
+ mac-muted: #8e8e93,
166
+
167
+ // Accessible overlays
168
+ overlay-light: rgba(255, 255, 255, 0.8),
169
+ overlay-dark: rgba(0, 0, 0, 0.6),
170
+
171
+ // Alerts
172
+ alert-success-bg: #e6f4ea,
173
+ alert-warning-bg: #fff4e5,
174
+ alert-danger-bg: #fce8e6,
175
+
176
+ // Mintwave Theme
177
+ mintwave-bg: #e6f9f6,
178
+ mintwave-fg: #003c3c,
179
+ mintwave-primary: #00bfa5,
180
+ mintwave-muted: #a7d8cc,
181
+
182
+ // Mintwave Gradient Options
183
+ mintwave-blue: #6dd5ed,
184
+ mintwave-green: #00c9a7,
185
+ mintwave-sky: #a1f7f0,
186
+ mintwave-glow: #c7fcec,
187
+ mintwave-dark: #004d4d,
188
+
189
+ // -------------------------------
190
+ // Skyfade Theme Tokens
191
+ // -------------------------------
192
+ skyfade-bg: #f4f9ff, // 🌤️ soft sky blue background
193
+ skyfade-fg: #1e2a38, // 🖋 rich navy text
194
+ skyfade-primary: #3399ff, // 💧 vibrant sky blue
195
+ skyfade-muted: #c8ddee, // 🌫️ airy bluish gray
196
+
197
+ // Optional visual tokens
198
+ skyfade-glow: #d6eaff,
199
+ skyfade-hover: #e0f0ff,
200
+ skyfade-border: #bcd6eb,
201
+ skyfade-deep: #005a9c,
202
+
203
+ // -------------------------------
204
+ // Nordwave Theme Colors
205
+ // -------------------------------
206
+ nord-bg: #eceff4, // 🧊 Snow Storm 1
207
+ nord-fg: #2e3440, // 🌒 Polar Night
208
+ nord-accent: #5e81ac, // 🔷 Arctic blue
209
+ nord-muted: #d8dee9, // ☁️ Snow Storm 2
210
+
211
+ // Optional contrast tokens
212
+ nord-blue: #81a1c1,
213
+ nord-cyan: #8fbcbb,
214
+ nord-green: #a3be8c,
215
+ nord-orange: #d08770,
216
+ nord-red: #bf616a,
217
+ nord-deep: #3b4252,
218
+ nord-border: #d0d8e0,
219
+
220
+ );
221
+
222
+
223
+ // --------------------------------------
224
+ // Border Radius
225
+ // --------------------------------------
226
+ $radius: (
227
+ none: 0,
228
+ xs: 2px, // Very subtle rounding
229
+ sm: 4px, // Common for buttons/input
230
+ md: 8px, // Standard cards/dialogs
231
+ lg: 12px, // Modals, larger components
232
+ xl: 16px, // For deeply rounded containers
233
+ pill: 10px, // For pill-shaped tags/buttons
234
+ circle: 50% // For avatars or circular buttons
235
+ );
236
+ // _variables.scss
237
+
238
+ $spacing: (
239
+ 0: 0rem, // 0px
240
+ xs: 0.25rem, // 4px
241
+ sm: 0.5rem, // 8px
242
+ md: 1rem, // 16px
243
+ lg: 1.5rem, // 24px
244
+ xl: 2rem, // 32px
245
+ xxl: 3rem, // 48px
246
+ xxxl: 4rem // 64px
247
+ );
248
+
249
+ // Optional: numeric tokens for utility classes if needed
250
+ $spacing-numeric: (
251
+ 1: 0.25rem, // 4px
252
+ 2: 0.5rem, // 8px
253
+ 3: 1rem, // 16px
254
+ 4: 1.5rem, // 24px
255
+ 5: 2rem, // 32px
256
+ 6: 3rem, // 48px
257
+ 7: 4rem // 64px
258
+ );
259
+
260
+ // You can now use fn.space(sm), fn.space(xl), etc.
261
+
262
+
263
+ // --------------------------------------
264
+ // Box Shadows
265
+ // --------------------------------------
266
+ $shadow: (
267
+ none: none,
268
+ xs: 0 1px 2px rgba(0, 0, 0, 0.04),
269
+ sm: 0 1px 3px rgba(0, 0, 0, 0.08),
270
+ md: 0 4px 6px rgba(0, 0, 0, 0.10),
271
+ lg: 0 10px 15px rgba(0, 0, 0, 0.15),
272
+ xl: 0 20px 25px rgba(0, 0, 0, 0.2),
273
+ xxl: 0 25px 50px rgba(0, 0, 0, 0.25)
274
+ );
275
+
276
+ // --------------------------------------
277
+ // Z-Index Layers
278
+ // --------------------------------------
279
+ $z-index: (
280
+ auto: auto,
281
+ base: 1,
282
+ dropdown: 1000,
283
+ sticky: 1020,
284
+ fixed: 1030,
285
+ modal: 1050,
286
+ popover: 1060,
287
+ toast: 1080,
288
+ tooltip: 1090
289
+ );
290
+
291
+
292
+ $glassy-colors: (
293
+ glassy-blue: (
294
+ bg: rgba(0, 120, 255, 0.15),
295
+ fg: #ffffff,
296
+ accent: rgba(0, 120, 255, 0.4),
297
+ primary: #0078ff
298
+ ),
299
+ glassy-green: (
300
+ bg: rgba(46, 204, 113, 0.15),
301
+ fg: #ffffff,
302
+ accent: rgba(46, 204, 113, 0.4),
303
+ primary: #2ecc71
304
+ ),
305
+ glassy-purple: (
306
+ bg: rgba(155, 89, 182, 0.15),
307
+ fg: #ffffff,
308
+ accent: rgba(155, 89, 182, 0.4),
309
+ primary: #9b59b6
310
+ ),
311
+ glassy-orange: (
312
+ bg: rgba(255, 165, 0, 0.15),
313
+ fg: #000000,
314
+ accent: rgba(255, 165, 0, 0.4),
315
+ primary: #ffa500
316
+ ),
317
+ glassy-teal: (
318
+ bg: rgba(0, 128, 128, 0.15),
319
+ fg: #ffffff,
320
+ accent: rgba(0, 128, 128, 0.4),
321
+ primary: #008080
322
+ ),
323
+ glassy-pink: (
324
+ bg: rgba(255, 105, 180, 0.15),
325
+ fg: #ffffff,
326
+ accent: rgba(255, 105, 180, 0.35),
327
+ primary: #ff69b4
328
+ ),
329
+ glassy-gold: (
330
+ bg: rgba(255, 215, 0, 0.15),
331
+ fg: #000000,
332
+ accent: rgba(255, 215, 0, 0.3),
333
+ primary: #ffd700
334
+ ),
335
+ glassy-cyan: (
336
+ bg: rgba(0, 255, 255, 0.15),
337
+ fg: #000000,
338
+ accent: rgba(0, 255, 255, 0.35),
339
+ primary: #00ffff
340
+ ),
341
+ glassy-silver: (
342
+ bg: rgba(192, 192, 192, 0.15),
343
+ fg: #111111,
344
+ accent: rgba(192, 192, 192, 0.3),
345
+ primary: #c0c0c0
346
+ ),
347
+ glassy-ice-black: (
348
+ bg: rgba(0, 0, 0, 0.25),
349
+ fg: #ffffff,
350
+ accent: rgba(255, 255, 255, 0.15),
351
+ primary: #000000
352
+ ),
353
+ glassy-aurora-sky: (
354
+ bg: rgba(135, 206, 250, 0.15),
355
+ fg: #000000,
356
+ accent: rgba(135, 206, 250, 0.4),
357
+ primary: #87cefa
358
+ ),
359
+ glassy-emerald-mist: (
360
+ bg: rgba(0, 250, 154, 0.15),
361
+ fg: #002e2e,
362
+ accent: rgba(0, 250, 154, 0.35),
363
+ primary: #00fa9a
364
+ ),
365
+ glassy-neon-cyber: (
366
+ bg: rgba(57, 255, 20, 0.12),
367
+ fg: #00ff9f,
368
+ accent: rgba(57, 255, 20, 0.4),
369
+ primary: #39ff14
370
+ ),
371
+ glassy-sakura-glass: (
372
+ bg: rgba(255, 182, 193, 0.2),
373
+ fg: #6e0d25,
374
+ accent: rgba(255, 182, 193, 0.3),
375
+ primary: #ffb6c1
376
+ ),
377
+ glassy-midnight-blue: (
378
+ bg: rgba(25, 25, 112, 0.2),
379
+ fg: #ffffff,
380
+ accent: rgba(65, 105, 225, 0.3),
381
+ primary: #191970
382
+ ),
383
+ glassy-frosted-silver: (
384
+ bg: rgba(245, 245, 245, 0.15),
385
+ fg: #202124,
386
+ accent: rgba(230, 230, 230, 0.25),
387
+ primary: #f0f0f0
388
+ ),
389
+ glassy-aero-windows: (
390
+ bg: rgba(180, 200, 255, 0.12),
391
+ fg: #1a1a1a,
392
+ accent: rgba(140, 180, 255, 0.3),
393
+ primary: #90caf9
394
+ ),
395
+ glassy-rose-gold: (
396
+ bg: rgba(255, 192, 203, 0.2),
397
+ fg: #661e43,
398
+ accent: rgba(255, 192, 203, 0.3),
399
+ primary: #b76e79
400
+ ),
401
+ glassy-mac-dark: (
402
+ bg: rgba(29, 29, 31, 0.9),
403
+ fg: #f5f5f5,
404
+ accent: rgba(0, 122, 255, 0.4),
405
+ primary: #007aff
406
+ ),
407
+ glassy-glass-white: (
408
+ bg: rgba(255, 255, 255, 0.12),
409
+ fg: #000000,
410
+ accent: rgba(240, 240, 240, 0.4),
411
+ primary: #ffffff
412
+ )
413
+ );
@@ -0,0 +1,9 @@
1
+ // abstracts/_z-index.scss
2
+
3
+ $z-index-dropdown: 1000;
4
+ $z-index-sticky: 1020;
5
+ $z-index-fixed: 1030;
6
+ $z-index-modal: 1050;
7
+ $z-index-popover: 1060;
8
+ $z-index-toast: 1080;
9
+ $z-index-tooltip: 1090;
@@ -0,0 +1,11 @@
1
+ // accessibility/_focus-ring.scss
2
+ @use "../abstracts/functions" as fn;
3
+
4
+ *:focus {
5
+ outline: none;
6
+ }
7
+
8
+ *:focus-visible {
9
+ outline: 2px solid var(--ce-color-focus-ring, var(--theme-accent, #{fn.color(primary)}));
10
+ outline-offset: 2px;
11
+ }