al-design-system 1.0.1 → 1.1.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 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 + 23 components**, designed in Figma and coded from the same tokens.
13
+ - **Foundation + 24 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.
@@ -22,6 +22,7 @@ An open-source design system, from Figma to code. Plain CSS, a little vanilla Ja
22
22
  | Actions and display | Button | | [guidelines](src/components/button/guidelines.md) |
23
23
  | | Icon | | (70 icons, see [Icons](#icons)) |
24
24
  | | Icon Button | | [guidelines](src/components/icon-button/guidelines.md) |
25
+ | | Link | | [guidelines](src/components/link/guidelines.md) |
25
26
  | | Tag | | [guidelines](src/components/tag/guidelines.md) |
26
27
  | | Avatar | | [guidelines](src/components/avatar/guidelines.md) |
27
28
  | Forms | Select | | [guidelines](src/components/select/guidelines.md) |
@@ -54,7 +55,7 @@ npm install al-design-system
54
55
  Or straight from a CDN, pinned to a version:
55
56
 
56
57
  ```html
57
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/al-design-system@1.0.1/dist/al.css">
58
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/al-design-system@1.1.0/dist/al.css">
58
59
  ```
59
60
 
60
61
  Each [GitHub Release](https://github.com/guilhermedworakowski/al-design-system/releases) also carries the `dist/` folder as a zip.
@@ -63,7 +64,7 @@ Each [GitHub Release](https://github.com/guilhermedworakowski/al-design-system/r
63
64
 
64
65
  | File | What it is |
65
66
  |---|---|
66
- | `al.css` | Foundation + all 23 components, in one file |
67
+ | `al.css` | Foundation + all 24 components, in one file |
67
68
  | `foundation.css` | Only the Foundation: color, typography, spacing, radius, icon size, elevation, focus ring and motion |
68
69
  | `components/<name>.css` | One component (its tokens + its CSS) |
69
70
  | `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 + 23 componentes**, desenhados no Figma e codados a partir dos mesmos tokens.
13
+ - **Foundation + 24 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ó.
@@ -22,6 +22,7 @@ Design system open source, do Figma ao código. CSS puro, um pouco de JavaScript
22
22
  | Ações e exibição | Button | | [diretrizes](src/components/button/guidelines.md) |
23
23
  | | Icon | | (70 ícones, ver [Ícones](#ícones)) |
24
24
  | | Icon Button | | [diretrizes](src/components/icon-button/guidelines.md) |
25
+ | | Link | | [diretrizes](src/components/link/guidelines.md) |
25
26
  | | Tag | | [diretrizes](src/components/tag/guidelines.md) |
26
27
  | | Avatar | | [diretrizes](src/components/avatar/guidelines.md) |
27
28
  | Formulários | Select | | [diretrizes](src/components/select/guidelines.md) |
@@ -54,7 +55,7 @@ npm install al-design-system
54
55
  Ou direto de uma CDN, fixado numa versão:
55
56
 
56
57
  ```html
57
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/al-design-system@1.0.1/dist/al.css">
58
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/al-design-system@1.1.0/dist/al.css">
58
59
  ```
59
60
 
60
61
  Cada [Release no GitHub](https://github.com/guilhermedworakowski/al-design-system/releases) também traz a pasta `dist/` num zip.
@@ -63,7 +64,7 @@ Cada [Release no GitHub](https://github.com/guilhermedworakowski/al-design-syste
63
64
 
64
65
  | Arquivo | O que é |
65
66
  |---|---|
66
- | `al.css` | Foundation + os 23 componentes, num arquivo só |
67
+ | `al.css` | Foundation + os 24 componentes, num arquivo só |
67
68
  | `foundation.css` | Só a Foundation: cor, tipografia, espaçamento, radius, tamanho de ícone, elevação, anel de foco e motion |
68
69
  | `components/<nome>.css` | Um componente (os tokens + o CSS dele) |
69
70
  | `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.0.1 - Foundation + 23 components.
1
+ /* AL Design System 1.1.0 - Foundation + 24 components.
2
2
  * MIT. https://github.com/guilhermedworakowski/al-design-system
3
3
  */
4
4
  /* AL Design System - Foundation
5
- * v1.0.1 - MIT
5
+ * v1.1.0 - MIT
6
6
  * GENERATED by src/foundation/css.py. Do not edit by hand: run the script.
7
7
  */
8
8
 
@@ -6825,3 +6825,105 @@
6825
6825
  transition: none;
6826
6826
  }
6827
6827
  }
6828
+
6829
+ /* AL Design System - Link tokens
6830
+ * GENERATED by src/components/link/tokens.py. Do not edit by hand.
6831
+ *
6832
+ * The default ink is the theme-invariant brand primitive; hover and focus
6833
+ * point to text-brand, which the theme switches on :root.
6834
+ */
6835
+
6836
+ :root {
6837
+ /* color - underline and icon inherit through currentColor */
6838
+ --al-link-text-default: var(--al-color-orange-500);
6839
+ --al-link-text-hover: var(--al-text-brand);
6840
+ --al-link-text-focus: var(--al-text-brand);
6841
+
6842
+ /* focus */
6843
+ --al-link-ring: var(--al-focus-ring-default);
6844
+
6845
+ /* geometry */
6846
+ --al-link-underline-default: var(--al-border-width-1);
6847
+ --al-link-underline-hover: var(--al-border-width-2);
6848
+ --al-link-underline-offset: var(--al-space-4);
6849
+ --al-link-gap: var(--al-space-8);
6850
+ --al-link-icon-size: var(--al-icon-size-20);
6851
+
6852
+ /* type - standalone only; inline inherits the paragraph */
6853
+ --al-link-font-size: var(--al-font-size-sm);
6854
+ --al-link-line-height: var(--al-line-height-sm);
6855
+ --al-link-font-weight: var(--al-font-weight-medium);
6856
+ --al-link-tracking: 0em;
6857
+ }
6858
+
6859
+ /* AL Design System - Link
6860
+ *
6861
+ * Always an <a href>. One type, always underlined: the underline is what
6862
+ * separates the link from text, not the color (WCAG 1.4.1) - and it is what
6863
+ * pays the default's declared contrast exception. Never remove it.
6864
+ *
6865
+ * Standalone (.al-link) uses label-md. Inside running text (.al-link--inline)
6866
+ * it inherits the paragraph font and takes no icon.
6867
+ *
6868
+ * The underline is text-decoration, not a bottom border: it has to follow the
6869
+ * text when an inline link wraps across lines. Its color is currentColor, so
6870
+ * it follows the state's ink with no token of its own; the icon does the same.
6871
+ */
6872
+
6873
+ .al-link {
6874
+ display: inline-flex;
6875
+ align-items: center;
6876
+ gap: var(--al-link-gap);
6877
+ color: var(--al-link-text-default);
6878
+ font-family: var(--al-font-sans);
6879
+ font-size: var(--al-link-font-size);
6880
+ line-height: var(--al-link-line-height);
6881
+ font-weight: var(--al-link-font-weight);
6882
+ letter-spacing: var(--al-link-tracking);
6883
+ text-decoration-line: underline;
6884
+ text-decoration-thickness: var(--al-link-underline-default);
6885
+ text-underline-offset: var(--al-link-underline-offset);
6886
+ outline: none;
6887
+ transition:
6888
+ color var(--al-motion-duration-feedback) var(--al-motion-easing-exit),
6889
+ text-decoration-thickness var(--al-motion-duration-feedback) var(--al-motion-easing-exit);
6890
+ }
6891
+
6892
+ /* the icon is decorative (aria-hidden in the markup); the text says it all */
6893
+ .al-link__icon {
6894
+ flex: none;
6895
+ width: var(--al-link-icon-size);
6896
+ height: var(--al-link-icon-size);
6897
+ color: currentColor;
6898
+ }
6899
+
6900
+ /* inline: inherits the paragraph; a ring split across lines repeats per line */
6901
+ .al-link--inline {
6902
+ display: inline;
6903
+ font: inherit;
6904
+ letter-spacing: inherit;
6905
+ -webkit-box-decoration-break: clone;
6906
+ box-decoration-break: clone;
6907
+ }
6908
+ .al-link--inline .al-link__icon {
6909
+ display: none;
6910
+ }
6911
+
6912
+ .al-link:hover {
6913
+ color: var(--al-link-text-hover);
6914
+ text-decoration-thickness: var(--al-link-underline-hover);
6915
+ transition-timing-function: var(--al-motion-easing-enter);
6916
+ }
6917
+
6918
+ /* :focus-visible, not :focus - the ring shows from the keyboard, not on click.
6919
+ Same ring as the Button: a shadow, so it doesn't push the layout. */
6920
+ .al-link:focus-visible {
6921
+ color: var(--al-link-text-focus);
6922
+ text-decoration-thickness: var(--al-link-underline-hover);
6923
+ box-shadow: var(--al-link-ring);
6924
+ transition-timing-function: var(--al-motion-easing-enter);
6925
+ }
6926
+
6927
+ @media (prefers-reduced-motion: reduce) {
6928
+ .al-link { transition: none; }
6929
+ }
@@ -0,0 +1,101 @@
1
+ /* AL Design System - Link tokens
2
+ * GENERATED by src/components/link/tokens.py. Do not edit by hand.
3
+ *
4
+ * The default ink is the theme-invariant brand primitive; hover and focus
5
+ * point to text-brand, which the theme switches on :root.
6
+ */
7
+
8
+ :root {
9
+ /* color - underline and icon inherit through currentColor */
10
+ --al-link-text-default: var(--al-color-orange-500);
11
+ --al-link-text-hover: var(--al-text-brand);
12
+ --al-link-text-focus: var(--al-text-brand);
13
+
14
+ /* focus */
15
+ --al-link-ring: var(--al-focus-ring-default);
16
+
17
+ /* geometry */
18
+ --al-link-underline-default: var(--al-border-width-1);
19
+ --al-link-underline-hover: var(--al-border-width-2);
20
+ --al-link-underline-offset: var(--al-space-4);
21
+ --al-link-gap: var(--al-space-8);
22
+ --al-link-icon-size: var(--al-icon-size-20);
23
+
24
+ /* type - standalone only; inline inherits the paragraph */
25
+ --al-link-font-size: var(--al-font-size-sm);
26
+ --al-link-line-height: var(--al-line-height-sm);
27
+ --al-link-font-weight: var(--al-font-weight-medium);
28
+ --al-link-tracking: 0em;
29
+ }
30
+
31
+ /* AL Design System - Link
32
+ *
33
+ * Always an <a href>. One type, always underlined: the underline is what
34
+ * separates the link from text, not the color (WCAG 1.4.1) - and it is what
35
+ * pays the default's declared contrast exception. Never remove it.
36
+ *
37
+ * Standalone (.al-link) uses label-md. Inside running text (.al-link--inline)
38
+ * it inherits the paragraph font and takes no icon.
39
+ *
40
+ * The underline is text-decoration, not a bottom border: it has to follow the
41
+ * text when an inline link wraps across lines. Its color is currentColor, so
42
+ * it follows the state's ink with no token of its own; the icon does the same.
43
+ */
44
+
45
+ .al-link {
46
+ display: inline-flex;
47
+ align-items: center;
48
+ gap: var(--al-link-gap);
49
+ color: var(--al-link-text-default);
50
+ font-family: var(--al-font-sans);
51
+ font-size: var(--al-link-font-size);
52
+ line-height: var(--al-link-line-height);
53
+ font-weight: var(--al-link-font-weight);
54
+ letter-spacing: var(--al-link-tracking);
55
+ text-decoration-line: underline;
56
+ text-decoration-thickness: var(--al-link-underline-default);
57
+ text-underline-offset: var(--al-link-underline-offset);
58
+ outline: none;
59
+ transition:
60
+ color var(--al-motion-duration-feedback) var(--al-motion-easing-exit),
61
+ text-decoration-thickness var(--al-motion-duration-feedback) var(--al-motion-easing-exit);
62
+ }
63
+
64
+ /* the icon is decorative (aria-hidden in the markup); the text says it all */
65
+ .al-link__icon {
66
+ flex: none;
67
+ width: var(--al-link-icon-size);
68
+ height: var(--al-link-icon-size);
69
+ color: currentColor;
70
+ }
71
+
72
+ /* inline: inherits the paragraph; a ring split across lines repeats per line */
73
+ .al-link--inline {
74
+ display: inline;
75
+ font: inherit;
76
+ letter-spacing: inherit;
77
+ -webkit-box-decoration-break: clone;
78
+ box-decoration-break: clone;
79
+ }
80
+ .al-link--inline .al-link__icon {
81
+ display: none;
82
+ }
83
+
84
+ .al-link:hover {
85
+ color: var(--al-link-text-hover);
86
+ text-decoration-thickness: var(--al-link-underline-hover);
87
+ transition-timing-function: var(--al-motion-easing-enter);
88
+ }
89
+
90
+ /* :focus-visible, not :focus - the ring shows from the keyboard, not on click.
91
+ Same ring as the Button: a shadow, so it doesn't push the layout. */
92
+ .al-link:focus-visible {
93
+ color: var(--al-link-text-focus);
94
+ text-decoration-thickness: var(--al-link-underline-hover);
95
+ box-shadow: var(--al-link-ring);
96
+ transition-timing-function: var(--al-motion-easing-enter);
97
+ }
98
+
99
+ @media (prefers-reduced-motion: reduce) {
100
+ .al-link { transition: none; }
101
+ }
@@ -1,5 +1,5 @@
1
1
  /* AL Design System - Foundation
2
- * v1.0.1 - MIT
2
+ * v1.1.0 - MIT
3
3
  * GENERATED by src/foundation/css.py. Do not edit by hand: run the script.
4
4
  */
5
5
 
package/dist/tokens.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "meta": {
3
3
  "name": "AL Design System",
4
- "version": "1.0.1",
4
+ "version": "1.1.0",
5
5
  "license": "MIT",
6
6
  "brandAnchor": "#FC5000",
7
7
  "colorSpace": "OKLCH",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "al-design-system",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "AL Design System: Foundation and components in plain CSS, from Figma to code.",
5
5
  "license": "MIT",
6
6
  "author": "Guilherme Domingues",