semmet-angular 0.39.0 → 0.41.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.en.md +22 -0
- package/README.md +22 -0
- package/README.pt-BR.md +22 -0
- package/package.json +1 -1
- package/src/accordion/files/__name@dasherize__/__name@dasherize__.css.template +6 -3
- package/src/alert/files/__name@dasherize__/__name@dasherize__.css.template +6 -3
- package/src/alert-dialog/files/__name@dasherize__/__name@dasherize__.css.template +10 -5
- package/src/badge/files/__name@dasherize__/__name@dasherize__.css.template +8 -5
- package/src/breadcrumb/files/__name@dasherize__/__name@dasherize__.css.template +3 -2
- package/src/button/files/__name@dasherize__/__name@dasherize__.css.template +13 -7
- package/src/button-group/files/__name@dasherize__/__name@dasherize__.css.template +12 -6
- package/src/card/files/__name@dasherize__/__name@dasherize__.css.template +7 -4
- package/src/carousel/files/__name@dasherize__/__name@dasherize__.css.template +7 -4
- package/src/checkbox/files/__name@dasherize__/__name@dasherize__.css.template +4 -2
- package/src/close-button/files/__name@dasherize__/__name@dasherize__.css.template +9 -6
- package/src/combobox/files/__name@dasherize__/__name@dasherize__.css.template +11 -5
- package/src/dialog/files/__name@dasherize__/__name@dasherize__.css.template +9 -4
- package/src/disclosure/files/__name@dasherize__/__name@dasherize__.css.template +5 -3
- package/src/form/files/__name@dasherize__/__name@dasherize__.css.template +11 -7
- package/src/input/files/__name@dasherize__/__name@dasherize__.css.template +6 -3
- package/src/input-group/files/__name@dasherize__/__name@dasherize__.css.template +8 -5
- package/src/landmarks/files/__name@dasherize__/__name@dasherize__.css.template +4 -2
- package/src/list-group/files/__name@dasherize__/__name@dasherize__.css.template +12 -7
- package/src/listbox/files/__name@dasherize__/__name@dasherize__.css.template +7 -3
- package/src/menu-button/files/__name@dasherize__/__name@dasherize__.css.template +11 -5
- package/src/meter/files/__name@dasherize__/__name@dasherize__.css.template +2 -1
- package/src/navbar/files/__name@dasherize__/__name@dasherize__.css.template +18 -14
- package/src/navigation-menu/files/__name@dasherize__/__name@dasherize__.css.template +10 -5
- package/src/offcanvas/files/__name@dasherize__/__name@dasherize__.css.template +12 -8
- package/src/pagination/files/__name@dasherize__/__name@dasherize__.css.template +7 -4
- package/src/popover/files/__name@dasherize__/__name@dasherize__.css.template +17 -12
- package/src/progress-bar/files/__name@dasherize__/__name@dasherize__.css.template +7 -3
- package/src/radio-group/files/__name@dasherize__/__name@dasherize__.css.template +6 -2
- package/src/select/files/__name@dasherize__/__name@dasherize__.css.template +10 -5
- package/src/skeleton/files/__name@dasherize__/__name@dasherize__.css.template +2 -1
- package/src/slider/files/__name@dasherize__/__name@dasherize__.css.template +2 -1
- package/src/spinbutton/files/__name@dasherize__/__name@dasherize__.css.template +6 -4
- package/src/spinner/files/__name@dasherize__/__name@dasherize__.css.template +2 -1
- package/src/switch/files/__name@dasherize__/__name@dasherize__.css.template +4 -2
- package/src/table/files/__name@dasherize__/__name@dasherize__.css.template +4 -2
- package/src/tabs/files/__name@dasherize__/__name@dasherize__.css.template +11 -5
- package/src/textarea/files/__name@dasherize__/__name@dasherize__.css.template +5 -3
- package/src/toast/files/__name@dasherize__/__name@dasherize__.css.template +11 -5
- package/src/toolbar/files/__name@dasherize__/__name@dasherize__.css.template +8 -3
- package/src/tooltip/files/__name@dasherize__/__name@dasherize__.css.template +7 -3
- package/src/tree-view/files/__name@dasherize__/__name@dasherize__.css.template +7 -3
package/README.en.md
CHANGED
|
@@ -35,6 +35,28 @@ Use isolated components when you need fine-grained control, or compositions when
|
|
|
35
35
|
- **Compositions / Blocks**: ready-made sections such as `section-card`, `section-faq`, `section-pricing`, `section-stats`, `section-table`, `section-form`, `section-tabs`, `section-list-group`, `section-alert`, `section-progress`, `section-carousel`, `header-navbar`, `footer-navigation`, and `command-list`.
|
|
36
36
|
- **Delivery**: `ng add`, `ci`, `docker`, `deploy`, and `verify`.
|
|
37
37
|
|
|
38
|
+
## Composition Commands
|
|
39
|
+
|
|
40
|
+
Compositions/blocks generate standalone Angular sections using the matching Semmet components. Generated CSS stays local to the block and uses local spacing tokens to keep landing-page rhythm without injecting global styles into the application.
|
|
41
|
+
|
|
42
|
+
| Command | Generates | Built from |
|
|
43
|
+
|---|---|---|
|
|
44
|
+
| `ng generate semmet-angular:block hero` | Semantic hero section | Section structure |
|
|
45
|
+
| `ng generate semmet-angular:block section-card` | Card section | `card` |
|
|
46
|
+
| `ng generate semmet-angular:block section-faq` | FAQ section | `accordion` |
|
|
47
|
+
| `ng generate semmet-angular:block section-pricing` | Pricing section | `card` |
|
|
48
|
+
| `ng generate semmet-angular:block section-stats` | Stats section | Section structure |
|
|
49
|
+
| `ng generate semmet-angular:block section-table` | Table section | `table` |
|
|
50
|
+
| `ng generate semmet-angular:block section-form` | Form section | `form` |
|
|
51
|
+
| `ng generate semmet-angular:block section-tabs` | Tabs section | `tabs` |
|
|
52
|
+
| `ng generate semmet-angular:block section-list-group` | Action list section | `list-group` |
|
|
53
|
+
| `ng generate semmet-angular:block section-alert` | Alert section | `alert` |
|
|
54
|
+
| `ng generate semmet-angular:block section-progress` | Progress section | `progress-bar` |
|
|
55
|
+
| `ng generate semmet-angular:block section-carousel` | Carousel section | `carousel` |
|
|
56
|
+
| `ng generate semmet-angular:block header-navbar` | Header navigation | `navbar` |
|
|
57
|
+
| `ng generate semmet-angular:block footer-navigation` | Footer navigation | `navbar` |
|
|
58
|
+
| `ng generate semmet-angular:block command-list` | Command list section | Section structure |
|
|
59
|
+
|
|
38
60
|
## Generated tests
|
|
39
61
|
|
|
40
62
|
Every component schematic generates test files next to the component:
|
package/README.md
CHANGED
|
@@ -35,6 +35,28 @@ Use componentes isolados quando precisar de controle fino, ou compositions quand
|
|
|
35
35
|
- **Compositions / Blocks**: seções prontas como `section-card`, `section-faq`, `section-pricing`, `section-stats`, `section-table`, `section-form`, `section-tabs`, `section-list-group`, `section-alert`, `section-progress`, `section-carousel`, `header-navbar`, `footer-navigation` e `command-list`.
|
|
36
36
|
- **Delivery**: `ng add`, `ci`, `docker`, `deploy` e `verify`.
|
|
37
37
|
|
|
38
|
+
## Comandos de Composição
|
|
39
|
+
|
|
40
|
+
Compositions/blocks geram seções Angular standalone usando os componentes correspondentes da própria Semmet. O CSS gerado fica local no block e usa tokens locais de espaçamento para manter ritmo de landing page sem injetar estilo global na aplicação.
|
|
41
|
+
|
|
42
|
+
| Comando | Gera | Usa como base |
|
|
43
|
+
|---|---|---|
|
|
44
|
+
| `ng generate semmet-angular:block hero` | Seção hero semântica | Estrutura de seção |
|
|
45
|
+
| `ng generate semmet-angular:block section-card` | Seção de cards | `card` |
|
|
46
|
+
| `ng generate semmet-angular:block section-faq` | Seção de FAQ | `accordion` |
|
|
47
|
+
| `ng generate semmet-angular:block section-pricing` | Seção de preços | `card` |
|
|
48
|
+
| `ng generate semmet-angular:block section-stats` | Seção de métricas | Estrutura de seção |
|
|
49
|
+
| `ng generate semmet-angular:block section-table` | Seção com tabela | `table` |
|
|
50
|
+
| `ng generate semmet-angular:block section-form` | Seção com formulário | `form` |
|
|
51
|
+
| `ng generate semmet-angular:block section-tabs` | Seção com abas | `tabs` |
|
|
52
|
+
| `ng generate semmet-angular:block section-list-group` | Seção com lista de ações | `list-group` |
|
|
53
|
+
| `ng generate semmet-angular:block section-alert` | Seção com alerta | `alert` |
|
|
54
|
+
| `ng generate semmet-angular:block section-progress` | Seção com progresso | `progress-bar` |
|
|
55
|
+
| `ng generate semmet-angular:block section-carousel` | Seção com carousel | `carousel` |
|
|
56
|
+
| `ng generate semmet-angular:block header-navbar` | Header com navegação | `navbar` |
|
|
57
|
+
| `ng generate semmet-angular:block footer-navigation` | Footer com navegação | `navbar` |
|
|
58
|
+
| `ng generate semmet-angular:block command-list` | Seção de comandos | Estrutura de seção |
|
|
59
|
+
|
|
38
60
|
## Fluxo de Entrega
|
|
39
61
|
|
|
40
62
|
Depois de rodar `ng add semmet-angular`, use:
|
package/README.pt-BR.md
CHANGED
|
@@ -33,6 +33,28 @@ Use componentes isolados quando precisar de controle fino, ou compositions quand
|
|
|
33
33
|
- **Compositions / Blocks**: seções prontas como `section-card`, `section-faq`, `section-pricing`, `section-stats`, `section-table`, `section-form`, `section-tabs`, `section-list-group`, `section-alert`, `section-progress`, `section-carousel`, `header-navbar`, `footer-navigation` e `command-list`.
|
|
34
34
|
- **Delivery**: `ng add`, `ci`, `docker`, `deploy` e `verify`.
|
|
35
35
|
|
|
36
|
+
## Comandos de Composição
|
|
37
|
+
|
|
38
|
+
Compositions/blocks geram seções Angular standalone usando os componentes correspondentes da própria Semmet. O CSS gerado fica local no block e usa tokens locais de espaçamento para manter ritmo de landing page sem injetar estilo global na aplicação.
|
|
39
|
+
|
|
40
|
+
| Comando | Gera | Usa como base |
|
|
41
|
+
|---|---|---|
|
|
42
|
+
| `ng generate semmet-angular:block hero` | Seção hero semântica | Estrutura de seção |
|
|
43
|
+
| `ng generate semmet-angular:block section-card` | Seção de cards | `card` |
|
|
44
|
+
| `ng generate semmet-angular:block section-faq` | Seção de FAQ | `accordion` |
|
|
45
|
+
| `ng generate semmet-angular:block section-pricing` | Seção de preços | `card` |
|
|
46
|
+
| `ng generate semmet-angular:block section-stats` | Seção de métricas | Estrutura de seção |
|
|
47
|
+
| `ng generate semmet-angular:block section-table` | Seção com tabela | `table` |
|
|
48
|
+
| `ng generate semmet-angular:block section-form` | Seção com formulário | `form` |
|
|
49
|
+
| `ng generate semmet-angular:block section-tabs` | Seção com abas | `tabs` |
|
|
50
|
+
| `ng generate semmet-angular:block section-list-group` | Seção com lista de ações | `list-group` |
|
|
51
|
+
| `ng generate semmet-angular:block section-alert` | Seção com alerta | `alert` |
|
|
52
|
+
| `ng generate semmet-angular:block section-progress` | Seção com progresso | `progress-bar` |
|
|
53
|
+
| `ng generate semmet-angular:block section-carousel` | Seção com carousel | `carousel` |
|
|
54
|
+
| `ng generate semmet-angular:block header-navbar` | Header com navegação | `navbar` |
|
|
55
|
+
| `ng generate semmet-angular:block footer-navigation` | Footer com navegação | `navbar` |
|
|
56
|
+
| `ng generate semmet-angular:block command-list` | Seção de comandos | Estrutura de seção |
|
|
57
|
+
|
|
36
58
|
## Fluxo de Entrega
|
|
37
59
|
|
|
38
60
|
Depois de rodar `ng add semmet-angular`, use:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "semmet-angular",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.41.0",
|
|
4
4
|
"description": "Accessible UI delivery dev kit in Angular: schematics that generate components, compositions, tests, and delivery scaffolds as native editable Angular code.",
|
|
5
5
|
"publisher": "danilodevsilva",
|
|
6
6
|
"license": "MIT",
|
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
--semmet-color-on-surface: #18181b;
|
|
6
6
|
--semmet-color-on-surface-variant: #52525b;
|
|
7
7
|
--semmet-radius-md: 12px;
|
|
8
|
+
--semmet-space-2xs: 8px;
|
|
9
|
+
--semmet-space-xs: 16px;
|
|
10
|
+
--semmet-space-sm: 24px;
|
|
8
11
|
--semmet-motion: 160ms cubic-bezier(0.2, 0, 0, 1);
|
|
9
12
|
|
|
10
13
|
display: block;
|
|
@@ -29,9 +32,9 @@ h3:not(:first-of-type) {
|
|
|
29
32
|
button {
|
|
30
33
|
display: flex;
|
|
31
34
|
align-items: center;
|
|
32
|
-
gap:
|
|
35
|
+
gap: var(--semmet-space-xs);
|
|
33
36
|
width: 100%;
|
|
34
|
-
padding:
|
|
37
|
+
padding: var(--semmet-space-xs) var(--semmet-space-sm);
|
|
35
38
|
font: inherit;
|
|
36
39
|
font-weight: 500;
|
|
37
40
|
color: inherit;
|
|
@@ -68,6 +71,6 @@ button[aria-expanded='true']::after {
|
|
|
68
71
|
}
|
|
69
72
|
|
|
70
73
|
[role='region'] {
|
|
71
|
-
padding: 0
|
|
74
|
+
padding: 0 var(--semmet-space-sm) var(--semmet-space-sm);
|
|
72
75
|
color: var(--semmet-color-on-surface-variant);
|
|
73
76
|
}
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
--semmet-color-primary: #18181b;
|
|
3
3
|
--semmet-color-on-primary: #ffffff;
|
|
4
4
|
--semmet-radius-sm: 8px;
|
|
5
|
+
--semmet-space-3xs: 4px;
|
|
6
|
+
--semmet-space-2xs: 8px;
|
|
7
|
+
--semmet-space-xs: 16px;
|
|
5
8
|
--semmet-motion: 160ms cubic-bezier(0.2, 0, 0, 1);
|
|
6
9
|
|
|
7
10
|
display: block;
|
|
@@ -13,8 +16,8 @@
|
|
|
13
16
|
display: flex;
|
|
14
17
|
align-items: center;
|
|
15
18
|
justify-content: space-between;
|
|
16
|
-
gap:
|
|
17
|
-
padding:
|
|
19
|
+
gap: var(--semmet-space-xs);
|
|
20
|
+
padding: var(--semmet-space-xs);
|
|
18
21
|
color: var(--semmet-color-on-primary);
|
|
19
22
|
background: var(--semmet-color-primary);
|
|
20
23
|
border-radius: var(--semmet-radius-sm);
|
|
@@ -29,7 +32,7 @@ button {
|
|
|
29
32
|
border: none;
|
|
30
33
|
cursor: pointer;
|
|
31
34
|
border-radius: 4px;
|
|
32
|
-
padding:
|
|
35
|
+
padding: var(--semmet-space-3xs) var(--semmet-space-2xs);
|
|
33
36
|
transition: background-color var(--semmet-motion);
|
|
34
37
|
}
|
|
35
38
|
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
--semmet-color-on-surface-variant: #52525b;
|
|
7
7
|
--semmet-color-scrim: rgba(20, 24, 23, 0.45);
|
|
8
8
|
--semmet-radius-lg: 20px;
|
|
9
|
+
--semmet-space-2xs: 8px;
|
|
10
|
+
--semmet-space-xs: 16px;
|
|
11
|
+
--semmet-space-sm: 24px;
|
|
12
|
+
--semmet-target-md: 40px;
|
|
9
13
|
--semmet-elevation-3: 0 8px 24px rgba(20, 24, 23, 0.18), 0 2px 8px rgba(20, 24, 23, 0.1);
|
|
10
14
|
--semmet-motion: 160ms cubic-bezier(0.2, 0, 0, 1);
|
|
11
15
|
|
|
@@ -21,7 +25,8 @@ button {
|
|
|
21
25
|
background: none;
|
|
22
26
|
border: none;
|
|
23
27
|
border-radius: 8px;
|
|
24
|
-
|
|
28
|
+
min-height: var(--semmet-target-md);
|
|
29
|
+
padding: var(--semmet-space-2xs) var(--semmet-space-xs);
|
|
25
30
|
cursor: pointer;
|
|
26
31
|
transition: background-color var(--semmet-motion);
|
|
27
32
|
}
|
|
@@ -38,7 +43,7 @@ button:focus-visible {
|
|
|
38
43
|
[role='alertdialog'] button:last-of-type {
|
|
39
44
|
color: var(--semmet-color-on-primary);
|
|
40
45
|
background: var(--semmet-color-primary);
|
|
41
|
-
margin-left:
|
|
46
|
+
margin-left: var(--semmet-space-2xs);
|
|
42
47
|
}
|
|
43
48
|
|
|
44
49
|
[role='alertdialog'] button:last-of-type:hover {
|
|
@@ -58,7 +63,7 @@ button:focus-visible {
|
|
|
58
63
|
transform: translate(-50%, -50%);
|
|
59
64
|
min-width: 22rem;
|
|
60
65
|
max-width: 90vw;
|
|
61
|
-
padding:
|
|
66
|
+
padding: var(--semmet-space-sm);
|
|
62
67
|
border-radius: var(--semmet-radius-lg);
|
|
63
68
|
background: var(--semmet-color-surface);
|
|
64
69
|
color: var(--semmet-color-on-surface);
|
|
@@ -71,12 +76,12 @@ button:focus-visible {
|
|
|
71
76
|
}
|
|
72
77
|
|
|
73
78
|
[role='alertdialog'] h2 {
|
|
74
|
-
margin: 0 0
|
|
79
|
+
margin: 0 0 var(--semmet-space-xs);
|
|
75
80
|
font-size: 1.25rem;
|
|
76
81
|
font-weight: 500;
|
|
77
82
|
}
|
|
78
83
|
|
|
79
84
|
[role='alertdialog'] > div {
|
|
80
|
-
margin-bottom:
|
|
85
|
+
margin-bottom: var(--semmet-space-sm);
|
|
81
86
|
color: var(--semmet-color-on-surface-variant);
|
|
82
87
|
}
|
|
@@ -13,6 +13,9 @@
|
|
|
13
13
|
--semmet-color-on-info: #ffffff;
|
|
14
14
|
--semmet-radius-full: 999px;
|
|
15
15
|
--semmet-radius-sm: 6px;
|
|
16
|
+
--semmet-space-3xs: 4px;
|
|
17
|
+
--semmet-space-2xs: 8px;
|
|
18
|
+
--semmet-target-sm: 32px;
|
|
16
19
|
|
|
17
20
|
display: inline-block;
|
|
18
21
|
font-family: Roboto, system-ui, -apple-system, 'Segoe UI', sans-serif;
|
|
@@ -22,7 +25,7 @@
|
|
|
22
25
|
display: inline-flex;
|
|
23
26
|
align-items: center;
|
|
24
27
|
justify-content: center;
|
|
25
|
-
gap:
|
|
28
|
+
gap: var(--semmet-space-2xs);
|
|
26
29
|
border-radius: var(--semmet-radius-sm);
|
|
27
30
|
font-weight: 700;
|
|
28
31
|
line-height: 1;
|
|
@@ -32,19 +35,19 @@
|
|
|
32
35
|
|
|
33
36
|
.semmet-badge--sm {
|
|
34
37
|
min-height: 1.25rem;
|
|
35
|
-
padding:
|
|
38
|
+
padding: var(--semmet-space-3xs) var(--semmet-space-2xs);
|
|
36
39
|
font-size: 0.6875rem;
|
|
37
40
|
}
|
|
38
41
|
|
|
39
42
|
.semmet-badge--md {
|
|
40
43
|
min-height: 1.5rem;
|
|
41
|
-
padding:
|
|
44
|
+
padding: var(--semmet-space-2xs);
|
|
42
45
|
font-size: 0.75rem;
|
|
43
46
|
}
|
|
44
47
|
|
|
45
48
|
.semmet-badge--lg {
|
|
46
49
|
min-height: 1.75rem;
|
|
47
|
-
padding:
|
|
50
|
+
padding: var(--semmet-space-2xs);
|
|
48
51
|
font-size: 0.8125rem;
|
|
49
52
|
}
|
|
50
53
|
|
|
@@ -54,7 +57,7 @@
|
|
|
54
57
|
|
|
55
58
|
.semmet-badge--dot {
|
|
56
59
|
min-width: auto;
|
|
57
|
-
padding-inline-start:
|
|
60
|
+
padding-inline-start: var(--semmet-space-2xs);
|
|
58
61
|
}
|
|
59
62
|
|
|
60
63
|
.semmet-badge--dot:has(.semmet-badge__dot):not(:has(.semmet-badge__label)) {
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
--semmet-color-primary: #18181b;
|
|
3
3
|
--semmet-color-on-surface: #18181b;
|
|
4
4
|
--semmet-color-on-surface-variant: #52525b;
|
|
5
|
+
--semmet-space-2xs: 8px;
|
|
5
6
|
--semmet-motion: 160ms cubic-bezier(0.2, 0, 0, 1);
|
|
6
7
|
|
|
7
8
|
display: block;
|
|
@@ -13,7 +14,7 @@ ol {
|
|
|
13
14
|
display: flex;
|
|
14
15
|
flex-wrap: wrap;
|
|
15
16
|
align-items: center;
|
|
16
|
-
gap:
|
|
17
|
+
gap: var(--semmet-space-2xs);
|
|
17
18
|
margin: 0;
|
|
18
19
|
padding: 0;
|
|
19
20
|
list-style: none;
|
|
@@ -22,7 +23,7 @@ ol {
|
|
|
22
23
|
li {
|
|
23
24
|
display: flex;
|
|
24
25
|
align-items: center;
|
|
25
|
-
gap:
|
|
26
|
+
gap: var(--semmet-space-2xs);
|
|
26
27
|
color: var(--semmet-color-on-surface-variant);
|
|
27
28
|
}
|
|
28
29
|
|
|
@@ -8,6 +8,12 @@
|
|
|
8
8
|
--semmet-color-on-surface: #18181b;
|
|
9
9
|
--semmet-color-on-surface-variant: #52525b;
|
|
10
10
|
--semmet-radius-sm: 8px;
|
|
11
|
+
--semmet-space-2xs: 8px;
|
|
12
|
+
--semmet-space-xs: 16px;
|
|
13
|
+
--semmet-space-sm: 24px;
|
|
14
|
+
--semmet-target-sm: 32px;
|
|
15
|
+
--semmet-target-md: 40px;
|
|
16
|
+
--semmet-target-lg: 48px;
|
|
11
17
|
--semmet-motion: 160ms cubic-bezier(0.2, 0, 0, 1);
|
|
12
18
|
|
|
13
19
|
display: inline-block;
|
|
@@ -19,7 +25,7 @@
|
|
|
19
25
|
display: inline-flex;
|
|
20
26
|
align-items: center;
|
|
21
27
|
justify-content: center;
|
|
22
|
-
gap:
|
|
28
|
+
gap: var(--semmet-space-2xs);
|
|
23
29
|
min-width: 2.75rem;
|
|
24
30
|
border: 1px solid transparent;
|
|
25
31
|
border-radius: var(--semmet-radius-sm);
|
|
@@ -38,19 +44,19 @@
|
|
|
38
44
|
}
|
|
39
45
|
|
|
40
46
|
.semmet-button--sm {
|
|
41
|
-
min-height:
|
|
42
|
-
padding:
|
|
47
|
+
min-height: var(--semmet-target-sm);
|
|
48
|
+
padding: var(--semmet-space-2xs) var(--semmet-space-xs);
|
|
43
49
|
font-size: 0.875rem;
|
|
44
50
|
}
|
|
45
51
|
|
|
46
52
|
.semmet-button--md {
|
|
47
|
-
min-height:
|
|
48
|
-
padding:
|
|
53
|
+
min-height: var(--semmet-target-md);
|
|
54
|
+
padding: var(--semmet-space-2xs) var(--semmet-space-xs);
|
|
49
55
|
}
|
|
50
56
|
|
|
51
57
|
.semmet-button--lg {
|
|
52
|
-
min-height:
|
|
53
|
-
padding:
|
|
58
|
+
min-height: var(--semmet-target-lg);
|
|
59
|
+
padding: var(--semmet-space-xs) var(--semmet-space-sm);
|
|
54
60
|
font-size: 1rem;
|
|
55
61
|
}
|
|
56
62
|
|
|
@@ -6,6 +6,12 @@
|
|
|
6
6
|
--semmet-color-outline: #d4d4d8;
|
|
7
7
|
--semmet-color-on-surface: #27272a;
|
|
8
8
|
--semmet-radius-sm: 8px;
|
|
9
|
+
--semmet-space-2xs: 8px;
|
|
10
|
+
--semmet-space-xs: 16px;
|
|
11
|
+
--semmet-space-sm: 24px;
|
|
12
|
+
--semmet-target-sm: 32px;
|
|
13
|
+
--semmet-target-md: 40px;
|
|
14
|
+
--semmet-target-lg: 48px;
|
|
9
15
|
--semmet-motion: 160ms cubic-bezier(0.2, 0, 0, 1);
|
|
10
16
|
|
|
11
17
|
display: inline-block;
|
|
@@ -55,19 +61,19 @@
|
|
|
55
61
|
}
|
|
56
62
|
|
|
57
63
|
.semmet-button-group--sm .semmet-button-group__button {
|
|
58
|
-
min-height:
|
|
59
|
-
padding:
|
|
64
|
+
min-height: var(--semmet-target-sm);
|
|
65
|
+
padding: var(--semmet-space-2xs) var(--semmet-space-xs);
|
|
60
66
|
font-size: 0.875rem;
|
|
61
67
|
}
|
|
62
68
|
|
|
63
69
|
.semmet-button-group--md .semmet-button-group__button {
|
|
64
|
-
min-height:
|
|
65
|
-
padding:
|
|
70
|
+
min-height: var(--semmet-target-md);
|
|
71
|
+
padding: var(--semmet-space-2xs) var(--semmet-space-xs);
|
|
66
72
|
}
|
|
67
73
|
|
|
68
74
|
.semmet-button-group--lg .semmet-button-group__button {
|
|
69
|
-
min-height:
|
|
70
|
-
padding:
|
|
75
|
+
min-height: var(--semmet-target-lg);
|
|
76
|
+
padding: var(--semmet-space-xs) var(--semmet-space-sm);
|
|
71
77
|
font-size: 1rem;
|
|
72
78
|
}
|
|
73
79
|
|
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
--semmet-color-on-surface: #18181b;
|
|
6
6
|
--semmet-color-on-surface-variant: #52525b;
|
|
7
7
|
--semmet-radius-md: 12px;
|
|
8
|
+
--semmet-space-2xs: 8px;
|
|
9
|
+
--semmet-space-xs: 16px;
|
|
10
|
+
--semmet-space-sm: 24px;
|
|
8
11
|
|
|
9
12
|
display: block;
|
|
10
13
|
font-family: Roboto, system-ui, -apple-system, 'Segoe UI', sans-serif;
|
|
@@ -19,7 +22,7 @@ article {
|
|
|
19
22
|
}
|
|
20
23
|
|
|
21
24
|
h3 {
|
|
22
|
-
margin:
|
|
25
|
+
margin: var(--semmet-space-sm) var(--semmet-space-sm) var(--semmet-space-2xs);
|
|
23
26
|
font-size: 1.0625rem;
|
|
24
27
|
font-weight: 500;
|
|
25
28
|
color: var(--semmet-color-on-surface);
|
|
@@ -36,15 +39,15 @@ p {
|
|
|
36
39
|
}
|
|
37
40
|
|
|
38
41
|
.semmet-card__description {
|
|
39
|
-
margin: 0
|
|
42
|
+
margin: 0 var(--semmet-space-sm) var(--semmet-space-xs);
|
|
40
43
|
color: var(--semmet-color-on-surface-variant);
|
|
41
44
|
}
|
|
42
45
|
|
|
43
46
|
.semmet-card__actions {
|
|
44
47
|
display: flex;
|
|
45
48
|
flex-wrap: wrap;
|
|
46
|
-
gap:
|
|
47
|
-
margin: 0
|
|
49
|
+
gap: var(--semmet-space-xs);
|
|
50
|
+
margin: 0 var(--semmet-space-sm) var(--semmet-space-sm);
|
|
48
51
|
}
|
|
49
52
|
|
|
50
53
|
a {
|
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
--semmet-color-outline: #d4d4d8;
|
|
6
6
|
--semmet-color-on-surface: #18181b;
|
|
7
7
|
--semmet-radius-md: 12px;
|
|
8
|
+
--semmet-space-xs: 16px;
|
|
9
|
+
--semmet-space-sm: 24px;
|
|
10
|
+
--semmet-target-md: 40px;
|
|
8
11
|
--semmet-motion: 160ms cubic-bezier(0.2, 0, 0, 1);
|
|
9
12
|
|
|
10
13
|
display: block;
|
|
@@ -16,7 +19,7 @@ section {
|
|
|
16
19
|
position: relative;
|
|
17
20
|
display: flex;
|
|
18
21
|
align-items: center;
|
|
19
|
-
gap:
|
|
22
|
+
gap: var(--semmet-space-xs);
|
|
20
23
|
}
|
|
21
24
|
|
|
22
25
|
[aria-live] {
|
|
@@ -25,7 +28,7 @@ section {
|
|
|
25
28
|
display: flex;
|
|
26
29
|
align-items: center;
|
|
27
30
|
justify-content: center;
|
|
28
|
-
padding:
|
|
31
|
+
padding: var(--semmet-space-sm);
|
|
29
32
|
color: var(--semmet-color-on-surface);
|
|
30
33
|
background: var(--semmet-color-surface);
|
|
31
34
|
border: 1px solid var(--semmet-color-outline);
|
|
@@ -35,8 +38,8 @@ section {
|
|
|
35
38
|
|
|
36
39
|
button {
|
|
37
40
|
flex-shrink: 0;
|
|
38
|
-
width:
|
|
39
|
-
height:
|
|
41
|
+
width: var(--semmet-target-md);
|
|
42
|
+
height: var(--semmet-target-md);
|
|
40
43
|
font-size: 1.25rem;
|
|
41
44
|
color: var(--semmet-color-on-primary);
|
|
42
45
|
background: var(--semmet-color-primary);
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
--semmet-color-on-primary: #ffffff;
|
|
4
4
|
--semmet-color-outline: #71717a;
|
|
5
5
|
--semmet-color-on-surface: #18181b;
|
|
6
|
+
--semmet-space-sm: 24px;
|
|
7
|
+
--semmet-target-sm: 32px;
|
|
6
8
|
--semmet-motion: 160ms cubic-bezier(0.2, 0, 0, 1);
|
|
7
9
|
|
|
8
10
|
display: inline-block;
|
|
@@ -14,8 +16,8 @@
|
|
|
14
16
|
position: relative;
|
|
15
17
|
display: inline-flex;
|
|
16
18
|
align-items: center;
|
|
17
|
-
padding-left:
|
|
18
|
-
min-height:
|
|
19
|
+
padding-left: var(--semmet-space-sm);
|
|
20
|
+
min-height: var(--semmet-target-sm);
|
|
19
21
|
color: var(--semmet-color-on-surface);
|
|
20
22
|
cursor: pointer;
|
|
21
23
|
user-select: none;
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
--semmet-color-on-inverse: #ffffff;
|
|
5
5
|
--semmet-color-hover: #f4f4f5;
|
|
6
6
|
--semmet-radius-full: 999px;
|
|
7
|
+
--semmet-target-sm: 32px;
|
|
8
|
+
--semmet-target-md: 40px;
|
|
9
|
+
--semmet-target-lg: 48px;
|
|
7
10
|
--semmet-motion: 160ms cubic-bezier(0.2, 0, 0, 1);
|
|
8
11
|
|
|
9
12
|
display: inline-block;
|
|
@@ -28,18 +31,18 @@
|
|
|
28
31
|
}
|
|
29
32
|
|
|
30
33
|
.semmet-close-button--sm {
|
|
31
|
-
width:
|
|
32
|
-
height:
|
|
34
|
+
width: var(--semmet-target-sm);
|
|
35
|
+
height: var(--semmet-target-sm);
|
|
33
36
|
}
|
|
34
37
|
|
|
35
38
|
.semmet-close-button--md {
|
|
36
|
-
width:
|
|
37
|
-
height:
|
|
39
|
+
width: var(--semmet-target-md);
|
|
40
|
+
height: var(--semmet-target-md);
|
|
38
41
|
}
|
|
39
42
|
|
|
40
43
|
.semmet-close-button--lg {
|
|
41
|
-
width:
|
|
42
|
-
height:
|
|
44
|
+
width: var(--semmet-target-lg);
|
|
45
|
+
height: var(--semmet-target-lg);
|
|
43
46
|
}
|
|
44
47
|
|
|
45
48
|
.semmet-close-button--default:hover:not(:disabled),
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
--semmet-color-on-surface-variant: #52525b;
|
|
7
7
|
--semmet-radius-sm: 8px;
|
|
8
8
|
--semmet-radius-md: 12px;
|
|
9
|
+
--semmet-space-3xs: 4px;
|
|
10
|
+
--semmet-space-2xs: 8px;
|
|
11
|
+
--semmet-space-xs: 16px;
|
|
12
|
+
--semmet-target-md: 40px;
|
|
9
13
|
--semmet-elevation-3: 0 8px 24px rgba(20, 24, 23, 0.18), 0 2px 8px rgba(20, 24, 23, 0.1);
|
|
10
14
|
--semmet-motion: 160ms cubic-bezier(0.2, 0, 0, 1);
|
|
11
15
|
|
|
@@ -17,7 +21,7 @@
|
|
|
17
21
|
|
|
18
22
|
label {
|
|
19
23
|
display: block;
|
|
20
|
-
margin-bottom:
|
|
24
|
+
margin-bottom: var(--semmet-space-2xs);
|
|
21
25
|
font-weight: 500;
|
|
22
26
|
color: var(--semmet-color-on-surface);
|
|
23
27
|
}
|
|
@@ -25,12 +29,13 @@ label {
|
|
|
25
29
|
input {
|
|
26
30
|
width: 100%;
|
|
27
31
|
min-width: 14rem;
|
|
32
|
+
min-height: var(--semmet-target-md);
|
|
28
33
|
font: inherit;
|
|
29
34
|
color: var(--semmet-color-on-surface);
|
|
30
35
|
background: var(--semmet-color-surface);
|
|
31
36
|
border: 1px solid var(--semmet-color-outline);
|
|
32
37
|
border-radius: var(--semmet-radius-sm);
|
|
33
|
-
padding:
|
|
38
|
+
padding: var(--semmet-space-2xs) var(--semmet-space-xs);
|
|
34
39
|
box-sizing: border-box;
|
|
35
40
|
transition: border-color var(--semmet-motion);
|
|
36
41
|
}
|
|
@@ -47,8 +52,8 @@ ul {
|
|
|
47
52
|
top: 100%;
|
|
48
53
|
left: 0;
|
|
49
54
|
right: 0;
|
|
50
|
-
margin:
|
|
51
|
-
padding:
|
|
55
|
+
margin: var(--semmet-space-3xs) 0 0;
|
|
56
|
+
padding: var(--semmet-space-2xs);
|
|
52
57
|
list-style: none;
|
|
53
58
|
background: var(--semmet-color-surface);
|
|
54
59
|
border-radius: var(--semmet-radius-md);
|
|
@@ -58,7 +63,8 @@ ul {
|
|
|
58
63
|
}
|
|
59
64
|
|
|
60
65
|
[role='option'] {
|
|
61
|
-
|
|
66
|
+
min-height: var(--semmet-target-md);
|
|
67
|
+
padding: var(--semmet-space-2xs) var(--semmet-space-xs);
|
|
62
68
|
border-radius: 6px;
|
|
63
69
|
color: var(--semmet-color-on-surface);
|
|
64
70
|
cursor: pointer;
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
--semmet-color-on-surface-variant: #52525b;
|
|
6
6
|
--semmet-color-scrim: rgba(20, 24, 23, 0.45);
|
|
7
7
|
--semmet-radius-lg: 20px;
|
|
8
|
+
--semmet-space-2xs: 8px;
|
|
9
|
+
--semmet-space-xs: 16px;
|
|
10
|
+
--semmet-space-sm: 24px;
|
|
11
|
+
--semmet-target-md: 40px;
|
|
8
12
|
--semmet-elevation-3: 0 8px 24px rgba(20, 24, 23, 0.18), 0 2px 8px rgba(20, 24, 23, 0.1);
|
|
9
13
|
--semmet-motion: 160ms cubic-bezier(0.2, 0, 0, 1);
|
|
10
14
|
|
|
@@ -20,7 +24,8 @@ button {
|
|
|
20
24
|
background: none;
|
|
21
25
|
border: none;
|
|
22
26
|
border-radius: 8px;
|
|
23
|
-
|
|
27
|
+
min-height: var(--semmet-target-md);
|
|
28
|
+
padding: var(--semmet-space-2xs) var(--semmet-space-xs);
|
|
24
29
|
cursor: pointer;
|
|
25
30
|
transition: background-color var(--semmet-motion);
|
|
26
31
|
}
|
|
@@ -47,7 +52,7 @@ button:focus-visible {
|
|
|
47
52
|
transform: translate(-50%, -50%);
|
|
48
53
|
min-width: 22rem;
|
|
49
54
|
max-width: 90vw;
|
|
50
|
-
padding:
|
|
55
|
+
padding: var(--semmet-space-sm);
|
|
51
56
|
border-radius: var(--semmet-radius-lg);
|
|
52
57
|
background: var(--semmet-color-surface);
|
|
53
58
|
color: var(--semmet-color-on-surface);
|
|
@@ -60,12 +65,12 @@ button:focus-visible {
|
|
|
60
65
|
}
|
|
61
66
|
|
|
62
67
|
[role='dialog'] h2 {
|
|
63
|
-
margin: 0 0
|
|
68
|
+
margin: 0 0 var(--semmet-space-xs);
|
|
64
69
|
font-size: 1.25rem;
|
|
65
70
|
font-weight: 500;
|
|
66
71
|
}
|
|
67
72
|
|
|
68
73
|
[role='dialog'] > div {
|
|
69
|
-
margin-bottom:
|
|
74
|
+
margin-bottom: var(--semmet-space-sm);
|
|
70
75
|
color: var(--semmet-color-on-surface-variant);
|
|
71
76
|
}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
--semmet-color-on-surface: #18181b;
|
|
6
6
|
--semmet-color-on-surface-variant: #52525b;
|
|
7
7
|
--semmet-radius-md: 12px;
|
|
8
|
+
--semmet-space-xs: 16px;
|
|
9
|
+
--semmet-space-sm: 24px;
|
|
8
10
|
--semmet-motion: 160ms cubic-bezier(0.2, 0, 0, 1);
|
|
9
11
|
|
|
10
12
|
display: block;
|
|
@@ -21,9 +23,9 @@
|
|
|
21
23
|
button {
|
|
22
24
|
display: flex;
|
|
23
25
|
align-items: center;
|
|
24
|
-
gap:
|
|
26
|
+
gap: var(--semmet-space-xs);
|
|
25
27
|
width: 100%;
|
|
26
|
-
padding:
|
|
28
|
+
padding: var(--semmet-space-xs) var(--semmet-space-sm);
|
|
27
29
|
font: inherit;
|
|
28
30
|
font-weight: 500;
|
|
29
31
|
color: inherit;
|
|
@@ -60,6 +62,6 @@ button[aria-expanded='true']::after {
|
|
|
60
62
|
}
|
|
61
63
|
|
|
62
64
|
div {
|
|
63
|
-
padding: 0
|
|
65
|
+
padding: 0 var(--semmet-space-sm) var(--semmet-space-sm);
|
|
64
66
|
color: var(--semmet-color-on-surface-variant);
|
|
65
67
|
}
|