@shohojdhara/atomix 0.2.1 → 0.2.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 (201) hide show
  1. package/README.md +1 -28
  2. package/dist/atomix.css +1500 -241
  3. package/dist/atomix.min.css +6 -6
  4. package/dist/index.d.ts +1052 -194
  5. package/dist/index.esm.js +12201 -6066
  6. package/dist/index.esm.js.map +1 -1
  7. package/dist/index.js +5481 -2827
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.min.js +1 -1
  10. package/dist/index.min.js.map +1 -1
  11. package/dist/themes/boomdevs.css +1500 -301
  12. package/dist/themes/boomdevs.min.css +60 -8
  13. package/dist/themes/esrar.css +1500 -241
  14. package/dist/themes/esrar.min.css +6 -6
  15. package/dist/themes/mashroom.css +1496 -237
  16. package/dist/themes/mashroom.min.css +8 -8
  17. package/dist/themes/shaj-default.css +1451 -192
  18. package/dist/themes/shaj-default.min.css +6 -6
  19. package/package.json +66 -15
  20. package/src/components/Accordion/Accordion.stories.tsx +137 -0
  21. package/src/components/Accordion/Accordion.tsx +33 -3
  22. package/src/components/AtomixGlass/AtomixGlass.stories.tsx +3011 -0
  23. package/src/components/AtomixGlass/AtomixGlass.test.tsx +199 -0
  24. package/src/components/AtomixGlass/AtomixGlass.tsx +1281 -0
  25. package/src/components/AtomixGlass/AtomixGlassComprehensivePreview.stories.tsx +1369 -0
  26. package/src/components/AtomixGlass/README.md +134 -0
  27. package/src/components/AtomixGlass/index.ts +10 -0
  28. package/src/components/AtomixGlass/shader-utils.ts +140 -0
  29. package/src/components/AtomixGlass/utils.ts +8 -0
  30. package/src/components/Badge/Badge.stories.tsx +169 -0
  31. package/src/components/Badge/Badge.tsx +27 -2
  32. package/src/components/Button/Button.stories.tsx +345 -0
  33. package/src/components/Button/Button.tsx +35 -3
  34. package/src/components/Button/README.md +216 -0
  35. package/src/components/Callout/Callout.stories.tsx +813 -78
  36. package/src/components/Callout/Callout.test.tsx +368 -0
  37. package/src/components/Callout/Callout.tsx +26 -7
  38. package/src/components/Callout/README.md +409 -0
  39. package/src/components/Card/Card.stories.tsx +140 -0
  40. package/src/components/Card/Card.tsx +19 -3
  41. package/src/components/DatePicker/DatePicker copy.tsx +551 -0
  42. package/src/components/DatePicker/DatePicker.stories.tsx +188 -0
  43. package/src/components/DatePicker/DatePicker.tsx +379 -332
  44. package/src/components/DatePicker/readme.md +110 -1
  45. package/src/components/DatePicker/types.ts +8 -0
  46. package/src/components/Dropdown/Dropdown.stories.tsx +145 -0
  47. package/src/components/Dropdown/Dropdown.tsx +34 -5
  48. package/src/components/Footer/Footer.stories.tsx +388 -0
  49. package/src/components/Footer/Footer.tsx +197 -0
  50. package/src/components/Footer/FooterLink.tsx +72 -0
  51. package/src/components/Footer/FooterSection.tsx +87 -0
  52. package/src/components/Footer/FooterSocialLink.tsx +117 -0
  53. package/src/components/Footer/README.md +261 -0
  54. package/src/components/Footer/index.ts +13 -0
  55. package/src/components/Form/Checkbox.stories.tsx +101 -0
  56. package/src/components/Form/Checkbox.tsx +26 -2
  57. package/src/components/Form/Input.stories.tsx +124 -0
  58. package/src/components/Form/Input.tsx +36 -7
  59. package/src/components/Form/Radio.stories.tsx +139 -0
  60. package/src/components/Form/Radio.tsx +26 -2
  61. package/src/components/Form/Select.stories.tsx +110 -0
  62. package/src/components/Form/Select.tsx +26 -2
  63. package/src/components/Form/Textarea.stories.tsx +104 -0
  64. package/src/components/Form/Textarea.tsx +36 -7
  65. package/src/components/Hero/Hero.stories.tsx +54 -1
  66. package/src/components/Hero/Hero.tsx +70 -11
  67. package/src/components/Modal/Modal.stories.tsx +235 -0
  68. package/src/components/Modal/Modal.tsx +64 -35
  69. package/src/components/Pagination/Pagination.stories.tsx +101 -0
  70. package/src/components/Pagination/Pagination.tsx +25 -1
  71. package/src/components/Popover/Popover.stories.tsx +94 -0
  72. package/src/components/Popover/Popover.tsx +30 -4
  73. package/src/components/Rating/Rating.stories.tsx +112 -0
  74. package/src/components/Rating/Rating.tsx +25 -1
  75. package/src/components/SectionIntro/SectionIntro.tsx +9 -11
  76. package/src/components/Slider/Slider.stories.tsx +634 -50
  77. package/src/components/Slider/Slider.tsx +5 -3
  78. package/src/components/Steps/Steps.stories.tsx +119 -0
  79. package/src/components/Steps/Steps.tsx +32 -1
  80. package/src/components/Tab/Tab.stories.tsx +88 -0
  81. package/src/components/Tab/Tab.tsx +32 -1
  82. package/src/components/Toggle/Toggle.stories.tsx +92 -0
  83. package/src/components/Toggle/Toggle.tsx +32 -1
  84. package/src/components/Tooltip/Tooltip.stories.tsx +131 -0
  85. package/src/components/Tooltip/Tooltip.tsx +43 -7
  86. package/src/components/VideoPlayer/VideoPlayer.stories.tsx +1002 -196
  87. package/src/components/VideoPlayer/VideoPlayer.tsx +161 -4
  88. package/src/components/index.ts +14 -0
  89. package/src/layouts/Grid/Grid.stories.tsx +226 -159
  90. package/src/lib/composables/index.ts +4 -0
  91. package/src/lib/composables/useAtomixGlass.ts +71 -0
  92. package/src/lib/composables/useButton.ts +3 -1
  93. package/src/lib/composables/useCallout.ts +4 -1
  94. package/src/lib/composables/useFooter.ts +85 -0
  95. package/src/lib/composables/useGlassContainer.ts +168 -0
  96. package/src/lib/composables/useSlider.ts +191 -4
  97. package/src/lib/constants/components.ts +173 -0
  98. package/src/lib/types/components.ts +622 -0
  99. package/src/lib/utils/displacement-generator.ts +86 -0
  100. package/src/styles/01-settings/_index.scss +1 -0
  101. package/src/styles/01-settings/_settings.accordion.scss +20 -19
  102. package/src/styles/01-settings/_settings.animations.scss +5 -5
  103. package/src/styles/01-settings/_settings.avatar-group.scss +1 -1
  104. package/src/styles/01-settings/_settings.avatar.scss +17 -18
  105. package/src/styles/01-settings/_settings.background.scss +10 -0
  106. package/src/styles/01-settings/_settings.badge.scss +1 -1
  107. package/src/styles/01-settings/_settings.breadcrumb.scss +8 -2
  108. package/src/styles/01-settings/_settings.callout.scss +7 -7
  109. package/src/styles/01-settings/_settings.card.scss +2 -2
  110. package/src/styles/01-settings/_settings.chart.scss +7 -7
  111. package/src/styles/01-settings/_settings.checkbox-group.scss +5 -2
  112. package/src/styles/01-settings/_settings.checkbox.scss +10 -4
  113. package/src/styles/01-settings/_settings.countdown.scss +6 -4
  114. package/src/styles/01-settings/_settings.dropdown.scss +9 -7
  115. package/src/styles/01-settings/_settings.edge-panel.scss +3 -2
  116. package/src/styles/01-settings/_settings.footer.scss +125 -0
  117. package/src/styles/01-settings/_settings.form-group.scss +3 -1
  118. package/src/styles/01-settings/_settings.form.scss +4 -2
  119. package/src/styles/01-settings/_settings.hero.scss +9 -7
  120. package/src/styles/01-settings/_settings.input.scss +9 -7
  121. package/src/styles/01-settings/_settings.list-group.scss +4 -2
  122. package/src/styles/01-settings/_settings.list.scss +4 -2
  123. package/src/styles/01-settings/_settings.menu.scss +10 -8
  124. package/src/styles/01-settings/_settings.messages.scss +19 -17
  125. package/src/styles/01-settings/_settings.modal.scss +6 -4
  126. package/src/styles/01-settings/_settings.nav.scss +6 -4
  127. package/src/styles/01-settings/_settings.navbar.scss +8 -5
  128. package/src/styles/01-settings/_settings.pagination.scss +5 -3
  129. package/src/styles/01-settings/_settings.popover.scss +6 -4
  130. package/src/styles/01-settings/_settings.rating.scss +5 -3
  131. package/src/styles/01-settings/_settings.river.scss +8 -6
  132. package/src/styles/01-settings/_settings.sectionintro.scss +8 -6
  133. package/src/styles/01-settings/_settings.select.scss +7 -5
  134. package/src/styles/01-settings/_settings.side-menu.scss +15 -13
  135. package/src/styles/01-settings/_settings.spacing.scss +4 -0
  136. package/src/styles/01-settings/_settings.steps.scss +7 -5
  137. package/src/styles/01-settings/_settings.tabs.scss +7 -5
  138. package/src/styles/01-settings/_settings.testimonials.scss +6 -4
  139. package/src/styles/01-settings/_settings.toggle.scss +3 -1
  140. package/src/styles/01-settings/_settings.tooltip.scss +5 -3
  141. package/src/styles/01-settings/_settings.upload.scss +22 -20
  142. package/src/styles/02-tools/_tools.animations.scss +19 -0
  143. package/src/styles/02-tools/_tools.background.scss +87 -0
  144. package/src/styles/02-tools/_tools.glass.scss +1 -0
  145. package/src/styles/02-tools/_tools.rem.scss +18 -5
  146. package/src/styles/02-tools/_tools.utility-api.scss +32 -26
  147. package/src/styles/03-generic/_generic.root.scss +15 -2
  148. package/src/styles/04-elements/_elements.body.scss +6 -0
  149. package/src/styles/06-components/_components.accordion.scss +24 -4
  150. package/src/styles/06-components/_components.atomix-glass.scss +0 -0
  151. package/src/styles/06-components/_components.avatar-group.scss +2 -1
  152. package/src/styles/06-components/_components.avatar.scss +2 -1
  153. package/src/styles/06-components/_components.badge.scss +36 -1
  154. package/src/styles/06-components/_components.breadcrumb.scss +2 -1
  155. package/src/styles/06-components/_components.button.scss +14 -3
  156. package/src/styles/06-components/_components.callout.scss +44 -4
  157. package/src/styles/06-components/_components.card.scss +21 -2
  158. package/src/styles/06-components/_components.chart.scss +3 -2
  159. package/src/styles/06-components/_components.checkbox.scss +2 -1
  160. package/src/styles/06-components/_components.color-mode-toggle.scss +3 -2
  161. package/src/styles/06-components/_components.countdown.scss +2 -1
  162. package/src/styles/06-components/_components.data-table.scss +7 -6
  163. package/src/styles/06-components/_components.datepicker.scss +20 -1
  164. package/src/styles/06-components/_components.dropdown.scss +11 -4
  165. package/src/styles/06-components/_components.edge-panel.scss +4 -3
  166. package/src/styles/06-components/_components.footer.scss +825 -0
  167. package/src/styles/06-components/_components.form-group.scss +1 -0
  168. package/src/styles/06-components/_components.hero.scss +4 -4
  169. package/src/styles/06-components/_components.image-gallery.scss +1 -0
  170. package/src/styles/06-components/_components.input.scss +33 -2
  171. package/src/styles/06-components/_components.list-group.scss +3 -2
  172. package/src/styles/06-components/_components.list.scss +2 -1
  173. package/src/styles/06-components/_components.menu.scss +5 -4
  174. package/src/styles/06-components/_components.messages.scss +8 -7
  175. package/src/styles/06-components/_components.modal.scss +3 -2
  176. package/src/styles/06-components/_components.nav.scss +6 -5
  177. package/src/styles/06-components/_components.navbar.scss +4 -3
  178. package/src/styles/06-components/_components.pagination.scss +2 -1
  179. package/src/styles/06-components/_components.photoviewer.scss +4 -3
  180. package/src/styles/06-components/_components.popover.scss +3 -2
  181. package/src/styles/06-components/_components.product-review.scss +3 -2
  182. package/src/styles/06-components/_components.progress.scss +3 -2
  183. package/src/styles/06-components/_components.river.scss +3 -2
  184. package/src/styles/06-components/_components.sectionintro.scss +2 -1
  185. package/src/styles/06-components/_components.select.scss +5 -4
  186. package/src/styles/06-components/_components.side-menu.scss +8 -7
  187. package/src/styles/06-components/_components.skeleton.scss +3 -2
  188. package/src/styles/06-components/_components.slider.scss +7 -6
  189. package/src/styles/06-components/_components.spinner.scss +1 -0
  190. package/src/styles/06-components/_components.steps.scss +3 -2
  191. package/src/styles/06-components/_components.tabs.scss +4 -3
  192. package/src/styles/06-components/_components.testimonials.scss +2 -1
  193. package/src/styles/06-components/_components.todo.scss +3 -2
  194. package/src/styles/06-components/_components.toggle.scss +5 -4
  195. package/src/styles/06-components/_components.tooltip.scss +3 -2
  196. package/src/styles/06-components/_components.upload.scss +4 -3
  197. package/src/styles/06-components/_components.video-player.scss +50 -27
  198. package/src/styles/06-components/_index.scss +2 -0
  199. package/src/styles/99-utilities/_utilities.glass-fixes.scss +48 -0
  200. package/dist/themes/yabai.css +0 -13711
  201. package/dist/themes/yabai.min.css +0 -189
@@ -0,0 +1,86 @@
1
+ export interface Vec2 {
2
+ x: number
3
+ y: number
4
+ }
5
+
6
+ export interface ShaderOptions {
7
+ width: number
8
+ height: number
9
+ fragment: (uv: Vec2) => Vec2
10
+ }
11
+
12
+ function smoothStep(a: number, b: number, t: number): number {
13
+ t = Math.max(0, Math.min(1, (t - a) / (b - a)))
14
+ return t * t * (3 - 2 * t)
15
+ }
16
+
17
+ function length(x: number, y: number): number {
18
+ return Math.sqrt(x * x + y * y)
19
+ }
20
+
21
+ function roundedRectSDF(x: number, y: number, width: number, height: number, radius: number): number {
22
+ const qx = Math.abs(x) - width + radius
23
+ const qy = Math.abs(y) - height + radius
24
+ return Math.min(Math.max(qx, qy), 0) + length(Math.max(qx, 0), Math.max(qy, 0)) - radius
25
+ }
26
+
27
+ export const fragmentShaders = {
28
+ liquidGlass: (uv: Vec2): Vec2 => {
29
+ const ix = uv.x - 0.5
30
+ const iy = uv.y - 0.5
31
+ const distanceToEdge = roundedRectSDF(ix, iy, 0.3, 0.2, 0.6)
32
+ const displacement = smoothStep(0.8, 0, distanceToEdge - 0.15)
33
+ const scaled = smoothStep(0, 1, displacement)
34
+ return { x: ix * scaled + 0.5, y: iy * scaled + 0.5 }
35
+ },
36
+ }
37
+
38
+ export class ShaderDisplacementGenerator {
39
+ private canvas: HTMLCanvasElement
40
+ private context: CanvasRenderingContext2D
41
+
42
+ constructor(private options: ShaderOptions) {
43
+ this.canvas = document.createElement("canvas")
44
+ this.canvas.width = options.width
45
+ this.canvas.height = options.height
46
+ this.canvas.style.display = "none"
47
+
48
+ const context = this.canvas.getContext("2d")
49
+ if (!context) {
50
+ throw new Error("Could not get 2D context")
51
+ }
52
+ this.context = context
53
+ }
54
+
55
+ updateShader(): string {
56
+ const { width, height } = this.options
57
+ const imageData = this.context.createImageData(width, height)
58
+ const data = imageData.data
59
+
60
+ for (let y = 0; y < height; y++) {
61
+ for (let x = 0; x < width; x++) {
62
+ const uv: Vec2 = { x: x / width, y: y / height }
63
+ const pos = this.options.fragment(uv)
64
+
65
+ const dx = pos.x * width - x
66
+ const dy = pos.y * height - y
67
+
68
+ const r = (dx / 10) + 0.5
69
+ const g = (dy / 10) + 0.5
70
+
71
+ const pixelIndex = (y * width + x) * 4
72
+ data[pixelIndex] = Math.max(0, Math.min(255, r * 255))
73
+ data[pixelIndex + 1] = Math.max(0, Math.min(255, g * 255))
74
+ data[pixelIndex + 2] = Math.max(0, Math.min(255, g * 255))
75
+ data[pixelIndex + 3] = 255
76
+ }
77
+ }
78
+
79
+ this.context.putImageData(imageData, 0, 0)
80
+ return this.canvas.toDataURL()
81
+ }
82
+
83
+ destroy(): void {
84
+ this.canvas.remove()
85
+ }
86
+ }
@@ -27,6 +27,7 @@
27
27
  @forward './settings.data-table';
28
28
  @forward './settings.dropdown';
29
29
  @forward './settings.edge-panel';
30
+ @forward './settings.footer';
30
31
  @forward './settings.form';
31
32
  @forward './settings.grid';
32
33
  @forward './settings.hero';
@@ -2,30 +2,31 @@
2
2
  @use './settings.border-radius' as radius;
3
3
  @use './settings.config' as config;
4
4
  @use './settings.spacing' as *;
5
+ @use './settings.colors' as *;
5
6
 
6
- $accordion-width: 100% !default;
7
- $accordion-padding-x: map.get($spacing-sizes, 5) !default;
8
- $accordion-padding-y: map.get($spacing-sizes, 4) !default;
7
+ $accordion-width: 100% !default;
8
+ $accordion-padding-x: map.get($spacing-sizes, 5) !default;
9
+ $accordion-padding-y: map.get($spacing-sizes, 4) !default;
9
10
 
10
- $accordion-border-width: calc(var(--#{config.$prefix}border-width) * 2) !default;
11
- $accordion-border-color: transparent !default;
12
- $accordion-border-radius: radius.$border-radius-sm !default;
11
+ $accordion-border-width: calc(var(--#{config.$prefix}border-width) * 2) !default;
12
+ $accordion-border-color: transparent !default;
13
+ $accordion-border-radius: radius.$border-radius-sm !default;
13
14
 
14
- $accordion-body-padding-x: $accordion-padding-x !default;
15
- $accordion-body-padding-y: map.get($spacing-sizes, 2) !default;
16
- $accordion-body-color: var(--#{config.$prefix}body-color) !default;
17
- $accordion-body-bg: var(--#{config.$prefix}secondary-bg-subtle) !default;
15
+ $accordion-body-padding-x: $accordion-padding-x !default;
16
+ $accordion-body-padding-y: map.get($spacing-sizes, 2) !default;
17
+ $accordion-body-color: var(--#{config.$prefix}body-color) !default;
18
+ $accordion-body-bg: var(--#{config.$prefix}body-bg) !default;
18
19
 
19
- $accordion-header-padding-x: $accordion-padding-x !default;
20
- $accordion-header-padding-y: $accordion-padding-y !default;
21
- $accordion-header-color: var(--#{config.$prefix}body-color) !default;
22
- $accordion-header-bg: var(--#{config.$prefix}secondary-bg-subtle) !default;
20
+ $accordion-header-padding-x: $accordion-padding-x !default;
21
+ $accordion-header-padding-y: $accordion-padding-y !default;
22
+ $accordion-header-color: var(--#{config.$prefix}body-color) !default;
23
+ $accordion-header-bg: var(--#{config.$prefix}body-bg)!default;
23
24
 
24
- $accordion-header-bg-hover: var(--#{config.$prefix}tertiary-bg-subtle) !default;
25
+ $accordion-header-bg-hover: var(--#{config.$prefix}body-bg) !default;
25
26
 
26
- $accordion-icon-size: map.get($spacing-sizes, 5) !default;
27
- $accordion-icon-color: var(--#{config.$prefix}body-color) !default;
27
+ $accordion-icon-size: map.get($spacing-sizes, 5) !default;
28
+ $accordion-icon-color: var(--#{config.$prefix}body-color) !default;
28
29
 
29
- $accordion-icon-transform: 180deg !default;
30
+ $accordion-icon-transform: 180deg !default;
30
31
 
31
- $accordion-disable-color: var(--#{config.$prefix}tertiary-text-emphasis) !default;
32
+ $accordion-disable-color: var(--#{config.$prefix}tertiary-text-emphasis) !default;
@@ -1,7 +1,7 @@
1
- $transition-duration: 0.3s !default;
2
- $easing: cubic-bezier(0.23, 1, 0.32, 1) !default;
1
+ $transition-duration: 0.3s !default;
2
+ $easing: cubic-bezier(0.23, 1, 0.32, 1) !default;
3
3
 
4
4
  // Transition variables
5
- $transition-base: all $transition-duration $easing !default;
6
- $transition-fast: all 0.15s $easing !default;
7
- $transition-slow: all 0.5s $easing !default;
5
+ $transition-base: all $transition-duration $easing !default;
6
+ $transition-fast: all 0.15s $easing !default;
7
+ $transition-slow: all 0.5s $easing !default;
@@ -20,4 +20,4 @@ $avatar-group-more-border-color: var(--#{config.$prefix}primary-border-subtle) !
20
20
 
21
21
  // Avatar group transitions
22
22
  $avatar-group-transition-duration: 0.2s !default;
23
- $avatar-group-transition-timing: ease-in-out !default;
23
+ $avatar-group-transition-timing: ease-in-out !default;
@@ -1,25 +1,24 @@
1
1
  @use './settings.border-radius' as radius;
2
- @use './settings.colors' as colors;
3
2
  @use './settings.config' as config;
4
3
  @use './settings.typography' as fonts;
5
4
 
6
5
  // Avatar sizes
7
6
  $avatar-size: (
8
- xs: 24px,
9
- sm: 32px,
10
- md: 40px,
11
- lg: 48px,
12
- xl: 56px,
7
+ xs: 24px,
8
+ sm: 32px,
9
+ md: 40px,
10
+ lg: 48px,
11
+ xl: 56px,
13
12
  ) !default;
14
13
 
15
14
  // Avatar border radius
16
15
  $avatar-border-radius: (
17
- xs: radius.$border-radius-sm,
18
- sm: radius.$border-radius-sm,
19
- md: radius.$border-radius,
20
- lg: radius.$border-radius,
21
- xl: radius.$border-radius,
22
- circle: 50%,
16
+ xs: radius.$border-radius-sm,
17
+ sm: radius.$border-radius-sm,
18
+ md: radius.$border-radius,
19
+ lg: radius.$border-radius,
20
+ xl: radius.$border-radius,
21
+ circle: 50%,
23
22
  ) !default;
24
23
 
25
24
  // Avatar colors
@@ -32,15 +31,15 @@ $avatar-border-color: var(--#{config.$prefix}primary-border-subtle) !default;
32
31
  $avatar-fit: cover !default;
33
32
  $avatar-initials-font-weight: fonts.$font-weight-medium !default;
34
33
  $avatar-initials-font-size: (
35
- xs: fonts.$font-size-xs,
36
- sm: fonts.$font-size-xs,
37
- md: fonts.$font-size-sm,
38
- lg: fonts.$font-size-base,
39
- xl: fonts.$font-size-base,
34
+ xs: fonts.$font-size-xs,
35
+ sm: fonts.$font-size-xs,
36
+ md: fonts.$font-size-sm,
37
+ lg: fonts.$font-size-base,
38
+ xl: fonts.$font-size-base,
40
39
  ) !default;
41
40
 
42
41
  // Interactive states
43
42
  $avatar-hover-opacity: 0.8 !default;
44
43
  $avatar-focus-ring-width: calc(var(--#{config.$prefix}border-width) * 2) !default;
45
44
  $avatar-focus-ring-color: var(--#{config.$prefix}primary-border-subtle) !default;
46
- $avatar-disabled-opacity: 0.5 !default;
45
+ $avatar-disabled-opacity: 0.5 !default;
@@ -0,0 +1,10 @@
1
+ // Global effect toggles
2
+ $background-enable-backdrop-filter: false !default;
3
+ $background-enable-gradient-overlay: false !default;
4
+ $background-transparency-enable: false !default;
5
+ $background-enable-with-shadow: false !default;
6
+
7
+ // Core transparency levels (used in dynamic-background-core defaults)
8
+ $background-transparency: 0.5 !default;
9
+ // Core blur levels (used in dynamic-background-core defaults)
10
+ $background-blur: 2 !default;
@@ -15,4 +15,4 @@ $badge-border-radius: radius.$border-radius-pill !default;
15
15
 
16
16
  $badge-icon-size: map.get($spacing-sizes, 4) !default; //16px
17
17
 
18
- $badge-inner-items-gap: map.get($spacing-sizes, 1.5) !default; //6px
18
+ $badge-inner-items-gap: map.get($spacing-sizes, 1.5) !default; //6px
@@ -4,17 +4,23 @@
4
4
  @use 'settings.typography' as fonts;
5
5
 
6
6
  $breadcrumb-font-size: fonts.$font-size-sm !default;
7
+
7
8
  $breadcrumb-link-padding-y: map.get(spacing.$spacing-sizes, 1) !default;
8
9
  $breadcrumb-link-padding-x: map.get(spacing.$spacing-sizes, 0) !default;
9
10
  $breadcrumb-link-border-width: map.get(spacing.$spacing-sizes, 2) !default;
11
+
10
12
  $breadcrumb-items-gap: map.get(spacing.$spacing-sizes, 3) !default;
13
+
11
14
  $breadcrumb-margin-bottom: map.get(spacing.$spacing-sizes, 4) !default;
15
+
16
+ $breadcrumb-bg: null !default;
17
+
12
18
  $breadcrumb-color: var(--#{config.$prefix}tertiary-text-emphasis) !default;
13
19
  $breadcrumb-hover-color: var(--#{config.$prefix}body-color) !default;
14
20
  $breadcrumb-active-color: var(--#{config.$prefix}body-color) !default;
15
- $breadcrumb-bg: null !default;
21
+
16
22
  $breadcrumb-divider-color: var(--#{config.$prefix}tertiary-text-emphasis) !default;
17
23
  $breadcrumb-divider-active-color: var(--#{config.$prefix}tertiary-text-emphasis) !default;
18
24
  $breadcrumb-divider: '\203A' !default; // Unicode character for '›'
19
25
  $breadcrumb-divider-size: map.get(spacing.$spacing-sizes, 4) !default;
20
- $breadcrumb-divider-gap: map.get(spacing.$spacing-sizes, 3) !default;
26
+ $breadcrumb-divider-gap: map.get(spacing.$spacing-sizes, 3) !default;
@@ -17,33 +17,33 @@ $callout-padding-y: map.get($spacing-sizes, 4) !default; //16px
17
17
 
18
18
  $callout-tost-padding-x: map.get($spacing-sizes, 4) !default; //16px
19
19
  $callout-tost-padding-y: map.get($spacing-sizes, 4) !default; //16px
20
- $callout-toast-bg: $white !default;
20
+ $callout-toast-bg: var(--#{config.$prefix}body-bg) !default;
21
21
 
22
- $callout-bg: $white !default;
22
+ $callout-bg: var(--#{config.$prefix}body-bg) !default;
23
23
 
24
24
  $callout-border-radius: map.get($spacing-sizes, 2) !default; //8px
25
- $callout-border-color: $gray-3 !default;
25
+ $callout-border-color: var(--#{config.$prefix}border-color) !default;
26
26
  $callout-border-width: var(--#{config.$prefix}border-width) !default; //1px
27
27
 
28
28
  $callout-title-font-size: map.get($spacing-sizes, 4) !default; //16px
29
29
  $callout-title-font-weight: 600 !default;
30
- $callout-title-color: $gray-9 !default;
30
+ $callout-title-color: var(--#{config.$prefix}body-color) !default;
31
31
 
32
32
  $callout-text-font-size: map.get($spacing-sizes, 3.5) !default; //14px
33
33
  $callout-text-font-weight: 400 !default;
34
- $callout-text-color: $gray-7 !default;
34
+ $callout-text-color: var(--#{config.$prefix}body-color) !default;
35
35
 
36
36
  $callout-message-spacer: map.get($spacing-sizes, 3) !default; //12px
37
37
 
38
38
  $callout-icon-size: map.get($spacing-sizes, 5) !default; //20px
39
- $callout-icon-color: $primary !default;
39
+ $callout-icon-color: var(--#{config.$prefix}primary) !default;
40
40
 
41
41
  $callout-close-btn-size: map.get($spacing-sizes, 5) !default; //20px
42
42
 
43
43
  $callout-actions-spacer: map.get($spacing-sizes, 2) !default; //8px
44
44
  $callout-actions-spacer-y: map.get($spacing-sizes, 3) !default; //12px
45
45
 
46
- $callout-box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1) !default;
46
+ $callout-box-shadow: var(--#{config.$prefix}box-shadow) !default;
47
47
 
48
48
  // Toast positions
49
49
  $callout-toast-positions: (
@@ -30,10 +30,10 @@ $card-bg: var(--#{config.$prefix}primary-bg-subtle) !default;
30
30
  $card-bg-hover: var(--#{config.$prefix}secondary-bg-subtle) !default;
31
31
 
32
32
  $card-icon-size: map.get($spacing-sizes, 5) !default; //20px
33
- $card-icon-padding: map.get($spacing-sizes, 2.5) !default; //10px
33
+ $card-icon-padding: map.get($spacing-sizes, 1.5) !default; //10px
34
34
  $card-icon-bg: var(--#{config.$prefix}brand-bg-subtle) !default;
35
35
  $card-icon-color: var(--#{config.$prefix}brand-text-emphasis) !default;
36
36
 
37
37
  $card-width: 100% !default;
38
38
 
39
- $card-hover: false !default;
39
+ $card-hover: false !default;
@@ -10,7 +10,7 @@
10
10
  // =============================================================================
11
11
 
12
12
  // Chart Base Settings
13
- $chart-border-width: 1px !default;
13
+ $chart-border-width: var(--#{$prefix}border-width) !default; //1px
14
14
  $chart-border-color: var(--atomix-border-color) !default;
15
15
  $chart-bg: var(--atomix-body-bg) !default;
16
16
  $chart-border-radius: $border-radius-lg !default;
@@ -99,12 +99,12 @@ $chart-warning-hover: var(--atomix-warning-hover) !default;
99
99
  $chart-info-hover: var(--atomix-info-hover) !default;
100
100
 
101
101
  // Chart Effects
102
- $chart-backdrop-blur: 8px !default;
103
- $chart-header-backdrop-blur: 12px !default;
104
- $chart-tooltip-backdrop-blur: 16px !default;
102
+ $chart-backdrop-blur: map.get($spacing-sizes, 2) !default; //8px
103
+ $chart-header-backdrop-blur: map.get($spacing-sizes, 3) !default; //12px
104
+ $chart-tooltip-backdrop-blur: map.get($spacing-sizes, 4) !default; //16px
105
105
  $chart-glassmorphism-opacity: 0.6 !default;
106
106
  $chart-pattern-opacity: 0.03 !default;
107
- $chart-pattern-size: 20px !default;
107
+ $chart-pattern-size: map.get($spacing-sizes, 5) !default; //20px
108
108
 
109
109
  // Chart Transitions
110
110
  $chart-transition-duration: 0.3s !default;
@@ -113,7 +113,7 @@ $chart-hover-transform: translateY(-1px) !default;
113
113
  $chart-active-transform: translateY(0) !default;
114
114
 
115
115
  // Chart Focus
116
- $chart-focus-ring-width: 3px !default;
116
+ $chart-focus-ring-width: calc(var(--#{$prefix}border-width) * 3) !default; //3px
117
117
 
118
118
  // Chart Elements
119
119
  $chart-legend-color-size: map.get($spacing-sizes, 3) !default;
@@ -190,7 +190,7 @@ $chart-max-data-points: 500 !default;
190
190
  $chart-debounce-delay: 100ms !default;
191
191
 
192
192
  // Chart Accessibility
193
- $chart-focus-outline-width: 2px !default;
193
+ $chart-focus-outline-width: calc(var(--#{$prefix}border-width) * 2) !default; //2px
194
194
  $chart-focus-outline-color: var(--atomix-focus-border-color) !default;
195
195
  $chart-keyboard-nav-highlight: var(--atomix-primary-bg-subtle) !default;
196
196
 
@@ -1,2 +1,5 @@
1
- $checkbox-group-items-spacer-y: 8px !default;
2
- $checkbox-group-items-spacer-x: 16px !default;
1
+ @use 'sass:map';
2
+ @use './settings.spacing' as *;
3
+
4
+ $checkbox-group-items-spacer-y: map.get($spacing-sizes, 2) !default; //8px
5
+ $checkbox-group-items-spacer-x: map.get($spacing-sizes, 4) !default; //16px
@@ -1,19 +1,25 @@
1
+ @use 'sass:map';
2
+ @use './settings.spacing' as *;
1
3
  @use 'settings.config' as config;
2
4
  @use 'settings.typography' as fonts;
3
5
 
4
- $checkbox-width: 20px !default;
5
- $checkbox-height: 20px !default;
6
- $checkbox-spacer: 8px !default;
6
+ $checkbox-width: map.get($spacing-sizes, 5) !default; //20px
7
+ $checkbox-height: map.get($spacing-sizes, 5) !default; //20px
8
+
9
+ $checkbox-spacer: map.get($spacing-sizes, 2) !default; //8px
10
+
7
11
  $checkbox-font-size: fonts.$font-size-base !default;
8
12
  $checkbox-text-color: var(--#{config.$prefix}body-color) !default;
9
13
  $checkbox-checked-text-color: $checkbox-text-color !default;
10
14
  $checkbox-text-color-disabled: var(--#{config.$prefix}tertiary-text-emphasis) !default;
11
15
  $checkbox-checked-text-color-disabled: var(--#{config.$prefix}disabled-text-emphasis) !default;
16
+
12
17
  $checkbox-bg: var(--#{config.$prefix}body-bg) !default;
13
18
  $checkbox-checked-bg: var(--#{config.$prefix}invert-bg-subtle) !default;
14
19
  $checkbox-checked-bg-hover: var(--#{config.$prefix}tertiary-text-emphasis) !default;
15
20
  $checkbox-checked-bg-disabled: var(--#{config.$prefix}disabled-text-emphasis) !default;
16
- $checkbox-border-width: 1px !default;
21
+
22
+ $checkbox-border-width: var(--#{config.$prefix}border-width) !default;
17
23
  $checkbox-border-color: var(--#{config.$prefix}tertiary-text-emphasis) !default;
18
24
  $checkbox-border-color-hover: var(--#{config.$prefix}primary-text-emphasis) !default;
19
25
  $checkbox-border-color-disabled: var(--#{config.$prefix}disabled-text-emphasis) !default;
@@ -1,3 +1,5 @@
1
+ @use 'sass:map';
2
+ @use './settings.spacing' as *;
1
3
  @use 'settings.config' as config;
2
4
  @use 'settings.typography' as typography;
3
5
  @use 'settings.border-radius' as border-radius;
@@ -9,7 +11,7 @@ $countdown-focused-time-font-size: typography.$font-size-lg !default;
9
11
  $countdown-focused-label-font-size: typography.$font-size-xs !default;
10
12
  $countdown-focused-border-radius: border-radius.$border-radius !default;
11
13
  $countdown-focused-bg: var(--#{config.$prefix}secondary-bg-subtle) !default;
12
- $countdown-item-padding-x: 12px !default;
13
- $countdown-item-padding-y: 8px !default;
14
- $countdown-items-gap: 4px !default;
15
- $countdown-focused-items-gap: 8px !default;
14
+ $countdown-item-padding-x: map.get($spacing-sizes, 3) !default; //12px
15
+ $countdown-item-padding-y: map.get($spacing-sizes, 2) !default; //8px
16
+ $countdown-items-gap: map.get($spacing-sizes, 1) !default; //4px
17
+ $countdown-focused-items-gap: map.get($spacing-sizes, 2) !default; //8px
@@ -1,6 +1,8 @@
1
+ @use 'sass:map';
1
2
  @use 'settings.typography' as typography;
2
3
  @use 'settings.config' as config;
3
4
  @use 'settings.border-radius' as border-radius;
5
+ @use './settings.spacing' as *;
4
6
 
5
7
  $dropdown-min-width: 180px !default;
6
8
  $dropdown-font-size: typography.$font-size-base !default;
@@ -8,14 +10,14 @@ $dropdown-color: var(--#{config.$prefix}body-color) !default;
8
10
  $dropdown-bg: var(--#{config.$prefix}body-bg) !default;
9
11
  $dropdown-border-color: var(--#{config.$prefix}primary-border-subtle) !default;
10
12
  $dropdown-border-radius: border-radius.$border-radius !default;
11
- $dropdown-border-width: 1px !default;
12
- $dropdown-padding-x: 0 !default;
13
- $dropdown-padding-y: 8px !default;
14
- $dropdown-spacer: 4px !default;
13
+ $dropdown-border-width: var(--#{config.$prefix}border-width) !default;
14
+ $dropdown-padding-x: map.get($spacing-sizes, 0) !default; //0px
15
+ $dropdown-padding-y: map.get($spacing-sizes, 2) !default; //8px
16
+ $dropdown-spacer: map.get($spacing-sizes, 1) !default; //4px
15
17
  $dropdown-box-shadow: var(--#{config.$prefix}box-shadow) !default;
16
18
 
17
- $dropdown-item-padding-x: 16px !default;
18
- $dropdown-item-padding-y: 8px !default;
19
+ $dropdown-item-padding-x: map.get($spacing-sizes, 4) !default; //16px
20
+ $dropdown-item-padding-y: map.get($spacing-sizes, 2) !default; //8px
19
21
  $dropdown-item-hover-color: var(--#{config.$prefix}secondary-text-emphasis) !default;
20
22
  $dropdown-item-hover-bg: var(--#{config.$prefix}brand-bg-subtle) !default;
21
23
 
@@ -34,5 +36,5 @@ $dropdown-link-border-radius: border-radius.$border-radius !default;
34
36
  $dropdown-header-color: var(--#{config.$prefix}tertiary-text-emphasis) !default;
35
37
  $dropdown-header-padding: $dropdown-item-padding-y $dropdown-item-padding-x !default;
36
38
 
37
- $dropdown-divider-margin-y: 8px !default;
39
+ $dropdown-divider-margin-y: map.get($spacing-sizes, 2) !default; //8px
38
40
  $dropdown-divider-bg: var(--#{config.$prefix}primary-border-subtle) !default;
@@ -1,12 +1,13 @@
1
1
  @use 'sass:map';
2
2
  @use 'settings.z-layers' as z-layers;
3
3
  @use 'settings.config' as config;
4
+ @use './settings.spacing' as *;
4
5
 
5
6
  $edge-panel-zindex: map.get(z-layers.$z-layers, 5) !default;
6
7
  $edge-panel-width: 240px !default;
7
8
  $edge-panel-height: 30vh !default;
8
- $edge-panel-padding-x: 16px !default;
9
- $edge-panel-padding-y: 16px !default;
9
+ $edge-panel-padding-x: map.get($spacing-sizes, 4) !default; //16px
10
+ $edge-panel-padding-y: map.get($spacing-sizes, 4) !default; //16px
10
11
  $edge-panel-bg: var(--#{config.$prefix}body-bg) !default;
11
12
  $edge-panel-color: var(--#{config.$prefix}body-color) !default;
12
13
  $edge-panel-shadow: var(--#{config.$prefix}box-shadow) !default;
@@ -0,0 +1,125 @@
1
+ @use 'settings.config' as *;
2
+
3
+ // ============================================================================
4
+ // FOOTER SETTINGS
5
+ // ============================================================================
6
+
7
+ // 1. Footer Base Settings
8
+ $footer-padding-y: 3rem !default;
9
+ $footer-padding-x: 1rem !default;
10
+ $footer-container-max-width: 1200px !default;
11
+ $footer-bg: var(--#{$prefix}surface) !default;
12
+ $footer-color: var(--#{$prefix}text) !default;
13
+ $footer-border-width: 1px !default;
14
+ $footer-border-color: var(--#{$prefix}border) !default;
15
+
16
+ // 2. Footer Brand Settings
17
+ $footer-brand-margin-bottom: 1.5rem !default;
18
+ $footer-brand-logo-max-width: 200px !default;
19
+ $footer-brand-logo-max-height: 60px !default;
20
+ $footer-brand-name-font-size: 1.5rem !default;
21
+ $footer-brand-name-font-weight: 600 !default;
22
+ $footer-brand-name-color: var(--#{$prefix}text-emphasis) !default;
23
+ $footer-brand-description-font-size: 0.875rem !default;
24
+ $footer-brand-description-color: var(--#{$prefix}text-muted) !default;
25
+ $footer-brand-description-margin-top: 0.5rem !default;
26
+
27
+ // 3. Footer Section Settings
28
+ $footer-section-margin-bottom: 2rem !default;
29
+ $footer-section-title-font-size: 1.125rem !default;
30
+ $footer-section-title-font-weight: 600 !default;
31
+ $footer-section-title-color: var(--#{$prefix}text-emphasis) !default;
32
+ $footer-section-title-margin-bottom: 1rem !default;
33
+ $footer-section-content-gap: 0.5rem !default;
34
+
35
+ // 4. Footer Link Settings
36
+ $footer-link-color: var(--#{$prefix}text) !default;
37
+ $footer-link-hover-color: var(--#{$prefix}primary) !default;
38
+ $footer-link-active-color: var(--#{$prefix}primary) !default;
39
+ $footer-link-disabled-color: var(--#{$prefix}text-disabled) !default;
40
+ $footer-link-text-decoration: none !default;
41
+ $footer-link-hover-text-decoration: underline !default;
42
+ $footer-link-padding: 0.25rem 0 !default;
43
+ $footer-link-transition: color 0.15s ease-in-out !default;
44
+
45
+ // 5. Footer Social Settings
46
+ $footer-social-gap: 0.75rem !default;
47
+ $footer-social-margin-top: 1rem !default;
48
+ $footer-social-link-size: 2.5rem !default;
49
+ $footer-social-link-size-sm: 2rem !default;
50
+ $footer-social-link-size-lg: 3rem !default;
51
+ $footer-social-link-bg: var(--#{$prefix}surface-variant) !default;
52
+ $footer-social-link-color: var(--#{$prefix}text) !default;
53
+ $footer-social-link-hover-bg: var(--#{$prefix}primary) !default;
54
+ $footer-social-link-hover-color: var(--#{$prefix}primary-contrast) !default;
55
+ $footer-social-link-border-radius: 50% !default;
56
+ $footer-social-link-transition: all 0.15s ease-in-out !default;
57
+
58
+ // 6. Footer Newsletter Settings
59
+ $footer-newsletter-bg: var(--#{$prefix}surface-variant) !default;
60
+ $footer-newsletter-padding: 1.5rem !default;
61
+ $footer-newsletter-border-radius: 0.5rem !default;
62
+ $footer-newsletter-title-font-size: 1.125rem !default;
63
+ $footer-newsletter-title-font-weight: 600 !default;
64
+ $footer-newsletter-title-color: var(--#{$prefix}text-emphasis) !default;
65
+ $footer-newsletter-title-margin-bottom: 0.5rem !default;
66
+ $footer-newsletter-description-font-size: 0.875rem !default;
67
+ $footer-newsletter-description-color: var(--#{$prefix}text-muted) !default;
68
+ $footer-newsletter-description-margin-bottom: 1rem !default;
69
+ $footer-newsletter-input-border: 1px solid var(--#{$prefix}border) !default;
70
+ $footer-newsletter-input-border-radius: 0.375rem !default;
71
+ $footer-newsletter-input-padding: 0.75rem 1rem !default;
72
+ $footer-newsletter-input-font-size: 0.875rem !default;
73
+ $footer-newsletter-input-bg: var(--#{$prefix}surface) !default;
74
+ $footer-newsletter-input-color: var(--#{$prefix}text) !default;
75
+ $footer-newsletter-input-focus-border-color: var(--#{$prefix}primary) !default;
76
+ $footer-newsletter-input-focus-box-shadow: 0 0 0 0.125rem rgba(var(--#{$prefix}primary-rgb), 0.25) !default;
77
+ $footer-newsletter-button-bg: var(--#{$prefix}primary) !default;
78
+ $footer-newsletter-button-color: var(--#{$prefix}primary-contrast) !default;
79
+ $footer-newsletter-button-hover-bg: var(--#{$prefix}primary-hover) !default;
80
+ $footer-newsletter-button-padding: 0.75rem 1.5rem !default;
81
+ $footer-newsletter-button-border-radius: 0.375rem !default;
82
+ $footer-newsletter-button-font-weight: 500 !default;
83
+ $footer-newsletter-button-transition: background-color 0.15s ease-in-out !default;
84
+
85
+ // 7. Footer Bottom Settings
86
+ $footer-bottom-padding-top: 1.5rem !default;
87
+ $footer-bottom-margin-top: 2rem !default;
88
+ $footer-bottom-border-top: 1px solid var(--#{$prefix}border) !default;
89
+ $footer-copyright-font-size: 0.875rem !default;
90
+ $footer-copyright-color: var(--#{$prefix}text-muted) !default;
91
+ $footer-back-to-top-color: var(--#{$prefix}text) !default;
92
+ $footer-back-to-top-hover-color: var(--#{$prefix}primary) !default;
93
+ $footer-back-to-top-font-size: 0.875rem !default;
94
+ $footer-back-to-top-font-weight: 500 !default;
95
+ $footer-back-to-top-transition: color 0.15s ease-in-out !default;
96
+
97
+ // 8. Footer Divider Settings
98
+ $footer-divider-margin: 2rem 0 !default;
99
+ $footer-divider-border: 1px solid var(--#{$prefix}border) !default;
100
+ $footer-divider-opacity: 0.5 !default;
101
+
102
+ // 9. Footer Size Variants
103
+ $footer-padding-sm: 2rem !default;
104
+ $footer-padding-md: 3rem !default;
105
+ $footer-padding-lg: 4rem !default;
106
+
107
+ // 10. Footer Responsive Settings
108
+ $footer-mobile-padding-y: 2rem !default;
109
+ $footer-mobile-section-margin-bottom: 1.5rem !default;
110
+ $footer-mobile-brand-margin-bottom: 1rem !default;
111
+
112
+ // 11. Footer Sticky Settings
113
+ $footer-sticky-z-index: 10 !default;
114
+ $footer-sticky-box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1) !default;
115
+
116
+ // 12. Dark Mode Settings
117
+ $footer-bg-dark: var(--#{$prefix}surface-dark) !default;
118
+ $footer-color-dark: var(--#{$prefix}text-dark) !default;
119
+ $footer-border-color-dark: var(--#{$prefix}border-dark) !default;
120
+ $footer-brand-name-color-dark: var(--#{$prefix}text-emphasis-dark) !default;
121
+ $footer-brand-description-color-dark: var(--#{$prefix}text-muted-dark) !default;
122
+ $footer-section-title-color-dark: var(--#{$prefix}text-emphasis-dark) !default;
123
+ $footer-link-color-dark: var(--#{$prefix}text-dark) !default;
124
+ $footer-link-hover-color-dark: var(--#{$prefix}primary-dark) !default;
125
+ $footer-copyright-color-dark: var(--#{$prefix}text-muted-dark) !default;
@@ -1,3 +1,5 @@
1
+ @use 'sass:map';
2
+ @use 'settings.spacing' as *;
1
3
  @use './settings.config' as *;
2
4
  @use './settings.typography' as *;
3
5
 
@@ -5,7 +7,7 @@ $input-group-width: 100% !default;
5
7
  $input-group-label-color: var(--#{$prefix}secondary-text-emphasis) !default;
6
8
  $input-group-label-font-size: $font-size-sm !default;
7
9
  $input-group-label-font-size-sm: $font-size-xs !default;
8
- $input-group-label-margin-bottom: 8px !default;
10
+ $input-group-label-margin-bottom: map.get($spacing-sizes, 2) !default; //8px
9
11
  $input-group-helper-text-color: var(--#{$prefix}tertiary-text-emphasis) !default;
10
12
  $input-group-helper-text-font-size: $font-size-xs !default;
11
13
  $input-group-helper-text-margin-top: $input-group-label-margin-bottom !default;
@@ -1,6 +1,8 @@
1
+ @use 'sass:map';
2
+ @use './settings.spacing' as *;
1
3
  @use 'settings.config' as config;
2
4
  @use 'settings.border-radius' as *;
3
5
 
4
6
  $form-width: 100% !default;
5
- $form-items-spacer-y: 32px !default;
6
- $form-items-spacer-x: 12px !default;
7
+ $form-items-spacer-y: map.get($spacing-sizes, 8) !default; //32px
8
+ $form-items-spacer-x: map.get($spacing-sizes, 3) !default; //12px