@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,694 @@
1
+ // Name: Navbar
2
+ // Description: Component to create horizontal navigation bars
3
+ //
4
+ // Component: `uk-navbar`
5
+ //
6
+ // Sub-objects: `uk-navbar-container`
7
+ // `uk-navbar-left`
8
+ // `uk-navbar-right`
9
+ // `uk-navbar-center`
10
+ // `uk-navbar-center-left`
11
+ // `uk-navbar-center-right`
12
+ // `uk-navbar-nav`
13
+ // `uk-navbar-parent-icon`
14
+ // `uk-navbar-item`
15
+ // `uk-navbar-item-rest`
16
+ // `uk-navbar-toggle`
17
+ // `uk-navbar-subtitle`
18
+ //
19
+ // Adopted: `uk-navbar-dropdown` + Modifiers
20
+ // `uk-navbar-dropdown-nav`
21
+ // `uk-navbar-toggle-icon`
22
+ //
23
+ // Modifiers: `uk-navbar-primary`
24
+ // `uk-navbar-transparent`
25
+ // `uk-navbar-sticky`
26
+ //
27
+ // States: `uk-active`
28
+ // `uk-parent`
29
+ // `uk-open`
30
+ //
31
+ //
32
+ // ========================================================================
33
+
34
+ @use 'sass:map';
35
+ @use 'sass:meta';
36
+ @use 'sass:string';
37
+
38
+
39
+ // Variables
40
+ // ========================================================================
41
+
42
+ @use '../variables' as *;
43
+ @use '../mixins' as *;
44
+
45
+
46
+ @mixin navbar-styles {
47
+ /* ========================================================================
48
+ Component: Navbar
49
+ ========================================================================== */
50
+
51
+ /*
52
+ * 1. Create position context to center navbar group
53
+ */
54
+
55
+ .#{$prefix}-navbar {
56
+ --uk-inverse: #{$navbar-color-mode};
57
+ display: flex;
58
+ position: relative; /* 1 */
59
+ @if map.has-key($mixins, 'hook-navbar') {
60
+ @include meta.apply(map.get($mixins, 'hook-navbar'));
61
+ }
62
+ }
63
+
64
+
65
+ /* Container
66
+ ========================================================================== */
67
+
68
+ .#{$prefix}-navbar-container:not(.#{$prefix}-navbar-transparent) {
69
+ background: var(--navbar-background);
70
+ @if map.has-key($mixins, 'hook-navbar-container') {
71
+ @include meta.apply(map.get($mixins, 'hook-navbar-container'));
72
+ }
73
+ }
74
+
75
+
76
+ /* Groups
77
+ ========================================================================== */
78
+
79
+ /*
80
+ * 1. Stretch height if a sibling's height is expanded by its content
81
+ */
82
+
83
+ .#{$prefix}-navbar-left,
84
+ .#{$prefix}-navbar-right,
85
+ [class*="uk-navbar-center"] {
86
+ align-items: stretch; /* 1 */
87
+ display: flex;
88
+ flex: none;
89
+ gap: var(--navbar-gap);
90
+ min-width: 1px;
91
+ }
92
+
93
+ /* Tablet landscape and bigger */
94
+ @media (--media-breakpoint-medium) {
95
+ .#{$prefix}-navbar-left,
96
+ .#{$prefix}-navbar-right,
97
+ [class*="uk-navbar-center"] { gap: var(--navbar-gap-m); }
98
+
99
+ .#{$prefix}-navbar-center-left { right: string.unquote('calc(100% + var(--navbar-gap-m))'); }
100
+ .#{$prefix}-navbar-center-right { left: string.unquote('calc(100% + var(--navbar-gap-m))'); }
101
+ }
102
+
103
+ /*
104
+ * Horizontal alignment
105
+ * 1. Create position context for centered navbar with sub groups (left/right)
106
+ * 2. Fix text wrapping if content is larger than 50% of the container.
107
+ * 3. Needed for dropdowns because a new position context is created
108
+ * `z-index` must be smaller than Drawer
109
+ * 4. Align sub groups for centered navbar
110
+ */
111
+
112
+ .#{$prefix}-navbar-left {
113
+ flex: 1;
114
+ }
115
+
116
+ .#{$prefix}-navbar-right {
117
+ margin-left: auto;
118
+ }
119
+
120
+ .#{$prefix}-navbar-center:only-child {
121
+ margin-left: auto;
122
+ margin-right: auto;
123
+ position: relative; /* 1 */
124
+ }
125
+
126
+ .#{$prefix}-navbar-center:not(:only-child) {
127
+ align-items: stretch;
128
+ box-sizing: border-box;
129
+ height: 100%; /* 4 */
130
+ left: 50%;
131
+ position: absolute;
132
+ top: 50%;
133
+ transform: translate(-50%, -50%);
134
+ width: max-content; /* 2 */
135
+ z-index: calc(var(--global-z-index) - 10); /* 3 */
136
+ }
137
+
138
+ .#{$prefix}-navbar-center-left,
139
+ .#{$prefix}-navbar-center-right {
140
+ height: 100%; /* 4 */
141
+ position: absolute; /* 5 */
142
+ top: 0;
143
+ }
144
+
145
+ .#{$prefix}-navbar-center-left { right: string.unquote('calc(100% + var(--navbar-gap))'); }
146
+ .#{$prefix}-navbar-center-right { left: string.unquote('calc(100% + var(--navbar-gap))'); }
147
+
148
+ [class*='#{$prefix}-navbar-center-'] {
149
+ box-sizing: border-box;
150
+ width: max-content;
151
+ }
152
+
153
+
154
+ /* Nav
155
+ ========================================================================== */
156
+
157
+ /*
158
+ * 1. Stretch height if a sibling's height is expanded by its content
159
+ * 2. Reset list
160
+ */
161
+
162
+ .#{$prefix}-navbar-nav {
163
+ align-items: stretch; /* 1 */
164
+ display: flex;
165
+ flex: auto;
166
+ flex-wrap: nowrap;
167
+ list-style: none;
168
+ margin: 0; /* 2 */
169
+ max-width: 100%;
170
+ min-width: 1px;
171
+ padding: 0;
172
+ white-space: nowrap;
173
+ }
174
+
175
+
176
+ /*
177
+ * Allow items to wrap into the next line
178
+ * Only not `absolute` positioned groups
179
+ */
180
+
181
+ .#{$prefix}-navbar-left,
182
+ .#{$prefix}-navbar-right,
183
+ .#{$prefix}-navbar-center:only-child {
184
+ flex-wrap: nowrap;
185
+ white-space: nowrap;
186
+ }
187
+
188
+ /*
189
+ * Items
190
+ * 1. Center content vertically and horizontally
191
+ * 2. Imitate white space gap when using flexbox
192
+ * 3. Dimensions
193
+ * 4. Style
194
+ * 5. Required for `a`
195
+ */
196
+
197
+ .#{$prefix}-navbar-nav > li[class*='#{$prefix}-nav-item'] > a, /* Nav item */
198
+ .#{$prefix}-navbar-item, /* Content item */
199
+ .#{$prefix}-navbar-toggle { /* Clickable item */
200
+ align-items: center;
201
+ box-sizing: border-box; /* 3 */
202
+ column-gap: 0.25em; /* 2 */
203
+ display: flex; /* 1 */
204
+ flex: none;
205
+ font-family: var(--navbar-nav-item-font-family), system-ui;
206
+ font-size: var(--navbar-nav-item-font-size); /* 4 */
207
+ justify-content: center;
208
+ min-height: var(--navbar-nav-item-height);
209
+ text-decoration: none; /* 5 */
210
+ }
211
+
212
+ /*
213
+ * Nav items
214
+ * 1. Stretch height if a sibling's height is expanded by its content
215
+ * 2. Reset list
216
+ */
217
+
218
+ .#{$prefix}-navbar-nav > li[class*='#{$prefix}-nav-item'] > a {
219
+ color: var(--navbar-nav-item-color);
220
+ height: 100%; /* 1 */
221
+ padding: 0 var(--navbar-nav-item-padding-horizontal); /* 2 */
222
+ @if map.has-key($mixins, 'hook-navbar-nav-item') {
223
+ @include meta.apply(map.get($mixins, 'hook-navbar-nav-item'));
224
+ }
225
+ }
226
+
227
+ /* Tablet landscape and bigger */
228
+ @media (--media-breakpoint-medium) {
229
+ .#{$prefix}-navbar-nav > li[class*='#{$prefix}-nav-item'] > a {
230
+ padding: 0 var(--navbar-nav-item-padding-horizontal-m); /* 2 */
231
+ }
232
+ }
233
+
234
+ /*
235
+ * Hover
236
+ * Apply hover style also if dropdown is opened
237
+ */
238
+
239
+ .#{$prefix}-navbar-nav > li[class*='#{$prefix}-nav-item'].#{$prefix}-hover > a,
240
+ .#{$prefix}-navbar-nav > li[class*='#{$prefix}-nav-item']:hover > a,
241
+ .#{$prefix}-navbar-nav > li[class*='#{$prefix}-nav-item'] > a[aria-expanded='true'],
242
+ .#{$prefix}-navbar-nav > li[class*='#{$prefix}-nav-item'] > a.#{$prefix}-open {
243
+ color: var(--navbar-nav-item-hover-color);
244
+ @if map.has-key($mixins, 'hook-navbar-nav-item-hover') {
245
+ @include meta.apply(map.get($mixins, 'hook-navbar-nav-item-hover'));
246
+ }
247
+ }
248
+
249
+ /* OnClick */
250
+ .#{$prefix}-navbar-nav > li[class*='#{$prefix}-nav-item'] > a:active {
251
+ color: var(--navbar-nav-item-onclick-color);
252
+ @if map.has-key($mixins, 'hook-navbar-nav-item-onclick') {
253
+ @include meta.apply(map.get($mixins, 'hook-navbar-nav-item-onclick'));
254
+ }
255
+ }
256
+
257
+ /* Active */
258
+ .#{$prefix}-navbar-nav > li[class*='#{$prefix}-nav-item'].#{$prefix}-active > a {
259
+ color: var(--navbar-nav-item-active-color);
260
+ @if map.has-key($mixins, 'hook-navbar-nav-item-active') {
261
+ @include meta.apply(map.get($mixins, 'hook-navbar-nav-item-active'));
262
+ }
263
+ }
264
+
265
+
266
+ /* Parent icon modifier
267
+ ========================================================================== */
268
+
269
+ .#{$prefix}-navbar-parent-icon {
270
+ margin-left: var(--navbar-parent-icon-margin-left);
271
+ transition: transform var(--transition-duration) var(--ease-out);
272
+ }
273
+
274
+ .#{$prefix}-navbar-nav > li > a[aria-expanded='true'] .#{$prefix}-navbar-parent-icon {
275
+ transform: rotateX(180deg);
276
+ }
277
+
278
+
279
+ /* Item
280
+ ========================================================================== */
281
+
282
+ .#{$prefix}-navbar-item {
283
+ color: var(--navbar-item-color);
284
+ padding: 0 var(--navbar-item-padding-horizontal);
285
+ @if map.has-key($mixins, 'hook-navbar-item') {
286
+ @include meta.apply(map.get($mixins, 'hook-navbar-item'));
287
+ }
288
+ }
289
+
290
+ /* Tablet landscape and bigger */
291
+ @media (--media-breakpoint-medium) {
292
+ .#{$prefix}-navbar-item {
293
+ padding: 0 var(--navbar-item-padding-horizontal-m); /* 2 */
294
+ }
295
+ }
296
+
297
+ /*
298
+ * Remove margin from the last-child
299
+ */
300
+
301
+ .#{$prefix}-navbar-item > :last-child {
302
+ margin-bottom: 0;
303
+ }
304
+
305
+
306
+ /* Toggle
307
+ ========================================================================== */
308
+
309
+ .#{$prefix}-navbar-toggle {
310
+ color: var(--navbar-toggle-color);
311
+ padding: 0 var(--navbar-item-padding-horizontal);
312
+ @if map.has-key($mixins, 'hook-navbar-toggle') {
313
+ @include meta.apply(map.get($mixins, 'hook-navbar-toggle'));
314
+ }
315
+ }
316
+
317
+ .#{$prefix}-navbar-toggle:hover,
318
+ .#{$prefix}-navbar-toggle[aria-expanded='true'],
319
+ .#{$prefix}-navbar-toggle.#{$prefix}-open {
320
+ color: var(--navbar-toggle-hover-color);
321
+ outline: none;
322
+ text-decoration: none;
323
+ @if map.has-key($mixins, 'hook-navbar-toggle-hover') {
324
+ @include meta.apply(map.get($mixins, 'hook-navbar-toggle-hover'));
325
+ }
326
+ }
327
+
328
+ /* Tablet landscape and bigger */
329
+ @media (--media-breakpoint-medium) {
330
+ .#{$prefix}-navbar-toggle {
331
+ padding: 0 var(--navbar-item-padding-horizontal-m); /* 2 */
332
+ }
333
+ }
334
+
335
+ /*
336
+ * Icon
337
+ * Adopts `uk-icon`
338
+ */
339
+
340
+ .#{$prefix}-navbar-toggle-icon {
341
+ @if map.has-key($mixins, 'hook-navbar-toggle-icon') {
342
+ @include meta.apply(map.get($mixins, 'hook-navbar-toggle-icon'));
343
+ }
344
+ }
345
+
346
+ /* Hover */
347
+ :hover > .#{$prefix}-navbar-toggle-icon {
348
+ @if map.has-key($mixins, 'hook-navbar-toggle-icon-hover') {
349
+ @include meta.apply(map.get($mixins, 'hook-navbar-toggle-icon-hover'));
350
+ }
351
+ }
352
+
353
+
354
+ /* Subtitle
355
+ ========================================================================== */
356
+
357
+ .#{$prefix}-navbar-subtitle {
358
+ font-size: var(--navbar-subtitle-font-size);
359
+ @if map.has-key($mixins, 'hook-navbar-subtitle') {
360
+ @include meta.apply(map.get($mixins, 'hook-navbar-subtitle'));
361
+ }
362
+ }
363
+
364
+ /* Justify modifier
365
+ ========================================================================== */
366
+
367
+ .#{$prefix}-navbar-justify .#{$prefix}-navbar-left,
368
+ .#{$prefix}-navbar-justify .#{$prefix}-navbar-right,
369
+ .#{$prefix}-navbar-justify .#{$prefix}-navbar-nav,
370
+ .#{$prefix}-navbar-justify .#{$prefix}-navbar-nav > li, // Nav item
371
+ .#{$prefix}-navbar-justify .#{$prefix}-navbar-item, // Content item
372
+ .#{$prefix}-navbar-justify .#{$prefix}-navbar-toggle {
373
+ flex-grow: 1;
374
+ }
375
+
376
+
377
+ /* Style modifiers
378
+ ========================================================================== */
379
+
380
+ .#{$prefix}-navbar-primary {
381
+ @if map.has-key($mixins, 'hook-navbar-primary') {
382
+ @include meta.apply(map.get($mixins, 'hook-navbar-primary'));
383
+ }
384
+ }
385
+
386
+ .#{$prefix}-navbar-transparent {
387
+ @if map.has-key($mixins, 'hook-navbar-transparent') {
388
+ @include meta.apply(map.get($mixins, 'hook-navbar-transparent'));
389
+ }
390
+ }
391
+
392
+ .#{$prefix}-navbar-sticky {
393
+ @if map.has-key($mixins, 'hook-navbar-sticky') {
394
+ @include meta.apply(map.get($mixins, 'hook-navbar-sticky'));
395
+ }
396
+ }
397
+
398
+
399
+ /* Dropdown
400
+ ========================================================================== */
401
+
402
+ /*
403
+ * Adopts `uk-drop`
404
+ * 1. Set a default width
405
+ * 2. Style
406
+ */
407
+
408
+ .#{$prefix}-navbar-dropdown {
409
+ --uk-inverse: #{$navbar-dropdown-color-mode};
410
+ background: var(--navbar-dropdown-background);
411
+ box-sizing: border-box; /* 3 */
412
+ color: var(--navbar-dropdown-color);
413
+ display: block; /* 1 */
414
+ padding: var(--navbar-dropdown-padding); /* 4 */
415
+ position: absolute; /* 2 */
416
+ width: var(--navbar-dropdown-width);
417
+ z-index: var(--navbar-dropdown-z-index);
418
+ @if map.has-key($mixins, 'hook-navbar-dropdown') {
419
+ @include meta.apply(map.get($mixins, 'hook-navbar-dropdown'));
420
+ }
421
+ }
422
+
423
+ /* Hide */
424
+ .#{$prefix}-navbar-dropdown.#{$prefix}-hidden {
425
+ display: none;
426
+ }
427
+
428
+ /*
429
+ * Transform origin
430
+ */
431
+
432
+ [class*='#{$prefix}-navbar-dropdown-left-top'] {
433
+ transform-origin: 100% 0;
434
+ }
435
+
436
+ [class*='#{$prefix}-navbar-dropdown-bottom'] {
437
+
438
+ }
439
+
440
+ [class*='#{$prefix}-navbar-dropdown-left'] {
441
+
442
+ }
443
+
444
+ [class*='#{$prefix}-navbar-dropdown-right-top'] {
445
+ transform-origin: 0 0;
446
+ }
447
+
448
+ /*
449
+ * Remove margin from the last-child
450
+ */
451
+
452
+ .#{$prefix}-navbar-dropdown > :last-child { margin-bottom: 0; }
453
+
454
+ // Color Mode
455
+ @if $navbar-dropdown-color-mode == light {
456
+ .#{$prefix}-navbar-dropdown:not(.#{$prefix}-preserve-color) {
457
+ @extend .#{$prefix}-light !optional;
458
+ }
459
+ }
460
+
461
+ @if $navbar-dropdown-color-mode == dark {
462
+ .#{$prefix}-navbar-dropdown:not(.#{$prefix}-preserve-color) {
463
+ @extend .#{$prefix}-dark !optional;
464
+ }
465
+ }
466
+
467
+ @if $navbar-dropdown-color-mode != $inverse-global-color-mode {
468
+ .#{$prefix}-navbar-dropdown :focus-visible {
469
+ outline-color: var(--navbar-dropdown-focus-outline) !important;
470
+ }
471
+ }
472
+
473
+ /*
474
+ * Grid
475
+ * Adopts `uk-grid`
476
+ */
477
+
478
+ /* Gutter Horizontal */
479
+ .#{$prefix}-navbar-dropdown .#{$prefix}-drop-grid {
480
+ margin-left: calc(var(--navbar-dropdown-grid-gutter-horizontal) * -1);
481
+ }
482
+
483
+ .#{$prefix}-navbar-dropdown .#{$prefix}-drop-grid > * {
484
+ padding-left: var(--navbar-dropdown-grid-gutter-horizontal);
485
+ }
486
+
487
+ /* Gutter Vertical */
488
+ .#{$prefix}-navbar-dropdown .#{$prefix}-drop-grid > .#{$prefix}-grid-margin {
489
+ margin-top: var(--navbar-dropdown-grid-gutter-vertical);
490
+ }
491
+
492
+ /*
493
+ * Width modifier
494
+ */
495
+
496
+ .#{$prefix}-navbar-dropdown-width-2:not(.#{$prefix}-drop-stack) {
497
+ width: calc(var(--navbar-dropdown-width) * 2);
498
+ }
499
+
500
+ .#{$prefix}-navbar-dropdown-width-3:not(.#{$prefix}-drop-stack) {
501
+ width: calc(var(--navbar-dropdown-width) * 3);
502
+ }
503
+
504
+ .#{$prefix}-navbar-dropdown-width-4:not(.#{$prefix}-drop-stack) {
505
+ width: calc(var(--navbar-dropdown-width) * 4);
506
+ }
507
+
508
+ .#{$prefix}-navbar-dropdown-width-5:not(.#{$prefix}-drop-stack) {
509
+ width: calc(var(--navbar-dropdown-width) * 5);
510
+ }
511
+
512
+
513
+ /* Dropdown Nav
514
+ * Adopts `uk-nav`
515
+ ========================================================================== */
516
+
517
+ .#{$prefix}-navbar-dropdown-nav {
518
+ @if map.has-key($mixins, 'hook-navbar-dropdown-nav') {
519
+ @include meta.apply(map.get($mixins, 'hook-navbar-dropdown-nav'));
520
+ }
521
+ }
522
+
523
+ /*
524
+ * Items
525
+ */
526
+
527
+ .#{$prefix}-navbar-dropdown-nav > li > a {
528
+ color: var(--navbar-dropdown-nav-item-color);
529
+ @if map.has-key($mixins, 'hook-navbar-dropdown-nav-item') {
530
+ @include meta.apply(map.get($mixins, 'hook-navbar-dropdown-nav-item'));
531
+ }
532
+ }
533
+
534
+ /* Hover */
535
+ .#{$prefix}-navbar-dropdown-nav > li > a:hover {
536
+ color: var(--navbar-dropdown-nav-item-hover-color);
537
+ @if map.has-key($mixins, 'hook-navbar-dropdown-nav-item-hover') {
538
+ @include meta.apply(map.get($mixins, 'hook-navbar-dropdown-nav-item-hover'));
539
+ }
540
+ }
541
+
542
+ /* Active */
543
+ .#{$prefix}-navbar-dropdown-nav > li.#{$prefix}-active > a {
544
+ color: var(--navbar-dropdown-nav-item-active-color);
545
+ @if map.has-key($mixins, 'hook-navbar-dropdown-nav-item-active') {
546
+ @include meta.apply(map.get($mixins, 'hook-navbar-dropdown-nav-item-active'));
547
+ }
548
+ }
549
+
550
+ /*
551
+ * Subtitle
552
+ */
553
+
554
+ .#{$prefix}-navbar-dropdown-nav .#{$prefix}-nav-subtitle {
555
+ font-size: var(--navbar-dropdown-nav-subtitle-font-size);
556
+ @if map.has-key($mixins, 'hook-navbar-dropdown-nav-subtitle') {
557
+ @include meta.apply(map.get($mixins, 'hook-navbar-dropdown-nav-subtitle'));
558
+ }
559
+ }
560
+
561
+ /*
562
+ * Header
563
+ */
564
+
565
+ .#{$prefix}-navbar-dropdown-nav .#{$prefix}-nav-header {
566
+ color: var(--navbar-dropdown-nav-header-color);
567
+ @if map.has-key($mixins, 'hook-navbar-dropdown-nav-header') {
568
+ @include meta.apply(map.get($mixins, 'hook-navbar-dropdown-nav-header'));
569
+ }
570
+ }
571
+
572
+ /*
573
+ * Divider
574
+ */
575
+
576
+ .#{$prefix}-navbar-dropdown-nav .#{$prefix}-nav-divider {
577
+ border-top: var(--navbar-dropdown-nav-divider-border-width) solid var(--navbar-dropdown-nav-divider-border);
578
+ @if map.has-key($mixins, 'hook-navbar-dropdown-nav-divider') {
579
+ @include meta.apply(map.get($mixins, 'hook-navbar-dropdown-nav-divider'));
580
+ }
581
+ }
582
+
583
+ /*
584
+ * Sublists
585
+ */
586
+
587
+ .#{$prefix}-navbar-dropdown-nav .#{$prefix}-nav-sub a {
588
+ color: var(--navbar-dropdown-nav-sublist-item-color);
589
+ }
590
+
591
+ .#{$prefix}-navbar-dropdown-nav .#{$prefix}-nav-sub a:hover,
592
+ .#{$prefix}-navbar-dropdown-nav .#{$prefix}-nav-sub a:focus {
593
+ color: var(--navbar-dropdown-nav-sublist-item-hover-color);
594
+ }
595
+
596
+ .#{$prefix}-navbar-dropdown-nav .#{$prefix}-nav-sub li.#{$prefix}-active > a {
597
+ color: var(--navbar-dropdown-nav-sublist-item-active-color);
598
+ }
599
+
600
+
601
+ // Hooks
602
+ // ========================================================================
603
+
604
+ @if map.has-key($mixins, 'hook-navbar-misc') {
605
+ @include meta.apply(map.get($mixins, 'hook-navbar-misc'));
606
+ }
607
+
608
+ @content;
609
+ }
610
+
611
+ @mixin navbar-tokens {
612
+ --navbar-background: var(--global-muted-background);
613
+ --navbar-gap: #{$navbar-gap};
614
+ --navbar-nav-gap: #{$navbar-nav-gap};
615
+ --navbar-gap-m: #{$navbar-gap-m};
616
+ --navbar-nav-gap-m: #{$navbar-nav-gap-m};
617
+ --navbar-nav-item-height: #{$navbar-nav-item-height};
618
+ --navbar-nav-item-padding-horizontal: #{$navbar-nav-item-padding-horizontal};
619
+ --navbar-nav-item-padding-horizontal-m: #{$navbar-nav-item-padding-horizontal-m};
620
+ --navbar-nav-item-color: var(--global-muted-color);
621
+ --navbar-nav-item-font-size: var(--global-font-size);
622
+ --navbar-nav-item-font-family: var(--global-font-family);
623
+ --navbar-nav-item-hover-color: var(--global-color);
624
+ --navbar-nav-item-onclick-color: var(--global-emphasis-color);
625
+ --navbar-nav-item-active-color: var(--global-emphasis-color);
626
+ --navbar-parent-icon-margin-left: #{$navbar-parent-icon-margin-left};
627
+ --navbar-item-padding-horizontal: #{$navbar-item-padding-horizontal};
628
+ --navbar-item-padding-horizontal-m: #{$navbar-item-padding-horizontal-m};
629
+ --navbar-item-color: var(--global-color);
630
+ --navbar-toggle-color: var(--global-muted-color);
631
+ --navbar-toggle-hover-color: var(--global-color);
632
+ --navbar-subtitle-font-size: var(--global-small-font-size);
633
+ --navbar-dropdown-margin: #{$navbar-dropdown-margin};
634
+ --navbar-dropdown-padding: #{$navbar-dropdown-padding};
635
+ --navbar-dropdown-width: #{$navbar-dropdown-width};
636
+ --navbar-dropdown-background: var(--global-muted-background);
637
+ --navbar-dropdown-color: var(--global-color);
638
+ --navbar-dropdown-focus-outline: var(--base-focus-outline);
639
+ --navbar-dropdown-z-index: #{$navbar-dropdown-z-index};
640
+ --navbar-dropdown-grid-gutter-horizontal: var(--global-gutter);
641
+ --navbar-dropdown-grid-gutter-vertical: var(--navbar-dropdown-grid-gutter-horizontal);
642
+ --navbar-dropdown-nav-item-color: var(--global-muted-color);
643
+ --navbar-dropdown-nav-item-hover-color: var(--global-color);
644
+ --navbar-dropdown-nav-item-active-color: var(--global-emphasis-color);
645
+ --navbar-dropdown-nav-subtitle-font-size: var(--global-small-font-size);
646
+ --navbar-dropdown-nav-header-color: var(--global-emphasis-color);
647
+ --navbar-dropdown-nav-divider-border-width: var(--global-border-width);
648
+ --navbar-dropdown-nav-divider-border: var(--global-border);
649
+ --navbar-dropdown-nav-sublist-item-color: var(--global-muted-color);
650
+ --navbar-dropdown-nav-sublist-item-hover-color: var(--global-color);
651
+ --navbar-dropdown-nav-sublist-item-active-color: var(--global-emphasis-color);
652
+
653
+ @content;
654
+ }
655
+
656
+ @mixin navbar-inverse-styles {
657
+ // Color Mode
658
+ @if $navbar-color-mode == light {
659
+ .#{$prefix}-navbar-container:not(.#{$prefix}-navbar-transparent) {
660
+ @extend .#{$prefix}-light !optional;
661
+ }
662
+ }
663
+
664
+ @if $navbar-color-mode == dark {
665
+ .#{$prefix}-navbar-container:not(.#{$prefix}-navbar-transparent) {
666
+ @extend .#{$prefix}-dark !optional;
667
+ }
668
+ }
669
+
670
+ @content;
671
+ }
672
+
673
+ @mixin navbar-inverse-tokens {
674
+ --inverse-navbar-background: var(--inverse-global-muted-background);
675
+ --inverse-navbar-nav-item-color: var(--inverse-global-muted-color);
676
+ --inverse-navbar-nav-item-hover-color: var(--inverse-global-color);
677
+ --inverse-navbar-nav-item-onclick-color: var(--inverse-global-emphasis-color);
678
+ --inverse-navbar-nav-item-active-color: var(--inverse-global-emphasis-color);
679
+ --inverse-navbar-item-color: var(--inverse-global-color);
680
+ --inverse-navbar-toggle-color: var(--inverse-global-muted-color);
681
+ --inverse-navbar-toggle-hover-color: var(--inverse-global-color);
682
+ --inverse-navbar-dropdown-background: var(--inverse-global-muted-background);
683
+ --inverse-navbar-dropdown-color: var(--inverse-global-muted-color);
684
+ --inverse-navbar-dropdown-nav-item-color: var(--inverse-global-muted-color);
685
+ --inverse-navbar-dropdown-nav-item-hover-color: var(--inverse-global-color);
686
+ --inverse-navbar-dropdown-nav-item-active-color: var(--inverse-global-emphasis-color);
687
+ --inverse-navbar-dropdown-nav-header-color: var(--inverse-global-emphasis-color);
688
+ --inverse-navbar-dropdown-nav-divider-border: var(--inverse-global-border);
689
+ --inverse-navbar-dropdown-nav-sublist-item-color: var(--inverse-global-muted-color);
690
+ --inverse-navbar-dropdown-nav-sublist-item-hover-color: var(--inverse-global-color);
691
+ --inverse-navbar-dropdown-nav-sublist-item-active-color: var(--inverse-global-emphasis-color);
692
+
693
+ @content;
694
+ }
@@ -0,0 +1,11 @@
1
+ @use 'overlay' as *;
2
+
3
+ $generate-tokens: true !default;
4
+
5
+ @include overlay-styles;
6
+
7
+ @if $generate-tokens {
8
+ :root {
9
+ @include overlay-tokens;
10
+ }
11
+ }