@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
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
1. Install Hermes packages through npm:
|
|
4
4
|
|
|
5
5
|
```
|
|
6
|
-
npm install @hermes/angular
|
|
6
|
+
npm install @hermes-ui/angular @hermes-ui/core
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
2. Import the HermesModule into your Angular application's module. Your application's main module might look like this:
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
```
|
|
12
12
|
import { NgModule } from '@angular/core';
|
|
13
13
|
import { BrowserModule } from '@angular/platform-browser';
|
|
14
|
-
import { HermesModule } from '@hermes/angular';
|
|
14
|
+
import { HermesModule } from '@hermes-ui/angular';
|
|
15
15
|
import { AppComponent } from './app.component';
|
|
16
16
|
|
|
17
17
|
@NgModule({
|
|
@@ -26,20 +26,20 @@
|
|
|
26
26
|
export class AppModule { }
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
3. Include the necessary styles in the build. You can do this by either
|
|
30
|
-
|
|
29
|
+
3. Include the necessary styles in the build. You can do this by either adding the scss entry point to your angular.json
|
|
30
|
+
or by importing it in your top level styles.scss file.
|
|
31
31
|
|
|
32
32
|
```
|
|
33
33
|
//...
|
|
34
34
|
"styles": [
|
|
35
|
-
"node_modules/@hermes/angular/hermes-ui.
|
|
35
|
+
"node_modules/@hermes-ui/angular/hermes-ui.scss",
|
|
36
36
|
//... any other styles
|
|
37
37
|
]
|
|
38
38
|
//...
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
```scss
|
|
42
|
-
@use '@hermes/angular/hermes-ui';
|
|
42
|
+
@use '@hermes-ui/angular/hermes-ui';
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
4. Set the Theme
|
|
@@ -19,13 +19,21 @@
|
|
|
19
19
|
@include button-mixins.populateButtonProperties(default);
|
|
20
20
|
@include mixins.generate-typography-token('BUTTON-12');
|
|
21
21
|
|
|
22
|
-
//
|
|
23
|
-
//
|
|
22
|
+
// Size, weight and line-height follow app-botao (12px bold), not the shared BUTTON-12 token;
|
|
23
|
+
// its sentence case and untracked letters are kept.
|
|
24
24
|
font-size: buttons-variables.$hermes-btn-font-size;
|
|
25
|
+
font-weight: buttons-variables.$hermes-btn-font-weight;
|
|
26
|
+
line-height: buttons-variables.$hermes-btn-line-height;
|
|
25
27
|
|
|
28
|
+
box-sizing: border-box;
|
|
26
29
|
height: buttons-variables.$hermes-btn-appearance-form-height;
|
|
27
30
|
padding: buttons-variables.$hermes-btn-appearance-form-padding;
|
|
28
31
|
|
|
32
|
+
// The focus ring takes the intent's legible color; the intents below retarget the token.
|
|
33
|
+
--hermes-btn-focus-color: var(--hermes-btn-palette-primary-ink);
|
|
34
|
+
|
|
35
|
+
@include button-mixins.btn-interaction();
|
|
36
|
+
|
|
29
37
|
.hermes-loading-btn-content {
|
|
30
38
|
display: flex;
|
|
31
39
|
gap: buttons-variables.$hermes-btn-gap;
|
|
@@ -180,11 +188,68 @@
|
|
|
180
188
|
@include button-mixins.populateButtonProperties(inverse);
|
|
181
189
|
}
|
|
182
190
|
|
|
191
|
+
// Focus ring color per intent (--cor-* of app-botao).
|
|
192
|
+
.btn.btn-success,
|
|
193
|
+
.btn.btn-success-outline,
|
|
194
|
+
.btn.btn-outline-success,
|
|
195
|
+
.btn.btn-link-success,
|
|
196
|
+
.btn-success .btn,
|
|
197
|
+
.btn-success-outline .btn,
|
|
198
|
+
.btn-outline-success .btn,
|
|
199
|
+
.btn-link-success .btn {
|
|
200
|
+
--hermes-btn-focus-color: var(--hermes-btn-palette-success-ink);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.btn.btn-warning,
|
|
204
|
+
.btn.btn-warning-outline,
|
|
205
|
+
.btn.btn-outline-warning,
|
|
206
|
+
.btn.btn-link-warning,
|
|
207
|
+
.btn-warning .btn,
|
|
208
|
+
.btn-warning-outline .btn,
|
|
209
|
+
.btn-outline-warning .btn,
|
|
210
|
+
.btn-link-warning .btn {
|
|
211
|
+
--hermes-btn-focus-color: var(--hermes-btn-palette-warning-ink);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.btn.btn-danger,
|
|
215
|
+
.btn.btn-danger-outline,
|
|
216
|
+
.btn.btn-outline-danger,
|
|
217
|
+
.btn.btn-link-danger,
|
|
218
|
+
.btn-danger .btn,
|
|
219
|
+
.btn-danger-outline .btn,
|
|
220
|
+
.btn-outline-danger .btn,
|
|
221
|
+
.btn-link-danger .btn {
|
|
222
|
+
--hermes-btn-focus-color: var(--hermes-btn-palette-danger-ink);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// Minimal emphasis: underlined label, no dimming on hover (the tint is the feedback).
|
|
226
|
+
.btn.btn-link,
|
|
227
|
+
.btn.btn-link-primary,
|
|
228
|
+
.btn.btn-link-info,
|
|
229
|
+
.btn.btn-link-success,
|
|
230
|
+
.btn.btn-link-warning,
|
|
231
|
+
.btn.btn-link-danger,
|
|
232
|
+
.btn.btn-link-neutral,
|
|
233
|
+
.btn-link .btn,
|
|
234
|
+
.btn-link-primary .btn,
|
|
235
|
+
.btn-link-info .btn,
|
|
236
|
+
.btn-link-success .btn,
|
|
237
|
+
.btn-link-warning .btn,
|
|
238
|
+
.btn-link-danger .btn,
|
|
239
|
+
.btn-link-neutral .btn {
|
|
240
|
+
@include button-mixins.btn-underlined();
|
|
241
|
+
}
|
|
242
|
+
|
|
183
243
|
.btn.btn-sm,
|
|
184
244
|
.btn-sm .btn {
|
|
185
245
|
@include button-mixins.btn-sm-appearance();
|
|
186
246
|
}
|
|
187
247
|
|
|
248
|
+
.btn.btn-lg,
|
|
249
|
+
.btn-lg .btn {
|
|
250
|
+
@include button-mixins.btn-lg-appearance();
|
|
251
|
+
}
|
|
252
|
+
|
|
188
253
|
.btn-block {
|
|
189
254
|
display: flex;
|
|
190
255
|
width: 100%;
|
|
@@ -215,8 +280,21 @@
|
|
|
215
280
|
}
|
|
216
281
|
}
|
|
217
282
|
|
|
283
|
+
.btn-lg:not(.btn-link) {
|
|
284
|
+
hermes-icon,
|
|
285
|
+
hermes-icon {
|
|
286
|
+
&:not([size]) {
|
|
287
|
+
height: buttons-variables.$hermes-btn-icon-size-lg;
|
|
288
|
+
width: buttons-variables.$hermes-btn-icon-size-lg;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// Icon-only buttons are square, like app-botao-icone: the box is the height of the step.
|
|
218
294
|
.btn-icon {
|
|
219
295
|
min-width: 0;
|
|
296
|
+
padding-inline: 0;
|
|
297
|
+
aspect-ratio: 1;
|
|
220
298
|
}
|
|
221
299
|
|
|
222
300
|
//Overflow
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
@include button-css-var($button-type, color);
|
|
104
104
|
|
|
105
105
|
&:not([size]) {
|
|
106
|
-
@include mixins.min-equilateral(
|
|
106
|
+
@include mixins.min-equilateral(buttons-variables.$hermes-btn-icon-size);
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
|
|
@@ -194,7 +194,7 @@
|
|
|
194
194
|
overflow: hidden;
|
|
195
195
|
}
|
|
196
196
|
@mixin btn-min-max-widths() {
|
|
197
|
-
min-width:
|
|
197
|
+
min-width: buttons-variables.$hermes-btn-min-width;
|
|
198
198
|
max-width: mixins.baselinePx(360);
|
|
199
199
|
}
|
|
200
200
|
@mixin btn-text-properties() {
|
|
@@ -226,7 +226,49 @@
|
|
|
226
226
|
@include mixins.generate-typography-token('BUTTON-11-SMALL');
|
|
227
227
|
|
|
228
228
|
height: buttons-variables.$hermes-btn-appearance-standard-height;
|
|
229
|
+
min-width: buttons-variables.$hermes-btn-min-width-sm;
|
|
229
230
|
padding: buttons-variables.$hermes-btn-appearance-standard-padding;
|
|
231
|
+
font-size: buttons-variables.$hermes-btn-font-size-sm;
|
|
232
|
+
font-weight: buttons-variables.$hermes-btn-font-weight;
|
|
233
|
+
line-height: buttons-variables.$hermes-btn-line-height;
|
|
234
|
+
}
|
|
235
|
+
@mixin btn-lg-appearance() {
|
|
236
|
+
height: buttons-variables.$hermes-btn-height-lg;
|
|
237
|
+
min-width: buttons-variables.$hermes-btn-min-width-lg;
|
|
238
|
+
padding: buttons-variables.$hermes-btn-padding-lg;
|
|
239
|
+
font-size: buttons-variables.$hermes-btn-font-size-lg;
|
|
240
|
+
}
|
|
241
|
+
// Darkens the whole control (fill, label and icon) instead of swapping tokens per intent. The
|
|
242
|
+
// resting pair was measured for contrast; a brightness filter scales it without re-measuring.
|
|
243
|
+
@mixin btn-interaction() {
|
|
244
|
+
transition: buttons-variables.$hermes-btn-transition;
|
|
245
|
+
|
|
246
|
+
&:hover:not(:disabled):not(.disabled) {
|
|
247
|
+
filter: brightness(#{buttons-variables.$hermes-btn-hover-brightness});
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
&:active:not(:disabled):not(.disabled) {
|
|
251
|
+
filter: brightness(#{buttons-variables.$hermes-btn-active-brightness});
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
&:focus-visible {
|
|
255
|
+
outline: buttons-variables.$hermes-btn-focus-width solid buttons-variables.$hermes-btn-focus-color;
|
|
256
|
+
outline-offset: buttons-variables.$hermes-btn-focus-offset;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
// Minimal emphasis has no frame, so the underline is what says it is actionable (WCAG 1.4.1).
|
|
260
|
+
@mixin btn-underlined() {
|
|
261
|
+
text-decoration: underline;
|
|
262
|
+
|
|
263
|
+
&:hover,
|
|
264
|
+
&:active {
|
|
265
|
+
text-decoration: underline;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
&:hover:not(:disabled):not(.disabled),
|
|
269
|
+
&:active:not(:disabled):not(.disabled) {
|
|
270
|
+
filter: none;
|
|
271
|
+
}
|
|
230
272
|
}
|
|
231
273
|
@mixin generateButton() {
|
|
232
274
|
@include btn-appearance();
|