@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
@@ -1,10 +1,12 @@
1
+ @use 'sass:map';
2
+ @use './settings.spacing' as *;
1
3
  @use 'settings.typography' as typography;
2
4
  @use 'settings.config' as config;
3
5
 
4
6
  $testimonial-width: 100% !default;
5
- $testimonial-padding-x: 0px !default;
6
- $testimonial-padding-y: 0px !default;
7
- $testimonial-inner-spacer: 20px !default;
7
+ $testimonial-padding-x: map.get($spacing-sizes, 0) !default; //0px
8
+ $testimonial-padding-y: map.get($spacing-sizes, 0) !default; //0px
9
+ $testimonial-inner-spacer: map.get($spacing-sizes, 20) !default; //20px
8
10
  $testimonial-bg: null !default;
9
11
  $testimonial-quote-font-size: typography.$h3-font-size !default;
10
12
  $testimonial-quote-font-size-sm: typography.$font-size-md !default;
@@ -15,4 +17,4 @@ $testimonial-author-font-size: typography.$font-size-base !default;
15
17
  $testimonial-author-color: var(--#{config.$prefix}body-color) !default;
16
18
  $testimonial-author-role-font-size: typography.$font-size-xs !default;
17
19
  $testimonial-author-role-color: var(--#{config.$prefix}tertiary-text-emphasis) !default;
18
- $testimonial-author-inner-spacer: 12px !default;
20
+ $testimonial-author-inner-spacer: map.get($spacing-sizes, 12) !default; //12px
@@ -1,8 +1,10 @@
1
+ @use 'sass:map';
2
+ @use './settings.spacing' as *;
1
3
  @use 'settings.config' as config;
2
4
  @use 'settings.border-radius' as borderRadius;
3
5
  @use 'settings.typography' as typography;
4
6
 
5
- $toggle-gap: 12px !default;
7
+ $toggle-gap: map.get($spacing-sizes, 3) !default; //12px
6
8
 
7
9
  $toggle-switch-on-bg: var(--#{config.$prefix}primary) !default;
8
10
  $toggle-switch-off-bg: var(--#{config.$prefix}tertiary-bg-subtle) !default;
@@ -1,10 +1,12 @@
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 borderRadius;
4
6
 
5
7
  $tooltip-max-width: 240px !default;
6
- $tooltip-padding-x: 12px !default;
7
- $tooltip-padding-y: 8px !default;
8
+ $tooltip-padding-x: map.get($spacing-sizes, 3) !default; //12px
9
+ $tooltip-padding-y: map.get($spacing-sizes, 2) !default; //8px
8
10
  $tooltip-bg: var(--#{config.$prefix}invert-bg-subtle) !default;
9
11
 
10
12
  $tooltip-font-size: typography.$font-size-xs !default;
@@ -16,4 +18,4 @@ $tooltip-border-width: null !default;
16
18
  $tooltip-border-color: null !default;
17
19
  $tooltip-box-shadow: null !default;
18
20
 
19
- $tooltip-arrow-size: 12px !default;
21
+ $tooltip-arrow-size: map.get($spacing-sizes, 3) !default; //12px
@@ -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 borderRadius;
@@ -6,54 +8,54 @@ $upload-width: 500px !default;
6
8
  $upload-width-sm: 400px !default;
7
9
  $upload-width-large: 700px !default;
8
10
 
9
- $upload-padding-x: 0px !default;
10
- $upload-padding-y: 0px !default;
11
+ $upload-padding-x: map.get($spacing-sizes, 0) !default; //0px
12
+ $upload-padding-y: map.get($spacing-sizes, 0) !default; //0px
11
13
 
12
- $upload-inner-padding-x: 12px !default;
13
- $upload-inner-padding-y: 12px !default;
14
+ $upload-inner-padding-x: map.get($spacing-sizes, 3) !default; //12px
15
+ $upload-inner-padding-y: map.get($spacing-sizes, 3) !default; //12px
14
16
 
15
- $upload-large-inner-padding-x: 20px !default;
16
- $upload-large-inner-padding-y: 22px !default;
17
+ $upload-large-inner-padding-x: map.get($spacing-sizes, 5) !default; //20px
18
+ $upload-large-inner-padding-y: map.get($spacing-sizes, 5.5) !default; //22px
17
19
 
18
20
  $upload-border-radius: borderRadius.$border-radius !default;
19
- $upload-border-width: 1px !default;
21
+ $upload-border-width: var(--#{config.$prefix}border-width) !default;
20
22
  $upload-border-color: var(--#{config.$prefix}primary-border-subtle) !default;
21
23
  $upload-bg: var(--#{config.$prefix}body-bg) !default;
22
24
  $upload-hover-bg: null !default;
23
25
 
24
- $upload-icon-size: 32px !default;
25
- $upload-icon-padding: 0px !default;
26
+ $upload-icon-size: map.get($spacing-sizes, 8) !default; //32px
27
+ $upload-icon-padding: map.get($spacing-sizes, 0) !default; //0px
26
28
  $upload-icon-bg: var(--#{config.$prefix}body-bg) !default;
27
29
 
28
30
  $upload-title-font-size: typography.$font-size-lg !default;
29
31
  $upload-title-font-weight: typography.$headings-font-weight !default;
30
32
  $upload-title-color: var(--#{config.$prefix}body-color) !default;
31
- $upload-title-margin-top: 8px !default;
33
+ $upload-title-margin-top: map.get($spacing-sizes, 2) !default; //8px
32
34
 
33
35
  $upload-text-font-size: typography.$font-size-sm !default;
34
36
  $upload-text-font-weight: typography.$font-weight-normal !default;
35
37
  $upload-text-color: var(--#{config.$prefix}body-color) !default;
36
- $upload-text-margin-top: 4px !default;
38
+ $upload-text-margin-top: map.get($spacing-sizes, 4) !default; //4px
37
39
 
38
- $upload-btn-margin-top: 20px !default;
39
- $upload-btn-margin-left: 16px !default;
40
+ $upload-btn-margin-top: map.get($spacing-sizes, 5) !default; //20px
41
+ $upload-btn-margin-left: map.get($spacing-sizes, 4) !default; //16px
40
42
 
41
- $upload-content-margin-left: 16px !default;
43
+ $upload-content-margin-left: map.get($spacing-sizes, 4) !default; //16px
42
44
 
43
45
  $upload-helper-text-font-size: typography.$font-size-sm !default;
44
46
  $upload-helper-text-font-weight: typography.$font-weight-normal !default;
45
47
  $upload-helper-text-color: var(--#{config.$prefix}body-color) !default;
46
- $upload-helper-text-margin-top: 8px !default;
48
+ $upload-helper-text-margin-top: map.get($spacing-sizes, 2) !default; //8px
47
49
 
48
50
  $upload-disabled-opacity: 0.5 !default;
49
51
 
50
- $upload-loader-padding-x: 12px !default;
51
- $upload-loader-padding-y: 12px !default;
52
+ $upload-loader-padding-x: map.get($spacing-sizes, 3) !default; //12px
53
+ $upload-loader-padding-y: map.get($spacing-sizes, 3) !default; //12px
52
54
  $upload-loader-bg-opacity: 1 !default;
53
55
  $upload-loader-border-radius: $upload-border-radius !default;
54
56
  $upload-loader-border-width: $upload-border-width !default;
55
57
  $upload-loader-border-color: $upload-border-color !default;
56
- $upload-loader-margin-top: 20px !default;
58
+ $upload-loader-margin-top: map.get($spacing-sizes, 5) !default; //20px
57
59
  $upload-loader-title-color: var(--#{config.$prefix}body-color) !default;
58
60
  $upload-loader-title-font-size: typography.$font-size-sm !default;
59
61
  $upload-loader-title-font-weight: typography.$font-weight-normal !default;
@@ -61,8 +63,8 @@ $upload-loader-text-color: var(--#{config.$prefix}tertiary-text-emphasis) !defau
61
63
  $upload-loader-text-font-size: typography.$font-size-sm !default;
62
64
  $upload-loader-text-margin-top: 5px !default;
63
65
  $upload-loader-bar-height: 10px !default;
64
- $upload-loader-bar-margin-top: 10px !default;
65
- $upload-loader-control-icon-size: 20px !default;
66
+ $upload-loader-bar-margin-top: map.get($spacing-sizes, 2.5) !default; //10px
67
+ $upload-loader-control-icon-size: map.get($spacing-sizes, 5) !default; //20px
66
68
  $upload-loader-contorl-color: var(--#{config.$prefix}body-color) !default;
67
69
 
68
70
  $upload-loader-progress-color: var(--#{config.$prefix}primary) !default;
@@ -99,3 +99,22 @@
99
99
  // $iteration-count: infinite
100
100
  // );
101
101
  // }
102
+
103
+
104
+ @keyframes backgroundMoving {
105
+ 0% {
106
+ background-position: 0 0%;
107
+ }
108
+ 250% {
109
+ background-position: 100% 100%;
110
+ }
111
+ 50% {
112
+ background-position: 100% 0%;
113
+ }
114
+ 75% {
115
+ background-position: 0% 100%;
116
+ }
117
+ 100% {
118
+ background-position: 100% 100%;
119
+ }
120
+ }
@@ -0,0 +1,87 @@
1
+ @use 'sass:meta';
2
+ @use 'sass:string';
3
+ @use 'sass:math';
4
+ @use 'sass:color';
5
+ @use 'sass:map';
6
+ @use '../01-settings/settings.background' as *;
7
+ @use '../01-settings/settings.config' as *;
8
+ @use '../02-tools/tools.to-rgb' as *;
9
+
10
+ @mixin dynamic-background(
11
+ $color,
12
+ $transparency: $background-transparency,
13
+ $background-transparency-enable: $background-transparency-enable,
14
+ $blur: $background-blur,
15
+ $use-backdrop-filter: $background-enable-backdrop-filter
16
+ ) {
17
+ // Validate inputs
18
+ @if $transparency < 0 or $transparency > 1 {
19
+ @error 'Transparency must be between 0 and 1, got #{$transparency}';
20
+ }
21
+
22
+ @if $blur < 0 {
23
+ @error 'Blur value must be non-negative, got #{$blur}px';
24
+ }
25
+
26
+ // Apply background based on transparency settings
27
+ @if $background-transparency-enable and $transparency > 0 {
28
+ @if $background-enable-gradient-overlay {
29
+ background:
30
+ // Top highlight layer
31
+ linear-gradient(
32
+ 135deg,
33
+ rgba(255, 255, 255, 0.15) 0%,
34
+ rgba(255, 255, 255, 0.05) 25%,
35
+ transparent 50%
36
+ ),
37
+ // Main liquid glass layer
38
+ linear-gradient(
39
+ to bottom,
40
+ color-mix(in srgb, #{$color} #{math.percentage($transparency * 1.2)}, transparent) 0%,
41
+ color-mix(in srgb, #{$color} #{math.percentage($transparency)}, transparent) 35%,
42
+ color-mix(in srgb, #{$color} #{math.percentage($transparency * 0.8)}, transparent) 65%,
43
+ color-mix(in srgb, #{$color} #{math.percentage($transparency * 1.1)}, transparent) 100%
44
+ ),
45
+ // Bottom shadow layer
46
+ radial-gradient(
47
+ ellipse at bottom,
48
+ color-mix(in srgb, #{$color} #{math.percentage($transparency * 0.3)}, transparent) 0%,
49
+ transparent 70%
50
+ );
51
+ } @else {
52
+ background-color: color-mix(
53
+ in srgb,
54
+ #{$color} #{math.percentage($transparency)},
55
+ transparent
56
+ );
57
+ }
58
+ } @else {
59
+ background-color: $color;
60
+ }
61
+
62
+ // Apply backdrop filter effects based on settings
63
+ @if $background-enable-backdrop-filter and ($blur > 0 or $use-backdrop-filter) {
64
+ backdrop-filter: blur(#{$blur}px) saturate(1.5) contrast(1.2) brightness(1.1);
65
+ -webkit-backdrop-filter: blur(#{$blur}px) saturate(1.2) contrast(1.2) brightness(1.1);
66
+ }
67
+
68
+ @if $background-enable-with-shadow {
69
+ box-shadow:
70
+ var(--atomix-box-shadow-inset),
71
+ // Inner glow
72
+ // inset
73
+ // 0
74
+ // 1px
75
+ // 0
76
+ // rgba(255, 255, 255, 0.25),
77
+ // inset 0 -1px 0 color-mix(in srgb, #{$color} 10%, transparent),
78
+ // Outer depth
79
+ 4px
80
+ 8px
81
+ 32px
82
+ color-mix(in srgb, #{$color} 20%, transparent),
83
+ 0 1px 2px rgba(0, 0, 0, 0.1),
84
+ 0 8px 20px color-mix(in srgb, #{$color} 20%, transparent),
85
+ 0 1px 2px rgba(0, 0, 0, 0.1);
86
+ }
87
+ }
@@ -1,9 +1,22 @@
1
1
  @use 'sass:math';
2
+ @use 'sass:meta';
2
3
 
3
- @function rem($pixels) {
4
- @if math.unit($pixels) == 'px' {
5
- @return math.div($pixels, 16px) * 1rem;
6
- } @else {
7
- @return $pixels;
4
+ @function rem($value) {
5
+ // Handle null values safely, just return null if value is null
6
+ @if $value == null {
7
+ @return null;
8
8
  }
9
+
10
+ // If it's not a number, return as it is
11
+ @if meta.type-of($value) != 'number' {
12
+ @return $value;
13
+ }
14
+
15
+ // If the value is in pixels, convert to rem
16
+ @if math.unit($value) == 'px' {
17
+ @return math.div($value, 16px) * 1rem;
18
+ }
19
+
20
+ // Otherwise, return the value as it is (for rem/em/% values)
21
+ @return $value;
9
22
  }
@@ -3,6 +3,7 @@
3
3
  //
4
4
  // This API is used to generate utility classes from utility maps defined in the 99-utilities folder.
5
5
  // It provides a consistent way to generate utility classes with responsive variants, states, and more.
6
+ // SASS Decimal Interpolation – If you want a more technical name, this focuses on the way decimal values are now processed in SASS with this code base or you can just use integer both will work.
6
7
 
7
8
  @use 'sass:map';
8
9
  @use 'sass:string';
@@ -13,14 +14,14 @@
13
14
 
14
15
  // Default config for utilities
15
16
  $utility-defaults: (
16
- responsive: true,
17
- rfs: false,
18
- print: false,
19
- dark: false,
20
- class: null,
21
- state: null,
22
- local-vars: (),
23
- rtl: true,
17
+ responsive: true,
18
+ rfs: false,
19
+ print: false,
20
+ dark: false,
21
+ class: null,
22
+ state: null,
23
+ local-vars: (),
24
+ rtl: true,
24
25
  ) !default;
25
26
 
26
27
  // Core function to generate utility classes
@@ -37,11 +38,16 @@ $utility-defaults: (
37
38
  $property-class: map.get($utility, class);
38
39
  $property-class: if($property-class, $property-class, list.nth($properties, 1));
39
40
 
41
+ // Handle decimal key case for spacing, only for numbers (integers or floats)
42
+ @if meta.type-of($key) == 'number' and $key % 1 != 0 {
43
+ $key: round($key); // Round to the nearest integer
44
+ }
45
+
40
46
  // Multiple properties are possible, like with borders or shadows
41
47
  $property-class: if(
42
- meta.type-of($property-class) == 'list',
43
- list.nth($property-class, 1),
44
- $property-class
48
+ meta.type-of($property-class) == 'list',
49
+ list.nth($property-class, 1),
50
+ $property-class
45
51
  );
46
52
 
47
53
  // State variants (hover, focus, active, etc.)
@@ -99,9 +105,9 @@ $utility-defaults: (
99
105
  ) {
100
106
  // Set default breakpoint infix generator if not provided
101
107
  $breakpoint-infix-generator: if(
102
- $breakpoint-infix-generator,
103
- $breakpoint-infix-generator,
104
- get-breakpoint-infix
108
+ $breakpoint-infix-generator,
109
+ $breakpoint-infix-generator,
110
+ get-breakpoint-infix
105
111
  );
106
112
 
107
113
  @each $utility, $config in $utilities {
@@ -111,17 +117,17 @@ $utility-defaults: (
111
117
  // Only process if the utility is not explicitly set to false
112
118
  @if map.get($config, generated) != false {
113
119
  $utility-map: (
114
- property: map.get($config, property),
115
- values: map.get($config, values),
116
- class: map.get($config, class),
117
- state: map.get($config, state),
118
- rtl: map.get($config, rtl),
120
+ property: map.get($config, property),
121
+ values: map.get($config, values),
122
+ class: map.get($config, class),
123
+ state: map.get($config, state),
124
+ rtl: map.get($config, rtl),
119
125
  );
120
126
 
121
127
  @include generate-responsive-utilities(
122
- $utility-map,
123
- $breakpoints,
124
- $breakpoint-infix-generator
128
+ $utility-map,
129
+ $breakpoints,
130
+ $breakpoint-infix-generator
125
131
  );
126
132
  }
127
133
  }
@@ -153,10 +159,10 @@ $utility-defaults: (
153
159
 
154
160
  @each $key in $keys {
155
161
  $result: map.merge(
156
- $result,
157
- (
158
- $key: if($index <= list.length($values), list.nth($values, $index), null),
159
- )
162
+ $result,
163
+ (
164
+ $key: if($index <= list.length($values), list.nth($values, $index), null),
165
+ )
160
166
  );
161
167
  $index: $index + 1;
162
168
  }
@@ -8,8 +8,8 @@
8
8
  @use '../01-settings/settings.box-shadow' as box-shadow;
9
9
  @use '../01-settings/settings.typography' as typography;
10
10
  @use 'sass:meta';
11
+ @use 'sass:map';
11
12
 
12
- $gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)) !default;
13
13
 
14
14
  :root,
15
15
  [data-#{config.$prefix}color-mode='light'] {
@@ -53,13 +53,20 @@ $gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255
53
53
  --#{config.$prefix}#{$color}-hover: #{$value};
54
54
  }
55
55
 
56
+ @each $color, $value in color-maps.$gradient-colors {
57
+ --#{config.$prefix}#{$color}-gradient: #{$value};
58
+ }
59
+
60
+ --#{config.$prefix}gradient: #{map.get(color-maps.$gradient-colors, light)};
61
+
56
62
  // Fonts
57
63
 
58
64
  // Note: Use meta.inspect for lists so that quoted items keep the quotes.
59
65
  // See https://github.com/sass/sass/issues/2383#issuecomment-336349172
60
66
  --#{config.$prefix}font-sans-serif: #{meta.inspect(typography.$font-family-sans-serif)};
61
67
  --#{config.$prefix}font-monospace: #{meta.inspect(typography.$font-family-monospace)};
62
- --#{config.$prefix}gradient: #{$gradient};
68
+
69
+
63
70
 
64
71
  // Root and body
65
72
  // scss-docs-start root-body-variables
@@ -161,6 +168,12 @@ $gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255
161
168
  --#{config.$prefix}#{$color}-hover: #{$value};
162
169
  }
163
170
 
171
+ @each $color, $value in color-maps.$gradient-colors-dark {
172
+ --#{config.$prefix}#{$color}-gradient: #{$value};
173
+ }
174
+
175
+ --#{config.$prefix}gradient: #{map.get(color-maps.$gradient-colors, dark)};
176
+
164
177
  --#{config.$prefix}box-shadow: #{box-shadow.$box-shadow-dark};
165
178
  --#{config.$prefix}box-shadow-xs: #{box-shadow.$box-shadow-xs-dark};
166
179
  --#{config.$prefix}box-shadow-sm: #{box-shadow.$box-shadow-sm-dark};
@@ -1,4 +1,9 @@
1
1
  @use '../01-settings/settings.typography' as typography;
2
+ @use '../01-settings/settings.config' as config;
3
+ @use '../01-settings/settings.background' as *;
4
+ @use '../01-settings/settings.colors' as *;
5
+ @use '../02-tools/tools.background' as *;
6
+ @use '../02-tools/tools.color-mode' as *;
2
7
 
3
8
  body {
4
9
  -webkit-font-smoothing: antialiased;
@@ -12,4 +17,5 @@ body {
12
17
  &.is-modal-open {
13
18
  overflow: hidden;
14
19
  }
20
+
15
21
  }
@@ -2,6 +2,8 @@
2
2
  @use '../01-settings/settings.accordion' as accordion;
3
3
  @use '../01-settings/settings.config' as config;
4
4
  @use '../02-tools/tools.animations' as *;
5
+ @use '../01-settings/settings.background' as *;
6
+ @use '../02-tools/tools.background' as *;
5
7
 
6
8
  .c-accordion {
7
9
  $root: &;
@@ -30,20 +32,22 @@
30
32
  border: var(--#{config.$prefix}accordion-border-width) solid
31
33
  var(--#{config.$prefix}accordion-border-color);
32
34
  border-radius: var(--#{config.$prefix}accordion-border-radius);
33
-
34
35
  overflow: hidden;
35
36
 
36
37
  &__header {
37
38
  display: flex;
38
39
  align-items: center;
39
40
  justify-content: space-between;
41
+ width: 100%;
40
42
  color: var(--#{config.$prefix}accordion-header-color);
41
43
  padding: var(--#{config.$prefix}accordion-header-padding-y)
42
44
  var(--#{config.$prefix}accordion-header-padding-x);
43
- background-color: var(--#{config.$prefix}accordion-header-bg);
44
45
  border: none;
46
+ outline: none;
45
47
  cursor: pointer;
46
- width: 100%;
48
+ @include basic-transition(background);
49
+
50
+ @include dynamic-background(var(--#{config.$prefix}accordion-header-bg));
47
51
 
48
52
  &--icon-left {
49
53
  flex-direction: row-reverse;
@@ -80,9 +84,9 @@
80
84
  color: var(--#{config.$prefix}accordion-body-color);
81
85
  padding: var(--#{config.$prefix}accordion-body-padding-y)
82
86
  var(--#{config.$prefix}accordion-body-padding-x);
83
- background-color: var(--#{config.$prefix}accordion-body-bg);
84
87
  border-radius: 0 0 var(--#{config.$prefix}accordion-border-radius)
85
88
  var(--#{config.$prefix}accordion-border-radius);
89
+ @include dynamic-background(var(--#{config.$prefix}accordion-body-bg));
86
90
  }
87
91
 
88
92
  &:focus,
@@ -108,4 +112,20 @@
108
112
  --#{config.$prefix}accordion-body-color: var(--#{config.$prefix}accordion-disable-color);
109
113
  --#{config.$prefix}accordion-icon-color: var(--#{config.$prefix}accordion-disable-color);
110
114
  }
115
+
116
+ &--glass {
117
+ border-color: transparent;
118
+ #{$root}__header {
119
+ @include dynamic-background(
120
+ var(--#{config.$prefix}accordion-header-bg),
121
+ $background-transparency-enable: true
122
+ );
123
+ }
124
+ #{$root}__body {
125
+ @include dynamic-background(
126
+ var(--#{config.$prefix}accordion-header-bg),
127
+ $background-transparency-enable: true
128
+ );
129
+ }
130
+ }
111
131
  }
@@ -6,6 +6,7 @@
6
6
  @use '../02-tools/tools.border-radius' as *;
7
7
  @use '../02-tools/tools.animations' as *;
8
8
  @use '../01-settings/settings.typography' as *;
9
+ @use '../02-tools/tools.background' as *;
9
10
 
10
11
  // Avatar group component
11
12
  .c-avatar-group {
@@ -35,7 +36,7 @@
35
36
  color: var(--#{$prefix}avatar-group-more-color);
36
37
  font-size: var(--#{$prefix}avatar-group-more-font-size);
37
38
  font-weight: var(--#{$prefix}avatar-group-more-font-weight);
38
- background-color: var(--#{$prefix}avatar-group-more-bg);
39
+ @include dynamic-background(var(--#{$prefix}avatar-group-more-bg));
39
40
  border: var(--#{$prefix}avatar-group-more-border-width) solid
40
41
  var(--#{$prefix}avatar-group-more-border-color);
41
42
 
@@ -6,6 +6,7 @@
6
6
  @use '../02-tools/tools.object-fit' as *;
7
7
  @use '../02-tools/tools.size' as *;
8
8
  @use '../02-tools/tools.animations' as *;
9
+ @use '../02-tools/tools.background' as *;
9
10
 
10
11
  // Avatar base component
11
12
  .c-avatar {
@@ -31,7 +32,7 @@
31
32
  justify-content: center;
32
33
  @include square(var(--#{$prefix}avatar-size));
33
34
  border-radius: var(--#{$prefix}avatar-border-radius);
34
- background-color: var(--#{$prefix}avatar-bg);
35
+ @include dynamic-background(var(--#{$prefix}avatar-bg));
35
36
  color: var(--#{$prefix}avatar-color);
36
37
  border: var(--#{$prefix}avatar-border-width) solid var(--#{$prefix}avatar-border-color);
37
38
  overflow: hidden;
@@ -4,6 +4,7 @@
4
4
  @use '../01-settings/settings.colors' as *;
5
5
  @use '../01-settings/settings.maps' as maps;
6
6
  @use '../02-tools/tools.rem' as *;
7
+ @use '../02-tools/tools.background' as *;
7
8
 
8
9
  .c-badge {
9
10
  --#{$prefix}tag-font-size: #{$badge-font-size};
@@ -25,7 +26,7 @@
25
26
  line-height: 1;
26
27
  padding: var(--#{$prefix}tag-padding-y) var(--#{$prefix}tag-padding-x);
27
28
  border-radius: var(--#{$prefix}tag-border-radius);
28
- background-color: var(--#{$prefix}tag-bg-color);
29
+ @include dynamic-background(var(--#{$prefix}tag-bg-color));
29
30
  user-select: none;
30
31
 
31
32
  &__icon {
@@ -42,6 +43,24 @@
42
43
  --#{$prefix}tag-padding-y: #{$badge-padding-y-lg};
43
44
  }
44
45
 
46
+ &--glass {
47
+ @include dynamic-background(
48
+ var(--#{$prefix}tag-bg-color),
49
+ $background-transparency-enable: true,
50
+ $transparency: 0.8
51
+ );
52
+ border: 1px solid color-mix(in srgb, var(--#{$prefix}tag-color) 20%, transparent);
53
+
54
+
55
+ // // Outer depth and glass effect
56
+ // 0 1px 3px rgba(0, 0, 0, 0.2),
57
+ // 0 2px 8px rgba(0, 0, 0, 0.15),
58
+ // 0 4px 16px rgba(0, 0, 0, 0.1),
59
+
60
+ // Subtle highlight on top edge
61
+ // 0 -1px 0 rgba(255, 255, 255, 0.1);
62
+ }
63
+
45
64
  @each $color, $value in maps.$theme-colors {
46
65
  &--#{$color} {
47
66
  @if ($color == 'primary') {
@@ -50,9 +69,11 @@
50
69
  } @else if ($color == 'dark') {
51
70
  --#{$prefix}tag-bg-color: var(--#{$prefix}dark);
52
71
  --#{$prefix}tag-color: var(--#{$prefix}light);
72
+ border: 1px solid var(--#{$prefix}dark);
53
73
  } @else if ($color == 'light') {
54
74
  --#{$prefix}tag-bg-color: var(--#{$prefix}light);
55
75
  --#{$prefix}tag-color: var(--#{$prefix}dark);
76
+ border: 1px solid var(--#{$prefix}light);
56
77
  } @else {
57
78
  --#{$prefix}tag-bg-color: var(--#{$prefix}#{$color}-bg-subtle);
58
79
  --#{$prefix}tag-color: var(--#{$prefix}#{$color}-text-emphasis);
@@ -60,3 +81,17 @@
60
81
  }
61
82
  }
62
83
  }
84
+
85
+ .c-badge-glass {
86
+ box-shadow:
87
+ // Inner glow
88
+ inset 1px 2px 3px rgba(255, 255, 255, 0.1),
89
+ inset 0 -2px 2px rgba(0, 0, 0, 0.3);
90
+ // 0 1px 3px rgba(0, 0, 0, 0.2),
91
+ // 0 2px 8px rgba(0, 0, 0, 0.15),
92
+ // 0 4px 16px rgba(0, 0, 0, 0.1),
93
+ // Subtle highlight on top edge
94
+ // 0 -1px 0 rgba(255, 255, 255, 0.1);
95
+ border-radius: 999px;
96
+
97
+ }
@@ -5,6 +5,7 @@
5
5
  @use '../01-settings/settings.typography' as *;
6
6
  @use '../02-tools/tools.rem' as *;
7
7
  @use '../02-tools/tools.animations' as *;
8
+ @use '../02-tools/tools.background' as *;
8
9
 
9
10
  .c-breadcrumb {
10
11
  --#{$prefix}breadcrumb-font-size: #{$breadcrumb-font-size};
@@ -30,7 +31,7 @@
30
31
  list-style: none;
31
32
  padding-left: 0px;
32
33
  margin-bottom: var(--#{$prefix}breadcrumb-margin-bottom);
33
- background-color: var(--#{$prefix}breadcrumb-bg);
34
+ @include dynamic-background(var(--#{$prefix}breadcrumb-bg));
34
35
 
35
36
  &__item {
36
37
  display: flex;