@hermes-ui/angular 0.1.7 → 0.2.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.
- package/README.md +6 -6
- package/button/_buttons.clarity.scss +80 -2
- package/button/_mixins.buttons.scss +44 -2
- package/button/_properties.buttons.scss +209 -247
- package/button/_variables.buttons.scss +22 -0
- package/fesm2022/hermes-ui-angular-accordion.mjs +2 -2
- package/fesm2022/hermes-ui-angular-accordion.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-card-container.mjs +3 -3
- package/fesm2022/hermes-ui-angular-addons-card-container.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-certificate-viewer.mjs +2 -2
- package/fesm2022/hermes-ui-angular-addons-certificate-viewer.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-datagrid-filters.mjs +2 -2
- package/fesm2022/hermes-ui-angular-addons-datagrid-filters.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-datagrid.mjs +2 -2
- package/fesm2022/hermes-ui-angular-addons-datagrid.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-property-view.mjs +2 -2
- package/fesm2022/hermes-ui-angular-addons-property-view.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs +66 -66
- package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-var.mjs +2 -2
- package/fesm2022/hermes-ui-angular-addons-var.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-wizard.mjs +2 -2
- package/fesm2022/hermes-ui-angular-addons-wizard.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-button.mjs +2 -2
- package/fesm2022/hermes-ui-angular-button.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-data-datagrid.mjs +2 -2
- package/fesm2022/hermes-ui-angular-data-datagrid.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-data-stack-view.mjs +2 -2
- package/fesm2022/hermes-ui-angular-data-stack-view.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-data-tree-view.mjs +2 -2
- package/fesm2022/hermes-ui-angular-data-tree-view.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-emphasis-alert.mjs +2 -2
- package/fesm2022/hermes-ui-angular-emphasis-alert.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-checkbox.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-checkbox.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-combobox.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-combobox.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-common.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-common.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-datalist.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-datalist.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-datepicker.mjs +3 -3
- package/fesm2022/hermes-ui-angular-forms-datepicker.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-file-input.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-file-input.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-input.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-input.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-native-select.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-native-select.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-number-input.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-number-input.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-password.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-password.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-radio.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-radio.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-range.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-range.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-select.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-select.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-textarea.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-textarea.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-icon.mjs +29 -29
- package/fesm2022/hermes-ui-angular-icon.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout-nav.mjs +2 -2
- package/fesm2022/hermes-ui-angular-layout-nav.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout-tabs.mjs +2 -2
- package/fesm2022/hermes-ui-angular-layout-tabs.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs +382 -28
- package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-modal.mjs +2 -2
- package/fesm2022/hermes-ui-angular-modal.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-popover-signpost.mjs +2 -2
- package/fesm2022/hermes-ui-angular-popover-signpost.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-stepper.mjs +2 -2
- package/fesm2022/hermes-ui-angular-stepper.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-timeline.mjs +2 -2
- package/fesm2022/hermes-ui-angular-timeline.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-toast.mjs +2 -2
- package/fesm2022/hermes-ui-angular-toast.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-utils.mjs +6 -0
- package/fesm2022/hermes-ui-angular-utils.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-wizard.mjs +2 -2
- package/fesm2022/hermes-ui-angular-wizard.mjs.map +1 -1
- package/forms/combobox/_combobox.clarity.scss +18 -4
- package/forms/combobox/_properties.combobox.scss +5 -5
- package/forms/styles/_input-group.clarity.scss +7 -0
- package/forms/styles/_mixins.forms.scss +12 -10
- package/forms/styles/_native-select.clarity.scss +17 -5
- package/forms/styles/_properties.forms.scss +29 -18
- package/forms/styles/_textarea.clarity.scss +4 -4
- package/forms/styles/_variables.forms.scss +6 -0
- package/layout/main-container/_properties.header.scss +44 -6
- package/layout/main-container/_variables.header.scss +11 -0
- package/layout/nav/_header.clarity.scss +14 -0
- package/layout/nav/_mixins.header.scss +55 -40
- package/layout/nav/_responsive-nav.clarity.scss +21 -10
- package/layout/vertical-nav/_properties.vertical-nav.scss +77 -27
- package/layout/vertical-nav/_variables.vertical-nav.scss +23 -0
- package/layout/vertical-nav/_vertical-nav.clarity.scss +418 -277
- package/package.json +1 -1
- package/types/hermes-ui-angular-addons-theme-builder.d.ts +2 -2
- package/types/hermes-ui-angular-addons-theme-builder.d.ts.map +1 -1
- package/types/hermes-ui-angular-icon.d.ts +3 -3
- package/types/hermes-ui-angular-icon.d.ts.map +1 -1
- package/types/hermes-ui-angular-layout-vertical-nav.d.ts +134 -10
- package/types/hermes-ui-angular-layout-vertical-nav.d.ts.map +1 -1
- package/types/hermes-ui-angular-utils.d.ts +12 -0
- package/types/hermes-ui-angular-utils.d.ts.map +1 -1
|
@@ -11,16 +11,32 @@
|
|
|
11
11
|
@use '../../styles/core/tokens/variables.tokens' as tokens;
|
|
12
12
|
@use '../main-container/variables.header' as header-variables;
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
// A control in the header band: a box of --hermes-header-control-size (32px) centered in the bar,
|
|
15
|
+
// not a cell that fills its whole height. Hover is a translucent white veil, the focus ring sits
|
|
16
|
+
// outside the box (there is room: the bar is taller than the control).
|
|
17
|
+
@mixin header-nav-link($horizontal-padding: tokens.$hermes-global-space-5) {
|
|
15
18
|
display: inline-flex;
|
|
16
19
|
align-items: center;
|
|
17
20
|
text-decoration: none;
|
|
18
21
|
gap: density.$hermes-base-gap-s;
|
|
19
|
-
height:
|
|
20
|
-
|
|
22
|
+
height: header-variables.$hermes-header-control-size;
|
|
23
|
+
min-height: 0;
|
|
24
|
+
margin: 0;
|
|
25
|
+
padding: 0 $horizontal-padding;
|
|
26
|
+
border-radius: header-variables.$hermes-header-control-radius;
|
|
27
|
+
transition: background-color header-variables.$hermes-header-transition;
|
|
28
|
+
|
|
29
|
+
&:hover:not(:disabled) {
|
|
30
|
+
background-color: header-variables.$hermes-header-highlight-color;
|
|
31
|
+
}
|
|
21
32
|
|
|
22
33
|
&:focus {
|
|
23
|
-
outline-offset: header-variables.$hermes-header-outline-offset;
|
|
34
|
+
outline-offset: header-variables.$hermes-header-outline-offset;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&:focus-visible {
|
|
38
|
+
outline: tokens.$hermes-alias-object-border-width-200 solid header-variables.$hermes-header-focus-color;
|
|
39
|
+
outline-offset: tokens.$hermes-global-space-3;
|
|
24
40
|
}
|
|
25
41
|
}
|
|
26
42
|
@mixin header-section-divider() {
|
|
@@ -58,16 +74,27 @@
|
|
|
58
74
|
}
|
|
59
75
|
}
|
|
60
76
|
@mixin header-branding() {
|
|
77
|
+
// Brand and context in one block, not two loose children of the bar: the bar's `gap` is the
|
|
78
|
+
// distance between its blocks, and anything that belongs to the brand (version, module name)
|
|
79
|
+
// must sit closer to it than that.
|
|
61
80
|
.branding {
|
|
62
81
|
display: flex;
|
|
63
82
|
flex: 0 0 auto;
|
|
83
|
+
align-items: center;
|
|
84
|
+
gap: tokens.$hermes-global-space-7;
|
|
64
85
|
height: header-variables.$hermes-header-height;
|
|
65
|
-
|
|
66
|
-
padding: 0 density.$hermes-base-horizontal-offset-xl;
|
|
86
|
+
padding: 0;
|
|
67
87
|
|
|
68
88
|
& > a,
|
|
69
89
|
& > .nav-link {
|
|
70
|
-
@include header-nav-link(
|
|
90
|
+
@include header-nav-link(0);
|
|
91
|
+
|
|
92
|
+
gap: tokens.$hermes-global-space-5;
|
|
93
|
+
|
|
94
|
+
// The brand is not a control: no veil on hover.
|
|
95
|
+
&:hover {
|
|
96
|
+
background-color: transparent;
|
|
97
|
+
}
|
|
71
98
|
}
|
|
72
99
|
|
|
73
100
|
.hermes-icon,
|
|
@@ -141,11 +168,6 @@
|
|
|
141
168
|
@include mixins.generate-typography-token('BODY-14-SB-EXP');
|
|
142
169
|
}
|
|
143
170
|
}
|
|
144
|
-
|
|
145
|
-
&:focus {
|
|
146
|
-
// So that the outline styles aren't hidden because of the browser
|
|
147
|
-
outline-offset: header-variables.$hermes-header-outline-offset;
|
|
148
|
-
}
|
|
149
171
|
}
|
|
150
172
|
}
|
|
151
173
|
}
|
|
@@ -154,12 +176,11 @@
|
|
|
154
176
|
display: flex;
|
|
155
177
|
flex: 0 0 auto;
|
|
156
178
|
align-items: center;
|
|
179
|
+
// Neighbouring links are boxes with a hover veil; the gap is what tells one from the next,
|
|
180
|
+
// so the section dividers of the old header are gone.
|
|
181
|
+
gap: tokens.$hermes-global-space-3;
|
|
157
182
|
position: relative;
|
|
158
183
|
|
|
159
|
-
&::before {
|
|
160
|
-
@include header-section-divider();
|
|
161
|
-
}
|
|
162
|
-
|
|
163
184
|
.nav-link {
|
|
164
185
|
&:first-of-type,
|
|
165
186
|
&:last-of-type {
|
|
@@ -173,28 +194,21 @@
|
|
|
173
194
|
.header-actions {
|
|
174
195
|
flex: 1 0 auto;
|
|
175
196
|
display: flex;
|
|
197
|
+
align-items: center;
|
|
176
198
|
justify-content: flex-end;
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
@include header-section-divider();
|
|
181
|
-
}
|
|
199
|
+
// 16px, not the 8px of the rest of the UI: the neighbours are loose glyphs with no box or
|
|
200
|
+
// label to delimit them, and at 8px they read as a single block.
|
|
201
|
+
gap: tokens.$hermes-global-space-7;
|
|
182
202
|
|
|
183
203
|
// Reduce nesting from 5 to 3 at the most
|
|
184
204
|
& > .dropdown {
|
|
185
|
-
padding:
|
|
205
|
+
padding: 0;
|
|
186
206
|
|
|
187
207
|
& > .dropdown-toggle {
|
|
188
208
|
position: relative;
|
|
189
209
|
|
|
190
210
|
@include header-nav-appearance();
|
|
191
211
|
@include header-nav-link();
|
|
192
|
-
|
|
193
|
-
padding: 0 density.$hermes-base-horizontal-offset-m;
|
|
194
|
-
|
|
195
|
-
&:focus {
|
|
196
|
-
outline-offset: initial;
|
|
197
|
-
}
|
|
198
212
|
}
|
|
199
213
|
|
|
200
214
|
.dropdown-toggle.nav-icon {
|
|
@@ -206,9 +220,10 @@
|
|
|
206
220
|
}
|
|
207
221
|
}
|
|
208
222
|
|
|
209
|
-
//
|
|
223
|
+
// The toggle is centered in the bar, so the menu hangs from the bar's bottom edge, not from
|
|
224
|
+
// the toggle's: push it down by the room above and below the control.
|
|
210
225
|
.dropdown-menu {
|
|
211
|
-
margin-top: calc(-
|
|
226
|
+
margin-top: calc((#{header-variables.$hermes-header-height} - #{header-variables.$hermes-header-control-size}) / 2);
|
|
212
227
|
margin-right: tokens.$hermes-global-space-5;
|
|
213
228
|
// TODO: As of 0.10.0 the dropdown-menu inside header without hermesIfOpen directive (legacy)
|
|
214
229
|
// will create empty space beyond the .main-container if the right isn't set to zero.
|
|
@@ -231,10 +246,6 @@
|
|
|
231
246
|
|
|
232
247
|
@include header-nav-appearance();
|
|
233
248
|
|
|
234
|
-
&::before {
|
|
235
|
-
@include header-section-divider();
|
|
236
|
-
}
|
|
237
|
-
|
|
238
249
|
& > .nav-icon {
|
|
239
250
|
margin: 0 tokens.$hermes-global-space-4 mixins.baselinePx(3) tokens.$hermes-global-space-9;
|
|
240
251
|
}
|
|
@@ -269,12 +280,15 @@
|
|
|
269
280
|
}
|
|
270
281
|
}
|
|
271
282
|
|
|
283
|
+
// The field lives inside the band and uses its colors: a white input in the middle of a dark
|
|
284
|
+
// bar is a hole. The outline is what delimits it, as a translucent veil.
|
|
272
285
|
input[type='text'] {
|
|
273
|
-
border:
|
|
274
|
-
background:
|
|
286
|
+
border: tokens.$hermes-alias-object-border-width-100 solid header-variables.$hermes-header-search-border-color;
|
|
287
|
+
background: header-variables.$hermes-header-search-bg-color;
|
|
275
288
|
color: header-variables.$hermes-header-search-input-font-color;
|
|
276
|
-
border-radius:
|
|
277
|
-
height:
|
|
289
|
+
border-radius: header-variables.$hermes-header-control-radius;
|
|
290
|
+
height: header-variables.$hermes-header-control-size;
|
|
291
|
+
transition: border-color header-variables.$hermes-header-transition;
|
|
278
292
|
padding: 0 0 0 calc(header-variables.$hermes-header-search-icon-size + 2 * header-variables.$hermes-header-search-gap);
|
|
279
293
|
vertical-align: middle;
|
|
280
294
|
|
|
@@ -302,13 +316,14 @@
|
|
|
302
316
|
}
|
|
303
317
|
|
|
304
318
|
&:focus-visible {
|
|
305
|
-
outline:
|
|
319
|
+
outline: tokens.$hermes-alias-object-border-width-200 solid header-variables.$hermes-header-focus-color;
|
|
320
|
+
outline-offset: tokens.$hermes-global-space-3;
|
|
306
321
|
border: header-variables.$hermes-header-search-border-active;
|
|
307
322
|
}
|
|
308
323
|
|
|
309
324
|
&:focus,
|
|
310
325
|
&:active {
|
|
311
|
-
background:
|
|
326
|
+
background: header-variables.$hermes-header-search-bg-color;
|
|
312
327
|
}
|
|
313
328
|
}
|
|
314
329
|
}
|
|
@@ -129,7 +129,13 @@
|
|
|
129
129
|
background: none;
|
|
130
130
|
cursor: pointer;
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
// A control box centered in the bar (not a header-tall cell), like the other header
|
|
133
|
+
// controls: veil on hover, ring outside on focus.
|
|
134
|
+
@include mixins.equilateral(header-variables.$hermes-header-control-size);
|
|
135
|
+
|
|
136
|
+
flex: none;
|
|
137
|
+
border-radius: header-variables.$hermes-header-control-radius;
|
|
138
|
+
transition: background-color header-variables.$hermes-header-transition;
|
|
133
139
|
|
|
134
140
|
// TODO: replace `hamburger` and `dots` to use HERMES-ICON `bars` and `ellipsis-vertical` respectively.
|
|
135
141
|
// 2px to vertically align the trigger lines. display flex was not working on all browsers.
|
|
@@ -137,9 +143,13 @@
|
|
|
137
143
|
text-align: center;
|
|
138
144
|
white-space: nowrap;
|
|
139
145
|
|
|
140
|
-
&:
|
|
141
|
-
|
|
142
|
-
|
|
146
|
+
&:hover {
|
|
147
|
+
background-color: header-variables.$hermes-header-highlight-color;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
&:focus-visible {
|
|
151
|
+
outline: tokens.$hermes-alias-object-border-width-200 solid header-variables.$hermes-header-focus-color;
|
|
152
|
+
outline-offset: tokens.$hermes-global-space-3;
|
|
143
153
|
}
|
|
144
154
|
|
|
145
155
|
@include header-mixins.header-nav-appearance();
|
|
@@ -224,10 +234,6 @@
|
|
|
224
234
|
.main-container {
|
|
225
235
|
.header-overflow-trigger {
|
|
226
236
|
position: relative;
|
|
227
|
-
|
|
228
|
-
&::after {
|
|
229
|
-
@include header-mixins.header-section-divider();
|
|
230
|
-
}
|
|
231
237
|
}
|
|
232
238
|
|
|
233
239
|
.header {
|
|
@@ -235,11 +241,15 @@
|
|
|
235
241
|
max-width: mixins.baselinePx(240);
|
|
236
242
|
min-width: 0;
|
|
237
243
|
overflow: hidden;
|
|
244
|
+
|
|
245
|
+
// The block clips its content, so the ring goes inside the link instead of outside.
|
|
246
|
+
& > a:focus-visible,
|
|
247
|
+
& > .nav-link:focus-visible {
|
|
248
|
+
outline-offset: calc(-1 * #{tokens.$hermes-global-space-3});
|
|
249
|
+
}
|
|
238
250
|
}
|
|
239
251
|
|
|
240
252
|
.header-hamburger-trigger + .branding {
|
|
241
|
-
padding-left: 0;
|
|
242
|
-
margin-left: calc(-1 * density.$hermes-base-horizontal-offset-m);
|
|
243
253
|
|
|
244
254
|
//TODO: deprecate .hermes-icon, .logo
|
|
245
255
|
.hermes-icon,
|
|
@@ -263,6 +273,7 @@
|
|
|
263
273
|
&.open-overflow-menu {
|
|
264
274
|
.header {
|
|
265
275
|
.header-backdrop {
|
|
276
|
+
display: block;
|
|
266
277
|
position: fixed;
|
|
267
278
|
inset: 0;
|
|
268
279
|
background: tokens.$hermes-alias-object-overlay-backdrop-background;
|
|
@@ -14,33 +14,50 @@
|
|
|
14
14
|
@include mixins.exports('vertical-nav.properties') {
|
|
15
15
|
@include mixins.root-or-host() {
|
|
16
16
|
--hermes-vertical-nav-item-active-font-weight: #{tokens.$hermes-alias-typography-font-weight-semibold};
|
|
17
|
-
--hermes-vertical-nav-item-top-level-font-weight: #{tokens.$hermes-alias-typography-font-weight-
|
|
17
|
+
--hermes-vertical-nav-item-top-level-font-weight: #{tokens.$hermes-alias-typography-font-weight-medium};
|
|
18
18
|
--hermes-vertical-nav-header-font-weight: #{tokens.$hermes-alias-typography-font-weight-semibold};
|
|
19
|
-
--hermes-vertical-nav-trigger-divider-border-width: #{tokens.$hermes-
|
|
20
|
-
|
|
21
|
-
//
|
|
22
|
-
// vez de
|
|
19
|
+
--hermes-vertical-nav-trigger-divider-border-width: #{tokens.$hermes-alias-object-border-width-100};
|
|
20
|
+
|
|
21
|
+
// Item de lista de navegação: raio pequeno ("mora dentro de algo") e respiro de 8px entre a
|
|
22
|
+
// borda da coluna e os itens, em vez de itens de ponta a ponta.
|
|
23
23
|
--hermes-vertical-nav-item-border-radius: #{mixins.baselinePx(6)};
|
|
24
24
|
--hermes-vertical-nav-content-inset: #{mixins.baselinePx(8)};
|
|
25
25
|
|
|
26
|
+
// Trilho de largura. Expandida mostra ícone + texto; compacta é só a coluna de ícones. O piso
|
|
27
|
+
// e o teto valem para a coluna aberta: a largura medida (--hermes-vertical-nav-measured-width,
|
|
28
|
+
// escrita pelo componente) cresce entre eles conforme o rótulo mais comprido à vista.
|
|
29
|
+
--hermes-vertical-nav-width: #{mixins.baselinePx(240)};
|
|
30
|
+
--hermes-vertical-nav-max-width: #{mixins.baselinePx(360)};
|
|
31
|
+
// Respiro da coluna (8) + do item (8) + glifo + os mesmos 16 de volta. É o que deixa o ícone no
|
|
32
|
+
// MESMO x nos dois estados: a transição não o arrasta pela coluna.
|
|
33
|
+
--hermes-vertical-nav-rail-width: calc(var(--hermes-vertical-nav-icon-size) + #{mixins.baselinePx(32)});
|
|
34
|
+
--hermes-vertical-nav-transition-duration: 0.2s;
|
|
35
|
+
|
|
36
|
+
// Mesma escala que a coluna sempre teve (corpo de 14px, glifo `icon-size-s`): a referência usa
|
|
37
|
+
// 16/24, que no Hermes fica acima do resto da interface.
|
|
38
|
+
--hermes-vertical-nav-item-font-size: #{density.$hermes-base-typography-font-size-default};
|
|
39
|
+
--hermes-vertical-nav-child-font-size: #{density.$hermes-base-typography-font-size-default};
|
|
40
|
+
--hermes-vertical-nav-child-icon-size: var(--hermes-vertical-nav-icon-size);
|
|
41
|
+
--hermes-vertical-nav-item-gap: #{mixins.baselinePx(12)};
|
|
42
|
+
--hermes-vertical-nav-child-gap: #{mixins.baselinePx(4)};
|
|
43
|
+
// Recuo do submenu: o menor que ainda se lê. Cada pixel é cobrado da largura da coluna, porque
|
|
44
|
+
// o rótulo mais fundo tem que caber.
|
|
45
|
+
--hermes-vertical-nav-child-indent: #{mixins.baselinePx(4)};
|
|
46
|
+
--hermes-vertical-nav-child-padding-start: #{mixins.baselinePx(8)};
|
|
47
|
+
|
|
26
48
|
&,
|
|
27
49
|
& [hermes-density] {
|
|
28
50
|
// Vertical Nav - Icons
|
|
29
51
|
--hermes-vertical-nav-icon-size: #{density.$hermes-base-icon-size-s};
|
|
30
52
|
--hermes-vertical-nav-icon-right-margin: #{density.$hermes-base-horizontal-offset-s};
|
|
31
53
|
--hermes-vertical-nav-collapsed-caret-size: #{density.$hermes-base-icon-size-2xl};
|
|
54
|
+
--hermes-vertical-nav-caret-size: #{density.$hermes-base-icon-size-s};
|
|
32
55
|
|
|
33
|
-
// Vertical Nav - Align
|
|
34
|
-
--hermes-vertical-nav-item-padding: #{
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
// esse trabalho é o indent + linha vertical de .nav-group-children
|
|
39
|
-
// (ver _vertical-nav.clarity.scss) — aqui só o padding normal do item.
|
|
40
|
-
--hermes-vertical-nav-item-child-padding: #{density.$hermes-base-vertical-offset-m}
|
|
41
|
-
#{density.$hermes-base-horizontal-offset-m};
|
|
42
|
-
--hermes-vertical-nav-item-height: #{density.$hermes-base-row-height-m};
|
|
43
|
-
--hermes-vertical-nav-min-width: #{density.$hermes-base-layout-space-3xl};
|
|
56
|
+
// Vertical Nav - Align. Linha densa (32px): é lista de navegação, não um controle isolado.
|
|
57
|
+
--hermes-vertical-nav-item-padding: #{mixins.baselinePx(8)};
|
|
58
|
+
--hermes-vertical-nav-item-child-padding: #{mixins.baselinePx(8)};
|
|
59
|
+
--hermes-vertical-nav-item-height: #{mixins.baselinePx(32)};
|
|
60
|
+
--hermes-vertical-nav-min-width: var(--hermes-vertical-nav-rail-width);
|
|
44
61
|
--hermes-vertical-nav-toggle-button-size: #{density.$hermes-base-row-height-m};
|
|
45
62
|
|
|
46
63
|
// Vertical Nav - Header
|
|
@@ -52,20 +69,49 @@
|
|
|
52
69
|
& [hermes-theme] {
|
|
53
70
|
/* Vertical Nav */
|
|
54
71
|
--hermes-vertical-nav-divider-color: #{tokens.$hermes-alias-object-border-color};
|
|
55
|
-
--hermes-vertical-nav-icon-active-color: #{tokens.$hermes-alias-object-interaction-color};
|
|
56
|
-
--hermes-vertical-nav-item-color: #{tokens.$hermes-alias-object-interaction-color};
|
|
57
|
-
--hermes-vertical-nav-item-active-color: #{tokens.$hermes-alias-object-interaction-color-active};
|
|
58
72
|
|
|
59
|
-
//
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
73
|
+
// Texto neutro de alto contraste; quem carrega a cor da marca é o glifo. Segue só claro/escuro
|
|
74
|
+
// — a família escolhida (ver o eixo `primary` do preset, no addon `theme-builder`) nunca muda
|
|
75
|
+
// o fundo nem o texto da coluna, só o acento (glifo, link, seleção). Já existiu aqui um
|
|
76
|
+
// segundo eixo (`tertiary`) tingindo o fundo por família, lido errado de um comentário do
|
|
77
|
+
// app de referência: aquele token é cor categórica de gráfico lá, não fundo de navegação —
|
|
78
|
+
// a navegação de lá usa a mesma superfície do app, do jeito que está feito abaixo.
|
|
79
|
+
--hermes-vertical-nav-item-color: #{tokens.$hermes-alias-typography-color-400};
|
|
80
|
+
--hermes-vertical-nav-item-active-color: #{tokens.$hermes-alias-typography-color-400};
|
|
81
|
+
--hermes-vertical-nav-active-color: #{tokens.$hermes-alias-typography-color-400};
|
|
82
|
+
--hermes-vertical-nav-child-icon-color: #{tokens.$hermes-alias-typography-color-300};
|
|
83
|
+
|
|
84
|
+
// Glifo na cor da marca em todos os itens: é ele que dá à coluna a leitura de navegação.
|
|
85
|
+
--hermes-vertical-nav-icon-color: #{tokens.$hermes-alias-object-interaction-color};
|
|
86
|
+
--hermes-vertical-nav-icon-active-color: #{tokens.$hermes-alias-object-interaction-color-active};
|
|
87
|
+
|
|
88
|
+
// Véu da cor da marca, e não um degrau neutro: o degrau neutro vizinho vale, em vários temas,
|
|
89
|
+
// a própria cor da barra, e o item em hover pintava o que já estava lá.
|
|
90
|
+
--hermes-vertical-nav-hover-bg-color: color-mix(
|
|
91
|
+
in srgb,
|
|
92
|
+
#{tokens.$hermes-alias-object-interaction-color} 14%,
|
|
93
|
+
transparent
|
|
94
|
+
);
|
|
95
|
+
--hermes-vertical-nav-active-bg-color: color-mix(
|
|
96
|
+
in srgb,
|
|
97
|
+
#{tokens.$hermes-alias-object-interaction-color} 26%,
|
|
98
|
+
transparent
|
|
99
|
+
);
|
|
100
|
+
// O selecionado é só a tinta, sem faixa lateral. O que o distingue do hover é o peso do texto
|
|
101
|
+
// e a cor do glifo; sob o ponteiro ele sobe para o véu forte.
|
|
102
|
+
--hermes-vertical-nav-selected-bg-color: var(--hermes-vertical-nav-hover-bg-color);
|
|
103
|
+
--hermes-vertical-nav-selected-hover-bg-color: var(--hermes-vertical-nav-active-bg-color);
|
|
104
|
+
--hermes-vertical-nav-selected-active-bg-color: var(--hermes-vertical-nav-active-bg-color);
|
|
63
105
|
|
|
64
|
-
// NOT selected background colors
|
|
65
106
|
--hermes-vertical-nav-bg-color: var(--hermes-alias-object-interaction-background-shade);
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
107
|
+
|
|
108
|
+
// Sombra só quando a coluna está POR CIMA do conteúdo e aberta: é a informação de que há duas
|
|
109
|
+
// camadas. Em repouso, com a largura da trilha, não há.
|
|
110
|
+
--hermes-vertical-nav-overlay-shadow: #{mixins.baselinePx(4)} 0 #{mixins.baselinePx(12)} 0
|
|
111
|
+
color-mix(in srgb, #{tokens.$hermes-alias-typography-color-400} 20%, transparent);
|
|
112
|
+
// Acima do conteúdo da página (datagrids sticky chegam a 502) e abaixo da gaveta responsiva
|
|
113
|
+
// (1038) e dos menus suspensos (1050).
|
|
114
|
+
--hermes-vertical-nav-overlay-z-index: 1000;
|
|
69
115
|
|
|
70
116
|
// Vertical Nav - Trigger
|
|
71
117
|
--hermes-vertical-nav-toggle-icon-color: #{tokens.$hermes-alias-object-interaction-color};
|
|
@@ -73,6 +119,10 @@
|
|
|
73
119
|
--hermes-vertical-nav-toggle-icon-active-color: #{tokens.$hermes-alias-object-interaction-color-active};
|
|
74
120
|
--hermes-vertical-nav-toggle-icon-disabled-color: #{tokens.$hermes-alias-object-interaction-color-disabled};
|
|
75
121
|
--hermes-vertical-nav-trigger-divider-border-color: #{tokens.$hermes-alias-object-border-color};
|
|
122
|
+
|
|
123
|
+
// Vertical Nav - Footer
|
|
124
|
+
--hermes-vertical-nav-footer-text-color: #{tokens.$hermes-alias-typography-color-300};
|
|
125
|
+
--hermes-vertical-nav-menu-bg-color: #{tokens.$hermes-alias-object-container-background};
|
|
76
126
|
}
|
|
77
127
|
}
|
|
78
128
|
}
|
|
@@ -52,3 +52,26 @@ $hermes-vertical-nav-trigger-divider-border-width: var(--hermes-vertical-nav-tri
|
|
|
52
52
|
// Vertical Nav - Header
|
|
53
53
|
$hermes-vertical-nav-header-font-weight: var(--hermes-vertical-nav-header-font-weight) !default;
|
|
54
54
|
$hermes-vertical-nav-header-padding: var(--hermes-vertical-nav-header-padding) !default;
|
|
55
|
+
|
|
56
|
+
// Vertical Nav - Layout
|
|
57
|
+
$hermes-vertical-nav-width: var(--hermes-vertical-nav-width) !default;
|
|
58
|
+
$hermes-vertical-nav-max-width: var(--hermes-vertical-nav-max-width) !default;
|
|
59
|
+
$hermes-vertical-nav-rail-width: var(--hermes-vertical-nav-rail-width) !default;
|
|
60
|
+
$hermes-vertical-nav-transition-duration: var(--hermes-vertical-nav-transition-duration) !default;
|
|
61
|
+
$hermes-vertical-nav-overlay-shadow: var(--hermes-vertical-nav-overlay-shadow) !default;
|
|
62
|
+
|
|
63
|
+
// Vertical Nav - Items
|
|
64
|
+
$hermes-vertical-nav-icon-color: var(--hermes-vertical-nav-icon-color) !default;
|
|
65
|
+
$hermes-vertical-nav-child-icon-color: var(--hermes-vertical-nav-child-icon-color) !default;
|
|
66
|
+
$hermes-vertical-nav-child-icon-size: var(--hermes-vertical-nav-child-icon-size) !default;
|
|
67
|
+
$hermes-vertical-nav-caret-size: var(--hermes-vertical-nav-caret-size) !default;
|
|
68
|
+
$hermes-vertical-nav-item-font-size: var(--hermes-vertical-nav-item-font-size) !default;
|
|
69
|
+
$hermes-vertical-nav-child-font-size: var(--hermes-vertical-nav-child-font-size) !default;
|
|
70
|
+
$hermes-vertical-nav-item-gap: var(--hermes-vertical-nav-item-gap) !default;
|
|
71
|
+
$hermes-vertical-nav-child-gap: var(--hermes-vertical-nav-child-gap) !default;
|
|
72
|
+
$hermes-vertical-nav-child-indent: var(--hermes-vertical-nav-child-indent) !default;
|
|
73
|
+
$hermes-vertical-nav-child-padding-start: var(--hermes-vertical-nav-child-padding-start) !default;
|
|
74
|
+
|
|
75
|
+
// Vertical Nav - Footer
|
|
76
|
+
$hermes-vertical-nav-footer-text-color: var(--hermes-vertical-nav-footer-text-color) !default;
|
|
77
|
+
$hermes-vertical-nav-menu-bg-color: var(--hermes-vertical-nav-menu-bg-color) !default;
|