@broxus/react-uikit 0.23.3 → 0.24.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 (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 +1 -1
  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} +40 -26
  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 +641 -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,809 @@
1
+ // Name: Tabs
2
+ // Description: Component to create a tabbed navigation
3
+ //
4
+ // Component: `uk-tabs`
5
+ //
6
+ // Modifiers: `uk-tabs-bottom`
7
+ // `uk-tabs-left`
8
+ // `uk-tabs-right`
9
+ // `uk-tabs-large`
10
+ //
11
+ // States: `uk-active`
12
+ // `uk-disabled`
13
+ //
14
+ // ========================================================================
15
+
16
+ @use 'sass:map';
17
+ @use 'sass:meta';
18
+
19
+
20
+ // Variables
21
+ // ========================================================================
22
+
23
+ @use '../variables' as *;
24
+ @use '../mixins' as *;
25
+
26
+
27
+ @mixin tabs-styles {
28
+ /* ========================================================================
29
+ Component: Tabs
30
+ ========================================================================== */
31
+
32
+ .#{$prefix}-tabs {
33
+ display: flex;
34
+ overflow: hidden;
35
+ }
36
+
37
+ /*
38
+ * Nav
39
+ */
40
+
41
+ .#{$prefix}-tabs-nav {
42
+ align-items: center;
43
+ display: flex;
44
+ flex: none;
45
+ position: relative;
46
+ @if map.has-key($mixins, 'hook-tabs') {
47
+ @include meta.apply(map.get($mixins, 'hook-tabs'));
48
+ }
49
+ }
50
+
51
+ .#{$prefix}-tabs-nav-wrap {
52
+ align-self: stretch;
53
+ display: flex;
54
+ flex: auto;
55
+ overflow: hidden;
56
+ position: relative;
57
+ transform: translate(0);
58
+ white-space: nowrap;
59
+ }
60
+
61
+ .#{$prefix}-tabs-nav-wrap::before,
62
+ .#{$prefix}-tabs-nav-wrap::after {
63
+ content: '';
64
+ opacity: 0;
65
+ pointer-events: none;
66
+ position: absolute;
67
+ transition: opacity var(--transition-duration);
68
+ z-index: 1;
69
+ }
70
+
71
+ /*
72
+ * List
73
+ */
74
+
75
+ .#{$prefix}-tabs-nav-list {
76
+ display: flex;
77
+ position: relative;
78
+ transition: transform var(--transition-duration);
79
+ }
80
+
81
+ /*
82
+ * Operations
83
+ */
84
+
85
+ .#{$prefix}-tabs-nav-operations {
86
+ align-self: stretch;
87
+ display: flex;
88
+ }
89
+
90
+ .#{$prefix}-tabs-nav-operations-hidden {
91
+ pointer-events: none;
92
+ position: absolute;
93
+ visibility: hidden;
94
+ }
95
+
96
+ .#{$prefix}-tabs-nav-more {
97
+ --icon-size: var(--tabs-nav-more-font-size);
98
+ background: transparent;
99
+ border: 0;
100
+ color: var(--tabs-tab-color);
101
+ font-size: var(--tabs-nav-more-font-size);
102
+ padding: var(--tabs-tab-padding-vertical) var(--tabs-tab-padding-horizontal);
103
+ position: relative;
104
+ }
105
+
106
+ .#{$prefix}-tabs-nav-more::after {
107
+ bottom: 0;
108
+ content: '';
109
+ height: 5px;
110
+ left: 0;
111
+ position: absolute;
112
+ right: 0;
113
+ transform: translateY(100%);
114
+ }
115
+
116
+ .#{$prefix}-tabs-nav-more .#{$prefix}-icon * {
117
+ width: 100%;
118
+ }
119
+
120
+ .#{$prefix}-tabs-nav-add {
121
+ background: var(--tabs-card-tab-background);
122
+ border: var(--tabs-card-tab-border-width) var(--tabs-card-tab-border-style) var(--tabs-card-tab-border);
123
+ color: var(--tabs-tab-color);
124
+ cursor: pointer;
125
+ outline: 0 none;
126
+ padding: var(--tabs-card-tab-padding-vertical) var(--tabs-card-tab-padding-horizontal);
127
+ transition: all var(--transition-duration) var(--ease-in-out);
128
+ @if map.has-key($mixins, 'hook-tabs-nav-add') {
129
+ @include meta.apply(map.get($mixins, 'hook-tabs-nav-add'));
130
+ }
131
+ }
132
+
133
+ .#{$prefix}-tabs-nav-add:hover {
134
+ color: var(--tabs-tab-hover-color);
135
+ }
136
+
137
+ .#{$prefix}-tabs-nav-add:active,
138
+ .#{$prefix}-tabs-nav-add:focus {
139
+ color: var(--tabs-tab-active-color);
140
+ }
141
+
142
+ .#{$prefix}-tabs-extra-content {
143
+ flex: none;
144
+ }
145
+
146
+ .#{$prefix}-tabs-centered .#{$prefix}-tabs-nav-wrap:not([class*='#{$prefix}-tabs-nav-wrap-ping']) {
147
+ justify-content: center;
148
+ }
149
+
150
+
151
+ /* Items
152
+ ========================================================================== */
153
+
154
+ .#{$prefix}-tabs-tab {
155
+ align-items: center;
156
+ background: transparent;
157
+ border: 0;
158
+ color: var(--tabs-tab-color);
159
+ cursor: pointer;
160
+ display: inline-flex;
161
+ font-size: var(--tabs-tab-font-size);
162
+ justify-content: space-between;
163
+ outline: none;
164
+ padding: var(--tabs-tab-padding-vertical) var(--tabs-tab-padding-horizontal);
165
+ position: relative;
166
+ @if map.has-key($mixins, 'hook-tabs-tab') {
167
+ @include meta.apply(map.get($mixins, 'hook-tabs-tab'));
168
+ }
169
+ }
170
+
171
+ /* Hover + Focus */
172
+ .#{$prefix}-tabs-tab:not(.#{$prefix}-tabs-tab-disabled):hover,
173
+ .#{$prefix}-tabs-tab:not(.#{$prefix}-tabs-tab-disabled):focus {
174
+ color: var(--tabs-tab-hover-color);
175
+ @if map.has-key($mixins, 'hook-tabs-tab-hover') {
176
+ @include meta.apply(map.get($mixins, 'hook-tabs-tab-hover'));
177
+ }
178
+ }
179
+
180
+ /* Active */
181
+ .#{$prefix}-tabs-tab-active:not(.#{$prefix}-tabs-tab-disabled) {
182
+ color: var(--tabs-tab-active-color);
183
+ @if map.has-key($mixins, 'hook-tabs-tab-active') {
184
+ @include meta.apply(map.get($mixins, 'hook-tabs-tab-active'));
185
+ }
186
+ }
187
+
188
+ /* Disabled */
189
+ .#{$prefix}-tabs-tab-disabled {
190
+ color: var(--tabs-tab-disabled-color);
191
+ cursor: not-allowed;
192
+ @if map.has-key($mixins, 'hook-tabs-tab-disabled') {
193
+ @include meta.apply(map.get($mixins, 'hook-tabs-tab-disabled'));
194
+ }
195
+ }
196
+
197
+ /*
198
+ * Gutter
199
+ */
200
+
201
+ .#{$prefix}-tabs-tab + .#{$prefix}-tabs-tab {
202
+ margin: 0 0 0 var(--tabs-margin-horizontal);
203
+ }
204
+
205
+ /*
206
+ * Remove
207
+ */
208
+
209
+ .#{$prefix}-tabs-tab-remove {
210
+ --icon-size: var(--tabs-tab-remove-font-size);
211
+ align-items: center;
212
+ background: transparent;
213
+ border: none;
214
+ color: var(--tabs-tab-remove-color);
215
+ cursor: pointer;
216
+ display: flex;
217
+ flex: none;
218
+ font-size: var(--tabs-tab-remove-font-size);
219
+ margin-left: var(--tabs-card-gutter);
220
+ margin-right: calc(var(--tabs-card-gutter) * -1);
221
+ outline: 0 none;
222
+ padding: 0;
223
+ transition: all var(--transition-duration);
224
+ }
225
+
226
+ .#{$prefix}-tabs-tab-remove:hover {
227
+ color: var(--tabs-tab-remove-hover-color);
228
+ }
229
+
230
+ .#{$prefix}-tabs-tab-remove:focus,
231
+ .#{$prefix}-tabs-tab-remove:active {
232
+ color: var(--tabs-tab-remove-active-color);
233
+ }
234
+
235
+
236
+ /* Card modifier
237
+ ========================================================================== */
238
+
239
+ .#{$prefix}-tabs-card .#{$prefix}-tabs-tab {
240
+ background: var(--tabs-card-tab-background);
241
+ border: var(--tabs-card-tab-border-width) var(--tabs-card-tab-border-style) var(--tabs-card-tab-border);
242
+ margin: 0;
243
+ padding: var(--tabs-card-tab-padding-vertical) var(--tabs-card-tab-padding-horizontal);
244
+ transition: all var(--transition-duration) var(--ease-in-out);
245
+ @if map.has-key($mixins, 'hook-tabs-tab-card') {
246
+ @include meta.apply(map.get($mixins, 'hook-tabs-tab-card'));
247
+ }
248
+ }
249
+
250
+ .#{$prefix}-tabs-card .#{$prefix}-tabs-tab-active {
251
+ background-color: var(--tabs-card-tab-active-background);
252
+ color: var(--tabs-card-tab-active-color);
253
+ }
254
+
255
+ .#{$prefix}-tabs-card .#{$prefix}-tabs-ink-bar {
256
+ visibility: hidden;
257
+ }
258
+
259
+
260
+ /* Content
261
+ ========================================================================== */
262
+
263
+ .#{$prefix}-tabs-content {
264
+ box-sizing: border-box;
265
+ position: relative;
266
+ width: 100%;
267
+ }
268
+
269
+
270
+ /* Tabpane
271
+ ========================================================================== */
272
+
273
+ .#{$prefix}-tabs-tabpane-hidden {
274
+ display: none;
275
+ }
276
+
277
+
278
+ /* Position modifier
279
+ ========================================================================== */
280
+
281
+ /*
282
+ * Bottom + Top
283
+ */
284
+
285
+ .#{$prefix}-tabs-bottom,
286
+ .#{$prefix}-tabs-top {
287
+ flex-direction: column;
288
+
289
+ > .#{$prefix}-tabs-nav::before {
290
+ border-bottom: var(--global-border-width) var(--global-border-style) var(--global-border);
291
+ content: '';
292
+ left: 0;
293
+ position: absolute;
294
+ right: 0;
295
+ }
296
+
297
+ .#{$prefix}-tabs-nav-add {
298
+ margin: 0 0 0 var(--tabs-margin-horizontal);
299
+ }
300
+
301
+ .#{$prefix}-tabs-ink-bar {
302
+ height: var(--tabs-ink-bar-height);
303
+ }
304
+
305
+ .#{$prefix}-tabs-ink-bar-animated {
306
+ transition: width var(--transition-duration), left var(--transition-duration), right var(--transition-duration);
307
+ }
308
+
309
+ &.#{$prefix}-tabs-card {
310
+ .#{$prefix}-tabs-tab + .#{$prefix}-tabs-tab {
311
+ margin-left: var(--tabs-card-gutter);
312
+ }
313
+
314
+ .#{$prefix}-tabs-nav-add {
315
+ margin: 0 0 0 var(--tabs-card-gutter);
316
+ }
317
+ }
318
+ }
319
+
320
+ /*
321
+ * Bottom
322
+ */
323
+
324
+ .#{$prefix}-tabs-bottom {
325
+ > .#{$prefix}-tabs-nav {
326
+ margin-top: var(--tabs-margin-vertical);
327
+ order: 1;
328
+ }
329
+
330
+ > .#{$prefix}-tabs-nav::before {
331
+ top: 0;
332
+ }
333
+
334
+ .#{$prefix}-tabs-ink-bar {
335
+ top: 0;
336
+ }
337
+
338
+ &.#{$prefix}-tabs-card {
339
+ .#{$prefix}-tabs-tab {
340
+ border-radius: 0 0 var(--tabs-card-tab-border-radius) var(--tabs-card-tab-border-radius);
341
+ }
342
+
343
+ .#{$prefix}-tabs-tab-active {
344
+ border-top-color: var(--tabs-card-tab-active-background);
345
+ }
346
+ }
347
+
348
+ .#{$prefix}-tabs-nav-add {
349
+ border-radius: 0 0 var(--tabs-card-tab-border-radius) var(--tabs-card-tab-border-radius);
350
+ }
351
+
352
+ .#{$prefix}-tabs-content-holder {
353
+ order: 0;
354
+ }
355
+
356
+ @if map.has-key($mixins, 'hook-tabs-bottom') {
357
+ @include meta.apply(map.get($mixins, 'hook-tabs-bottom'));
358
+ }
359
+ }
360
+
361
+ .#{$prefix}-tabs-bottom .#{$prefix}-tabs-tab {
362
+ @if map.has-key($mixins, 'hook-tabs-bottom-tab') {
363
+ @include meta.apply(map.get($mixins, 'hook-tabs-bottom-tab'));
364
+ }
365
+ }
366
+
367
+ /*
368
+ * Top
369
+ */
370
+
371
+ .#{$prefix}-tabs-top {
372
+ > .#{$prefix}-tabs-nav {
373
+ margin-bottom: var(--tabs-margin-vertical);
374
+ }
375
+
376
+ > .#{$prefix}-tabs-nav::before {
377
+ bottom: 0;
378
+ }
379
+
380
+ .#{$prefix}-tabs-ink-bar {
381
+ bottom: 0;
382
+ }
383
+
384
+ &.#{$prefix}-tabs-card {
385
+ .#{$prefix}-tabs-tab {
386
+ border-radius: var(--tabs-card-tab-border-radius) var(--tabs-card-tab-border-radius) 0 0;
387
+ }
388
+
389
+ .#{$prefix}-tabs-tab-active {
390
+ border-bottom-color: var(--tabs-card-tab-active-background);
391
+ }
392
+ }
393
+
394
+ .#{$prefix}-tabs-nav-add {
395
+ border-radius: var(--tabs-card-tab-border-radius) var(--tabs-card-tab-border-radius) 0 0;
396
+ }
397
+
398
+ @if map.has-key($mixins, 'hook-tabs-top') {
399
+ @include meta.apply(map.get($mixins, 'hook-tabs-top'));
400
+ }
401
+ }
402
+
403
+ .#{$prefix}-tabs-top .#{$prefix}-tabs-tab {
404
+ @if map.has-key($mixins, 'hook-tabs-top-tab') {
405
+ @include meta.apply(map.get($mixins, 'hook-tabs-top-tab'));
406
+ }
407
+ }
408
+
409
+
410
+ /*
411
+ * Left + Right
412
+ */
413
+
414
+ .#{$prefix}-tabs-left,
415
+ .#{$prefix}-tabs-right {
416
+ .#{$prefix}-tabs-nav {
417
+ flex-direction: column;
418
+ min-width: 50px;
419
+ }
420
+
421
+ .#{$prefix}-tabs-nav-wrap {
422
+ flex-direction: column;
423
+ }
424
+
425
+ .#{$prefix}-tabs-tab {
426
+ text-align: center;
427
+ }
428
+
429
+ .#{$prefix}-tabs-tab + .#{$prefix}-tabs-tab {
430
+ margin: var(--tabs-margin-vertical) 0 0 0;
431
+ }
432
+
433
+ .#{$prefix}-tabs-ink-bar {
434
+ width: var(--tabs-ink-bar-width);
435
+ }
436
+
437
+ .#{$prefix}-tabs-ink-bar-animated {
438
+ transition: height var(--transition-duration), top var(--transition-duration);
439
+ }
440
+
441
+ &.#{$prefix}-tabs-card {
442
+ .#{$prefix}-tabs-tab + .#{$prefix}-tabs-tab {
443
+ margin-top: var(--tabs-card-gutter);
444
+ }
445
+ }
446
+
447
+ .#{$prefix}-tabs-nav-add {
448
+ margin: var(--tabs-card-gutter) 0 0 0;
449
+ }
450
+
451
+ .#{$prefix}-tabs-nav-list,
452
+ .#{$prefix}-tabs-nav-operations {
453
+ flex: 1 0 auto; // fix safari scroll problem
454
+ flex-direction: column;
455
+ }
456
+
457
+ &.#{$prefix}-tabs-centered .#{$prefix}-tabs-nav-list {
458
+ flex: none;
459
+ }
460
+ }
461
+
462
+ /*
463
+ * Left
464
+ */
465
+
466
+ .#{$prefix}-tabs-left {
467
+ .#{$prefix}-tabs-content-holder {
468
+ border-left: var(--global-border-width) var(--global-border-style) var(--global-border);
469
+ margin-left: calc(var(--global-border-width) * -1);
470
+ }
471
+
472
+ .#{$prefix}-tabs-content > .#{$prefix}-tabs-tabpane {
473
+ padding-left: var(--tabs-margin-horizontal);
474
+ }
475
+
476
+ .#{$prefix}-tabs-ink-bar {
477
+ right: 0;
478
+ }
479
+
480
+ &.#{$prefix}-tabs-card {
481
+ .#{$prefix}-tabs-tab {
482
+ border-radius: var(--tabs-card-tab-border-radius) 0 0 var(--tabs-card-tab-border-radius);
483
+ }
484
+
485
+ .#{$prefix}-tabs-tab-active {
486
+ border-right-color: var(--tabs-card-tab-active-background);
487
+ }
488
+ }
489
+
490
+ .#{$prefix}-tabs-nav-add {
491
+ border-radius: var(--tabs-card-tab-border-radius) 0 0 var(--tabs-card-tab-border-radius);
492
+ }
493
+
494
+ @if map.has-key($mixins, 'hook-tabs-left') {
495
+ @include meta.apply(map.get($mixins, 'hook-tabs-left'));
496
+ }
497
+ }
498
+
499
+ .#{$prefix}-tabs-left .#{$prefix}-tabs-tab {
500
+ @if map.has-key($mixins, 'hook-tabs-left-tab') {
501
+ @include meta.apply(map.get($mixins, 'hook-tabs-left-tab'));
502
+ }
503
+ }
504
+
505
+ /*
506
+ * Right
507
+ */
508
+
509
+ .#{$prefix}-tabs-right {
510
+ .#{$prefix}-tabs-nav {
511
+ order: 1;
512
+ }
513
+
514
+ .#{$prefix}-tabs-content-holder {
515
+ border-right: var(--global-border-width) var(--global-border-style) var(--global-border);
516
+ margin-right: calc(var(--global-border-width) * -1);
517
+ }
518
+
519
+ .#{$prefix}-tabs-content > .#{$prefix}-tabs-tabpane {
520
+ padding-right: var(--tabs-margin-horizontal);
521
+ }
522
+
523
+ .#{$prefix}-tabs-ink-bar {
524
+ left: 0;
525
+ }
526
+
527
+ &.#{$prefix}-tabs-card {
528
+ .#{$prefix}-tabs-tab {
529
+ border-radius: 0 var(--tabs-card-tab-border-radius) var(--tabs-card-tab-border-radius) 0;
530
+ }
531
+
532
+ .#{$prefix}-tabs-tab-active {
533
+ border-left-color: var(--tabs-card-tab-active-background);
534
+ }
535
+ }
536
+
537
+ .#{$prefix}-tabs-nav-add {
538
+ border-radius: 0 var(--tabs-card-tab-border-radius) var(--tabs-card-tab-border-radius) 0;
539
+ }
540
+
541
+ @if map.has-key($mixins, 'hook-tabs-right') {
542
+ @include meta.apply(map.get($mixins, 'hook-tabs-right'));
543
+ }
544
+ }
545
+
546
+ .#{$prefix}-tabs-right .#{$prefix}-tabs-tab {
547
+ @if map.has-key($mixins, 'hook-tabs-right-tab') {
548
+ @include meta.apply(map.get($mixins, 'hook-tabs-right-tab'));
549
+ }
550
+ }
551
+
552
+
553
+ /* Right to Left Direction
554
+ ========================================================================== */
555
+
556
+ .#{$prefix}-tabs-rtl { direction: rtl; }
557
+
558
+ .#{$prefix}-tabs-rtl .#{$prefix}-tabs-tab-remove {
559
+ margin-left: calc(var(--tabs-card-gutter) * -1);
560
+ margin-right: var(--tabs-card-gutter);
561
+ }
562
+
563
+ .#{$prefix}-tabs-rtl.#{$prefix}-tabs-bottom .#{$prefix}-tabs-tab,
564
+ .#{$prefix}-tabs-rtl.#{$prefix}-tabs-top .#{$prefix}-tabs-tab {
565
+ margin: 0 0 0 var(--tabs-margin-horizontal);
566
+
567
+ &:last-of-type {
568
+ margin-left: 0;
569
+ }
570
+
571
+ .#{$prefix}-tabs-tab-remove {
572
+ margin-left: calc(var(--tabs-card-tab-padding-horizontal) * -1);
573
+ margin-right: var(--tabs-card-tab-padding-horizontal);
574
+ }
575
+ }
576
+
577
+ .#{$prefix}-tabs-rtl.#{$prefix}-tabs-left .#{$prefix}-tabs-nav { order: 1; }
578
+ .#{$prefix}-tabs-rtl.#{$prefix}-tabs-left .#{$prefix}-tabs-content-holder { order: 0; }
579
+
580
+ .#{$prefix}-tabs-rtl.#{$prefix}-tabs-right .#{$prefix}-tabs-nav { order: 0; }
581
+ .#{$prefix}-tabs-rtl.#{$prefix}-tabs-right .#{$prefix}-tabs-content-holder { order: 1; }
582
+
583
+
584
+ /* Size modifier
585
+ ========================================================================== */
586
+
587
+ .#{$prefix}-tabs-medium .#{$prefix}-tabs-tab {
588
+ padding: var(--tabs-medium-tab-padding-vertical) var(--tabs-medium-tab-padding-horizontal);
589
+ }
590
+
591
+ .#{$prefix}-tabs-large .#{$prefix}-tabs-tab {
592
+ padding: var(--tabs-large-tab-padding-vertical) var(--tabs-large-tab-padding-horizontal);
593
+ }
594
+
595
+ .#{$prefix}-tabs-medium.#{$prefix}-tabs-card .#{$prefix}-tabs-tab,
596
+ .#{$prefix}-tabs-medium.#{$prefix}-tabs-card .#{$prefix}-tabs-nav-add {
597
+ padding: var(--tabs-card-medium-tab-padding-vertical) var(--tabs-card-medium-tab-padding-horizontal);
598
+ }
599
+
600
+ .#{$prefix}-tabs-large.#{$prefix}-tabs-card .#{$prefix}-tabs-tab,
601
+ .#{$prefix}-tabs-large.#{$prefix}-tabs-card .#{$prefix}-tabs-nav-add {
602
+ padding: var(--tabs-card-large-tab-padding-vertical) var(--tabs-card-large-tab-padding-horizontal);
603
+ }
604
+
605
+
606
+ // Dropdown
607
+ // ========================================================================
608
+
609
+ .#{$prefix}-tabs-dropdown {
610
+ box-sizing: border-box;
611
+ display: block;
612
+ left: -9999px;
613
+ line-height: normal;
614
+ margin: 0;
615
+ outline: none;
616
+ padding: 0;
617
+ position: absolute;
618
+ top: -9999px;
619
+ z-index: calc(var(--global-z-index) + 50);
620
+ @if map.has-key($mixins, 'hook-tabs-dropdown') {
621
+ @include meta.apply(map.get($mixins, 'hook-tabs-dropdown'));
622
+ }
623
+ }
624
+
625
+ .#{$prefix}-tabs-dropdown-hidden {
626
+ display: none;
627
+ }
628
+
629
+ .#{$prefix}-tabs-dropdown-menu {
630
+ background-clip: padding-box;
631
+ background-color: var(--tabs-dropdown-background);
632
+ border-radius: var(--tabs-dropdown-border-radius);
633
+ box-shadow: none;
634
+ list-style-type: none;
635
+ margin: 0;
636
+ max-height: 200px;
637
+ outline: none;
638
+ overflow: hidden auto;
639
+ padding: 0;
640
+ text-align: left;
641
+ @if map.has-key($mixins, 'hook-tabs-dropdown-menu') {
642
+ @include meta.apply(map.get($mixins, 'hook-tabs-dropdown-menu'));
643
+ }
644
+ }
645
+
646
+ .#{$prefix}-tabs-dropdown-menu-item {
647
+ align-items: center;
648
+ color: var(--tabs-dropdown-item-color);
649
+ cursor: pointer;
650
+ display: flex;
651
+ font-weight: normal;
652
+ margin: 0;
653
+ min-width: 120px;
654
+ overflow: hidden;
655
+ padding: var(--tabs-dropdown-item-padding-vertical) var(--tabs-dropdown-item-padding-horizontal);
656
+ text-overflow: ellipsis;
657
+ transition: all var(--transition-duration);
658
+ white-space: nowrap;
659
+ }
660
+
661
+ .#{$prefix}-tabs-dropdown-menu-item-disabled,
662
+ .#{$prefix}-tabs-dropdown-menu-item-disabled:hover {
663
+ background: transparent;
664
+ color: var(--tabs-dropdown-item-disabled-color);
665
+ cursor: not-allowed;
666
+ }
667
+
668
+ .#{$prefix}-tabs-dropdown-menu-item:hover {
669
+ background-color: var(--tabs-dropdown-item-hover-background);
670
+ color: var(--tabs-dropdown-item-hover-color);
671
+ }
672
+
673
+ .#{$prefix}-tabs-dropdown-menu-item > span {
674
+ flex: 1;
675
+ white-space: nowrap;
676
+ }
677
+
678
+ .#{$prefix}-tabs-dropdown-menu-item-remove {
679
+ --icon-size: var(--tabs-tab-remove-font-size);
680
+ background: transparent;
681
+ border: 0;
682
+ color: var(--tabs-tab-remove-color);
683
+ cursor: pointer;
684
+ flex: none;
685
+ font-size: var(--tabs-tab-remove-font-size);
686
+ margin-left: var(--tabs-card-gutter);
687
+ }
688
+
689
+ .#{$prefix}-tabs-dropdown-menu-item-remove:hover {
690
+ color: var(--tabs-tab-remove-hover-color);
691
+ }
692
+
693
+ .#{$prefix}-tabs-dropdown-rtl { direction: rtl; }
694
+
695
+ .#{$prefix}-tabs-dropdown-rtl .#{$prefix}-tabs-dropdown-menu-item {
696
+ text-align: right;
697
+ }
698
+
699
+
700
+ // Ink Bar
701
+ // ========================================================================
702
+
703
+ .#{$prefix}-tabs-ink-bar {
704
+ background: var(--tabs-ink-bar-color);
705
+ pointer-events: none;
706
+ position: absolute;
707
+ }
708
+
709
+
710
+ // Motion
711
+ // ========================================================================
712
+
713
+ .#{$prefix}-tabs-motion-switch-appear,
714
+ .#{$prefix}-tabs-motion-switch-enter {
715
+ transition: none;
716
+ }
717
+
718
+ .#{$prefix}-tabs-motion-switch-appear-start,
719
+ .#{$prefix}-tabs-motion-switch-enter-start {
720
+ opacity: 0;
721
+ }
722
+
723
+ .#{$prefix}-tabs-motion-switch-appear-active,
724
+ .#{$prefix}-tabs-motion-switch-enter-active {
725
+ opacity: 1;
726
+ transition: opacity var(--transition-duration);
727
+ }
728
+
729
+ .#{$prefix}-tabs-motion-switch-leave {
730
+ inset: 0;
731
+ position: absolute;
732
+ transition: none;
733
+ }
734
+
735
+ .#{$prefix}-tabs-motion-switch-leave-start { opacity: 1; }
736
+
737
+ .#{$prefix}-tabs-motion-switch-leave-active {
738
+ opacity: 0;
739
+ transition: opacity var(--transition-duration);
740
+ }
741
+
742
+
743
+ // Hooks
744
+ // ========================================================================
745
+
746
+ @if map.has-key($mixins, 'hook-tabs-misc') {
747
+ @include meta.apply(map.get($mixins, 'hook-tabs-misc'));
748
+ }
749
+
750
+ @content;
751
+ }
752
+
753
+ @mixin tabs-tokens {
754
+ --tabs-margin-horizontal: #{$tabs-margin-horizontal};
755
+ --tabs-margin-vertical: #{$tabs-margin-vertical};
756
+ --tabs-tab-padding-horizontal: #{$tabs-tab-padding-horizontal};
757
+ --tabs-tab-padding-vertical: #{$tabs-tab-padding-vertical};
758
+ --tabs-medium-tab-padding-horizontal: #{$tabs-medium-tab-padding-horizontal};
759
+ --tabs-medium-tab-padding-vertical: #{$tabs-medium-tab-padding-vertical};
760
+ --tabs-large-tab-padding-horizontal: #{$tabs-large-tab-padding-horizontal};
761
+ --tabs-large-tab-padding-vertical: #{$tabs-large-tab-padding-vertical};
762
+ --tabs-tab-font-size: var(--global-font-size);
763
+ --tabs-tab-color: var(--global-color);
764
+ --tabs-tab-hover-color: var(--global-primary-color);
765
+ --tabs-tab-active-color: var(--global-primary-color);
766
+ --tabs-tab-disabled-color: var(--global-muted-color);
767
+ --tabs-tab-remove-color: var(--global-muted-color);
768
+ --tabs-tab-remove-font-size: var(--global-font-size);
769
+ --tabs-tab-remove-hover-color: var(--global-danger-color);
770
+ --tabs-tab-remove-active-color: var(--global-danger-color);
771
+ --tabs-nav-more-font-size: var(--global-font-size);
772
+ --tabs-ink-bar-color: var(--global-primary-color);
773
+ --tabs-ink-bar-height: #{$tabs-ink-bar-height};
774
+ --tabs-ink-bar-width: #{$tabs-ink-bar-width};
775
+ --tabs-card-tab-background: var(--global-muted-background);
776
+ --tabs-card-tab-border-width: var(--global-border-width);
777
+ --tabs-card-tab-border-style: var(--global-border-style);
778
+ --tabs-card-tab-border: var(--global-border);
779
+ --tabs-card-tab-border-radius: var(--global-border-radius);
780
+ --tabs-card-tab-padding-horizontal: var(--tabs-tab-padding-horizontal);
781
+ --tabs-card-tab-padding-vertical: var(--tabs-tab-padding-vertical);
782
+ --tabs-card-medium-tab-padding-horizontal: var(--tabs-medium-tab-padding-horizontal);
783
+ --tabs-card-medium-tab-padding-vertical: var(--tabs-medium-tab-padding-vertical);
784
+ --tabs-card-large-tab-padding-horizontal: var(--tabs-large-tab-padding-horizontal);
785
+ --tabs-card-large-tab-padding-vertical: var(--tabs-large-tab-padding-vertical);
786
+ --tabs-card-tab-active-background: var(--global-background);
787
+ --tabs-card-tab-active-color: var(--global-emphasis-color);
788
+ --tabs-card-gutter: var(--global-xsmall-gutter);
789
+ --tabs-dropdown-background: var(--dropdown-background);
790
+ --tabs-dropdown-border-radius: var(--global-border-radius);
791
+ --tabs-dropdown-item-color: var(--tabs-tab-color);
792
+ --tabs-dropdown-item-hover-color: var(--global-inverse-color);
793
+ --tabs-dropdown-item-disabled-color: var(--tabs-tab-disabled-color);
794
+ --tabs-dropdown-item-hover-background: var(--global-primary-background);
795
+ --tabs-dropdown-item-padding-horizontal: var(--tabs-tab-padding-horizontal);
796
+ --tabs-dropdown-item-padding-vertical: var(--tabs-tab-padding-vertical);
797
+
798
+ @content;
799
+ }
800
+
801
+ @mixin tabs-inverse-tokens {
802
+ --inverse-tabs-tab-color: var(--inverse-global-muted-color);
803
+ --inverse-tabs-tab-hover-color: var(--inverse-global-color);
804
+ --inverse-tabs-tab-active-color: var(--inverse-global-emphasis-color);
805
+ --inverse-tabs-tab-disabled-color: var(--inverse-global-muted-color);
806
+ --inverse-tabs-ink-bar-color: var(--inverse-global-primary-background);
807
+
808
+ @content;
809
+ }