@netzi/tokens 0.1.0-beta.10 → 0.1.0-beta.9
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/CHANGELOG.md +0 -549
- package/README.md +86 -724
- package/package.json +4 -20
- package/styles/base.css +1 -51
- package/styles/fonts.css +0 -72
- package/styles/tokens.css +544 -1280
- package/lib/brand-context.d.ts +0 -10
- package/lib/brand-context.js +0 -65
- package/lib/brand.d.ts +0 -90
- package/lib/brand.js +0 -256
- package/lib/contrast.d.ts +0 -14
- package/lib/contrast.js +0 -34
- package/public-tokens.json +0 -460
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@netzi/tokens",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
4
|
-
"description": "Design tokens de Netzi (CSS custom properties): marca, tema claro/oscuro, tipografía, radios, sombras
|
|
3
|
+
"version": "0.1.0-beta.9",
|
|
4
|
+
"description": "Design tokens de Netzi (CSS custom properties): marca, tema claro/oscuro, tipografía, radios, sombras. Agnóstico de framework.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"homepage": "https://ui.netzi.tech",
|
|
7
7
|
"bugs": {
|
|
@@ -13,8 +13,6 @@
|
|
|
13
13
|
],
|
|
14
14
|
"files": [
|
|
15
15
|
"styles",
|
|
16
|
-
"lib",
|
|
17
|
-
"public-tokens.json",
|
|
18
16
|
"README.md",
|
|
19
17
|
"CHANGELOG.md",
|
|
20
18
|
"LICENSE.md"
|
|
@@ -24,12 +22,7 @@
|
|
|
24
22
|
"./tokens.css": "./styles/tokens.css",
|
|
25
23
|
"./base.css": "./styles/base.css",
|
|
26
24
|
"./fonts.css": "./styles/fonts.css",
|
|
27
|
-
"./index.css": "./styles/index.css"
|
|
28
|
-
"./public-tokens.json": "./public-tokens.json",
|
|
29
|
-
"./brand": {
|
|
30
|
-
"types": "./lib/brand.d.ts",
|
|
31
|
-
"default": "./lib/brand.js"
|
|
32
|
-
}
|
|
25
|
+
"./index.css": "./styles/index.css"
|
|
33
26
|
},
|
|
34
27
|
"publishConfig": {
|
|
35
28
|
"access": "public",
|
|
@@ -41,16 +34,7 @@
|
|
|
41
34
|
"css",
|
|
42
35
|
"theme"
|
|
43
36
|
],
|
|
44
|
-
"devDependencies": {
|
|
45
|
-
"prettier": "^3.4.2",
|
|
46
|
-
"style-dictionary": "~5.5.5"
|
|
47
|
-
},
|
|
48
37
|
"scripts": {
|
|
49
|
-
"
|
|
50
|
-
"generate": "node build/build.ts",
|
|
51
|
-
"lint": "stylelint \"styles/**/*.css\"",
|
|
52
|
-
"test": "vitest run",
|
|
53
|
-
"test:cov": "vitest run --coverage",
|
|
54
|
-
"typecheck": "tsc -p tsconfig.json"
|
|
38
|
+
"lint": "stylelint \"styles/**/*.css\""
|
|
55
39
|
}
|
|
56
40
|
}
|
package/styles/base.css
CHANGED
|
@@ -19,7 +19,7 @@ body {
|
|
|
19
19
|
|
|
20
20
|
body {
|
|
21
21
|
font-family: var(--netzi-font-sans);
|
|
22
|
-
font-size: var(--netzi-
|
|
22
|
+
font-size: calc(16px * var(--netzi-font-scale, 1));
|
|
23
23
|
background: var(--netzi-bg);
|
|
24
24
|
color: var(--netzi-text);
|
|
25
25
|
line-height: 1.55;
|
|
@@ -87,53 +87,3 @@ h3 {
|
|
|
87
87
|
*::-webkit-scrollbar-corner {
|
|
88
88
|
background: transparent;
|
|
89
89
|
}
|
|
90
|
-
|
|
91
|
-
/* --- Impresión (#176) ---
|
|
92
|
-
Los colores ya salen claros y opacos de tokens.css (el tema oscuro, el cristal y el fondo
|
|
93
|
-
ambiental no aplican al imprimir). Aquí, lo global: el papel en blanco, nada a medio animar
|
|
94
|
-
y el documento con su alto natural, para que el navegador lo reparta en páginas. */
|
|
95
|
-
@media print {
|
|
96
|
-
html,
|
|
97
|
-
body {
|
|
98
|
-
height: auto;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
body {
|
|
102
|
-
background: var(--netzi-surface);
|
|
103
|
-
transition: none;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/* Una transición o una animación a medio camino se imprimiría tal cual: el papel recibe cada
|
|
107
|
-
cosa en su estado final. Con prioridad, porque las de los componentes son más específicas. */
|
|
108
|
-
*,
|
|
109
|
-
*::before,
|
|
110
|
-
*::after {
|
|
111
|
-
animation: none !important;
|
|
112
|
-
transition: none !important;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/* En papel un enlace solo se distingue por su forma: el color puede salir en gris en una
|
|
116
|
-
impresora en blanco y negro (WCAG 1.4.1), así que va subrayado. */
|
|
117
|
-
a[href] {
|
|
118
|
-
color: var(--netzi-primary-text);
|
|
119
|
-
text-decoration: underline;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/* La dirección de un enlace externo, a la vista en papel, solo donde se pide: en el propio
|
|
123
|
-
enlace o en un contenedor con el atributo data-print-urls. En toda la página llenaría de
|
|
124
|
-
direcciones el menú y cada botón con enlace. */
|
|
125
|
-
a[data-print-urls][href^='http']::after,
|
|
126
|
-
[data-print-urls] a[href^='http']::after {
|
|
127
|
-
content: ' (' attr(href) ')';
|
|
128
|
-
color: var(--netzi-text-2);
|
|
129
|
-
font-size: 0.85em;
|
|
130
|
-
overflow-wrap: anywhere;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/* La parada de Tab que pone netziTruncated en un texto cortado (#167): el anillo de foco del
|
|
135
|
-
kit (3:1), por dentro para que no lo recorte la caja que corta el texto. */
|
|
136
|
-
[data-netzi-truncated-stop]:focus-visible {
|
|
137
|
-
outline: 2px solid var(--netzi-focus-ring);
|
|
138
|
-
outline-offset: -2px;
|
|
139
|
-
}
|
package/styles/fonts.css
CHANGED
|
@@ -62,75 +62,3 @@
|
|
|
62
62
|
U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,
|
|
63
63
|
U+A720-A7FF;
|
|
64
64
|
}
|
|
65
|
-
|
|
66
|
-
/* -----------------------------------------------------------
|
|
67
|
-
Respaldo con métricas ajustadas (#178)
|
|
68
|
-
Con `swap`, el texto se pinta primero con una fuente del sistema y salta
|
|
69
|
-
al llegar la de marca: otra anchura de letra y otra altura de línea mueven
|
|
70
|
-
la página entera (layout shift). Estas caras locales hacen que la fuente
|
|
71
|
-
del sistema ocupe lo mismo que la de marca, así que el cambio apenas mueve
|
|
72
|
-
nada. Las familias de los tokens las nombran justo detrás de la de marca
|
|
73
|
-
(`--netzi-font-sans`, `--netzi-font-mono`).
|
|
74
|
-
|
|
75
|
-
De dónde salen los números (se rehacen si cambia la fuente de marca):
|
|
76
|
-
- Vertical (fontTools 4.60 sobre los woff2 de fonts/): Plus Jakarta Sans
|
|
77
|
-
tiene 1000 unidades por eme, ascendente 1038, descendente 222 e
|
|
78
|
-
interlineado 0 (OS/2 «typo», con USE_TYPO_METRICS; «hhea» da lo
|
|
79
|
-
mismo). Fira Code: 2000 unidades, 1980, 644 y 0.
|
|
80
|
-
- Anchura: medida en Chromium (`measureText` de un canvas) sobre el texto
|
|
81
|
-
entero de las 63 páginas del playground, en español y en inglés, con sus
|
|
82
|
-
espacios. Plus Jakarta Sans ocupa un 3,88 % más que Arial a peso 400
|
|
83
|
-
(3,76 % en español, 4,00 % en inglés) y un 0,98 % más que Arial Bold a
|
|
84
|
-
700. Se mide sobre texto real y no sobre las letras sueltas porque el
|
|
85
|
-
espacio de Plus Jakarta Sans es muy estrecho (0,17 em, el de Arial
|
|
86
|
-
0,278) y cuenta tanto como las letras. Separar el espacio en su propia
|
|
87
|
-
cara (con `unicode-range`) se probó y movía más, no menos.
|
|
88
|
-
- size-adjust = anchura de la de marca / anchura del respaldo.
|
|
89
|
-
- ascent-override, descent-override y line-gap-override = la métrica de
|
|
90
|
-
la de marca (en ems) / size-adjust: el navegador las escala después por
|
|
91
|
-
size-adjust, y la caja de línea queda como la de marca.
|
|
92
|
-
- Resultado (scripts/saltos-de-layout.mjs, 71 rutas a 1280 px): lo que se
|
|
93
|
-
mueve al llegar la fuente suma 0,058 con este respaldo y 1,033 sin él en
|
|
94
|
-
el Linux del CI (Liberation), y 0,061 y 0,300 en macOS (Arial).
|
|
95
|
-
Liberation Sans y Liberation Mono (Linux) tienen las métricas de Arial y
|
|
96
|
-
Courier New, así que valen los mismos números. El peso 700 va aparte
|
|
97
|
-
porque Arial Bold no es Arial ensanchada; de 550 en adelante se usa esa
|
|
98
|
-
cara en vez de engrosar la normal. En la monoespaciada todo ocupa 0,6 em
|
|
99
|
-
en las dos (Courier New, 0,6001), también en negrita: basta una cara, y la
|
|
100
|
-
negrita la sintetiza el navegador. Su size-adjust no es 0,6 / 0,6001
|
|
101
|
-
(99,98 %) sino 100,03 %: con el hinting de Linux cada avance se redondea a
|
|
102
|
-
píxeles enteros, y a 99,98 % el respaldo se quedaba justo por debajo de la
|
|
103
|
-
media unidad (7,4995 px a 12,5 px, que redondea a 7) mientras Fira Code
|
|
104
|
-
daba 7,5 (que redondea a 8). Con 100,03 % los dos redondean igual de 11 a
|
|
105
|
-
22,5 px, y sin hinting la anchura cambia un 0,02 %. Ascent y descent salen
|
|
106
|
-
igual que arriba: 0,99 / 1,0003 y 0,322 / 1,0003.
|
|
107
|
-
----------------------------------------------------------- */
|
|
108
|
-
|
|
109
|
-
@font-face {
|
|
110
|
-
font-family: 'Plus Jakarta Sans Fallback';
|
|
111
|
-
font-weight: 100 549;
|
|
112
|
-
src: local('Arial'), local('Liberation Sans'), local('Arimo');
|
|
113
|
-
size-adjust: 103.88%;
|
|
114
|
-
ascent-override: 99.92%;
|
|
115
|
-
descent-override: 21.37%;
|
|
116
|
-
line-gap-override: 0%;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
@font-face {
|
|
120
|
-
font-family: 'Plus Jakarta Sans Fallback';
|
|
121
|
-
font-weight: 550 900;
|
|
122
|
-
src: local('Arial Bold'), local('Liberation Sans Bold'), local('Arimo Bold');
|
|
123
|
-
size-adjust: 100.98%;
|
|
124
|
-
ascent-override: 102.79%;
|
|
125
|
-
descent-override: 21.98%;
|
|
126
|
-
line-gap-override: 0%;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
@font-face {
|
|
130
|
-
font-family: 'Fira Code Fallback';
|
|
131
|
-
src: local('Courier New'), local('Liberation Mono'), local('Cousine');
|
|
132
|
-
size-adjust: 100.03%;
|
|
133
|
-
ascent-override: 98.97%;
|
|
134
|
-
descent-override: 32.19%;
|
|
135
|
-
line-gap-override: 0%;
|
|
136
|
-
}
|