al-design-system 1.2.0 → 1.3.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 +4 -3
- package/README.pt-BR.md +4 -3
- package/dist/al.css +199 -2
- package/dist/components/pagination.css +196 -0
- package/dist/foundation.css +1 -1
- package/dist/tokens.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ An open-source design system, from Figma to code. Plain CSS, a little vanilla Ja
|
|
|
10
10
|
|
|
11
11
|
## What it is
|
|
12
12
|
|
|
13
|
-
- **Foundation +
|
|
13
|
+
- **Foundation + 26 components**, designed in Figma and coded from the same tokens.
|
|
14
14
|
- **Light and dark themes** built in. It follows the operating system by default, and you can force one.
|
|
15
15
|
- **Accessibility is checked by the build.** Every rendered combination (variant × state × theme) is measured for contrast against the background it actually sits on, and each component's markup contract is verified. If something fails, the build stops.
|
|
16
16
|
- **Nothing is typed by hand.** Tokens, CSS variables, `tokens.json` and the documentation tables are all generated from one source.
|
|
@@ -40,6 +40,7 @@ An open-source design system, from Figma to code. Plain CSS, a little vanilla Ja
|
|
|
40
40
|
| | Drawer | ✓ | [guidelines](src/components/drawer/guidelines.md) |
|
|
41
41
|
| Navigation | Sidebar | ✓ | [guidelines](src/components/sidebar/guidelines.md) |
|
|
42
42
|
| | Breadcrumb | ✓ | [guidelines](src/components/breadcrumb/guidelines.md) |
|
|
43
|
+
| | Pagination | | [guidelines](src/components/pagination/guidelines.md) |
|
|
43
44
|
| Feedback | Tooltip | ✓ | [guidelines](src/components/tooltip/guidelines.md) |
|
|
44
45
|
| | Toast | ✓ | [guidelines](src/components/toast/guidelines.md) |
|
|
45
46
|
| | Alert | ✓ | [guidelines](src/components/alert/guidelines.md) |
|
|
@@ -56,7 +57,7 @@ npm install al-design-system
|
|
|
56
57
|
Or straight from a CDN, pinned to a version:
|
|
57
58
|
|
|
58
59
|
```html
|
|
59
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/al-design-system@1.
|
|
60
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/al-design-system@1.3.0/dist/al.css">
|
|
60
61
|
```
|
|
61
62
|
|
|
62
63
|
Each [GitHub Release](https://github.com/guilhermedworakowski/al-design-system/releases) also carries the `dist/` folder as a zip.
|
|
@@ -65,7 +66,7 @@ Each [GitHub Release](https://github.com/guilhermedworakowski/al-design-system/r
|
|
|
65
66
|
|
|
66
67
|
| File | What it is |
|
|
67
68
|
|---|---|
|
|
68
|
-
| `al.css` | Foundation + all
|
|
69
|
+
| `al.css` | Foundation + all 26 components, in one file |
|
|
69
70
|
| `foundation.css` | Only the Foundation: color, typography, spacing, radius, icon size, elevation, focus ring and motion |
|
|
70
71
|
| `components/<name>.css` | One component (its tokens + its CSS) |
|
|
71
72
|
| `components/<name>.js` | The behavior, for the 9 components that have a script |
|
package/README.pt-BR.md
CHANGED
|
@@ -10,7 +10,7 @@ Design system open source, do Figma ao código. CSS puro, um pouco de JavaScript
|
|
|
10
10
|
|
|
11
11
|
## O que é
|
|
12
12
|
|
|
13
|
-
- **Foundation +
|
|
13
|
+
- **Foundation + 26 componentes**, desenhados no Figma e codados a partir dos mesmos tokens.
|
|
14
14
|
- **Temas claro e escuro** já incluídos. Por padrão segue o sistema operacional, e dá para forçar um.
|
|
15
15
|
- **A acessibilidade é conferida no build.** Cada combinação renderizada (variante × estado × tema) tem o contraste medido contra o fundo onde ela realmente aparece, e o contrato de marcação de cada componente é verificado. Se algo reprova, o build para.
|
|
16
16
|
- **Nada é digitado à mão.** Tokens, variáveis CSS, `tokens.json` e as tabelas da documentação saem todos de uma fonte só.
|
|
@@ -40,6 +40,7 @@ Design system open source, do Figma ao código. CSS puro, um pouco de JavaScript
|
|
|
40
40
|
| | Drawer | ✓ | [diretrizes](src/components/drawer/guidelines.md) |
|
|
41
41
|
| Navegação | Sidebar | ✓ | [diretrizes](src/components/sidebar/guidelines.md) |
|
|
42
42
|
| | Breadcrumb | ✓ | [diretrizes](src/components/breadcrumb/guidelines.md) |
|
|
43
|
+
| | Pagination | | [diretrizes](src/components/pagination/guidelines.md) |
|
|
43
44
|
| Feedback | Tooltip | ✓ | [diretrizes](src/components/tooltip/guidelines.md) |
|
|
44
45
|
| | Toast | ✓ | [diretrizes](src/components/toast/guidelines.md) |
|
|
45
46
|
| | Alert | ✓ | [diretrizes](src/components/alert/guidelines.md) |
|
|
@@ -56,7 +57,7 @@ npm install al-design-system
|
|
|
56
57
|
Ou direto de uma CDN, fixado numa versão:
|
|
57
58
|
|
|
58
59
|
```html
|
|
59
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/al-design-system@1.
|
|
60
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/al-design-system@1.3.0/dist/al.css">
|
|
60
61
|
```
|
|
61
62
|
|
|
62
63
|
Cada [Release no GitHub](https://github.com/guilhermedworakowski/al-design-system/releases) também traz a pasta `dist/` num zip.
|
|
@@ -65,7 +66,7 @@ Cada [Release no GitHub](https://github.com/guilhermedworakowski/al-design-syste
|
|
|
65
66
|
|
|
66
67
|
| Arquivo | O que é |
|
|
67
68
|
|---|---|
|
|
68
|
-
| `al.css` | Foundation + os
|
|
69
|
+
| `al.css` | Foundation + os 26 componentes, num arquivo só |
|
|
69
70
|
| `foundation.css` | Só a Foundation: cor, tipografia, espaçamento, radius, tamanho de ícone, elevação, anel de foco e motion |
|
|
70
71
|
| `components/<nome>.css` | Um componente (os tokens + o CSS dele) |
|
|
71
72
|
| `components/<nome>.js` | O comportamento, para os 9 componentes que têm script |
|
package/dist/al.css
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/* AL Design System 1.
|
|
1
|
+
/* AL Design System 1.3.0 - Foundation + 26 components.
|
|
2
2
|
* MIT. https://github.com/guilhermedworakowski/al-design-system
|
|
3
3
|
*/
|
|
4
4
|
/* AL Design System - Foundation
|
|
5
|
-
* v1.
|
|
5
|
+
* v1.3.0 - MIT
|
|
6
6
|
* GENERATED by src/foundation/css.py. Do not edit by hand: run the script.
|
|
7
7
|
*/
|
|
8
8
|
|
|
@@ -7046,3 +7046,200 @@
|
|
|
7046
7046
|
@media (prefers-reduced-motion: reduce) {
|
|
7047
7047
|
.al-progress__bar::-webkit-progress-value { transition: none; }
|
|
7048
7048
|
}
|
|
7049
|
+
|
|
7050
|
+
/* AL Design System - Progress tokens
|
|
7051
|
+
* GENERATED by src/components/pagination/tokens.py. Do not edit by hand.
|
|
7052
|
+
*
|
|
7053
|
+
* Every color is a semantic the theme switches on :root.
|
|
7054
|
+
*/
|
|
7055
|
+
|
|
7056
|
+
:root {
|
|
7057
|
+
/* color */
|
|
7058
|
+
--al-pagination-item-label: var(--al-text-primary);
|
|
7059
|
+
--al-pagination-item-bg-hover: var(--al-bg-hover);
|
|
7060
|
+
--al-pagination-item-bg-active: var(--al-bg-active);
|
|
7061
|
+
--al-pagination-ellipsis: var(--al-text-secondary);
|
|
7062
|
+
--al-pagination-current-bg: var(--al-bg-brand-subtle);
|
|
7063
|
+
--al-pagination-current-label: var(--al-text-brand);
|
|
7064
|
+
--al-pagination-current-bg-hover: var(--al-bg-brand-hover);
|
|
7065
|
+
--al-pagination-current-bg-active: var(--al-bg-brand-active);
|
|
7066
|
+
--al-pagination-current-label-hover: var(--al-text-on-brand);
|
|
7067
|
+
--al-pagination-range-text: var(--al-text-secondary);
|
|
7068
|
+
|
|
7069
|
+
/* geometry */
|
|
7070
|
+
--al-pagination-item-padding: var(--al-space-8);
|
|
7071
|
+
--al-pagination-item-radius: var(--al-radius-full);
|
|
7072
|
+
--al-pagination-gap: var(--al-space-4);
|
|
7073
|
+
--al-pagination-range-gap: var(--al-space-16);
|
|
7074
|
+
--al-pagination-rows-gap: var(--al-space-8);
|
|
7075
|
+
|
|
7076
|
+
/* type - page numbers like the Button sm, range like body-sm */
|
|
7077
|
+
--al-pagination-font-size: var(--al-font-size-sm);
|
|
7078
|
+
--al-pagination-line-height: var(--al-line-height-sm);
|
|
7079
|
+
--al-pagination-font-weight: var(--al-font-weight-medium);
|
|
7080
|
+
--al-pagination-range-font-weight: var(--al-font-weight-regular);
|
|
7081
|
+
}
|
|
7082
|
+
|
|
7083
|
+
/* AL Design System - Pagination
|
|
7084
|
+
*
|
|
7085
|
+
* Four types, one block. Previous, Next and Load more are Buttons (Ghost sm,
|
|
7086
|
+
* Secondary sm) and rows per page is the Select: this file only lays them out
|
|
7087
|
+
* and draws what is the Pagination's own - the page items and the range text.
|
|
7088
|
+
*
|
|
7089
|
+
* .al-pagination Numbered - previous, pages, next
|
|
7090
|
+
* .al-pagination--simple Simple - previous and next only
|
|
7091
|
+
* .al-pagination--load-more Load more - one Secondary Button
|
|
7092
|
+
* .al-pagination--range Range - "Showing 41-60 of 312" + rows
|
|
7093
|
+
*
|
|
7094
|
+
* Markup (usage rules 20-22): a <nav aria-label="Pagination"> with the pages
|
|
7095
|
+
* in a <ul>. A page is an <a> when it changes the URL and a <button> when it
|
|
7096
|
+
* swaps content in place. The current page carries aria-current="page" - that
|
|
7097
|
+
* is what styles it, so the look can never disagree with what is announced.
|
|
7098
|
+
* The ellipsis is aria-hidden: it is not a control (rule 10).
|
|
7099
|
+
*
|
|
7100
|
+
* Disabled previous/next is the Button's own disabled state (rule 16), not a
|
|
7101
|
+
* Pagination style.
|
|
7102
|
+
*
|
|
7103
|
+
* NEVER ON SURFACE-RAISED (rule 8): the hovers use bg-hover/bg-active, which
|
|
7104
|
+
* vanish on the raised surface.
|
|
7105
|
+
*
|
|
7106
|
+
* NO HEIGHT: 36 = padding 8 + line 20 + padding 8. min-inline-size uses the
|
|
7107
|
+
* same sum so a one-digit page stays a circle and "16" grows into a pill.
|
|
7108
|
+
*/
|
|
7109
|
+
|
|
7110
|
+
/* ONE LINE (decided with Gui on 2026-10-21): wrapping split Previous, the
|
|
7111
|
+
pages and Next into three rows. The row never wraps; when it does not fit,
|
|
7112
|
+
the CONTAINER scrolls sideways (overflow-x: auto, with room for the focus
|
|
7113
|
+
ring). Range is the exception: text and rows may wrap. */
|
|
7114
|
+
.al-pagination {
|
|
7115
|
+
display: flex;
|
|
7116
|
+
flex-wrap: nowrap;
|
|
7117
|
+
align-items: center;
|
|
7118
|
+
gap: var(--al-pagination-gap);
|
|
7119
|
+
inline-size: max-content;
|
|
7120
|
+
}
|
|
7121
|
+
|
|
7122
|
+
.al-pagination--range {
|
|
7123
|
+
flex-wrap: wrap;
|
|
7124
|
+
inline-size: auto;
|
|
7125
|
+
}
|
|
7126
|
+
|
|
7127
|
+
.al-pagination__pages {
|
|
7128
|
+
display: flex;
|
|
7129
|
+
align-items: center;
|
|
7130
|
+
gap: var(--al-pagination-gap);
|
|
7131
|
+
margin: 0;
|
|
7132
|
+
padding: 0;
|
|
7133
|
+
list-style: none;
|
|
7134
|
+
}
|
|
7135
|
+
|
|
7136
|
+
/* ------------------------------------------------------------- page item */
|
|
7137
|
+
.al-pagination__item {
|
|
7138
|
+
display: inline-flex;
|
|
7139
|
+
align-items: center;
|
|
7140
|
+
justify-content: center;
|
|
7141
|
+
box-sizing: border-box;
|
|
7142
|
+
min-inline-size: calc(var(--al-pagination-item-padding) * 2 + var(--al-pagination-line-height));
|
|
7143
|
+
margin: 0;
|
|
7144
|
+
padding: var(--al-pagination-item-padding);
|
|
7145
|
+
border: 0;
|
|
7146
|
+
border-radius: var(--al-pagination-item-radius);
|
|
7147
|
+
background-color: transparent;
|
|
7148
|
+
font-family: var(--al-font-sans);
|
|
7149
|
+
font-size: var(--al-pagination-font-size);
|
|
7150
|
+
line-height: var(--al-pagination-line-height);
|
|
7151
|
+
font-weight: var(--al-pagination-font-weight);
|
|
7152
|
+
font-variant-numeric: tabular-nums;
|
|
7153
|
+
color: var(--al-pagination-item-label);
|
|
7154
|
+
text-decoration: none;
|
|
7155
|
+
cursor: pointer;
|
|
7156
|
+
-webkit-tap-highlight-color: transparent;
|
|
7157
|
+
transition: background-color var(--al-motion-duration-feedback) var(--al-motion-easing-exit), color var(--al-motion-duration-feedback) var(--al-motion-easing-exit), box-shadow var(--al-motion-duration-feedback) var(--al-motion-easing-exit);
|
|
7158
|
+
}
|
|
7159
|
+
|
|
7160
|
+
.al-pagination__item:hover {
|
|
7161
|
+
background-color: var(--al-pagination-item-bg-hover);
|
|
7162
|
+
}
|
|
7163
|
+
|
|
7164
|
+
.al-pagination__item:active {
|
|
7165
|
+
background-color: var(--al-pagination-item-bg-active);
|
|
7166
|
+
}
|
|
7167
|
+
|
|
7168
|
+
/* focus is rest plus the ring, keyboard only */
|
|
7169
|
+
.al-pagination__item:focus-visible {
|
|
7170
|
+
outline: none;
|
|
7171
|
+
box-shadow: var(--al-focus-ring-default);
|
|
7172
|
+
}
|
|
7173
|
+
|
|
7174
|
+
/* current: tonal at rest and focus, brand on hover and pressed (rule 19) */
|
|
7175
|
+
.al-pagination__item[aria-current="page"] {
|
|
7176
|
+
background-color: var(--al-pagination-current-bg);
|
|
7177
|
+
color: var(--al-pagination-current-label);
|
|
7178
|
+
}
|
|
7179
|
+
|
|
7180
|
+
.al-pagination__item[aria-current="page"]:hover {
|
|
7181
|
+
background-color: var(--al-pagination-current-bg-hover);
|
|
7182
|
+
color: var(--al-pagination-current-label-hover);
|
|
7183
|
+
}
|
|
7184
|
+
|
|
7185
|
+
.al-pagination__item[aria-current="page"]:active {
|
|
7186
|
+
background-color: var(--al-pagination-current-bg-active);
|
|
7187
|
+
color: var(--al-pagination-current-label-hover);
|
|
7188
|
+
}
|
|
7189
|
+
|
|
7190
|
+
/* ENTER - destination states take the enter curve, as in the Tab */
|
|
7191
|
+
.al-pagination__item:hover,
|
|
7192
|
+
.al-pagination__item:active,
|
|
7193
|
+
.al-pagination__item:focus-visible {
|
|
7194
|
+
transition-timing-function: var(--al-motion-easing-enter);
|
|
7195
|
+
}
|
|
7196
|
+
|
|
7197
|
+
/* ------------------------------------------------------------- ellipsis */
|
|
7198
|
+
.al-pagination__ellipsis {
|
|
7199
|
+
display: inline-flex;
|
|
7200
|
+
align-items: center;
|
|
7201
|
+
justify-content: center;
|
|
7202
|
+
min-inline-size: calc(var(--al-pagination-item-padding) * 2 + var(--al-pagination-line-height));
|
|
7203
|
+
padding: var(--al-pagination-item-padding);
|
|
7204
|
+
box-sizing: border-box;
|
|
7205
|
+
color: var(--al-pagination-ellipsis);
|
|
7206
|
+
}
|
|
7207
|
+
|
|
7208
|
+
/* ---------------------------------------------------------------- range */
|
|
7209
|
+
.al-pagination--range {
|
|
7210
|
+
gap: var(--al-pagination-range-gap);
|
|
7211
|
+
}
|
|
7212
|
+
|
|
7213
|
+
.al-pagination__range,
|
|
7214
|
+
.al-pagination__rows-label {
|
|
7215
|
+
margin: 0;
|
|
7216
|
+
font-family: var(--al-font-sans);
|
|
7217
|
+
font-size: var(--al-pagination-font-size);
|
|
7218
|
+
line-height: var(--al-pagination-line-height);
|
|
7219
|
+
font-weight: var(--al-pagination-range-font-weight);
|
|
7220
|
+
font-variant-numeric: tabular-nums;
|
|
7221
|
+
color: var(--al-pagination-range-text);
|
|
7222
|
+
}
|
|
7223
|
+
|
|
7224
|
+
.al-pagination__rows {
|
|
7225
|
+
display: flex;
|
|
7226
|
+
align-items: center;
|
|
7227
|
+
gap: var(--al-pagination-rows-gap);
|
|
7228
|
+
}
|
|
7229
|
+
|
|
7230
|
+
@media (prefers-reduced-motion: reduce) {
|
|
7231
|
+
.al-pagination__item {
|
|
7232
|
+
transition: none;
|
|
7233
|
+
}
|
|
7234
|
+
}
|
|
7235
|
+
|
|
7236
|
+
@media (forced-colors: active) {
|
|
7237
|
+
.al-pagination__item[aria-current="page"] {
|
|
7238
|
+
outline: var(--al-border-width-1) solid CanvasText;
|
|
7239
|
+
}
|
|
7240
|
+
|
|
7241
|
+
.al-pagination__item:focus-visible {
|
|
7242
|
+
outline: var(--al-border-width-focus) solid Highlight;
|
|
7243
|
+
outline-offset: var(--al-border-focus-offset);
|
|
7244
|
+
}
|
|
7245
|
+
}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/* AL Design System - Progress tokens
|
|
2
|
+
* GENERATED by src/components/pagination/tokens.py. Do not edit by hand.
|
|
3
|
+
*
|
|
4
|
+
* Every color is a semantic the theme switches on :root.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
:root {
|
|
8
|
+
/* color */
|
|
9
|
+
--al-pagination-item-label: var(--al-text-primary);
|
|
10
|
+
--al-pagination-item-bg-hover: var(--al-bg-hover);
|
|
11
|
+
--al-pagination-item-bg-active: var(--al-bg-active);
|
|
12
|
+
--al-pagination-ellipsis: var(--al-text-secondary);
|
|
13
|
+
--al-pagination-current-bg: var(--al-bg-brand-subtle);
|
|
14
|
+
--al-pagination-current-label: var(--al-text-brand);
|
|
15
|
+
--al-pagination-current-bg-hover: var(--al-bg-brand-hover);
|
|
16
|
+
--al-pagination-current-bg-active: var(--al-bg-brand-active);
|
|
17
|
+
--al-pagination-current-label-hover: var(--al-text-on-brand);
|
|
18
|
+
--al-pagination-range-text: var(--al-text-secondary);
|
|
19
|
+
|
|
20
|
+
/* geometry */
|
|
21
|
+
--al-pagination-item-padding: var(--al-space-8);
|
|
22
|
+
--al-pagination-item-radius: var(--al-radius-full);
|
|
23
|
+
--al-pagination-gap: var(--al-space-4);
|
|
24
|
+
--al-pagination-range-gap: var(--al-space-16);
|
|
25
|
+
--al-pagination-rows-gap: var(--al-space-8);
|
|
26
|
+
|
|
27
|
+
/* type - page numbers like the Button sm, range like body-sm */
|
|
28
|
+
--al-pagination-font-size: var(--al-font-size-sm);
|
|
29
|
+
--al-pagination-line-height: var(--al-line-height-sm);
|
|
30
|
+
--al-pagination-font-weight: var(--al-font-weight-medium);
|
|
31
|
+
--al-pagination-range-font-weight: var(--al-font-weight-regular);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* AL Design System - Pagination
|
|
35
|
+
*
|
|
36
|
+
* Four types, one block. Previous, Next and Load more are Buttons (Ghost sm,
|
|
37
|
+
* Secondary sm) and rows per page is the Select: this file only lays them out
|
|
38
|
+
* and draws what is the Pagination's own - the page items and the range text.
|
|
39
|
+
*
|
|
40
|
+
* .al-pagination Numbered - previous, pages, next
|
|
41
|
+
* .al-pagination--simple Simple - previous and next only
|
|
42
|
+
* .al-pagination--load-more Load more - one Secondary Button
|
|
43
|
+
* .al-pagination--range Range - "Showing 41-60 of 312" + rows
|
|
44
|
+
*
|
|
45
|
+
* Markup (usage rules 20-22): a <nav aria-label="Pagination"> with the pages
|
|
46
|
+
* in a <ul>. A page is an <a> when it changes the URL and a <button> when it
|
|
47
|
+
* swaps content in place. The current page carries aria-current="page" - that
|
|
48
|
+
* is what styles it, so the look can never disagree with what is announced.
|
|
49
|
+
* The ellipsis is aria-hidden: it is not a control (rule 10).
|
|
50
|
+
*
|
|
51
|
+
* Disabled previous/next is the Button's own disabled state (rule 16), not a
|
|
52
|
+
* Pagination style.
|
|
53
|
+
*
|
|
54
|
+
* NEVER ON SURFACE-RAISED (rule 8): the hovers use bg-hover/bg-active, which
|
|
55
|
+
* vanish on the raised surface.
|
|
56
|
+
*
|
|
57
|
+
* NO HEIGHT: 36 = padding 8 + line 20 + padding 8. min-inline-size uses the
|
|
58
|
+
* same sum so a one-digit page stays a circle and "16" grows into a pill.
|
|
59
|
+
*/
|
|
60
|
+
|
|
61
|
+
/* ONE LINE (decided with Gui on 2026-10-21): wrapping split Previous, the
|
|
62
|
+
pages and Next into three rows. The row never wraps; when it does not fit,
|
|
63
|
+
the CONTAINER scrolls sideways (overflow-x: auto, with room for the focus
|
|
64
|
+
ring). Range is the exception: text and rows may wrap. */
|
|
65
|
+
.al-pagination {
|
|
66
|
+
display: flex;
|
|
67
|
+
flex-wrap: nowrap;
|
|
68
|
+
align-items: center;
|
|
69
|
+
gap: var(--al-pagination-gap);
|
|
70
|
+
inline-size: max-content;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.al-pagination--range {
|
|
74
|
+
flex-wrap: wrap;
|
|
75
|
+
inline-size: auto;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.al-pagination__pages {
|
|
79
|
+
display: flex;
|
|
80
|
+
align-items: center;
|
|
81
|
+
gap: var(--al-pagination-gap);
|
|
82
|
+
margin: 0;
|
|
83
|
+
padding: 0;
|
|
84
|
+
list-style: none;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/* ------------------------------------------------------------- page item */
|
|
88
|
+
.al-pagination__item {
|
|
89
|
+
display: inline-flex;
|
|
90
|
+
align-items: center;
|
|
91
|
+
justify-content: center;
|
|
92
|
+
box-sizing: border-box;
|
|
93
|
+
min-inline-size: calc(var(--al-pagination-item-padding) * 2 + var(--al-pagination-line-height));
|
|
94
|
+
margin: 0;
|
|
95
|
+
padding: var(--al-pagination-item-padding);
|
|
96
|
+
border: 0;
|
|
97
|
+
border-radius: var(--al-pagination-item-radius);
|
|
98
|
+
background-color: transparent;
|
|
99
|
+
font-family: var(--al-font-sans);
|
|
100
|
+
font-size: var(--al-pagination-font-size);
|
|
101
|
+
line-height: var(--al-pagination-line-height);
|
|
102
|
+
font-weight: var(--al-pagination-font-weight);
|
|
103
|
+
font-variant-numeric: tabular-nums;
|
|
104
|
+
color: var(--al-pagination-item-label);
|
|
105
|
+
text-decoration: none;
|
|
106
|
+
cursor: pointer;
|
|
107
|
+
-webkit-tap-highlight-color: transparent;
|
|
108
|
+
transition: background-color var(--al-motion-duration-feedback) var(--al-motion-easing-exit), color var(--al-motion-duration-feedback) var(--al-motion-easing-exit), box-shadow var(--al-motion-duration-feedback) var(--al-motion-easing-exit);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.al-pagination__item:hover {
|
|
112
|
+
background-color: var(--al-pagination-item-bg-hover);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.al-pagination__item:active {
|
|
116
|
+
background-color: var(--al-pagination-item-bg-active);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/* focus is rest plus the ring, keyboard only */
|
|
120
|
+
.al-pagination__item:focus-visible {
|
|
121
|
+
outline: none;
|
|
122
|
+
box-shadow: var(--al-focus-ring-default);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/* current: tonal at rest and focus, brand on hover and pressed (rule 19) */
|
|
126
|
+
.al-pagination__item[aria-current="page"] {
|
|
127
|
+
background-color: var(--al-pagination-current-bg);
|
|
128
|
+
color: var(--al-pagination-current-label);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.al-pagination__item[aria-current="page"]:hover {
|
|
132
|
+
background-color: var(--al-pagination-current-bg-hover);
|
|
133
|
+
color: var(--al-pagination-current-label-hover);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.al-pagination__item[aria-current="page"]:active {
|
|
137
|
+
background-color: var(--al-pagination-current-bg-active);
|
|
138
|
+
color: var(--al-pagination-current-label-hover);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/* ENTER - destination states take the enter curve, as in the Tab */
|
|
142
|
+
.al-pagination__item:hover,
|
|
143
|
+
.al-pagination__item:active,
|
|
144
|
+
.al-pagination__item:focus-visible {
|
|
145
|
+
transition-timing-function: var(--al-motion-easing-enter);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/* ------------------------------------------------------------- ellipsis */
|
|
149
|
+
.al-pagination__ellipsis {
|
|
150
|
+
display: inline-flex;
|
|
151
|
+
align-items: center;
|
|
152
|
+
justify-content: center;
|
|
153
|
+
min-inline-size: calc(var(--al-pagination-item-padding) * 2 + var(--al-pagination-line-height));
|
|
154
|
+
padding: var(--al-pagination-item-padding);
|
|
155
|
+
box-sizing: border-box;
|
|
156
|
+
color: var(--al-pagination-ellipsis);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/* ---------------------------------------------------------------- range */
|
|
160
|
+
.al-pagination--range {
|
|
161
|
+
gap: var(--al-pagination-range-gap);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.al-pagination__range,
|
|
165
|
+
.al-pagination__rows-label {
|
|
166
|
+
margin: 0;
|
|
167
|
+
font-family: var(--al-font-sans);
|
|
168
|
+
font-size: var(--al-pagination-font-size);
|
|
169
|
+
line-height: var(--al-pagination-line-height);
|
|
170
|
+
font-weight: var(--al-pagination-range-font-weight);
|
|
171
|
+
font-variant-numeric: tabular-nums;
|
|
172
|
+
color: var(--al-pagination-range-text);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.al-pagination__rows {
|
|
176
|
+
display: flex;
|
|
177
|
+
align-items: center;
|
|
178
|
+
gap: var(--al-pagination-rows-gap);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
@media (prefers-reduced-motion: reduce) {
|
|
182
|
+
.al-pagination__item {
|
|
183
|
+
transition: none;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
@media (forced-colors: active) {
|
|
188
|
+
.al-pagination__item[aria-current="page"] {
|
|
189
|
+
outline: var(--al-border-width-1) solid CanvasText;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.al-pagination__item:focus-visible {
|
|
193
|
+
outline: var(--al-border-width-focus) solid Highlight;
|
|
194
|
+
outline-offset: var(--al-border-focus-offset);
|
|
195
|
+
}
|
|
196
|
+
}
|
package/dist/foundation.css
CHANGED
package/dist/tokens.json
CHANGED