@design-factory/styles 21.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +13 -0
  3. package/assets/fonts/amadeus-bold/amadeus-bold.woff +0 -0
  4. package/assets/fonts/amadeus-bold/amadeus-bold.woff2 +0 -0
  5. package/assets/fonts/amadeus-full/amadeus-full-bold.woff +0 -0
  6. package/assets/fonts/amadeus-full/amadeus-full-bold.woff2 +0 -0
  7. package/assets/fonts/amadeus-full/amadeus-full-bolditalic.woff +0 -0
  8. package/assets/fonts/amadeus-full/amadeus-full-bolditalic.woff2 +0 -0
  9. package/assets/fonts/amadeus-full/amadeus-full-italic.woff +0 -0
  10. package/assets/fonts/amadeus-full/amadeus-full-italic.woff2 +0 -0
  11. package/assets/fonts/amadeus-full/amadeus-full-light.woff +0 -0
  12. package/assets/fonts/amadeus-full/amadeus-full-light.woff2 +0 -0
  13. package/assets/fonts/amadeus-full/amadeus-full-lightitalic.woff +0 -0
  14. package/assets/fonts/amadeus-full/amadeus-full-lightitalic.woff2 +0 -0
  15. package/assets/fonts/amadeus-full/amadeus-full-regular.woff +0 -0
  16. package/assets/fonts/amadeus-full/amadeus-full-regular.woff2 +0 -0
  17. package/assets/fonts/amadeus-full/amadeus-full-thin.woff +0 -0
  18. package/assets/fonts/amadeus-full/amadeus-full-thin.woff2 +0 -0
  19. package/assets/fonts/amadeus-full/amadeus-full-thinitalic.woff +0 -0
  20. package/assets/fonts/amadeus-full/amadeus-full-thinitalic.woff2 +0 -0
  21. package/assets/fonts/amadeus-neue/bold/AmadeusNeueWeb-Bold.woff +0 -0
  22. package/assets/fonts/amadeus-neue/bold/AmadeusNeueWeb-Bold.woff2 +0 -0
  23. package/assets/fonts/amadeus-neue/bold/AmadeusNeueWeb-BoldItalic.woff +0 -0
  24. package/assets/fonts/amadeus-neue/bold/AmadeusNeueWeb-BoldItalic.woff2 +0 -0
  25. package/assets/fonts/amadeus-neue/light/AmadeusNeueWeb-Light.woff +0 -0
  26. package/assets/fonts/amadeus-neue/light/AmadeusNeueWeb-Light.woff2 +0 -0
  27. package/assets/fonts/amadeus-neue/light/AmadeusNeueWeb-LightItalic.woff +0 -0
  28. package/assets/fonts/amadeus-neue/light/AmadeusNeueWeb-LightItalic.woff2 +0 -0
  29. package/assets/fonts/amadeus-neue/medium/AmadeusNeueWeb-Medium.woff +0 -0
  30. package/assets/fonts/amadeus-neue/medium/AmadeusNeueWeb-Medium.woff2 +0 -0
  31. package/assets/fonts/amadeus-neue/medium/AmadeusNeueWeb-MediumItalic.woff +0 -0
  32. package/assets/fonts/amadeus-neue/medium/AmadeusNeueWeb-MediumItalic.woff2 +0 -0
  33. package/assets/fonts/amadeus-neue/regular/AmadeusNeueWeb-Regular.woff +0 -0
  34. package/assets/fonts/amadeus-neue/regular/AmadeusNeueWeb-Regular.woff2 +0 -0
  35. package/assets/fonts/amadeus-neue/regular/AmadeusNeueWeb-RegularItalic.woff +0 -0
  36. package/assets/fonts/amadeus-neue/regular/AmadeusNeueWeb-RegularItalic.woff2 +0 -0
  37. package/assets/fonts/amadeus-regular/amadeus-regular.woff +0 -0
  38. package/assets/fonts/amadeus-regular/amadeus-regular.woff2 +0 -0
  39. package/assets/fonts/amadeus-thin/amadeus-thin.woff +0 -0
  40. package/assets/fonts/amadeus-thin/amadeus-thin.woff2 +0 -0
  41. package/assets/fonts/df-icons/df-icons-light.woff2 +0 -0
  42. package/assets/fonts/df-icons/df-icons-solid.woff2 +0 -0
  43. package/assets/fonts/font-awesome/fa-brands-400.woff2 +0 -0
  44. package/assets/fonts/font-awesome/fa-light-300.woff2 +0 -0
  45. package/assets/fonts/font-awesome/fa-solid-900.woff2 +0 -0
  46. package/assets/fonts/noto/notosans-bold.woff +0 -0
  47. package/assets/fonts/noto/notosans-bold.woff2 +0 -0
  48. package/assets/fonts/noto/notosans-bolditalic.woff +0 -0
  49. package/assets/fonts/noto/notosans-bolditalic.woff2 +0 -0
  50. package/assets/fonts/noto/notosans-italic.woff +0 -0
  51. package/assets/fonts/noto/notosans-italic.woff2 +0 -0
  52. package/assets/fonts/noto/notosans-light.woff +0 -0
  53. package/assets/fonts/noto/notosans-light.woff2 +0 -0
  54. package/assets/fonts/noto/notosans-lightitalic.woff +0 -0
  55. package/assets/fonts/noto/notosans-lightitalic.woff2 +0 -0
  56. package/assets/fonts/noto/notosans-regular.woff +0 -0
  57. package/assets/fonts/noto/notosans-regular.woff2 +0 -0
  58. package/assets/fonts/noto/notosans-thin.woff +0 -0
  59. package/assets/fonts/noto/notosans-thin.woff2 +0 -0
  60. package/assets/fonts/noto/notosans-thinitalic.woff +0 -0
  61. package/assets/fonts/noto/notosans-thinitalic.woff2 +0 -0
  62. package/assets/fonts/noto/notosansarabic-bold.woff +0 -0
  63. package/assets/fonts/noto/notosansarabic-bold.woff2 +0 -0
  64. package/assets/fonts/noto/notosansarabic-light.woff +0 -0
  65. package/assets/fonts/noto/notosansarabic-light.woff2 +0 -0
  66. package/assets/fonts/noto/notosansarabic-regular.woff +0 -0
  67. package/assets/fonts/noto/notosansarabic-regular.woff2 +0 -0
  68. package/assets/fonts/noto/notosansarabic-thin.woff +0 -0
  69. package/assets/fonts/noto/notosansarabic-thin.woff2 +0 -0
  70. package/assets/fonts/noto/notosansgeorgian-bold.woff +0 -0
  71. package/assets/fonts/noto/notosansgeorgian-bold.woff2 +0 -0
  72. package/assets/fonts/noto/notosansgeorgian-light.woff +0 -0
  73. package/assets/fonts/noto/notosansgeorgian-light.woff2 +0 -0
  74. package/assets/fonts/noto/notosansgeorgian-regular.woff +0 -0
  75. package/assets/fonts/noto/notosansgeorgian-regular.woff2 +0 -0
  76. package/assets/fonts/noto/notosansgeorgian-thin.woff +0 -0
  77. package/assets/fonts/noto/notosansgeorgian-thin.woff2 +0 -0
  78. package/assets/fonts/noto/notosanshebrew-bold.woff +0 -0
  79. package/assets/fonts/noto/notosanshebrew-bold.woff2 +0 -0
  80. package/assets/fonts/noto/notosanshebrew-light.woff +0 -0
  81. package/assets/fonts/noto/notosanshebrew-light.woff2 +0 -0
  82. package/assets/fonts/noto/notosanshebrew-regular.woff +0 -0
  83. package/assets/fonts/noto/notosanshebrew-regular.woff2 +0 -0
  84. package/assets/fonts/noto/notosanshebrew-thin.woff +0 -0
  85. package/assets/fonts/noto/notosanshebrew-thin.woff2 +0 -0
  86. package/assets/fonts/source-sans-pro-bold/source-sans-pro-bold.woff +0 -0
  87. package/assets/fonts/source-sans-pro-bold/source-sans-pro-bold.woff2 +0 -0
  88. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-bold.woff +0 -0
  89. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-bold.woff2 +0 -0
  90. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-bolditalic.woff +0 -0
  91. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-bolditalic.woff2 +0 -0
  92. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-italic.woff +0 -0
  93. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-italic.woff2 +0 -0
  94. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-light.woff +0 -0
  95. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-light.woff2 +0 -0
  96. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-lightitalic.woff +0 -0
  97. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-lightitalic.woff2 +0 -0
  98. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-regular.woff +0 -0
  99. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-regular.woff2 +0 -0
  100. package/assets/fonts/source-sans-pro-light/source-sans-pro-light.woff +0 -0
  101. package/assets/fonts/source-sans-pro-light/source-sans-pro-light.woff2 +0 -0
  102. package/assets/fonts/source-sans-pro-regular/source-sans-pro-regular.woff +0 -0
  103. package/assets/fonts/source-sans-pro-regular/source-sans-pro-regular.woff2 +0 -0
  104. package/assets/fonts/source-sans-pro-semibold/source-sans-pro-semibold.woff +0 -0
  105. package/assets/fonts/source-sans-pro-semibold/source-sans-pro-semibold.woff2 +0 -0
  106. package/bundle.css +13 -0
  107. package/package.json +31 -0
  108. package/scss/_common.mixins.scss +30 -0
  109. package/scss/_common.root.scss +36 -0
  110. package/scss/_common.scss +50 -0
  111. package/scss/_common.variables.scss +62 -0
  112. package/scss/_new-brand-common.variables.scss +7 -0
  113. package/scss/_variables.scss +46 -0
  114. package/scss/agnosui/_variables.scss +33 -0
  115. package/scss/bootstrap/_helpers.scss +12 -0
  116. package/scss/bootstrap/_maps.scss +68 -0
  117. package/scss/bootstrap/_mixins-override.scss +69 -0
  118. package/scss/bootstrap/_rtl-styles-override.scss +111 -0
  119. package/scss/bootstrap/_utilities-override.scss +127 -0
  120. package/scss/bootstrap/_variables-dark.scss +86 -0
  121. package/scss/bootstrap/_variables.scss +1118 -0
  122. package/scss/bootstrap/helpers/_color-bg.scss +14 -0
  123. package/scss/bundle.scss +120 -0
  124. package/scss/components/accordion/_accordion.mixin.scss +94 -0
  125. package/scss/components/accordion/_accordion.scss +201 -0
  126. package/scss/components/accordion/_accordion.variables.scss +14 -0
  127. package/scss/components/alert/_alert.mixin.scss +64 -0
  128. package/scss/components/alert/_alert.scss +142 -0
  129. package/scss/components/alert/_alert.variables.scss +3 -0
  130. package/scss/components/badge/_badge.mixins.scss +9 -0
  131. package/scss/components/badge/_badge.scss +250 -0
  132. package/scss/components/badge/_badge.variables.scss +4 -0
  133. package/scss/components/brand-color/_brand-color.mixins.scss +17 -0
  134. package/scss/components/brand-color/_brand-color.scss +13 -0
  135. package/scss/components/brand-color/_brand-color.variables.scss +146 -0
  136. package/scss/components/brand-color/_brand-color_container.scss +23 -0
  137. package/scss/components/breadcrumbs/_breadcrumbs.scss +110 -0
  138. package/scss/components/breadcrumbs/_breadcrumbs.variables.scss +7 -0
  139. package/scss/components/button/_button.mixins.scss +144 -0
  140. package/scss/components/button/_button.scss +178 -0
  141. package/scss/components/button/_button.variables.scss +8 -0
  142. package/scss/components/button/_button_container.scss +47 -0
  143. package/scss/components/card/_card.scss +167 -0
  144. package/scss/components/card/_card.variables.scss +12 -0
  145. package/scss/components/carousel/_carousel.scss +83 -0
  146. package/scss/components/carousel/_carousel.variables.scss +3 -0
  147. package/scss/components/checkbox/_checkbox.scss +155 -0
  148. package/scss/components/checkbox/_checkbox.variables.scss +23 -0
  149. package/scss/components/collapse/_collapse.scss +48 -0
  150. package/scss/components/datepicker/_datepicker.scss +223 -0
  151. package/scss/components/drawer/_drawer.scss +120 -0
  152. package/scss/components/dropdown/_dropdown.mixins.scss +24 -0
  153. package/scss/components/dropdown/_dropdown.scss +129 -0
  154. package/scss/components/dropdown/_dropdown.variables.scss +15 -0
  155. package/scss/components/fieldset/_fieldset.variables.scss +2 -0
  156. package/scss/components/fonts/_font-awesome-icons-brands.scss +1585 -0
  157. package/scss/components/fonts/_font-awesome-icons.scss +12886 -0
  158. package/scss/components/fonts/_font-faces.mixins.scss +579 -0
  159. package/scss/components/fonts/_fonts-family.scss +195 -0
  160. package/scss/components/fonts/_fonts.scss +50 -0
  161. package/scss/components/fonts/_fonts.variables.scss +68 -0
  162. package/scss/components/fonts/_icon-font.scss +97 -0
  163. package/scss/components/fonts/_multi-lang.mixins.scss +8 -0
  164. package/scss/components/fonts/multi-lang/_arabic.mixins.scss +9 -0
  165. package/scss/components/fonts/multi-lang/_chinese.mixins.scss +14 -0
  166. package/scss/components/fonts/multi-lang/_cyrillic-extended.mixins.scss +11 -0
  167. package/scss/components/fonts/multi-lang/_cyrillic.mixins.scss +10 -0
  168. package/scss/components/fonts/multi-lang/_georgian.mixins.scss +9 -0
  169. package/scss/components/fonts/multi-lang/_hebrew.mixins.scss +9 -0
  170. package/scss/components/fonts/multi-lang/_japanese.mixins.scss +25 -0
  171. package/scss/components/fonts/multi-lang/_korean.mixins.scss +12 -0
  172. package/scss/components/footer/_footer.mixins.scss +36 -0
  173. package/scss/components/footer/_footer.scss +49 -0
  174. package/scss/components/form/_form.scss +101 -0
  175. package/scss/components/form/_form.variables.scss +48 -0
  176. package/scss/components/icon/_amadeus-icon.scss +29 -0
  177. package/scss/components/image/_image.variables.scss +2 -0
  178. package/scss/components/inputs/_inputs.mixin.scss +45 -0
  179. package/scss/components/inputs/_inputs.scss +254 -0
  180. package/scss/components/inputs/_inputs.variables.scss +20 -0
  181. package/scss/components/link/_link.scss +150 -0
  182. package/scss/components/link/_link.variables.scss +5 -0
  183. package/scss/components/list/_list.scss +17 -0
  184. package/scss/components/list-group/_list-group.scss +81 -0
  185. package/scss/components/list-group/_list-group.variables.scss +21 -0
  186. package/scss/components/media/_media.scss +27 -0
  187. package/scss/components/modal/_modal.scss +154 -0
  188. package/scss/components/modal/_modal.variables.scss +13 -0
  189. package/scss/components/navbar/_navbar.mixins.scss +46 -0
  190. package/scss/components/navbar/_navbar.scss +287 -0
  191. package/scss/components/navbar/_navbar.variables.scss +14 -0
  192. package/scss/components/pagination/_pagination.mixins.scss +30 -0
  193. package/scss/components/pagination/_pagination.scss +189 -0
  194. package/scss/components/pagination/_pagination.variables.scss +20 -0
  195. package/scss/components/pagination/_pagination_container.scss +17 -0
  196. package/scss/components/popover/_popover.mixins.scss +13 -0
  197. package/scss/components/popover/_popover.scss +65 -0
  198. package/scss/components/popover/_popover.variables.scss +17 -0
  199. package/scss/components/popover/_popover_container.scss +214 -0
  200. package/scss/components/progressbar/_progressbar.scss +52 -0
  201. package/scss/components/progressbar/_progressbar.variables.scss +6 -0
  202. package/scss/components/radio/_radio.scss +63 -0
  203. package/scss/components/rating/_rating.mixins.scss +17 -0
  204. package/scss/components/rating/_rating.scss +51 -0
  205. package/scss/components/scrollspy/_scrollspy.scss +42 -0
  206. package/scss/components/select/_select.mixin.scss +7 -0
  207. package/scss/components/select/_select.scss +531 -0
  208. package/scss/components/select/_select.variables.scss +18 -0
  209. package/scss/components/separator/_separator.scss +8 -0
  210. package/scss/components/separator/_separator.variables.scss +5 -0
  211. package/scss/components/sidenav/_sidenav-deprecated.scss +165 -0
  212. package/scss/components/sidenav/_sidenav.scss +227 -0
  213. package/scss/components/slider/_slider.mixins.scss +82 -0
  214. package/scss/components/slider/_slider.scss +402 -0
  215. package/scss/components/speechbubble/_speechbubble.mixin.scss +28 -0
  216. package/scss/components/speechbubble/_speechbubble.scss +107 -0
  217. package/scss/components/spinner/_spinner.scss +68 -0
  218. package/scss/components/spinner/_spinner.variables.scss +5 -0
  219. package/scss/components/spinner/_spinner_container.scss +43 -0
  220. package/scss/components/stepper/_stepper.mixins.scss +22 -0
  221. package/scss/components/stepper/_stepper.scss +176 -0
  222. package/scss/components/table/_advancedtables.scss +285 -0
  223. package/scss/components/table/_table.scss +19 -0
  224. package/scss/components/table/_table.variables.scss +20 -0
  225. package/scss/components/tabs/_tabs.scss +163 -0
  226. package/scss/components/tabs/_tabs.variables.scss +19 -0
  227. package/scss/components/timepicker/_timepicker.scss +9 -0
  228. package/scss/components/toast/_toast.scss +79 -0
  229. package/scss/components/toast/_toast.variables.scss +7 -0
  230. package/scss/components/toggle/_toggle.scss +140 -0
  231. package/scss/components/toggle/_toggle.variables.scss +10 -0
  232. package/scss/components/tooltip/_tooltip.scss +24 -0
  233. package/scss/components/tooltip/_tooltip.variables.scss +7 -0
  234. package/scss/components/tooltip/_tooltip_container.scss +116 -0
  235. package/scss/components/typeahead/_typeahead.scss +44 -0
  236. package/scss/components/waves/waves.scss +19 -0
  237. package/scss/namespace.scss +160 -0
  238. package/scss/themes/brand2023/_variables.scss +315 -0
  239. package/scss/utilities/_common.utilities.scss +98 -0
  240. package/scss/utilities/_form.mixins.scss +26 -0
  241. package/scss/utilities/_rgb.scss +10 -0
  242. package/scss/utilities.scss +5 -0
@@ -0,0 +1,144 @@
1
+ @mixin btn-states($style, $status, $config) {
2
+ --df-btn-color: var(--df-button-#{$config}-#{$style}-color-#{$status}-default-foreground);
3
+ --df-btn-bg: var(--df-button-#{$config}-#{$style}-color-#{$status}-default-background);
4
+ --df-btn-border-color: var(--df-button-#{$config}-#{$style}-color-#{$status}-default-border);
5
+ --df-btn-hover-color: var(--df-button-#{$config}-#{$style}-color-#{$status}-hovered-foreground);
6
+ --df-btn-hover-bg: var(--df-button-#{$config}-#{$style}-color-#{$status}-hovered-background);
7
+ --df-btn-hover-border-color: var(--df-button-#{$config}-#{$style}-color-#{$status}-hovered-border);
8
+ --df-btn-active-color: var(--df-button-#{$config}-#{$style}-color-#{$status}-pressed-foreground);
9
+ --df-btn-active-bg: var(--df-button-#{$config}-#{$style}-color-#{$status}-pressed-background);
10
+ --df-btn-active-border-color: var(--df-button-#{$config}-#{$style}-color-#{$status}-pressed-border);
11
+
12
+ &:focus-visible {
13
+ --df-btn-focus-box-shadow:
14
+ 0 0 0 2px var(var(--df-inner-box-shadow-color), var(--df-body-bg)), 0 0 0 4px var(--df-box-shadow-color);
15
+ --df-box-shadow-color: var(--df-button-#{$config}-#{$style}-color-#{$status}-default-border);
16
+ box-shadow: var(--df-btn-focus-box-shadow);
17
+
18
+ &:not(:hover):not(:active) {
19
+ color: var(--df-btn-color);
20
+ background-color: var(--df-btn-bg);
21
+ border-color: var(--df-btn-border-color);
22
+ }
23
+
24
+ &:hover:not(:active) {
25
+ --df-box-shadow-color: var(--df-button-#{$config}-#{$style}-color-#{$status}-hovered-border);
26
+ }
27
+
28
+ &:active {
29
+ --df-box-shadow-color: var(--df-button-#{$config}-#{$style}-color-#{$status}-pressed-border);
30
+ }
31
+ }
32
+ }
33
+
34
+ @mixin disabled-solid($style) {
35
+ --df-btn-disabled-color: var(--df-button-solid-#{$style}-color-disabled-foreground);
36
+ --df-btn-disabled-bg: var(--df-button-solid-#{$style}-color-disabled-background);
37
+ --df-btn-disabled-border-color: var(--df-button-solid-#{$style}-color-disabled-background);
38
+ }
39
+
40
+ @mixin disabled-outline($style) {
41
+ --df-btn-disabled-color: var(--df-button-outline-#{$style}-color-disabled-foreground);
42
+ --df-btn-disabled-bg: var(--df-button-outline-#{$style}-color-disabled-background);
43
+ --df-btn-disabled-border-color: var(--df-button-outline-#{$style}-color-disabled-border);
44
+ }
45
+
46
+ @mixin disabled-text($style) {
47
+ --df-btn-disabled-color: var(--df-button-text-#{$style}-color-disabled-foreground);
48
+ --df-btn-disabled-bg: var(--df-button-text-#{$style}-color-disabled-background);
49
+ --df-btn-disabled-border-color: transparent;
50
+ }
51
+
52
+ @mixin transparent-borders() {
53
+ --df-btn-border-color: transparent;
54
+ --df-btn-hover-border-color: transparent;
55
+ --df-btn-active-border-color: transparent;
56
+ }
57
+
58
+ @mixin style-btn($style, $status) {
59
+ @if $style == 'basic' {
60
+ .btn-#{$status} {
61
+ @include btn-states($style, $status, 'solid');
62
+ }
63
+ } @else {
64
+ .df-btn-#{$status}-mirror {
65
+ @include btn-states($style, $status, 'solid');
66
+ @include disabled-solid($style); //applied for mirror buttons
67
+ }
68
+ }
69
+ }
70
+
71
+ @mixin style-btn-outline($style, $status) {
72
+ @if $style == 'basic' {
73
+ .btn-outline-#{$status} {
74
+ @include btn-states($style, $status, 'outline');
75
+ @include disabled-outline($style);
76
+ }
77
+ } @else {
78
+ .df-btn-outline-#{$status}-mirror {
79
+ @include btn-states($style, $status, 'outline');
80
+ @include disabled-outline($style);
81
+ }
82
+ }
83
+ }
84
+
85
+ @mixin style-btn-text($style, $status) {
86
+ @if $style == 'basic' {
87
+ .btn-outline-#{$status}.df-btn-tertiary {
88
+ @include btn-states($style, $status, 'text');
89
+ @include disabled-text($style);
90
+ @include transparent-borders();
91
+ }
92
+ } @else {
93
+ .df-btn-outline-#{$status}-mirror.df-btn-tertiary {
94
+ @include btn-states($style, $status, 'text');
95
+ @include disabled-text($style);
96
+ @include transparent-borders();
97
+ }
98
+ }
99
+ }
100
+
101
+ /**
102
+ Sets the correct tokens depending if the button check is checked (state active) or not (state default).
103
+ */
104
+ @mixin btn-check-focused($class, $token, $state) {
105
+ + .#{$class} {
106
+ --df-box-shadow-color: var(--df-#{$token}-#{$state}-border);
107
+ border-color: var(--df-#{$token}-#{$state}-border);
108
+
109
+ &:hover {
110
+ @if ($state == 'active') {
111
+ --df-box-shadow-color: var(--df-#{$token}-activeHovered-border);
112
+ } @else if ($state == 'default') {
113
+ --df-box-shadow-color: var(--df-#{$token}-hovered-border);
114
+ }
115
+ }
116
+ }
117
+ }
118
+
119
+ /**
120
+ Sets the correct tokens depending if the button check is checked (state activeHovered) or not (state hovered).
121
+ */
122
+ @mixin btn-check-hover($class, $token, $state) {
123
+ $isActive: if($state == 'activeHovered', '-active', '');
124
+ + .#{$class}:hover {
125
+ --df-btn#{$isActive}-color: var(--df-#{$token}-#{$state}-foreground);
126
+ --df-btn#{$isActive}-bg: var(--df-#{$token}-#{$state}-background);
127
+ border-color: var(--df-#{$token}-#{$state}-border);
128
+ }
129
+ }
130
+
131
+ @mixin df-reset-buttongroup-radius($radius) {
132
+ // Set back the radius
133
+ > .btn:not(:last-child):not(.dropdown-toggle),
134
+ > .btn-group:not(:last-child) > .btn {
135
+ border-end-end-radius: $radius;
136
+ border-start-end-radius: $radius;
137
+ }
138
+ > .btn:nth-child(n + 3),
139
+ > :not(.btn-check) + .btn,
140
+ > .btn-group:not(:first-child) > .btn {
141
+ border-end-start-radius: $radius;
142
+ border-start-start-radius: $radius;
143
+ }
144
+ }
@@ -0,0 +1,178 @@
1
+ @use 'sass:map';
2
+ @use 'button.mixins' as btn-mixins;
3
+ @use '../../new-brand-common.variables' as df;
4
+
5
+ .btn {
6
+ --df-box-shadow-color: var(--df-btn-focus-shadow);
7
+ --df-btn-focus-box-shadow: #{df.$df-focus-box-shadow}; // override BS
8
+
9
+ display: inline-flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+ gap: var(--df-spacing-3);
13
+
14
+ &.btn-sm {
15
+ --df-btn-border-radius: var(--df-button-borderRadius-main-small);
16
+ gap: var(--df-spacing-2);
17
+ }
18
+
19
+ &.btn-lg {
20
+ --df-btn-border-radius: var(--df-button-borderRadius-main-large);
21
+ gap: var(--df-spacing-4);
22
+ }
23
+
24
+ @include btn-mixins.disabled-solid(
25
+ 'basic'
26
+ ); // disabled styles for solid buttons it will work for all .btn not only btn-{$status}
27
+
28
+ &.disabled,
29
+ &:disabled {
30
+ .btn-check:checked + &,
31
+ :not(.btn-check) + &:active,
32
+ &:first-child:active,
33
+ &.active,
34
+ &.show {
35
+ color: var(--df-btn-disabled-color);
36
+ background-color: var(--df-btn-disabled-bg);
37
+ border-color: var(--df-btn-disabled-border-color);
38
+ //background-image: if($enable-gradients, none, null);
39
+ @include box-shadow(none);
40
+ }
41
+
42
+ cursor: not-allowed;
43
+ pointer-events: auto; // override
44
+ }
45
+
46
+ &:focus-visible:not(:hover):not(:active) {
47
+ // workaround for high contrast mode that doesn't display box-shadow
48
+ @media (prefers-contrast: more) {
49
+ outline: 2px solid transparent;
50
+ }
51
+ }
52
+
53
+ // TODO - Rework the placeholder component and the style of the button
54
+ &.placeholder {
55
+ display: inline-block;
56
+ background-color: currentColor;
57
+ opacity: $placeholder-opacity-max;
58
+ pointer-events: none;
59
+ }
60
+ }
61
+
62
+ // TODO - deprecate / remove in favor of btn btn-sm btn-outline-neutral df-btn-tertiary df-btn-icononly fal fa-xmark
63
+ .btn-close {
64
+ --df-box-shadow-width: 2px;
65
+
66
+ &:hover {
67
+ background-color: var(--df-button-text-basic-color-neutral-hovered-background);
68
+ }
69
+
70
+ &:active {
71
+ background-color: var(--df-button-text-basic-color-neutral-pressed-background);
72
+ }
73
+ }
74
+
75
+ .show > .btn:not(:disabled):not(.disabled).dropdown-toggle {
76
+ &:not(.nav-link) {
77
+ color: var(--df-btn-active-color);
78
+ background-color: var(--df-btn-active-bg);
79
+ }
80
+ }
81
+
82
+ .df-btn-icononly {
83
+ --df-btn-border-width: 1px;
84
+ --df-btn-padding-x: 0;
85
+ --df-btn-padding-y: 0;
86
+
87
+ width: 2.25rem;
88
+ height: 2.25rem;
89
+
90
+ &.btn-sm {
91
+ width: 1.875rem;
92
+ height: 1.875rem;
93
+ }
94
+
95
+ &.btn-lg {
96
+ width: 3rem;
97
+ height: 3rem;
98
+ }
99
+ }
100
+
101
+ // Spaced button group override
102
+ .btn-group {
103
+ &.df-btn-group-spaced {
104
+ flex-wrap: wrap;
105
+
106
+ > .btn {
107
+ flex: 0 1 auto;
108
+ margin-bottom: 0.5rem;
109
+ margin-inline-end: var(--df-spacing-4);
110
+ }
111
+
112
+ &.btn-group-sm {
113
+ @include btn-mixins.df-reset-buttongroup-radius($btn-border-radius-sm);
114
+ }
115
+
116
+ &.btn-group-lg {
117
+ @include btn-mixins.df-reset-buttongroup-radius($btn-border-radius-lg);
118
+ }
119
+
120
+ &:not(.btn-group-sm):not(.btn-group-lg) {
121
+ @include btn-mixins.df-reset-buttongroup-radius($btn-border-radius);
122
+ }
123
+ }
124
+ }
125
+
126
+ @each $style in ('basic', 'mirror') {
127
+ @each $status in ('primary', 'danger', neutral) {
128
+ @include btn-mixins.style-btn($style, $status);
129
+ @include btn-mixins.style-btn-outline($style, $status);
130
+ @include btn-mixins.style-btn-text($style, $status);
131
+ }
132
+ }
133
+
134
+ //Button Group
135
+ .btn-check {
136
+ $btn-variants: (
137
+ 'btn-primary': 'button-solid-basic-color-primary',
138
+ 'df-btn-primary-mirror': 'button-solid-mirror-color-primary',
139
+ 'btn-outline-primary': 'button-outline-basic-color-primary',
140
+ 'df-btn-outline-primary-mirror': 'button-outline-mirror-color-primary'
141
+ );
142
+
143
+ // === START unchecked state ===
144
+ &:focus-visible {
145
+ @each $class, $token in $btn-variants {
146
+ @include btn-mixins.btn-check-focused($class, $token, 'default');
147
+ }
148
+ }
149
+
150
+ @each $class, $token in $btn-variants {
151
+ @include btn-mixins.btn-check-hover($class, $token, 'hovered');
152
+ }
153
+ // === END unchecked state ===
154
+
155
+ &:checked {
156
+ &:focus-visible {
157
+ @each $class, $token in $btn-variants {
158
+ @include btn-mixins.btn-check-focused($class, $token, 'active');
159
+ }
160
+ }
161
+
162
+ @each $class, $token in $btn-variants {
163
+ @include btn-mixins.btn-check-hover($class, $token, 'activeHovered');
164
+ }
165
+ }
166
+
167
+ &.disabled,
168
+ &:disabled {
169
+ + .btn {
170
+ cursor: not-allowed;
171
+ pointer-events: auto;
172
+ color: var(--df-btn-disabled-color);
173
+ background-color: var(--df-btn-disabled-bg);
174
+ border-color: var(--df-btn-disabled-border-color);
175
+ opacity: var(--df-btn-disabled-opacity);
176
+ }
177
+ }
178
+ }
@@ -0,0 +1,8 @@
1
+ $btn-font-family: var(--df-typo-font-primaryFamily), sans-serif !default;
2
+ $btn-font-weight: var(--df-typo-weight-medium) !default;
3
+ $btn-disabled-opacity: 1 !default;
4
+ $btn-link-focus-shadow-rgb: rgba(
5
+ var(--df-btn-focus-shadow-rgb),
6
+ 0.5
7
+ ) !default; //TODO: remove when editing to-rgb function
8
+ $btn-border-radius: var(--df-button-borderRadius-main-medium) !default;
@@ -0,0 +1,47 @@
1
+ @use 'sass:color';
2
+
3
+ @each $state, $value in $theme-colors {
4
+ $colorbtn: color-contrast($value);
5
+ $hover-background: if(
6
+ $colorbtn == $color-contrast-light,
7
+ shade-color($value, $btn-hover-bg-shade-amount),
8
+ tint-color($value, $btn-hover-bg-tint-amount)
9
+ );
10
+ $hover-border: if(
11
+ $colorbtn == $color-contrast-light,
12
+ shade-color($value, $btn-hover-border-shade-amount),
13
+ tint-color($value, $btn-hover-border-tint-amount)
14
+ );
15
+ $hover-color: color-contrast($hover-background);
16
+ $active-background: if(
17
+ $colorbtn == $color-contrast-light,
18
+ shade-color($value, $btn-active-bg-shade-amount),
19
+ tint-color($value, $btn-active-bg-tint-amount)
20
+ );
21
+ $active-color: color-contrast($active-background);
22
+ $active-border: if(
23
+ $colorbtn == $color-contrast-light,
24
+ shade-color($value, $btn-active-border-shade-amount),
25
+ tint-color($value, $btn-active-border-tint-amount)
26
+ );
27
+
28
+ $active-background-outline: $value;
29
+ $active-border-outline: $value;
30
+ $active-color-outline: color-contrast($active-background-outline);
31
+
32
+ // this code is because
33
+ // .btn-check:focus + &
34
+ // from the file _buttons.scss is not working with the wrapper
35
+ #{$df-css-namespace-selector} {
36
+ .btn-check:checked,
37
+ .btn-check:active {
38
+ & + .btn-#{$state},
39
+ & + .btn-outline-#{$state} {
40
+ color: var(--#{$prefix}btn-active-color);
41
+ background-color: var(--#{$prefix}btn-active-bg);
42
+ border-color: var(--#{$prefix}btn-active-border-color);
43
+ background-image: if($enable-gradients, none, null);
44
+ }
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,167 @@
1
+ .card.btn {
2
+ --df-btn-font-weight: var(--df-typo-weight-regular);
3
+ }
4
+
5
+ .card {
6
+ box-shadow: var(--df-card-box-shadow);
7
+
8
+ .card-title {
9
+ font-weight: var(--df-typo-weight-medium);
10
+ }
11
+
12
+ .card-text {
13
+ margin-block-end: var(--df-spacing-5);
14
+
15
+ &:last-child {
16
+ margin-block-end: 0;
17
+ }
18
+ }
19
+
20
+ .card-subtitle {
21
+ margin-block-end: var(--df-spacing-5);
22
+ }
23
+
24
+ &.border-0 {
25
+ box-shadow: none;
26
+ }
27
+
28
+ &.btn-outline-primary {
29
+ display: block;
30
+ text-align: start;
31
+ color: var(--df-card-focusable-color);
32
+ border: none;
33
+ border-radius: var(--df-borderRadius-main-small);
34
+ height: inherit;
35
+
36
+ &:focus-visible {
37
+ --df-box-shadow-color: var(--df-color-focus-main-border);
38
+
39
+ &:not(:hover):not(:active) {
40
+ color: var(--df-card-focusable-color);
41
+ }
42
+ }
43
+
44
+ &:not([aria-disabled='true']):not([disabled]):not(.disabled) {
45
+ &.df-card-selected {
46
+ background-color: var(--df-color-primary-alt-active-background);
47
+ }
48
+
49
+ &:hover {
50
+ background-color: var(--df-color-primary-alt-hovered-background);
51
+ border: none;
52
+
53
+ &:active {
54
+ background-color: var(--df-btn-active-bg);
55
+ border: none;
56
+ }
57
+ }
58
+
59
+ &:active {
60
+ border: none;
61
+ }
62
+ }
63
+
64
+ &[aria-disabled='true'],
65
+ &[aria-disabled='true']:hover,
66
+ &[aria-disabled='true']:active,
67
+ &.disabled,
68
+ &[disabled],
69
+ &[disabled]:hover,
70
+ &[disabled]:active,
71
+ &.disabled:hover,
72
+ &.disabled:active {
73
+ --df-secondary-color: var(
74
+ --df-color-disabled-main-foreground
75
+ ); //Override text-muted color TODO check when doing wrappers
76
+
77
+ color: var(--df-color-disabled-main-foreground);
78
+ background-color: var(--df-color-disabled-main-background);
79
+
80
+ cursor: not-allowed;
81
+ }
82
+ }
83
+ }
84
+
85
+ .card-group,
86
+ .df-accordion-card {
87
+ //redefine BS variables to use for card group and accordion card //TODO: remove when removing accordion cards
88
+ --df-card-box-shadow: #{$card-box-shadow};
89
+ --df-card-border-radius: #{$card-border-radius};
90
+ }
91
+
92
+ .df-accordion-card {
93
+ box-shadow: var(--df-card-box-shadow);
94
+ border-radius: var(--df-card-border-radius);
95
+
96
+ &.card,
97
+ & > .card {
98
+ box-shadow: none;
99
+
100
+ .card-header {
101
+ border-bottom-width: 0;
102
+ background-color: var(--df-color-inert-neutral-main-background);
103
+ }
104
+
105
+ .card-body {
106
+ border-top: none;
107
+ }
108
+
109
+ &:not(:last-of-type) {
110
+ border-bottom-left-radius: 0;
111
+ border-bottom-right-radius: 0;
112
+ border-bottom-width: 0;
113
+ }
114
+
115
+ &:not(:first-of-type) {
116
+ border-top-left-radius: 0;
117
+ border-top-right-radius: 0;
118
+
119
+ border-top: 1px solid var(--df-color-inert-neutral-main-border);
120
+ }
121
+
122
+ &:last-of-type .card-header {
123
+ border-bottom-left-radius: var(--df-card-border-radius);
124
+ border-bottom-right-radius: var(--df-card-border-radius);
125
+ }
126
+ }
127
+ }
128
+
129
+ @include media-breakpoint-up(md) {
130
+ .card-group {
131
+ box-shadow: var(--df-card-box-shadow);
132
+ border-radius: var(--df-card-border-radius);
133
+
134
+ .card {
135
+ box-shadow: none;
136
+ border-radius: 0;
137
+
138
+ &:not(:last-of-type) {
139
+ border-inline-end: 1px solid var(--df-color-inert-neutral-main-border);
140
+ }
141
+
142
+ .card-img-top {
143
+ border-radius: 0;
144
+ }
145
+
146
+ &:first-of-type {
147
+ border-end-start-radius: var(--df-card-border-radius);
148
+
149
+ &,
150
+ & .card-img-top {
151
+ border-start-start-radius: var(--df-card-border-radius);
152
+ border-start-end-radius: 0;
153
+ }
154
+ }
155
+
156
+ &:last-of-type {
157
+ border-end-end-radius: var(--df-card-border-radius);
158
+
159
+ &,
160
+ & .card-img-top {
161
+ border-start-end-radius: var(--df-card-border-radius);
162
+ border-start-start-radius: 0;
163
+ }
164
+ }
165
+ }
166
+ }
167
+ }
@@ -0,0 +1,12 @@
1
+ @use '../../new-brand-common.variables' as df;
2
+
3
+ $card-spacer-y: var(--df-spacing-5) !default;
4
+ $card-spacer-x: var(--df-spacing-5) !default;
5
+ $card-title-spacer-y: var(--df-spacing-5) !default;
6
+ $card-border-width: 0 !default;
7
+ $card-border-radius: var(--df-border-radius-lg) !default;
8
+ $card-box-shadow: df.$df-box-shadow !default;
9
+ $card-inner-border-radius: var(--df-borderRadius-main-medium) !default;
10
+ $card-cap-padding-y: var(--df-spacing-3) !default;
11
+ $card-cap-padding-x: var(--df-spacing-5) !default;
12
+ $card-bg: var(--df-color-inert-neutral-main-background) !default;
@@ -0,0 +1,83 @@
1
+ .carousel {
2
+ //TODO: needs to be redone with wrappers
3
+ &:focus-visible {
4
+ outline: none;
5
+ box-shadow:
6
+ 0 0 0 2px var(--df-inner-box-shadow-color, var(--df-body-bg)),
7
+ 0 0 0 4px var(--df-color-neutral-main-default-border);
8
+ }
9
+
10
+ &.df-carousel-isFirst {
11
+ .carousel-control-prev-icon {
12
+ display: none;
13
+ }
14
+
15
+ .carousel-control-prev {
16
+ cursor: initial;
17
+ }
18
+ }
19
+
20
+ &.df-carousel-isLast {
21
+ .carousel-control-next-icon {
22
+ display: none;
23
+ cursor: var(--df-disabled-cursor);
24
+ }
25
+
26
+ .carousel-control-next {
27
+ cursor: initial;
28
+ }
29
+ }
30
+
31
+ .carousel-control-prev-icon,
32
+ .carousel-control-next-icon {
33
+ border-radius: var(--df-borderRadius-main-medium);
34
+ background-color: var(
35
+ --df-color-neutral-main-default-background
36
+ ); //using T2 because not a button => TODO: remove it with wrappers
37
+ &:hover {
38
+ background-color: var(
39
+ --df-color-neutral-main-hovered-background
40
+ ); //using T2 because not a button => TODO: remove it with wrappers
41
+ }
42
+
43
+ background-image: none;
44
+ position: relative;
45
+ &::after {
46
+ content: '';
47
+ position: absolute;
48
+ inset: 0;
49
+ background-image: none;
50
+ background-color: var(
51
+ --df-color-neutral-main-default-foreground
52
+ ); //using T2 because not a button => TODO: remove it with wrappers
53
+ mask-repeat: no-repeat;
54
+ mask-size: 50% 50%;
55
+ mask-position: center;
56
+ }
57
+ }
58
+
59
+ .carousel-control-prev-icon {
60
+ &::after {
61
+ mask-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='black'><path d='m130.51937,239.025 194.35,-194.34 c9.37,-9.37 24.57,-9.37 33.94,0 l22.67,22.67 c9.36,9.36 9.37,24.52 0.04,33.9 l-154.03,154.74 154.02,154.75 c9.34,9.38 9.32,24.54 -0.04,33.9 l-22.67,22.67 c-9.37,9.37 -24.57,9.37 -33.94,0 l-194.34,-194.35 c-9.37,-9.37 -9.37,-24.57 0,-33.94z'/></svg>");
62
+ }
63
+ }
64
+
65
+ .carousel-control-next-icon {
66
+ &::after {
67
+ mask-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='black'><path d='m381.47632,272.9705 -194.344,194.343 c-9.373,9.373 -24.569,9.373 -33.941,0 l-22.667,-22.667 c-9.357,-9.357 -9.375,-24.522 -0.04,-33.901 l154.021,-154.746 -154.021,-154.745 c-9.335,-9.379 -9.317,-24.544 0.04,-33.901 l22.667,-22.667 c9.373,-9.373 24.569,-9.373 33.941,0 l194.343,194.343 c9.373,9.372 9.373,24.568 10e-4,33.941z'/></svg>");
68
+ }
69
+ }
70
+
71
+ .carousel-caption {
72
+ background-color: rgb(#000, 0.55); //There is no token
73
+ bottom: 0; // override
74
+ // default value is 20 + 20 of the caption bottom - 10px BS carousel indicator hit area
75
+ padding-bottom: 30px; // override
76
+ padding-top: 0.75rem; // override as no variable is set
77
+ }
78
+
79
+ .carousel-indicators {
80
+ //10px BS carousel indicator hit area
81
+ bottom: -10px;
82
+ }
83
+ }
@@ -0,0 +1,3 @@
1
+ $carousel-control-opacity: 1 !default;
2
+ $carousel-caption-width: 100% !default;
3
+ $carousel-control-icon-width: 2.25rem !default;