@broxus/react-uikit 0.23.3 → 0.24.1

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 (319) hide show
  1. package/README.md +328 -1
  2. package/dist/assets/accordion.css +1 -4
  3. package/dist/assets/alert.css +28 -1
  4. package/dist/assets/align.css +5 -5
  5. package/dist/assets/animation.css +1 -1
  6. package/dist/assets/article.css +2 -3
  7. package/dist/assets/background.css +5 -5
  8. package/dist/assets/badge.css +1 -4
  9. package/dist/assets/base.css +2 -12
  10. package/dist/assets/breadcrumb.css +1 -5
  11. package/dist/assets/button.css +12 -37
  12. package/dist/assets/card.css +3 -5
  13. package/dist/assets/checkbox.css +1 -1
  14. package/dist/assets/close.css +1 -3
  15. package/dist/assets/column.css +7 -8
  16. package/dist/assets/comment.css +2 -2
  17. package/dist/assets/container.css +7 -7
  18. package/dist/assets/control.css +1 -16
  19. package/dist/assets/cover.css +1 -1
  20. package/dist/assets/custom-media.css +15 -0
  21. package/dist/assets/datepicker.css +5 -3
  22. package/dist/assets/description-list.css +1 -2
  23. package/dist/assets/divider.css +2 -5
  24. package/dist/assets/dotnav.css +1 -5
  25. package/dist/assets/drawer.css +1 -1
  26. package/dist/assets/drop.css +1 -1
  27. package/dist/assets/dropdown.css +1 -9
  28. package/dist/assets/flex.css +9 -9
  29. package/dist/assets/form.css +3 -11
  30. package/dist/assets/grid.css +7 -8
  31. package/dist/assets/heading.css +3 -6
  32. package/dist/assets/height.css +1 -1
  33. package/dist/assets/icon.css +1 -10
  34. package/dist/assets/iconnav.css +1 -4
  35. package/dist/assets/input-number.css +1 -1
  36. package/dist/assets/input-password.css +1 -1
  37. package/dist/assets/inverse.css +1 -1
  38. package/dist/assets/label.css +1 -3
  39. package/dist/assets/leader.css +1 -1
  40. package/dist/assets/link.css +1 -5
  41. package/dist/assets/list.css +1 -8
  42. package/dist/assets/margin.css +11 -11
  43. package/dist/assets/marker.css +1 -4
  44. package/dist/assets/modal.css +4 -4
  45. package/dist/assets/motion.css +3 -2
  46. package/dist/assets/nav.css +1 -18
  47. package/dist/assets/navbar.css +5 -23
  48. package/dist/assets/overlay.css +1 -1
  49. package/dist/assets/padding.css +3 -3
  50. package/dist/assets/pagination.css +1 -5
  51. package/dist/assets/placeholder.css +1 -1
  52. package/dist/assets/position.css +2 -2
  53. package/dist/assets/print.css +4 -4
  54. package/dist/assets/progress.css +1 -1
  55. package/dist/assets/radio.css +1 -1
  56. package/dist/assets/search.css +1 -10
  57. package/dist/assets/section.css +4 -4
  58. package/dist/assets/segmented.css +1 -1
  59. package/dist/assets/select.css +3 -5
  60. package/dist/assets/slider.css +1 -1
  61. package/dist/assets/spinner.css +1 -1
  62. package/dist/assets/sticky.css +1 -1
  63. package/dist/assets/subnav.css +1 -14
  64. package/dist/assets/svg.css +1 -1
  65. package/dist/assets/switch.css +1 -1
  66. package/dist/assets/table.css +2 -8
  67. package/dist/assets/tabs.css +1 -6
  68. package/dist/assets/text.css +5 -12
  69. package/dist/assets/textarea.css +1 -1
  70. package/dist/assets/thumbnav.css +1 -1
  71. package/dist/assets/tile.css +5 -5
  72. package/dist/assets/tooltip.css +1 -1
  73. package/dist/assets/totop.css +1 -4
  74. package/dist/assets/transition.css +1 -1
  75. package/dist/assets/uikit.min.css +1 -1
  76. package/dist/assets/utility.css +1 -3
  77. package/dist/assets/vars.css +72 -4
  78. package/dist/assets/visibility.css +9 -9
  79. package/dist/assets/width.css +9 -9
  80. package/dist/esm/components/Navbar/Nav.d.ts +1 -1
  81. package/package.json +321 -18
  82. package/styles/_components.scss +85 -0
  83. package/styles/_globals.scss +151 -0
  84. package/styles/_import.components.scss +508 -58
  85. package/styles/_import.scss +608 -83
  86. package/styles/_import.utilities.scss +162 -17
  87. package/styles/_mixins.scss +1865 -0
  88. package/styles/_tokens.scss +85 -0
  89. package/styles/{mixin.scss → _utils.scss} +8 -2
  90. package/styles/{variables.scss → _variables.scss} +41 -27
  91. package/styles/accordion/_accordion.scss +231 -0
  92. package/styles/accordion/_index.scss +11 -0
  93. package/styles/alert/_alert.scss +201 -0
  94. package/styles/alert/_index.scss +11 -0
  95. package/styles/align/_align.scss +153 -0
  96. package/styles/align/_index.scss +11 -0
  97. package/styles/animation/_animation.scss +353 -0
  98. package/styles/animation/_index.scss +11 -0
  99. package/styles/article/_article.scss +112 -0
  100. package/styles/article/_index.scss +11 -0
  101. package/styles/background/_background.scss +170 -0
  102. package/styles/background/_index.scss +11 -0
  103. package/styles/badge/_badge.scss +92 -0
  104. package/styles/badge/_index.scss +11 -0
  105. package/styles/base/_base.scss +661 -0
  106. package/styles/base/_index.scss +11 -0
  107. package/styles/breadcrumb/_breadcrumb.scss +133 -0
  108. package/styles/breadcrumb/_index.scss +11 -0
  109. package/styles/button/_button.scss +707 -0
  110. package/styles/button/_index.scss +11 -0
  111. package/styles/card/_card.scss +544 -0
  112. package/styles/card/_index.scss +11 -0
  113. package/styles/checkbox/_checkbox.scss +329 -0
  114. package/styles/checkbox/_index.scss +11 -0
  115. package/styles/close/_close.scss +69 -0
  116. package/styles/close/_index.scss +11 -0
  117. package/styles/column/_column.scss +159 -0
  118. package/styles/column/_index.scss +11 -0
  119. package/styles/comment/_comment.scss +195 -0
  120. package/styles/comment/_index.scss +11 -0
  121. package/styles/container/_container.scss +240 -0
  122. package/styles/container/_index.scss +11 -0
  123. package/styles/control/_control.scss +364 -0
  124. package/styles/control/_index.scss +11 -0
  125. package/styles/cover/_cover.scss +99 -0
  126. package/styles/cover/_index.scss +8 -0
  127. package/styles/custom-media.scss +17 -0
  128. package/styles/datepicker/_datepicker.scss +841 -0
  129. package/styles/datepicker/_index.scss +11 -0
  130. package/styles/description-list/_description-list.scss +96 -0
  131. package/styles/description-list/_index.scss +11 -0
  132. package/styles/divider/_divider.scss +168 -0
  133. package/styles/divider/_index.scss +11 -0
  134. package/styles/dotnav/_dotnav.scss +171 -0
  135. package/styles/dotnav/_index.scss +11 -0
  136. package/styles/drawer/_drawer.scss +588 -0
  137. package/styles/drawer/_index.scss +11 -0
  138. package/styles/drop/_drop.scss +97 -0
  139. package/styles/drop/_index.scss +11 -0
  140. package/styles/dropdown/_dropdown.scss +218 -0
  141. package/styles/dropdown/_index.scss +11 -0
  142. package/styles/flex/_flex.scss +338 -0
  143. package/styles/flex/_index.scss +8 -0
  144. package/styles/form/_form.scss +665 -0
  145. package/styles/form/_index.scss +11 -0
  146. package/styles/grid/_grid.scss +657 -0
  147. package/styles/grid/_index.scss +11 -0
  148. package/styles/heading/_heading.scss +265 -0
  149. package/styles/heading/_index.scss +11 -0
  150. package/styles/height/_height.scss +77 -0
  151. package/styles/height/_index.scss +11 -0
  152. package/styles/icon/_icon.scss +274 -0
  153. package/styles/icon/_index.scss +11 -0
  154. package/styles/iconnav/_iconnav.scss +149 -0
  155. package/styles/iconnav/_index.scss +11 -0
  156. package/styles/input-number/_index.scss +8 -0
  157. package/styles/input-number/_input-number.scss +115 -0
  158. package/styles/input-password/_index.scss +8 -0
  159. package/styles/input-password/_input-password.scss +52 -0
  160. package/styles/inverse/_index.scss +11 -0
  161. package/styles/inverse/_inverse.scss +68 -0
  162. package/styles/label/_index.scss +11 -0
  163. package/styles/label/_label.scss +132 -0
  164. package/styles/leader/_index.scss +11 -0
  165. package/styles/leader/_leader.scss +80 -0
  166. package/styles/link/_index.scss +11 -0
  167. package/styles/link/_link.scss +158 -0
  168. package/styles/list/_index.scss +11 -0
  169. package/styles/list/_list.scss +288 -0
  170. package/styles/margin/_index.scss +11 -0
  171. package/styles/margin/_margin.scss +312 -0
  172. package/styles/marker/_index.scss +11 -0
  173. package/styles/marker/_marker.scss +73 -0
  174. package/styles/modal/_index.scss +11 -0
  175. package/styles/modal/_modal.scss +374 -0
  176. package/styles/motion/_index.scss +8 -0
  177. package/styles/motion/_motion.scss +640 -0
  178. package/styles/nav/_index.scss +11 -0
  179. package/styles/nav/_nav.scss +583 -0
  180. package/styles/navbar/_index.scss +11 -0
  181. package/styles/navbar/_navbar.scss +694 -0
  182. package/styles/overlay/_index.scss +11 -0
  183. package/styles/overlay/_overlay.scss +115 -0
  184. package/styles/padding/_index.scss +11 -0
  185. package/styles/padding/_padding.scss +93 -0
  186. package/styles/pagination/_index.scss +11 -0
  187. package/styles/pagination/_pagination.scss +149 -0
  188. package/styles/placeholder/_index.scss +11 -0
  189. package/styles/placeholder/_placeholder.scss +60 -0
  190. package/styles/position/_index.scss +11 -0
  191. package/styles/position/_position.scss +257 -0
  192. package/styles/print.scss +8 -5
  193. package/styles/progress/_index.scss +11 -0
  194. package/styles/progress/_progress.scss +131 -0
  195. package/styles/radio/_index.scss +11 -0
  196. package/styles/radio/_radio.scss +272 -0
  197. package/styles/search/_index.scss +11 -0
  198. package/styles/search/_search.scss +353 -0
  199. package/styles/section/_index.scss +11 -0
  200. package/styles/section/_section.scss +293 -0
  201. package/styles/segmented/_index.scss +11 -0
  202. package/styles/segmented/_segmented.scss +275 -0
  203. package/styles/select/_index.scss +11 -0
  204. package/styles/select/_select.scss +639 -0
  205. package/styles/slider/_index.scss +11 -0
  206. package/styles/slider/_slider.scss +525 -0
  207. package/styles/spinner/_index.scss +11 -0
  208. package/styles/spinner/_spinner.scss +90 -0
  209. package/styles/sticky/_index.scss +11 -0
  210. package/styles/sticky/_sticky.scss +66 -0
  211. package/styles/subnav/_index.scss +11 -0
  212. package/styles/subnav/_subnav.scss +267 -0
  213. package/styles/svg/_index.scss +8 -0
  214. package/styles/svg/_svg.scss +64 -0
  215. package/styles/switch/_index.scss +11 -0
  216. package/styles/switch/_switch.scss +226 -0
  217. package/styles/table/_index.scss +11 -0
  218. package/styles/table/_table.scss +337 -0
  219. package/styles/tabs/_index.scss +11 -0
  220. package/styles/tabs/_tabs.scss +809 -0
  221. package/styles/text/_index.scss +11 -0
  222. package/styles/text/_text.scss +432 -0
  223. package/styles/textarea/_index.scss +11 -0
  224. package/styles/textarea/_textarea.scss +98 -0
  225. package/styles/thumbnav/_index.scss +11 -0
  226. package/styles/thumbnav/_thumbnav.scss +130 -0
  227. package/styles/tile/_index.scss +11 -0
  228. package/styles/tile/_tile.scss +313 -0
  229. package/styles/tooltip/_index.scss +11 -0
  230. package/styles/tooltip/_tooltip.scss +101 -0
  231. package/styles/totop/_index.scss +11 -0
  232. package/styles/totop/_totop.scss +80 -0
  233. package/styles/transition/_index.scss +11 -0
  234. package/styles/transition/_transition.scss +197 -0
  235. package/styles/utility/_index.scss +11 -0
  236. package/styles/utility/_utility.scss +642 -0
  237. package/styles/vars.scss +474 -139
  238. package/styles/visibility/_index.scss +8 -0
  239. package/styles/visibility/_visibility.scss +196 -0
  240. package/styles/width/_index.scss +11 -0
  241. package/styles/width/_width.scss +698 -0
  242. package/dist/assets/mixin.css +0 -1
  243. package/dist/assets/mixins.css +0 -1
  244. package/dist/assets/variables.css +0 -1
  245. package/styles/accordion.scss +0 -224
  246. package/styles/alert.scss +0 -197
  247. package/styles/align.scss +0 -149
  248. package/styles/animation.scss +0 -349
  249. package/styles/article.scss +0 -105
  250. package/styles/background.scss +0 -167
  251. package/styles/badge.scss +0 -85
  252. package/styles/base.scss +0 -656
  253. package/styles/breadcrumb.scss +0 -126
  254. package/styles/button.scss +0 -700
  255. package/styles/card.scss +0 -534
  256. package/styles/checkbox.scss +0 -325
  257. package/styles/close.scss +0 -62
  258. package/styles/column.scss +0 -152
  259. package/styles/comment.scss +0 -191
  260. package/styles/container.scss +0 -236
  261. package/styles/control.scss +0 -357
  262. package/styles/cover.scss +0 -81
  263. package/styles/datepicker.scss +0 -834
  264. package/styles/description-list.scss +0 -89
  265. package/styles/divider.scss +0 -161
  266. package/styles/dotnav.scss +0 -164
  267. package/styles/drawer.scss +0 -584
  268. package/styles/drop.scss +0 -93
  269. package/styles/dropdown.scss +0 -207
  270. package/styles/flex.scss +0 -326
  271. package/styles/form.scss +0 -658
  272. package/styles/grid.scss +0 -650
  273. package/styles/heading.scss +0 -258
  274. package/styles/height.scss +0 -73
  275. package/styles/icon.scss +0 -267
  276. package/styles/iconnav.scss +0 -142
  277. package/styles/input-number.scss +0 -98
  278. package/styles/input-password.scss +0 -35
  279. package/styles/inverse.scss +0 -65
  280. package/styles/label.scss +0 -125
  281. package/styles/leader.scss +0 -76
  282. package/styles/link.scss +0 -151
  283. package/styles/list.scss +0 -281
  284. package/styles/margin.scss +0 -308
  285. package/styles/marker.scss +0 -66
  286. package/styles/mixins.scss +0 -2555
  287. package/styles/modal.scss +0 -370
  288. package/styles/motion.scss +0 -627
  289. package/styles/nav.scss +0 -576
  290. package/styles/navbar.scss +0 -682
  291. package/styles/overlay.scss +0 -107
  292. package/styles/padding.scss +0 -89
  293. package/styles/pagination.scss +0 -142
  294. package/styles/placeholder.scss +0 -56
  295. package/styles/position.scss +0 -253
  296. package/styles/progress.scss +0 -127
  297. package/styles/radio.scss +0 -268
  298. package/styles/search.scss +0 -346
  299. package/styles/section.scss +0 -285
  300. package/styles/segmented.scss +0 -271
  301. package/styles/select.scss +0 -644
  302. package/styles/slider.scss +0 -521
  303. package/styles/spinner.scss +0 -86
  304. package/styles/sticky.scss +0 -62
  305. package/styles/subnav.scss +0 -260
  306. package/styles/svg.scss +0 -46
  307. package/styles/switch.scss +0 -218
  308. package/styles/table.scss +0 -330
  309. package/styles/tabs.scss +0 -802
  310. package/styles/text.scss +0 -425
  311. package/styles/textarea.scss +0 -94
  312. package/styles/thumbnav.scss +0 -126
  313. package/styles/tile.scss +0 -309
  314. package/styles/tooltip.scss +0 -94
  315. package/styles/totop.scss +0 -73
  316. package/styles/transition.scss +0 -193
  317. package/styles/utility.scss +0 -635
  318. package/styles/visibility.scss +0 -184
  319. package/styles/width.scss +0 -694
@@ -0,0 +1,707 @@
1
+ // Name: Button
2
+ // Description: Styles for buttons
3
+ //
4
+ // Component: `uk-button`
5
+ //
6
+ // Sub-objects: `uk-button-group`
7
+ //
8
+ // Modifiers: `uk-button-default`
9
+ // `uk-button-primary`
10
+ // `uk-button-secondary`
11
+ // `uk-button-tertiary`
12
+ // `uk-button-danger`
13
+ // `uk-button-text`
14
+ // `uk-button-link`
15
+ // `uk-button-xsmall`
16
+ // `uk-button-small`
17
+ // `uk-button-medium`
18
+ // `uk-button-large`
19
+ // `uk-button-xlarge`
20
+ // `uk-button-circle`
21
+ // `uk-button-round`
22
+ // `uk-button-ghost`
23
+ //
24
+ // States: `uk-active`
25
+ //
26
+ // ========================================================================
27
+
28
+ @use 'sass:map';
29
+ @use 'sass:meta';
30
+
31
+
32
+ // Variables
33
+ // ========================================================================
34
+
35
+ @use '../variables' as *;
36
+ @use '../mixins' as *;
37
+
38
+
39
+ @mixin button-styles {
40
+ /* ========================================================================
41
+ Component: Button
42
+ ========================================================================== */
43
+
44
+ /*
45
+ * 1. Remove margins in Chrome, Safari and Opera.
46
+ * 2. Remove borders for `button`.
47
+ * 3. Address `overflow` set to `hidden` in IE.
48
+ * 4. Correct `font` properties and `color` not being inherited for `button`.
49
+ * 5. Remove the inheritance of text transform in Edge, Firefox, and IE.
50
+ * 6. Remove default style for `input type="submit"`in iOS.
51
+ * 7. Style
52
+ * 8. `line-height` is used to create a height because it also centers the text vertically for `a` elements.
53
+ * Better would be to use height and flexbox to center the text vertically but flexbox doesn't work in Firefox on `button` elements.
54
+ * 9. Align text if button has a width
55
+ * 10. Required for `a`.
56
+ */
57
+
58
+ .#{$prefix}-button {
59
+ -webkit-appearance: none; /* 6 */
60
+ appearance: none; /* 6 */
61
+ border: none; /* 2 */
62
+ border-radius: 0;
63
+ box-sizing: border-box;
64
+ color: inherit;
65
+ display: inline-block; /* 7 */
66
+ font: inherit; /* 4 */
67
+ font-size: var(--button-font-size); /* 7 */
68
+ line-height: var(--button-line-height); /* 8 */
69
+ margin: 0; /* 1 */
70
+ overflow: visible; /* 3 */
71
+ padding: 0 var(--button-padding-horizontal); /* 7 */
72
+ text-align: center; /* 9 */
73
+ text-decoration: none; /* 10 */
74
+ text-transform: none; /* 5 */
75
+ vertical-align: middle; /* 7 */
76
+ @if map.has-key($mixins, 'hook-button') {
77
+ @include meta.apply(map.get($mixins, 'hook-button'));
78
+ }
79
+ }
80
+
81
+ .#{$prefix}-button:not(:disabled) { cursor: pointer; }
82
+
83
+ /*
84
+ * Remove the inner border and padding in Firefox.
85
+ */
86
+
87
+ .#{$prefix}-button::-moz-focus-inner {
88
+ border: 0;
89
+ padding: 0;
90
+ }
91
+
92
+ /* Hover */
93
+ .#{$prefix}-button:hover {
94
+ /* 9 */
95
+ text-decoration: none;
96
+ @if map.has-key($mixins, 'hook-button-hover') {
97
+ @include meta.apply(map.get($mixins, 'hook-button-hover'));
98
+ }
99
+ }
100
+
101
+ /* OnClick + Active */
102
+ .#{$prefix}-button:active,
103
+ .#{$prefix}-button.#{$prefix}-active {
104
+ @if map.has-key($mixins, 'hook-button-active') {
105
+ @include meta.apply(map.get($mixins, 'hook-button-active'));
106
+ }
107
+ }
108
+
109
+
110
+ /* Style modifiers
111
+ ========================================================================== */
112
+
113
+ /*
114
+ * Default
115
+ */
116
+
117
+ .#{$prefix}-button-default {
118
+ background-color: var(--button-default-background);
119
+ color: var(--button-default-color);
120
+ @if map.has-key($mixins, 'hook-button-default') {
121
+ @include meta.apply(map.get($mixins, 'hook-button-default'));
122
+ }
123
+ }
124
+
125
+ /* Hover */
126
+ .#{$prefix}-button-default:hover {
127
+ background-color: var(--button-default-hover-background);
128
+ color: var(--button-default-hover-color);
129
+ @if map.has-key($mixins, 'hook-button-default-hover') {
130
+ @include meta.apply(map.get($mixins, 'hook-button-default-hover'));
131
+ }
132
+ }
133
+
134
+ /* OnClick + Active */
135
+ .#{$prefix}-button-default:active,
136
+ .#{$prefix}-button-default.#{$prefix}-active {
137
+ background-color: var(--button-default-active-background);
138
+ color: var(--button-default-active-color);
139
+ @if map.has-key($mixins, 'hook-button-default-active') {
140
+ @include meta.apply(map.get($mixins, 'hook-button-default-active'));
141
+ }
142
+ }
143
+
144
+ /*
145
+ * Primary
146
+ */
147
+
148
+ .#{$prefix}-button-primary {
149
+ background-color: var(--button-primary-background);
150
+ color: var(--button-primary-color);
151
+ @if map.has-key($mixins, 'hook-button-primary') {
152
+ @include meta.apply(map.get($mixins, 'hook-button-primary'));
153
+ }
154
+ }
155
+
156
+ /* Hover */
157
+ .#{$prefix}-button-primary:hover {
158
+ background-color: var(--button-primary-hover-background);
159
+ color: var(--button-primary-hover-color);
160
+ @if map.has-key($mixins, 'hook-button-primary-hover') {
161
+ @include meta.apply(map.get($mixins, 'hook-button-primary-hover'));
162
+ }
163
+ }
164
+
165
+ /* OnClick + Active */
166
+ .#{$prefix}-button-primary:active,
167
+ .#{$prefix}-button-primary.#{$prefix}-active {
168
+ background-color: var(--button-primary-active-background);
169
+ color: var(--button-primary-active-color);
170
+ @if map.has-key($mixins, 'hook-button-primary-active') {
171
+ @include meta.apply(map.get($mixins, 'hook-button-primary-active'));
172
+ }
173
+ }
174
+
175
+ /*
176
+ * Secondary
177
+ */
178
+
179
+ .#{$prefix}-button-secondary {
180
+ background-color: var(--button-secondary-background);
181
+ color: var(--button-secondary-color);
182
+ @if map.has-key($mixins, 'hook-button-secondary') {
183
+ @include meta.apply(map.get($mixins, 'hook-button-secondary'));
184
+ }
185
+ }
186
+
187
+ /* Hover */
188
+ .#{$prefix}-button-secondary:hover {
189
+ background-color: var(--button-secondary-hover-background);
190
+ color: var(--button-secondary-hover-color);
191
+ @if map.has-key($mixins, 'hook-button-secondary-hover') {
192
+ @include meta.apply(map.get($mixins, 'hook-button-secondary-hover'));
193
+ }
194
+ }
195
+
196
+ /* OnClick + Active */
197
+ .#{$prefix}-button-secondary:active,
198
+ .#{$prefix}-button-secondary.#{$prefix}-active {
199
+ background-color: var(--button-secondary-active-background);
200
+ color: var(--button-secondary-active-color);
201
+ @if map.has-key($mixins, 'hook-button-secondary-active') {
202
+ @include meta.apply(map.get($mixins, 'hook-button-secondary-active'));
203
+ }
204
+ }
205
+
206
+ /*
207
+ * Tertiary
208
+ */
209
+
210
+ .#{$prefix}-button-tertiary {
211
+ background-color: var(--button-tertiary-background);
212
+ color: var(--button-tertiary-color);
213
+ @if map.has-key($mixins, 'hook-button-tertiary') {
214
+ @include meta.apply(map.get($mixins, 'hook-button-tertiary'));
215
+ }
216
+ }
217
+
218
+ /* Hover */
219
+ .#{$prefix}-button-tertiary:hover {
220
+ background-color: var(--button-tertiary-hover-background);
221
+ color: var(--button-tertiary-hover-color);
222
+ @if map.has-key($mixins, 'hook-button-tertiary-hover') {
223
+ @include meta.apply(map.get($mixins, 'hook-button-tertiary-hover'));
224
+ }
225
+ }
226
+
227
+ /* OnClick + Active */
228
+ .#{$prefix}-button-tertiary:active,
229
+ .#{$prefix}-button-tertiary.#{$prefix}-active {
230
+ background-color: var(--button-tertiary-active-background);
231
+ color: var(--button-tertiary-active-color);
232
+ @if map.has-key($mixins, 'hook-button-tertiary-active') {
233
+ @include meta.apply(map.get($mixins, 'hook-button-tertiary-active'));
234
+ }
235
+ }
236
+
237
+ /*
238
+ * Danger
239
+ */
240
+
241
+ .#{$prefix}-button-danger {
242
+ background-color: var(--button-danger-background);
243
+ color: var(--button-danger-color);
244
+ @if map.has-key($mixins, 'hook-button-danger') {
245
+ @include meta.apply(map.get($mixins, 'hook-button-danger'));
246
+ }
247
+ }
248
+
249
+ /* Hover */
250
+ .#{$prefix}-button-danger:hover {
251
+ background-color: var(--button-danger-hover-background);
252
+ color: var(--button-danger-hover-color);
253
+ @if map.has-key($mixins, 'hook-button-danger-hover') {
254
+ @include meta.apply(map.get($mixins, 'hook-button-danger-hover'));
255
+ }
256
+ }
257
+
258
+ /* OnClick + Active */
259
+ .#{$prefix}-button-danger:active,
260
+ .#{$prefix}-button-danger.#{$prefix}-active {
261
+ background-color: var(--button-danger-active-background);
262
+ color: var(--button-danger-active-color);
263
+ @if map.has-key($mixins, 'hook-button-danger-active') {
264
+ @include meta.apply(map.get($mixins, 'hook-button-danger-active'));
265
+ }
266
+ }
267
+
268
+ /*
269
+ * Disabled
270
+ * The same for all style modifiers
271
+ */
272
+
273
+ @if $button-disabled-mode == same {
274
+ .#{$prefix}-button-default:disabled,
275
+ .#{$prefix}-button-primary:disabled,
276
+ .#{$prefix}-button-secondary:disabled,
277
+ .#{$prefix}-button-tertiary:disabled,
278
+ .#{$prefix}-button-danger:disabled {
279
+ background-color: var(--button-disabled-background);
280
+ color: var(--button-disabled-color);
281
+ @if map.has-key($mixins, 'hook-button-disabled') {
282
+ @include meta.apply(map.get($mixins, 'hook-button-disabled'));
283
+ }
284
+ }
285
+ }
286
+
287
+ @if $button-disabled-mode == separate {
288
+ .#{$prefix}-button-default:disabled {
289
+ background-color: var(--button-default-disabled-background);
290
+ color: var(--button-default-disabled-color);
291
+ @if map.has-key($mixins, 'hook-button-default-disabled') {
292
+ @include meta.apply(map.get($mixins, 'hook-button-default-disabled'));
293
+ }
294
+ }
295
+
296
+ .#{$prefix}-button-primary:disabled {
297
+ background-color: var(--button-primary-disabled-background);
298
+ color: var(--button-primary-disabled-color);
299
+ @if map.has-key($mixins, 'hook-button-primary-disabled') {
300
+ @include meta.apply(map.get($mixins, 'hook-button-primary-disabled'));
301
+ }
302
+ }
303
+
304
+ .#{$prefix}-button-secondary:disabled {
305
+ background-color: var(--button-secondary-disabled-background);
306
+ color: var(--button-secondary-disabled-color);
307
+ @if map.has-key($mixins, 'hook-button-secondary-disabled') {
308
+ @include meta.apply(map.get($mixins, 'hook-button-secondary-disabled'));
309
+ }
310
+ }
311
+
312
+ .#{$prefix}-button-tertiary:disabled {
313
+ background-color: var(--button-tertiary-disabled-background);
314
+ color: var(--button-tertiary-disabled-color);
315
+ @if map.has-key($mixins, 'hook-button-tertiary-disabled') {
316
+ @include meta.apply(map.get($mixins, 'hook-button-tertiary-disabled'));
317
+ }
318
+ }
319
+
320
+ .#{$prefix}-button-danger:disabled {
321
+ background-color: var(--button-danger-disabled-background);
322
+ color: var(--button-danger-disabled-color);
323
+ @if map.has-key($mixins, 'hook-button-danger-disabled') {
324
+ @include meta.apply(map.get($mixins, 'hook-button-danger-disabled'));
325
+ }
326
+ }
327
+ }
328
+
329
+ /* Size modifiers
330
+ ========================================================================== */
331
+
332
+ .#{$prefix}-button-xsmall {
333
+ font-size: var(--button-xsmall-font-size);
334
+ line-height: var(--button-xsmall-line-height);
335
+ padding: 0 var(--button-xsmall-padding-horizontal);
336
+ @if map.has-key($mixins, 'hook-button-xsmall') {
337
+ @include meta.apply(map.get($mixins, 'hook-button-xsmall'));
338
+ }
339
+ }
340
+
341
+ .#{$prefix}-button-small {
342
+ font-size: var(--button-small-font-size);
343
+ line-height: var(--button-small-line-height);
344
+ padding: 0 var(--button-small-padding-horizontal);
345
+ @if map.has-key($mixins, 'hook-button-small') {
346
+ @include meta.apply(map.get($mixins, 'hook-button-small'));
347
+ }
348
+ }
349
+
350
+ .#{$prefix}-button-medium {
351
+ font-size: var(--button-medium-font-size);
352
+ line-height: var(--button-medium-line-height);
353
+ padding: 0 var(--button-medium-padding-horizontal);
354
+ @if map.has-key($mixins, 'hook-button-medium') {
355
+ @include meta.apply(map.get($mixins, 'hook-button-medium'));
356
+ }
357
+ }
358
+
359
+ .#{$prefix}-button-large {
360
+ font-size: var(--button-large-font-size);
361
+ line-height: var(--button-large-line-height);
362
+ padding: 0 var(--button-large-padding-horizontal);
363
+ @if map.has-key($mixins, 'hook-button-large') {
364
+ @include meta.apply(map.get($mixins, 'hook-button-large'));
365
+ }
366
+ }
367
+
368
+ .#{$prefix}-button-xlarge {
369
+ font-size: var(--button-xlarge-font-size);
370
+ line-height: var(--button-xlarge-line-height);
371
+ padding: 0 var(--button-xlarge-padding-horizontal);
372
+ @if map.has-key($mixins, 'hook-button-xlarge') {
373
+ @include meta.apply(map.get($mixins, 'hook-button-xlarge'));
374
+ }
375
+ }
376
+
377
+
378
+ /* Text modifiers
379
+ ========================================================================== */
380
+
381
+ /*
382
+ * Text
383
+ * 1. Reset
384
+ * 2. Style
385
+ */
386
+
387
+ .#{$prefix}-button-text {
388
+ background: none; /* 1 */
389
+ color: var(--button-text-color); /* 2 */
390
+ line-height: var(--button-text-line-height); /* 1 */
391
+ padding: 0; /* 1 */
392
+ @if map.has-key($mixins, 'hook-button-text') {
393
+ @include meta.apply(map.get($mixins, 'hook-button-text'));
394
+ }
395
+ }
396
+
397
+ /* Hover */
398
+ .#{$prefix}-button-text:hover {
399
+ color: var(--button-text-hover-color);
400
+ @if map.has-key($mixins, 'hook-button-text-hover') {
401
+ @include meta.apply(map.get($mixins, 'hook-button-text-hover'));
402
+ }
403
+ }
404
+
405
+ /* Disabled */
406
+ .#{$prefix}-button-text:disabled {
407
+ color: var(--button-text-disabled-color);
408
+ @if map.has-key($mixins, 'hook-button-text-disabled') {
409
+ @include meta.apply(map.get($mixins, 'hook-button-text-disabled'));
410
+ }
411
+ }
412
+
413
+ /*
414
+ * Link
415
+ * 1. Reset
416
+ * 2. Style
417
+ */
418
+
419
+ .#{$prefix}-button-link {
420
+ background: none; /* 1 */
421
+ color: var(--button-link-color); /* 2 */
422
+ line-height: var(--button-link-line-height); /* 1 */
423
+ padding: 0; /* 1 */
424
+ @if map.has-key($mixins, 'hook-button-link') {
425
+ @include meta.apply(map.get($mixins, 'hook-button-link'));
426
+ }
427
+ }
428
+
429
+ /* Hover */
430
+ .#{$prefix}-button-link:hover {
431
+ color: var(--button-link-hover-color);
432
+ text-decoration: var(--button-link-hover-text-decoration);
433
+ @if map.has-key($mixins, 'hook-button-link-hover') {
434
+ @include meta.apply(map.get($mixins, 'hook-button-link-hover'));
435
+ }
436
+ }
437
+
438
+ /* Disabled */
439
+ .#{$prefix}-button-link:disabled {
440
+ color: var(--button-link-disabled-color);
441
+ text-decoration: none;
442
+ @if map.has-key($mixins, 'hook-button-link-disabled') {
443
+ @include meta.apply(map.get($mixins, 'hook-button-link-disabled'));
444
+ }
445
+ }
446
+
447
+
448
+ /* Ghost modifiers
449
+ ========================================================================== */
450
+
451
+ .#{$prefix}-button.#{$prefix}-button-ghost {
452
+ background-color: transparent;
453
+ border: var(--button-ghost-border-width) var(--button-ghost-border-style);
454
+ }
455
+
456
+ .#{$prefix}-button-default.#{$prefix}-button-ghost {
457
+ background-color: transparent;
458
+ border-color: var(--button-ghost-default-border);
459
+ color: var(--button-ghost-default-color);
460
+ }
461
+
462
+ .#{$prefix}-button-default.#{$prefix}-button-ghost:hover {
463
+ background-color: transparent;
464
+ border-color: var(--button-ghost-default-hover-border);
465
+ }
466
+
467
+ .#{$prefix}-button-default.#{$prefix}-button-ghost:active,
468
+ .#{$prefix}-button-default.#{$prefix}-button-ghost.active {
469
+ background-color: transparent;
470
+ border-color: var(--button-ghost-default-active-border);
471
+ }
472
+
473
+ .#{$prefix}-button-primary.#{$prefix}-button-ghost {
474
+ background-color: transparent;
475
+ border-color: var(--button-ghost-primary-border);
476
+ color: var(--button-ghost-primary-color);
477
+ }
478
+
479
+ .#{$prefix}-button-primary.#{$prefix}-button-ghost:hover {
480
+ background-color: transparent;
481
+ border-color: var(--button-ghost-primary-hover-border);
482
+ }
483
+
484
+ .#{$prefix}-button-primary.#{$prefix}-button-ghost:active,
485
+ .#{$prefix}-button-primary.#{$prefix}-button-ghost.active {
486
+ background-color: transparent;
487
+ border-color: var(--button-ghost-primary-active-border);
488
+ }
489
+
490
+ .#{$prefix}-button-secondary.#{$prefix}-button-ghost {
491
+ background-color: transparent;
492
+ border-color: var(--button-ghost-secondary-border);
493
+ color: var(--button-ghost-secondary-color);
494
+ }
495
+
496
+ .#{$prefix}-button-secondary.#{$prefix}-button-ghost:hover {
497
+ background-color: transparent;
498
+ border-color: var(--button-ghost-secondary-hover-border);
499
+ }
500
+
501
+ .#{$prefix}-button-secondary.#{$prefix}-button-ghost:active,
502
+ .#{$prefix}-button-secondary.#{$prefix}-button-ghost.active {
503
+ background-color: transparent;
504
+ border-color: var(--button-ghost-secondary-active-border);
505
+ }
506
+
507
+ .#{$prefix}-button-tertiary.#{$prefix}-button-ghost {
508
+ background-color: transparent;
509
+ border-color: var(--button-ghost-tertiary-border);
510
+ color: var(--button-ghost-tertiary-color);
511
+ }
512
+
513
+ .#{$prefix}-button-tertiary.#{$prefix}-button-ghost:hover {
514
+ background-color: transparent;
515
+ border-color: var(--button-ghost-tertiary-hover-border);
516
+ }
517
+
518
+ .#{$prefix}-button-tertiary.#{$prefix}-button-ghost:active,
519
+ .#{$prefix}-button-tertiary.#{$prefix}-button-ghost.active {
520
+ background-color: transparent;
521
+ border-color: var(--button-ghost-tertiary-active-border);
522
+ }
523
+
524
+ .#{$prefix}-button-danger.#{$prefix}-button-ghost {
525
+ background-color: transparent;
526
+ border-color: var(--button-ghost-danger-border);
527
+ color: var(--button-ghost-danger-color);
528
+ }
529
+
530
+ .#{$prefix}-button-danger.#{$prefix}-button-ghost:hover {
531
+ background-color: transparent;
532
+ border-color: var(--button-ghost-danger-hover-border);
533
+ }
534
+
535
+ .#{$prefix}-button-danger.#{$prefix}-button-ghost:active,
536
+ .#{$prefix}-button-danger.#{$prefix}-button-ghost.active {
537
+ background-color: transparent;
538
+ border-color: var(--button-ghost-danger-active-border);
539
+ }
540
+
541
+
542
+ /* Shape modifiers
543
+ ========================================================================== */
544
+
545
+ .#{$prefix}-button-circle {
546
+ border-radius: var(--button-circle-border-radius);
547
+ }
548
+
549
+ .#{$prefix}-button-round {
550
+ border-radius: var(--button-round-border-radius);
551
+ }
552
+
553
+
554
+ /* Group
555
+ ========================================================================== */
556
+
557
+ /*
558
+ * 1. Using `flex` instead of `inline-block` to prevent whitespace between child elements
559
+ * 2. Behave like button
560
+ * 3. Create position context
561
+ */
562
+
563
+ .#{$prefix}-button-group {
564
+ display: inline-flex; /* 1 */
565
+ position: relative; /* 3 */
566
+ vertical-align: middle; /* 2 */
567
+ }
568
+
569
+
570
+ // Hooks
571
+ // ========================================================================
572
+
573
+ @if map.has-key($mixins, 'hook-button-misc') {
574
+ @include meta.apply(map.get($mixins, 'hook-button-misc'));
575
+ }
576
+
577
+ @content;
578
+ }
579
+
580
+ @mixin button-tokens {
581
+ --button-line-height: var(--global-control-height);
582
+ --button-xsmall-line-height: var(--global-control-xsmall-height);
583
+ --button-small-line-height: var(--global-control-small-height);
584
+ --button-medium-line-height: var(--global-control-medium-height);
585
+ --button-large-line-height: var(--global-control-large-height);
586
+ --button-xlarge-line-height: var(--global-control-xlarge-height);
587
+ --button-font-size: var(--global-font-size);
588
+ --button-xsmall-font-size: var(--global-2xsmall-font-size);
589
+ --button-small-font-size: var(--global-small-font-size);
590
+ --button-medium-font-size: var(--global-font-size);
591
+ --button-large-font-size: var(--global-medium-font-size);
592
+ --button-xlarge-font-size: var(--global-large-font-size);
593
+ --button-padding-horizontal: var(--global-gutter);
594
+ --button-xsmall-padding-horizontal: var(--global-xsmall-gutter);
595
+ --button-small-padding-horizontal: var(--global-small-gutter);
596
+ --button-medium-padding-horizontal: var(--global-gutter);
597
+ --button-large-padding-horizontal: var(--global-medium-gutter);
598
+ --button-xlarge-padding-horizontal: var(--global-large-gutter);
599
+ --button-default-background: var(--global-muted-background);
600
+ --button-default-color: var(--global-emphasis-color);
601
+ --button-default-hover-background: #{$button-default-hover-background};
602
+ --button-default-hover-color: var(--global-emphasis-color);
603
+ --button-default-active-background: #{$button-default-active-background};
604
+ --button-default-active-color: var(--global-emphasis-color);
605
+ --button-primary-background: var(--global-primary-background);
606
+ --button-primary-color: var(--global-inverse-color);
607
+ --button-primary-hover-background: #{$button-primary-hover-background};
608
+ --button-primary-hover-color: var(--global-inverse-color);
609
+ --button-primary-active-background: #{$button-primary-active-background};
610
+ --button-primary-active-color: var(--global-inverse-color);
611
+ --button-secondary-background: var(--global-secondary-background);
612
+ --button-secondary-color: var(--global-inverse-color);
613
+ --button-secondary-hover-background: #{$button-secondary-hover-background};
614
+ --button-secondary-hover-color: var(--global-inverse-color);
615
+ --button-secondary-active-background: #{$button-secondary-active-background};
616
+ --button-secondary-active-color: var(--global-inverse-color);
617
+ --button-tertiary-background: var(--global-tertiary-background);
618
+ --button-tertiary-color: var(--global-inverse-color);
619
+ --button-tertiary-hover-background: #{$button-tertiary-hover-background};
620
+ --button-tertiary-hover-color: var(--global-inverse-color);
621
+ --button-tertiary-active-background: #{$button-tertiary-active-background};
622
+ --button-tertiary-active-color: var(--global-inverse-color);
623
+ --button-danger-background: var(--global-danger-background);
624
+ --button-danger-color: var(--global-inverse-color);
625
+ --button-danger-hover-background: #{$button-danger-hover-background};
626
+ --button-danger-hover-color: var(--global-inverse-color);
627
+ --button-danger-active-background: #{$button-danger-active-background};
628
+ --button-danger-active-color: var(--global-inverse-color);
629
+ --button-ghost-border-width: var(--global-border-width);
630
+ --button-ghost-border-style: var(--global-border-style);
631
+ --button-ghost-default-color: var(--button-default-background);
632
+ --button-ghost-default-border: var(--button-default-background);
633
+ --button-ghost-default-hover-border: var(--button-default-hover-background);
634
+ --button-ghost-default-active-border: var(--button-default-active-background);
635
+ --button-ghost-primary-color: var(--button-primary-background);
636
+ --button-ghost-primary-border: var(--button-primary-background);
637
+ --button-ghost-primary-hover-border: var(--button-primary-hover-background);
638
+ --button-ghost-primary-active-border: var(--button-primary-active-background);
639
+ --button-ghost-secondary-color: var(--button-secondary-background);
640
+ --button-ghost-secondary-border: var(--button-secondary-background);
641
+ --button-ghost-secondary-hover-border: var(--button-secondary-hover-background);
642
+ --button-ghost-secondary-active-border: var(--button-secondary-active-background);
643
+ --button-ghost-tertiary-color: var(--button-tertiary-background);
644
+ --button-ghost-tertiary-border: var(--button-tertiary-background);
645
+ --button-ghost-tertiary-hover-border: var(--button-tertiary-hover-background);
646
+ --button-ghost-tertiary-active-border: var(--button-tertiary-active-background);
647
+ --button-ghost-danger-color: var(--button-danger-background);
648
+ --button-ghost-danger-border: var(--button-danger-background);
649
+ --button-ghost-danger-hover-border: var(--button-danger-hover-background);
650
+ --button-ghost-danger-active-border: var(--button-danger-active-background);
651
+ --button-circle-border-radius: #{$button-circle-border-radius};
652
+ --button-round-border-radius: #{$button-round-border-radius};
653
+ --button-disabled-background: var(--global-muted-background);
654
+ --button-disabled-color: var(--global-muted-color);
655
+ --button-text-line-height: var(--global-line-height);
656
+ --button-text-color: var(--global-muted-color);
657
+ --button-text-hover-color: var(--global-color);
658
+ --button-text-disabled-color: var(--global-muted-color);
659
+ --button-link-line-height: var(--global-line-height);
660
+ --button-link-color: var(--global-link-color);
661
+ --button-link-hover-color: var(--global-link-hover-color);
662
+ --button-link-hover-text-decoration: #{$button-link-hover-text-decoration};
663
+ --button-link-disabled-color: var(--global-muted-color);
664
+
665
+ @content;
666
+ }
667
+
668
+ @mixin button-inverse-tokens {
669
+ --inverse-button-color: var(--inverse-global-inverse-color);
670
+ --inverse-button-default-background: var(--inverse-global-primary-background);
671
+ --inverse-button-default-color: var(--inverse-global-inverse-color);
672
+ --inverse-button-default-hover-background: #{$inverse-button-default-hover-background};
673
+ --inverse-button-default-hover-color: var(--inverse-global-inverse-color);
674
+ --inverse-button-default-active-background: #{$inverse-button-default-active-background};
675
+ --inverse-button-default-active-color: var(--inverse-global-inverse-color);
676
+ --inverse-button-primary-background: var(--inverse-global-primary-background);
677
+ --inverse-button-primary-color: var(--inverse-global-inverse-color);
678
+ --inverse-button-primary-hover-background: #{$inverse-button-primary-hover-background};
679
+ --inverse-button-primary-hover-color: var(--inverse-global-inverse-color);
680
+ --inverse-button-primary-active-background: #{$inverse-button-primary-active-background};
681
+ --inverse-button-primary-active-color: var(--inverse-global-inverse-color);
682
+ --inverse-button-secondary-background: var(--inverse-global-primary-background);
683
+ --inverse-button-secondary-color: var(--inverse-global-inverse-color);
684
+ --inverse-button-secondary-hover-background: #{$inverse-button-secondary-hover-background};
685
+ --inverse-button-secondary-hover-color: var(--inverse-global-inverse-color);
686
+ --inverse-button-secondary-active-background: #{$inverse-button-secondary-active-background};
687
+ --inverse-button-secondary-active-color: var(--inverse-global-inverse-color);
688
+ --inverse-button-tertiary-background: var(--inverse-global-primary-background);
689
+ --inverse-button-tertiary-color: var(--inverse-global-inverse-color);
690
+ --inverse-button-tertiary-hover-background: #{$inverse-button-tertiary-hover-background};
691
+ --inverse-button-tertiary-hover-color: var(--inverse-global-inverse-color);
692
+ --inverse-button-tertiary-active-background: #{$inverse-button-tertiary-active-background};
693
+ --inverse-button-tertiary-active-color: var(--inverse-global-inverse-color);
694
+ --inverse-button-danger-background: var(--button-danger-background);
695
+ --inverse-button-danger-color: var(--button-danger-color);
696
+ --inverse-button-danger-hover-background: var(--button-danger-hover-background);
697
+ --inverse-button-danger-hover-color: var(--button-danger-hover-color);
698
+ --inverse-button-danger-active-background: var(--button-danger-active-background);
699
+ --inverse-button-danger-active-color: var(--button-danger-active-color);
700
+ --inverse-button-text-color: var(--inverse-global-emphasis-color);
701
+ --inverse-button-text-hover-color: var(--inverse-global-muted-color);
702
+ --inverse-button-text-disabled-color: var(--inverse-global-muted-color);
703
+ --inverse-button-link-color: var(--inverse-global-emphasis-color);
704
+ --inverse-button-link-hover-color: var(--inverse-global-muted-color);
705
+
706
+ @content;
707
+ }