@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
|
@@ -5,129 +5,189 @@
|
|
|
5
5
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
@use 'sass:map';
|
|
8
9
|
@use 'sass:meta';
|
|
9
10
|
@use '../../styles/a11y';
|
|
10
11
|
@use '../../styles/mixins';
|
|
12
|
+
@use '../../styles/variables/variables';
|
|
11
13
|
@use 'variables.vertical-nav' as vertical-nav-variables;
|
|
12
14
|
@use 'mixins.vertical-nav' as vertical-nav-mixins;
|
|
13
15
|
@use '../../styles/core/tokens/variables.tokens' as tokens;
|
|
14
16
|
@use '../../styles/variables/variables.density' as density;
|
|
15
17
|
|
|
18
|
+
// A partir daqui a coluna é "de tela larga": abaixo do breakpoint `lg` ela vira a gaveta deslizante
|
|
19
|
+
// do header responsivo (ver ../nav/_responsive-nav.clarity.scss), aberta pelo hambúrguer.
|
|
20
|
+
$desktop-min-width: map.get(variables.$hermes-grid-breakpoints, lg) + 1;
|
|
21
|
+
$mobile-max-width: map.get(variables.$hermes-grid-breakpoints, lg);
|
|
22
|
+
|
|
23
|
+
// Item de navegação: a mesma caixa para link e cabeçalho de grupo. O respiro lateral é o mesmo da
|
|
24
|
+
// coluna compacta comporta, e é isso que mantém o ícone parado (no mesmo x) enquanto a coluna abre
|
|
25
|
+
// e fecha: com um recuo maior, o item precisaria centrar o conteúdo ao encolher.
|
|
26
|
+
@mixin nav-row() {
|
|
27
|
+
display: flex;
|
|
28
|
+
align-items: center;
|
|
29
|
+
gap: vertical-nav-variables.$hermes-vertical-nav-item-gap;
|
|
30
|
+
box-sizing: border-box;
|
|
31
|
+
min-height: vertical-nav-variables.$hermes-vertical-nav-item-height;
|
|
32
|
+
min-width: 0;
|
|
33
|
+
margin: 0;
|
|
34
|
+
padding: vertical-nav-variables.$hermes-vertical-nav-item-padding;
|
|
35
|
+
border: none;
|
|
36
|
+
background-color: transparent;
|
|
37
|
+
font-family: inherit;
|
|
38
|
+
font-size: vertical-nav-variables.$hermes-vertical-nav-item-font-size;
|
|
39
|
+
font-weight: vertical-nav-variables.$hermes-vertical-nav-item-top-level-font-weight;
|
|
40
|
+
line-height: 1.25;
|
|
41
|
+
text-align: left;
|
|
42
|
+
text-decoration: none;
|
|
43
|
+
outline-offset: calc(-1 * #{mixins.baselinePx(5)});
|
|
44
|
+
transition:
|
|
45
|
+
background-color 0.24s cubic-bezier(0.4, 0, 0.2, 1),
|
|
46
|
+
color 0.24s cubic-bezier(0.4, 0, 0.2, 1);
|
|
47
|
+
}
|
|
48
|
+
|
|
16
49
|
@include meta.load-css('properties.vertical-nav');
|
|
17
50
|
@include mixins.exports('vertical-nav.clarity') {
|
|
51
|
+
// O host é só o "lugar" da coluna no fluxo: quem tem fundo, borda, largura e sombra é o
|
|
52
|
+
// `.nav-panel`. Em modo sobreposto o painel sai do fluxo e o host segura a largura da trilha
|
|
53
|
+
// (o espaçador), para a página nunca se mexer quando a coluna abre por cima dela.
|
|
18
54
|
.hermes-vertical-nav {
|
|
19
|
-
//Display
|
|
20
55
|
display: flex;
|
|
21
56
|
flex-direction: column;
|
|
57
|
+
position: relative;
|
|
22
58
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
59
|
+
.nav-panel {
|
|
60
|
+
display: flex;
|
|
61
|
+
flex: 1 1 auto;
|
|
62
|
+
flex-direction: column;
|
|
63
|
+
position: relative;
|
|
64
|
+
min-height: 0;
|
|
65
|
+
|
|
66
|
+
// `--hermes-vertical-nav-measured-width` é escrita pelo componente, depois que a coluna termina
|
|
67
|
+
// de abrir, e só cresce (nunca fica menor que o piso). Sem ela cai no piso.
|
|
68
|
+
width: var(--hermes-vertical-nav-measured-width, #{vertical-nav-variables.$hermes-vertical-nav-width});
|
|
69
|
+
min-width: vertical-nav-variables.$hermes-vertical-nav-width;
|
|
70
|
+
max-width: vertical-nav-variables.$hermes-vertical-nav-max-width;
|
|
71
|
+
border-right: #{tokens.$hermes-alias-object-border-width-100} solid vertical-nav-variables.$hermes-vertical-nav-divider-color;
|
|
72
|
+
background-color: vertical-nav-variables.$hermes-vertical-nav-bg-color;
|
|
73
|
+
will-change: width;
|
|
74
|
+
// Largura, piso e teto animam juntos: se `min-width`/`max-width` ficassem de fora, saltariam
|
|
75
|
+
// para o valor novo no primeiro quadro e prenderiam a largura ali.
|
|
76
|
+
transition:
|
|
77
|
+
width vertical-nav-variables.$hermes-vertical-nav-transition-duration ease-in-out,
|
|
78
|
+
min-width vertical-nav-variables.$hermes-vertical-nav-transition-duration ease-in-out,
|
|
79
|
+
max-width vertical-nav-variables.$hermes-vertical-nav-transition-duration ease-in-out,
|
|
80
|
+
box-shadow vertical-nav-variables.$hermes-vertical-nav-transition-duration ease-in-out;
|
|
81
|
+
}
|
|
31
82
|
|
|
32
83
|
.nav-divider {
|
|
33
84
|
@include vertical-nav-mixins.vertical-nav-divider();
|
|
34
85
|
}
|
|
35
86
|
|
|
36
87
|
.nav-content {
|
|
37
|
-
//display
|
|
38
88
|
display: flex;
|
|
39
89
|
flex-direction: column;
|
|
40
90
|
flex: 1 1 auto;
|
|
41
|
-
|
|
42
|
-
|
|
91
|
+
min-height: 0;
|
|
92
|
+
gap: vertical-nav-variables.$hermes-vertical-nav-child-gap;
|
|
43
93
|
overflow: hidden auto;
|
|
44
94
|
}
|
|
45
95
|
|
|
46
|
-
//
|
|
47
|
-
// container, não de ponta a ponta -- só quando expandida, pra não mexer
|
|
48
|
-
// no cálculo (já bem specific) dos ícones no modo colapsado/rail.
|
|
96
|
+
// Os itens flutuam com um respiro da borda da coluna, e não vão de ponta a ponta.
|
|
49
97
|
&:not(.is-collapsed) .nav-content {
|
|
50
98
|
padding: vertical-nav-variables.$hermes-vertical-nav-content-inset;
|
|
99
|
+
// A calha da barra fica reservada mesmo sem barra: sem ela, o primeiro grupo que abre faz a
|
|
100
|
+
// lista passar da altura da tela, a barra nasce, tira 8px do rótulo e a largura medida
|
|
101
|
+
// cresceria para compensar sem que rótulo nenhum tenha pedido.
|
|
102
|
+
scrollbar-gutter: stable;
|
|
51
103
|
}
|
|
52
104
|
|
|
53
105
|
.nav-group {
|
|
54
|
-
//Display
|
|
55
106
|
display: block;
|
|
56
107
|
flex: 0 0 auto;
|
|
57
|
-
|
|
58
|
-
//Dims
|
|
59
108
|
height: auto;
|
|
60
109
|
min-height: vertical-nav-variables.$hermes-vertical-nav-item-height;
|
|
61
110
|
}
|
|
62
111
|
|
|
63
112
|
.nav-group-content {
|
|
64
|
-
//Display
|
|
65
113
|
display: flex;
|
|
66
114
|
|
|
67
|
-
//Others
|
|
68
|
-
|
|
69
|
-
@include vertical-nav-mixins.vertical-nav-link-colors();
|
|
70
|
-
|
|
71
115
|
.nav-link {
|
|
72
|
-
//Display
|
|
73
116
|
flex: 1 1 auto;
|
|
74
|
-
|
|
75
|
-
//Dims
|
|
76
|
-
padding-left: 0;
|
|
77
|
-
min-width: 0; //Chrome nested flex box ellipsis fix
|
|
117
|
+
min-width: 0; // Chrome nested flex box ellipsis fix
|
|
78
118
|
}
|
|
79
119
|
|
|
80
|
-
.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
120
|
+
// Link que também é o cabeçalho do grupo, com a seta de expansão como botão à parte.
|
|
121
|
+
.nav-link ~ .nav-group-trigger {
|
|
122
|
+
flex: 0 0 auto;
|
|
123
|
+
justify-content: center;
|
|
124
|
+
width: vertical-nav-variables.$hermes-vertical-nav-toggle-button-size;
|
|
125
|
+
padding: 0;
|
|
84
126
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
127
|
+
.nav-group-text {
|
|
128
|
+
display: none;
|
|
129
|
+
}
|
|
88
130
|
}
|
|
131
|
+
}
|
|
89
132
|
|
|
90
|
-
|
|
91
|
-
//Dims
|
|
92
|
-
padding-left: 0;
|
|
93
|
-
}
|
|
133
|
+
// ── Itens (link e cabeçalho de grupo) ───────────────────────────────────────────────────
|
|
94
134
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
135
|
+
.nav-link,
|
|
136
|
+
.nav-group-trigger {
|
|
137
|
+
@include nav-row();
|
|
138
|
+
|
|
139
|
+
color: vertical-nav-variables.$hermes-vertical-nav-item-color;
|
|
140
|
+
cursor: pointer;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// Sem `flex` aqui: o `.nav-content` é uma coluna, e um link solto com `flex-grow` esticaria até
|
|
144
|
+
// ocupar toda a altura que sobra. Só dentro de `.nav-group-content` (uma linha) ele cresce.
|
|
145
|
+
.nav-link {
|
|
146
|
+
border-radius: vertical-nav-variables.$hermes-vertical-nav-item-border-radius;
|
|
147
|
+
|
|
148
|
+
&:hover:not(.active) {
|
|
149
|
+
background-color: vertical-nav-variables.$hermes-vertical-nav-hover-bg-color;
|
|
150
|
+
color: vertical-nav-variables.$hermes-vertical-nav-item-color;
|
|
98
151
|
}
|
|
99
152
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
&:active {
|
|
103
|
-
font-weight: vertical-nav-variables.$hermes-vertical-nav-item-active-font-weight;
|
|
104
|
-
}
|
|
153
|
+
&:active:not(.active) {
|
|
154
|
+
background-color: vertical-nav-variables.$hermes-vertical-nav-active-bg-color;
|
|
105
155
|
}
|
|
106
|
-
}
|
|
107
156
|
|
|
108
|
-
|
|
109
|
-
|
|
157
|
+
// O selecionado é só a tinta, sem faixa lateral: preenchido de ponta a ponta ele viraria a
|
|
158
|
+
// coisa mais pesada da tela. O peso do texto e o glifo em tom mais forte completam.
|
|
159
|
+
&.active {
|
|
160
|
+
background-color: vertical-nav-variables.$hermes-vertical-nav-selected-bg-color;
|
|
161
|
+
color: vertical-nav-variables.$hermes-vertical-nav-item-active-color;
|
|
162
|
+
font-weight: vertical-nav-variables.$hermes-vertical-nav-item-active-font-weight;
|
|
110
163
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
164
|
+
.nav-icon {
|
|
165
|
+
color: vertical-nav-variables.$hermes-vertical-nav-icon-active-color;
|
|
166
|
+
fill: vertical-nav-variables.$hermes-vertical-nav-icon-active-color;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// O item selecionado também responde ao hover: numa lista em que tudo reage, o item onde
|
|
170
|
+
// se está não pode parecer travado.
|
|
171
|
+
&:hover {
|
|
172
|
+
background-color: vertical-nav-variables.$hermes-vertical-nav-selected-hover-bg-color;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
117
175
|
}
|
|
118
176
|
|
|
119
|
-
.nav-trigger,
|
|
120
177
|
.nav-group-trigger {
|
|
121
|
-
|
|
122
|
-
|
|
178
|
+
flex: 1 1 auto;
|
|
179
|
+
width: 100%;
|
|
180
|
+
overflow: hidden;
|
|
181
|
+
border-radius: vertical-nav-variables.$hermes-vertical-nav-item-border-radius;
|
|
123
182
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
183
|
+
&:hover {
|
|
184
|
+
background-color: vertical-nav-variables.$hermes-vertical-nav-hover-bg-color;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
&:active {
|
|
188
|
+
background-color: vertical-nav-variables.$hermes-vertical-nav-active-bg-color;
|
|
189
|
+
}
|
|
128
190
|
|
|
129
|
-
//Others
|
|
130
|
-
hermes-icon[shape='angle-double'],
|
|
131
191
|
hermes-icon[shape='angle-double'] {
|
|
132
192
|
color: vertical-nav-variables.$hermes-vertical-nav-toggle-icon-color;
|
|
133
193
|
|
|
@@ -142,124 +202,177 @@
|
|
|
142
202
|
|
|
143
203
|
&:disabled,
|
|
144
204
|
&.disabled {
|
|
145
|
-
hermes-icon[shape='angle-double'],
|
|
146
205
|
hermes-icon[shape='angle-double'] {
|
|
147
206
|
color: vertical-nav-variables.$hermes-vertical-nav-toggle-icon-disabled-color;
|
|
148
207
|
}
|
|
149
208
|
}
|
|
209
|
+
}
|
|
150
210
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
211
|
+
.nav-group-text,
|
|
212
|
+
.nav-text {
|
|
213
|
+
flex: 1 1 auto;
|
|
214
|
+
min-width: 0; // sem isto o `nowrap` trava o item no tamanho do texto inteiro
|
|
215
|
+
|
|
216
|
+
@include mixins.overflow-ellipsis();
|
|
154
217
|
}
|
|
155
218
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
219
|
+
// Um ícone que não é o glifo do item (ex.: o selo "NEW" de 32px dentro do rótulo) não pode esticar a
|
|
220
|
+
// linha: o item mede pelo texto e pelo glifo, e a altura fechada que antes escondia isso saiu.
|
|
221
|
+
.nav-text hermes-icon:not(.nav-icon),
|
|
222
|
+
.nav-group-text hermes-icon:not(.nav-icon) {
|
|
223
|
+
vertical-align: middle;
|
|
224
|
+
margin-block: calc(-1 * #{mixins.baselinePx(8)});
|
|
225
|
+
}
|
|
161
226
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
227
|
+
// O glifo é da cor da marca em todos os itens, e não só no ativo: é ele que dá à coluna a
|
|
228
|
+
// leitura de navegação, e em cinza a barra inteira ficaria apagada ao lado do conteúdo.
|
|
229
|
+
.nav-icon {
|
|
230
|
+
position: relative;
|
|
231
|
+
flex: 0 0 vertical-nav-variables.$hermes-vertical-nav-icon-size;
|
|
232
|
+
align-self: center;
|
|
233
|
+
margin: 0;
|
|
234
|
+
color: vertical-nav-variables.$hermes-vertical-nav-icon-color;
|
|
235
|
+
fill: vertical-nav-variables.$hermes-vertical-nav-icon-color;
|
|
236
|
+
vertical-align: middle;
|
|
165
237
|
|
|
166
|
-
hermes-icon
|
|
167
|
-
hermes-icon
|
|
168
|
-
|
|
238
|
+
@include mixins.min-equilateral(vertical-nav-variables.$hermes-vertical-nav-icon-size);
|
|
239
|
+
@include mixins.equilateral(vertical-nav-variables.$hermes-vertical-nav-icon-size);
|
|
240
|
+
}
|
|
169
241
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
242
|
+
.nav-group-trigger-icon {
|
|
243
|
+
flex: 0 0 auto;
|
|
244
|
+
align-self: center;
|
|
245
|
+
margin: 0;
|
|
246
|
+
transition: all vertical-nav-variables.$hermes-vertical-nav-transition-duration ease-in-out;
|
|
174
247
|
|
|
175
|
-
|
|
176
|
-
hermes-icon,
|
|
177
|
-
hermes-icon {
|
|
178
|
-
margin: 0;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
248
|
+
@include mixins.equilateral(vertical-nav-variables.$hermes-vertical-nav-caret-size);
|
|
181
249
|
}
|
|
182
250
|
|
|
183
|
-
//
|
|
184
|
-
.nav-group-trigger {
|
|
185
|
-
//Display
|
|
186
|
-
//flex: 0 0 $hermes-vertical-nav-item-height;
|
|
187
|
-
display: flex;
|
|
188
|
-
flex: 1 1 auto;
|
|
251
|
+
// ── Submenu ─────────────────────────────────────────────────────────────────────────────
|
|
189
252
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
253
|
+
// O trilho é o que dá forma ao submenu: o recuo sozinho deixaria os filhos boiando, sem nada
|
|
254
|
+
// dizendo a que pai pertencem. O recuo é o menor que ainda se lê, porque cada pixel dele é
|
|
255
|
+
// cobrado da largura da coluna inteira.
|
|
256
|
+
.nav-group-children {
|
|
257
|
+
overflow-y: hidden;
|
|
258
|
+
margin-left: vertical-nav-variables.$hermes-vertical-nav-child-indent;
|
|
259
|
+
padding-left: vertical-nav-variables.$hermes-vertical-nav-child-padding-start;
|
|
260
|
+
border-left: #{tokens.$hermes-alias-object-border-width-100} solid vertical-nav-variables.$hermes-vertical-nav-divider-color;
|
|
261
|
+
transition: border-left-color vertical-nav-variables.$hermes-vertical-nav-transition-duration ease-in-out;
|
|
262
|
+
|
|
263
|
+
// O filho não é um item de primeiro nível reduzido: tem tipografia e glifo próprios, e o
|
|
264
|
+
// glifo neutro é o que separa folha de cabeçalho de grupo ("é a tela", e não "tem mais coisa").
|
|
265
|
+
.nav-link {
|
|
266
|
+
font-size: vertical-nav-variables.$hermes-vertical-nav-child-font-size;
|
|
267
|
+
padding: vertical-nav-variables.$hermes-vertical-nav-item-child-padding;
|
|
194
268
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
269
|
+
.nav-icon {
|
|
270
|
+
flex-basis: vertical-nav-variables.$hermes-vertical-nav-child-icon-size;
|
|
271
|
+
color: vertical-nav-variables.$hermes-vertical-nav-child-icon-color;
|
|
272
|
+
fill: vertical-nav-variables.$hermes-vertical-nav-child-icon-color;
|
|
198
273
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
align-self: center;
|
|
274
|
+
@include mixins.min-equilateral(vertical-nav-variables.$hermes-vertical-nav-child-icon-size);
|
|
275
|
+
@include mixins.equilateral(vertical-nav-variables.$hermes-vertical-nav-child-icon-size);
|
|
276
|
+
}
|
|
203
277
|
|
|
204
|
-
|
|
205
|
-
|
|
278
|
+
&.active .nav-icon {
|
|
279
|
+
color: vertical-nav-variables.$hermes-vertical-nav-icon-active-color;
|
|
280
|
+
fill: vertical-nav-variables.$hermes-vertical-nav-icon-active-color;
|
|
281
|
+
}
|
|
206
282
|
}
|
|
207
283
|
}
|
|
208
284
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
285
|
+
hermes-vertical-nav-group-children {
|
|
286
|
+
display: grid;
|
|
287
|
+
gap: vertical-nav-variables.$hermes-vertical-nav-child-gap;
|
|
288
|
+
padding-top: vertical-nav-variables.$hermes-vertical-nav-child-gap;
|
|
213
289
|
}
|
|
214
290
|
|
|
215
|
-
|
|
216
|
-
|
|
291
|
+
// O grupo que contém a página atual se marca também, e não só o item dentro dele: peso e glifo
|
|
292
|
+
// em tom forte, e o trilho acende. Não repete a tinta de fundo — ela é o que diz "esta é a
|
|
293
|
+
// página em que você está", e pai e filho dizem coisas diferentes ("é por aqui" e "é aqui").
|
|
294
|
+
.nav-group.active,
|
|
295
|
+
.nav-group:has(.nav-group-children .nav-link.active) {
|
|
296
|
+
> .nav-group-content .nav-group-trigger {
|
|
297
|
+
font-weight: vertical-nav-variables.$hermes-vertical-nav-item-active-font-weight;
|
|
217
298
|
|
|
218
|
-
|
|
219
|
-
|
|
299
|
+
.nav-icon {
|
|
300
|
+
color: vertical-nav-variables.$hermes-vertical-nav-icon-active-color;
|
|
301
|
+
fill: vertical-nav-variables.$hermes-vertical-nav-icon-active-color;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
220
304
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
padding: vertical-nav-variables.$hermes-vertical-nav-item-padding;
|
|
305
|
+
> .nav-group-children {
|
|
306
|
+
border-left-color: vertical-nav-variables.$hermes-vertical-nav-icon-color;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
226
309
|
|
|
227
|
-
|
|
310
|
+
// O ponto diz "tem um item seu aqui dentro" quando o grupo está fechado. Aparece sobretudo na
|
|
311
|
+
// coluna compacta, em que grupo nenhum mostra conteúdo e o ícone é tudo o que há. Encosta na
|
|
312
|
+
// quina do glifo, e não do botão, que na compacta é bem maior que o desenho.
|
|
313
|
+
.nav-group:not(.is-expanded):has(.nav-group-children .nav-link.active) .nav-group-trigger .nav-icon::after,
|
|
314
|
+
.nav-group.active:not(.is-expanded) .nav-group-trigger .nav-icon::after {
|
|
315
|
+
content: '';
|
|
316
|
+
position: absolute;
|
|
317
|
+
top: calc(-1 * #{mixins.baselinePx(2)});
|
|
318
|
+
right: calc(-1 * #{mixins.baselinePx(2)});
|
|
319
|
+
width: #{mixins.baselinePx(6)};
|
|
320
|
+
height: #{mixins.baselinePx(6)};
|
|
321
|
+
border-radius: 50%;
|
|
322
|
+
background-color: vertical-nav-variables.$hermes-vertical-nav-icon-color;
|
|
323
|
+
}
|
|
228
324
|
|
|
229
|
-
|
|
325
|
+
// ── Gatilho de recolher (o botão clássico do topo) ──────────────────────────────────────
|
|
230
326
|
|
|
327
|
+
.nav-trigger {
|
|
231
328
|
display: flex;
|
|
329
|
+
flex: 0 0 vertical-nav-variables.$hermes-vertical-nav-toggle-button-size;
|
|
232
330
|
align-items: center;
|
|
331
|
+
justify-content: flex-end;
|
|
332
|
+
height: vertical-nav-variables.$hermes-vertical-nav-item-height;
|
|
333
|
+
padding: density.$hermes-base-vertical-offset-m density.$hermes-base-horizontal-offset-xl;
|
|
334
|
+
border: none;
|
|
335
|
+
background-color: transparent;
|
|
336
|
+
cursor: pointer;
|
|
233
337
|
outline-offset: calc(-1 * #{mixins.baselinePx(5)});
|
|
234
|
-
}
|
|
235
338
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
.nav-text {
|
|
239
|
-
//Display
|
|
240
|
-
flex: 1 1 auto;
|
|
241
|
-
//Mixins
|
|
339
|
+
hermes-icon[shape='angle-double'] {
|
|
340
|
+
color: vertical-nav-variables.$hermes-vertical-nav-toggle-icon-color;
|
|
242
341
|
|
|
243
|
-
|
|
244
|
-
|
|
342
|
+
&:hover {
|
|
343
|
+
color: vertical-nav-variables.$hermes-vertical-nav-toggle-icon-hover-color;
|
|
344
|
+
}
|
|
245
345
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
346
|
+
&:active {
|
|
347
|
+
color: vertical-nav-variables.$hermes-vertical-nav-toggle-icon-active-color;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
hermes-icon {
|
|
352
|
+
margin-right: 0;
|
|
250
353
|
|
|
251
|
-
|
|
354
|
+
&:not([size]) {
|
|
355
|
+
@include mixins.equilateral(density.$hermes-base-icon-size-s);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
252
358
|
|
|
253
|
-
|
|
359
|
+
&.on-collapse hermes-icon {
|
|
360
|
+
margin: 0;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
.nav-trigger-icon {
|
|
365
|
+
transition: all vertical-nav-variables.$hermes-vertical-nav-transition-duration ease-in-out;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
.nav-trigger + .nav-content {
|
|
369
|
+
@include vertical-nav-mixins.vertical-nav-divider();
|
|
254
370
|
}
|
|
255
371
|
|
|
256
372
|
.nav-header {
|
|
257
|
-
//Dims
|
|
258
373
|
padding: vertical-nav-variables.$hermes-vertical-nav-header-padding;
|
|
259
374
|
min-height: vertical-nav-variables.$hermes-vertical-nav-item-height;
|
|
260
375
|
|
|
261
|
-
//Others
|
|
262
|
-
|
|
263
376
|
@include mixins.generate-typography-token(
|
|
264
377
|
'SECTION-12-SB-CPT',
|
|
265
378
|
(
|
|
@@ -268,188 +381,203 @@
|
|
|
268
381
|
);
|
|
269
382
|
}
|
|
270
383
|
|
|
271
|
-
//Parent .nav-text
|
|
272
|
-
.nav-icon {
|
|
273
|
-
//Display
|
|
274
|
-
flex: 0 0 vertical-nav-variables.$hermes-vertical-nav-icon-size;
|
|
275
|
-
align-self: center;
|
|
276
|
-
|
|
277
|
-
//Dims
|
|
278
|
-
|
|
279
|
-
@include mixins.min-equilateral(vertical-nav-variables.$hermes-vertical-nav-icon-size);
|
|
280
|
-
|
|
281
|
-
margin-right: density.$hermes-base-gap-xs;
|
|
282
|
-
|
|
283
|
-
//Others
|
|
284
|
-
vertical-align: middle;
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
hermes-vertical-nav-group-children {
|
|
288
|
-
display: block;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
384
|
.nav-btn {
|
|
292
|
-
//Display
|
|
293
385
|
flex: 1 1 auto;
|
|
294
|
-
|
|
295
|
-
//Dims
|
|
296
386
|
padding: 0;
|
|
297
387
|
margin: 0;
|
|
298
|
-
|
|
299
|
-
//Others
|
|
300
388
|
background: transparent;
|
|
301
389
|
border: none;
|
|
302
390
|
cursor: pointer;
|
|
303
391
|
outline-offset: calc(-1 * #{mixins.baselinePx(5)});
|
|
304
392
|
}
|
|
305
393
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
394
|
+
// ── Rodapé de ajustes ───────────────────────────────────────────────────────────────────
|
|
395
|
+
|
|
396
|
+
// A linha de ajuste: o gatilho de modo, o nome do modo em que se está e os botões em lote.
|
|
397
|
+
// Fica embaixo porque é decisão que se toma uma vez — no topo ela disputaria o primeiro item da
|
|
398
|
+
// lista, que é o que se clica sempre.
|
|
399
|
+
.nav-footer {
|
|
400
|
+
position: relative;
|
|
401
|
+
display: flex;
|
|
402
|
+
flex: none;
|
|
403
|
+
align-items: center;
|
|
404
|
+
gap: vertical-nav-variables.$hermes-vertical-nav-child-gap;
|
|
405
|
+
padding: vertical-nav-variables.$hermes-vertical-nav-content-inset;
|
|
406
|
+
border-top: #{tokens.$hermes-alias-object-border-width-100} solid vertical-nav-variables.$hermes-vertical-nav-divider-color;
|
|
407
|
+
color: vertical-nav-variables.$hermes-vertical-nav-footer-text-color;
|
|
310
408
|
}
|
|
311
409
|
|
|
312
|
-
.nav-
|
|
313
|
-
|
|
314
|
-
flex:
|
|
410
|
+
.nav-footer-btn {
|
|
411
|
+
display: inline-flex;
|
|
412
|
+
flex: none;
|
|
413
|
+
align-items: center;
|
|
414
|
+
justify-content: center;
|
|
415
|
+
width: vertical-nav-variables.$hermes-vertical-nav-item-height;
|
|
416
|
+
height: vertical-nav-variables.$hermes-vertical-nav-item-height;
|
|
417
|
+
padding: 0;
|
|
418
|
+
border: none;
|
|
419
|
+
border-radius: vertical-nav-variables.$hermes-vertical-nav-item-border-radius;
|
|
420
|
+
background-color: transparent;
|
|
421
|
+
color: vertical-nav-variables.$hermes-vertical-nav-icon-color;
|
|
422
|
+
cursor: pointer;
|
|
423
|
+
transition: background-color 0.24s cubic-bezier(0.4, 0, 0.2, 1);
|
|
424
|
+
outline-offset: calc(-1 * #{mixins.baselinePx(5)});
|
|
315
425
|
|
|
316
|
-
|
|
317
|
-
|
|
426
|
+
&:hover,
|
|
427
|
+
&[aria-expanded='true'] {
|
|
428
|
+
background-color: vertical-nav-variables.$hermes-vertical-nav-hover-bg-color;
|
|
318
429
|
}
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
.nav-icon + .nav-group-text {
|
|
322
|
-
padding-left: 0;
|
|
323
|
-
}
|
|
324
430
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
////
|
|
328
|
-
// Interactions
|
|
329
|
-
////
|
|
330
|
-
//////
|
|
331
|
-
///////
|
|
332
|
-
&.has-nav-groups {
|
|
333
|
-
.nav-content > .nav-link,
|
|
334
|
-
.nav-group .nav-group-text,
|
|
335
|
-
.nav-group .nav-group-trigger {
|
|
336
|
-
font-weight: vertical-nav-variables.$hermes-vertical-nav-item-top-level-font-weight;
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
.nav-group-children .nav-link {
|
|
340
|
-
padding: vertical-nav-variables.$hermes-vertical-nav-item-child-padding;
|
|
431
|
+
&:active {
|
|
432
|
+
background-color: vertical-nav-variables.$hermes-vertical-nav-active-bg-color;
|
|
341
433
|
}
|
|
342
|
-
}
|
|
343
434
|
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
padding: vertical-nav-variables.$hermes-vertical-nav-item-child-padding;
|
|
435
|
+
hermes-icon {
|
|
436
|
+
@include mixins.equilateral(density.$hermes-base-icon-size-s);
|
|
347
437
|
}
|
|
348
438
|
}
|
|
349
439
|
|
|
350
|
-
.nav-
|
|
351
|
-
|
|
352
|
-
|
|
440
|
+
.nav-footer-mode {
|
|
441
|
+
flex: 1 1 auto;
|
|
442
|
+
min-width: 0;
|
|
443
|
+
font-size: #{mixins.baselinePx(12)};
|
|
353
444
|
|
|
354
|
-
|
|
355
|
-
.nav-icon {
|
|
356
|
-
fill: vertical-nav-variables.$hermes-vertical-nav-icon-active-color;
|
|
357
|
-
}
|
|
358
|
-
}
|
|
445
|
+
@include mixins.overflow-ellipsis();
|
|
359
446
|
}
|
|
360
447
|
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
448
|
+
// O menu abre para cima, sobre a lista, e pode ser mais largo que a trilha compacta: por isso
|
|
449
|
+
// o painel não corta o que sai dele (só `.nav-content` rola).
|
|
450
|
+
.nav-footer-menu {
|
|
451
|
+
position: absolute;
|
|
452
|
+
bottom: calc(100% + #{mixins.baselinePx(4)});
|
|
453
|
+
left: vertical-nav-variables.$hermes-vertical-nav-content-inset;
|
|
454
|
+
z-index: 1;
|
|
455
|
+
display: grid;
|
|
456
|
+
gap: vertical-nav-variables.$hermes-vertical-nav-child-gap;
|
|
457
|
+
min-width: #{mixins.baselinePx(216)};
|
|
458
|
+
margin: 0;
|
|
459
|
+
padding: vertical-nav-variables.$hermes-vertical-nav-child-gap;
|
|
460
|
+
border: #{tokens.$hermes-alias-object-border-width-100} solid vertical-nav-variables.$hermes-vertical-nav-divider-color;
|
|
461
|
+
border-radius: vertical-nav-variables.$hermes-vertical-nav-item-border-radius;
|
|
462
|
+
background-color: vertical-nav-variables.$hermes-vertical-nav-menu-bg-color;
|
|
463
|
+
box-shadow: vertical-nav-variables.$hermes-vertical-nav-overlay-shadow;
|
|
464
|
+
list-style: none;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
.nav-footer-menu-item {
|
|
468
|
+
@include nav-row();
|
|
469
|
+
|
|
470
|
+
width: 100%;
|
|
471
|
+
gap: #{mixins.baselinePx(8)};
|
|
472
|
+
color: vertical-nav-variables.$hermes-vertical-nav-item-color;
|
|
473
|
+
cursor: pointer;
|
|
474
|
+
border-radius: vertical-nav-variables.$hermes-vertical-nav-item-border-radius;
|
|
475
|
+
font-size: vertical-nav-variables.$hermes-vertical-nav-child-font-size;
|
|
476
|
+
|
|
477
|
+
hermes-icon {
|
|
478
|
+
flex: none;
|
|
479
|
+
color: vertical-nav-variables.$hermes-vertical-nav-icon-color;
|
|
480
|
+
|
|
481
|
+
@include mixins.equilateral(density.$hermes-base-icon-size-s);
|
|
364
482
|
}
|
|
365
483
|
|
|
366
|
-
|
|
484
|
+
&:hover {
|
|
367
485
|
background-color: vertical-nav-variables.$hermes-vertical-nav-hover-bg-color;
|
|
368
486
|
}
|
|
369
487
|
|
|
370
|
-
|
|
371
|
-
background-color: vertical-nav-variables.$hermes-vertical-nav-
|
|
488
|
+
&[aria-checked='true'] {
|
|
489
|
+
background-color: vertical-nav-variables.$hermes-vertical-nav-selected-bg-color;
|
|
490
|
+
font-weight: vertical-nav-variables.$hermes-vertical-nav-item-active-font-weight;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
.nav-footer-menu-label {
|
|
494
|
+
flex: 1 1 auto;
|
|
495
|
+
min-width: 0;
|
|
496
|
+
|
|
497
|
+
@include mixins.overflow-ellipsis();
|
|
372
498
|
}
|
|
499
|
+
}
|
|
373
500
|
|
|
374
|
-
|
|
375
|
-
|
|
501
|
+
&.nav-trigger--bottom {
|
|
502
|
+
.nav-trigger {
|
|
503
|
+
order: 2;
|
|
504
|
+
margin-top: 0;
|
|
376
505
|
}
|
|
377
506
|
|
|
378
|
-
.nav-
|
|
379
|
-
|
|
507
|
+
.nav-trigger + .nav-content {
|
|
508
|
+
border-top: 0;
|
|
509
|
+
|
|
510
|
+
@include vertical-nav-mixins.vertical-nav-divider('border-bottom');
|
|
380
511
|
}
|
|
381
512
|
}
|
|
382
513
|
|
|
383
|
-
//
|
|
384
|
-
|
|
385
|
-
|
|
514
|
+
// ── Modo sobreposto (largura de desktop) ────────────────────────────────────────────────
|
|
515
|
+
|
|
516
|
+
// Compacta em repouso e aberta POR CIMA do conteúdo: o painel sai do fluxo o tempo todo, aberto
|
|
517
|
+
// ou fechado — se saísse só ao abrir, a página entraria e sairia do fluxo a cada passada de
|
|
518
|
+
// ponteiro, acompanhando a coluna. Quem segura o lugar dela é o próprio host, com a largura da
|
|
519
|
+
// trilha, e a página não se mexe nunca: só a coluna, que cresce por cima.
|
|
520
|
+
@media screen and (min-width: #{$desktop-min-width}) {
|
|
521
|
+
&.is-overlay {
|
|
522
|
+
flex: none;
|
|
523
|
+
width: vertical-nav-variables.$hermes-vertical-nav-rail-width;
|
|
524
|
+
min-width: vertical-nav-variables.$hermes-vertical-nav-rail-width;
|
|
525
|
+
|
|
526
|
+
.nav-panel {
|
|
527
|
+
position: absolute;
|
|
528
|
+
inset: 0 auto 0 0;
|
|
529
|
+
z-index: var(--hermes-vertical-nav-overlay-z-index, 1000);
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
&:not(.is-collapsed) .nav-panel {
|
|
533
|
+
box-shadow: vertical-nav-variables.$hermes-vertical-nav-overlay-shadow;
|
|
534
|
+
}
|
|
535
|
+
}
|
|
386
536
|
}
|
|
387
537
|
|
|
388
|
-
|
|
389
|
-
//Dims
|
|
390
|
-
width: vertical-nav-variables.$hermes-vertical-nav-min-width;
|
|
391
|
-
min-width: vertical-nav-variables.$hermes-vertical-nav-min-width;
|
|
392
|
-
// ATM - adress scroll when more items are available, otherwise the content gets hidden
|
|
393
|
-
max-width: calc(#{vertical-nav-variables.$hermes-vertical-nav-min-width} + #{mixins.baselinePx(14)});
|
|
538
|
+
// ── Coluna recolhida ────────────────────────────────────────────────────────────────────
|
|
394
539
|
|
|
395
|
-
|
|
540
|
+
.main-container:not([class*='open-overflow-menu'], [class*='open-hamburger-menu']) &.is-collapsed {
|
|
396
541
|
cursor: pointer;
|
|
397
542
|
|
|
398
|
-
.nav-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
543
|
+
.nav-panel {
|
|
544
|
+
width: vertical-nav-variables.$hermes-vertical-nav-rail-width;
|
|
545
|
+
min-width: vertical-nav-variables.$hermes-vertical-nav-rail-width;
|
|
546
|
+
max-width: vertical-nav-variables.$hermes-vertical-nav-rail-width;
|
|
402
547
|
}
|
|
403
548
|
|
|
404
|
-
.nav-
|
|
405
|
-
.
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
549
|
+
.nav-content {
|
|
550
|
+
// Rolagem só no eixo Y: na trilha de ícones nada rola para o lado.
|
|
551
|
+
overflow-x: hidden;
|
|
552
|
+
padding: vertical-nav-variables.$hermes-vertical-nav-content-inset;
|
|
553
|
+
}
|
|
409
554
|
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
flex: 0 0
|
|
413
|
-
calc(
|
|
414
|
-
#{vertical-nav-variables.$hermes-vertical-nav-collapsed-caret-size} +
|
|
415
|
-
#{vertical-nav-variables.$hermes-vertical-nav-icon-right-margin}
|
|
416
|
-
);
|
|
417
|
-
|
|
418
|
-
//Others
|
|
419
|
-
transform: translateX(calc(-1 * #{vertical-nav-variables.$hermes-vertical-nav-icon-size}));
|
|
420
|
-
pointer-events: none;
|
|
421
|
-
}
|
|
555
|
+
.nav-group-content .nav-link ~ .nav-group-trigger {
|
|
556
|
+
display: none;
|
|
422
557
|
}
|
|
423
558
|
|
|
424
559
|
.nav-link,
|
|
425
560
|
.nav-group-trigger {
|
|
426
|
-
|
|
427
|
-
padding: 0;
|
|
561
|
+
width: 100%;
|
|
428
562
|
}
|
|
429
563
|
|
|
430
|
-
.nav-group-trigger
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
hermes-icon {
|
|
439
|
-
&.nav-group-trigger-icon {
|
|
440
|
-
width: density.$hermes-base-icon-size-s;
|
|
441
|
-
margin: 0;
|
|
442
|
-
}
|
|
443
|
-
}
|
|
564
|
+
.nav-group-trigger-icon,
|
|
565
|
+
.nav-footer-mode,
|
|
566
|
+
.nav-footer-batch {
|
|
567
|
+
display: none;
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
.nav-group-children {
|
|
571
|
+
display: none;
|
|
444
572
|
}
|
|
445
573
|
|
|
446
|
-
//
|
|
574
|
+
// Sem ícone não há o que mostrar numa trilha de ícones: o item some.
|
|
447
575
|
.nav-group,
|
|
448
576
|
.nav-link {
|
|
449
577
|
display: none;
|
|
450
578
|
}
|
|
451
579
|
|
|
452
|
-
//
|
|
580
|
+
// Com ícones, só o texto sai de cena. Continua no DOM, legível por leitor de tela.
|
|
453
581
|
&.has-icons {
|
|
454
582
|
.nav-group {
|
|
455
583
|
display: block;
|
|
@@ -466,17 +594,30 @@
|
|
|
466
594
|
}
|
|
467
595
|
}
|
|
468
596
|
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
597
|
+
// ── Gaveta (abaixo do breakpoint) ───────────────────────────────────────────────────────
|
|
598
|
+
|
|
599
|
+
// Aqui o header responsivo é quem posiciona o host (painel deslizante de largura fixa, com fundo
|
|
600
|
+
// escurecido). O painel só preenche esse espaço: modo, sobreposição e largura medida não valem —
|
|
601
|
+
// numa tela estreita a navegação está aberta ou não está, e quando está ocupa a largura toda.
|
|
602
|
+
@media screen and (max-width: #{$mobile-max-width}) {
|
|
603
|
+
&.hermes-nav-level-1,
|
|
604
|
+
&.hermes-nav-level-2 {
|
|
605
|
+
.nav-panel {
|
|
606
|
+
position: static;
|
|
607
|
+
width: 100%;
|
|
608
|
+
min-width: 0;
|
|
609
|
+
max-width: none;
|
|
610
|
+
box-shadow: none;
|
|
611
|
+
}
|
|
474
612
|
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
613
|
+
.nav-footer {
|
|
614
|
+
display: none;
|
|
615
|
+
}
|
|
478
616
|
|
|
479
|
-
|
|
617
|
+
// Folga no fim da lista para a última entrada não ficar escondida atrás da barra do navegador.
|
|
618
|
+
.nav-content {
|
|
619
|
+
padding-bottom: tokens.$hermes-global-space-10;
|
|
620
|
+
}
|
|
480
621
|
}
|
|
481
622
|
}
|
|
482
623
|
}
|