orbital-ds 0.7.0 → 0.9.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/AGENTS.md +145 -80
- package/README.md +87 -73
- package/components.manifest.json +1326 -1267
- package/contract.json +226 -168
- package/dist/hooks/use-ds-messages.d.ts +36 -0
- package/dist/hooks/use-ds-messages.js +12 -0
- package/dist/hooks/use-ds-motion.d.ts +17 -0
- package/dist/hooks/use-ds-motion.js +50 -0
- package/dist/lib/i18n.d.ts +46 -0
- package/dist/lib/i18n.js +109 -0
- package/dist/lib/motion.d.ts +74 -0
- package/dist/lib/motion.js +97 -0
- package/dist/styles.css +876 -528
- package/dist/themes/friendly.css +362 -318
- package/dist/themes/friendly.meta.json +75 -14
- package/dist/themes/friendly.scoped.css +362 -318
- package/dist/themes/qratia.meta.json +42 -12
- package/dist/themes/tactile.css +575 -429
- package/dist/themes/tactile.fonts.css +3 -2
- package/dist/themes/tactile.guide.md +82 -49
- package/dist/themes/tactile.meta.json +175 -16
- package/dist/themes/tactile.scoped.css +575 -429
- package/dist/themes/twitter.css +354 -298
- package/dist/themes/twitter.meta.json +83 -61
- package/dist/themes/twitter.scoped.css +354 -298
- package/dist/themes/zyro.css +443 -389
- package/dist/themes/zyro.meta.json +67 -14
- package/dist/themes/zyro.scoped.css +443 -389
- package/dist/ui/accordion.js +5 -5
- package/dist/ui/alert-dialog.js +3 -3
- package/dist/ui/alert.d.ts +1 -1
- package/dist/ui/alert.js +9 -3
- package/dist/ui/attachment.d.ts +1 -1
- package/dist/ui/attachment.js +4 -4
- package/dist/ui/avatar.js +6 -6
- package/dist/ui/ayuda.js +3 -2
- package/dist/ui/badge.d.ts +1 -1
- package/dist/ui/badge.js +9 -3
- package/dist/ui/banner.d.ts +14 -0
- package/dist/ui/banner.js +88 -0
- package/dist/ui/breadcrumb.js +7 -3
- package/dist/ui/bubble.js +6 -6
- package/dist/ui/button-group.js +4 -4
- package/dist/ui/button.d.ts +1 -1
- package/dist/ui/button.js +5 -5
- package/dist/ui/calendar.js +33 -6
- package/dist/ui/card.js +4 -4
- package/dist/ui/carousel.js +15 -8
- package/dist/ui/chart.js +7 -3
- package/dist/ui/checkbox.js +1 -1
- package/dist/ui/combobox.js +7 -7
- package/dist/ui/command.js +13 -11
- package/dist/ui/context-menu.js +8 -8
- package/dist/ui/dialog.js +10 -6
- package/dist/ui/drawer.js +9 -9
- package/dist/ui/dropdown-menu.js +8 -8
- package/dist/ui/empty.js +3 -3
- package/dist/ui/field.js +2 -2
- package/dist/ui/hover-card.js +1 -1
- package/dist/ui/i18n-provider.d.ts +11 -0
- package/dist/ui/i18n-provider.js +18 -0
- package/dist/ui/icon-tile.d.ts +1 -1
- package/dist/ui/input-group.d.ts +1 -1
- package/dist/ui/input-group.js +11 -9
- package/dist/ui/input-otp.js +3 -3
- package/dist/ui/input.js +1 -1
- package/dist/ui/item.d.ts +1 -1
- package/dist/ui/item.js +3 -3
- package/dist/ui/kbd.js +1 -1
- package/dist/ui/label.js +1 -1
- package/dist/ui/marker.d.ts +1 -1
- package/dist/ui/marker.js +2 -2
- package/dist/ui/menubar.js +9 -9
- package/dist/ui/message-scroller.js +5 -2
- package/dist/ui/message.js +2 -2
- package/dist/ui/motion-provider.d.ts +11 -0
- package/dist/ui/motion-provider.js +16 -0
- package/dist/ui/native-select.js +4 -4
- package/dist/ui/navigation-menu.js +7 -6
- package/dist/ui/pagination.js +19 -11
- package/dist/ui/popover.js +2 -2
- package/dist/ui/progress.js +2 -2
- package/dist/ui/questionnaire.js +20 -15
- package/dist/ui/radio-group.js +2 -2
- package/dist/ui/resizable.js +2 -2
- package/dist/ui/scroll-area.js +3 -3
- package/dist/ui/select.js +6 -6
- package/dist/ui/separator.js +1 -1
- package/dist/ui/sheet.js +6 -4
- package/dist/ui/sidebar.js +42 -30
- package/dist/ui/skeleton.js +1 -1
- package/dist/ui/slider.js +6 -6
- package/dist/ui/sonner.js +25 -8
- package/dist/ui/spinner.js +4 -1
- package/dist/ui/switch.js +2 -2
- package/dist/ui/table.js +3 -3
- package/dist/ui/tabs.js +5 -5
- package/dist/ui/textarea.js +1 -1
- package/dist/ui/toast.js +15 -12
- package/dist/ui/toggle-group.js +2 -2
- package/dist/ui/toggle.js +6 -4
- package/dist/ui/tooltip.js +2 -2
- package/docs/CONTRACT.md +183 -153
- package/package.json +160 -142
- package/scripts/brand-core.mjs +153 -0
- package/scripts/doctor.mjs +128 -7
- package/scripts/i18n.mjs +111 -0
- package/scripts/init.mjs +294 -57
- package/scripts/setup.mjs +99 -0
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
/* Fuentes del tema tactile: Fraunces (titulares
|
|
2
|
-
|
|
1
|
+
/* Fuentes del tema tactile: Fraunces (titulares, con los ejes SOFT y WONK que usa
|
|
2
|
+
* --ds-display-variation) + Figtree (cuerpo). Importar la PRIMERA del CSS de la app. */
|
|
3
|
+
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght,SOFT,WONK@9..144,600..800,0..100,0..1&family=Figtree:wght@400..700&display=swap');
|
|
@@ -1,49 +1,82 @@
|
|
|
1
|
-
# Tema `tactile` — guía de diseño
|
|
2
|
-
|
|
3
|
-
## Esencia
|
|
4
|
-
Una interfaz que se **toca**: papel cálido, tinta oscura y un rotulador. Pensada para SaaS que quieren sentirse cercanos y con humor, sin el aspecto genérico de «app de IA» (degradado índigo, Inter, tarjetas idénticas, brillos).
|
|
5
|
-
|
|
6
|
-
## Gesto firma
|
|
7
|
-
1. **Tecla**: todo lo que se pulsa lleva contorno de tinta
|
|
8
|
-
2. **Rotulador**: una
|
|
9
|
-
|
|
10
|
-
## Principios
|
|
11
|
-
- Lo accionable se distingue de lo informativo por **materia**, no solo por color: lo pulsable tiene arista; lo demás, filete suave.
|
|
12
|
-
- Sin sombras difusas: la profundidad la dan las aristas.
|
|
13
|
-
- Un acento vivo (mostaza) y uno pequeño (pino). Nunca negro puro: tinta berenjena.
|
|
14
|
-
- Formas con jerarquía: 8 · 12 · 14 · 16 (no un único radio para todo).
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
- **
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
##
|
|
48
|
-
-
|
|
49
|
-
- **
|
|
1
|
+
# Tema `tactile` — guía de diseño
|
|
2
|
+
|
|
3
|
+
## Esencia
|
|
4
|
+
Una interfaz que se **toca**: papel cálido, tinta oscura y un rotulador. Pensada para SaaS que quieren sentirse cercanos y con humor, sin el aspecto genérico de «app de IA» (degradado índigo, Inter, tarjetas idénticas, brillos).
|
|
5
|
+
|
|
6
|
+
## Gesto firma
|
|
7
|
+
1. **Tecla**: todo lo que se pulsa lleva contorno de tinta y una arista inferior que **baja al pulsar** (la pieza se hunde).
|
|
8
|
+
2. **Rotulador**: una franja translúcida del color principal bajo los títulos de componente (card, dialog, sheet, alert-dialog, drawer, empty) y el título de página.
|
|
9
|
+
|
|
10
|
+
## Principios
|
|
11
|
+
- Lo accionable se distingue de lo informativo por **materia**, no solo por color: lo pulsable tiene arista; lo demás, filete suave.
|
|
12
|
+
- Sin sombras difusas: la profundidad la dan las aristas.
|
|
13
|
+
- Un acento vivo (mostaza) y uno pequeño (pino, para foco y enlace). Nunca negro puro: tinta berenjena.
|
|
14
|
+
- Formas con jerarquía: 8 · 12 · 14 · 16 (no un único radio para todo).
|
|
15
|
+
- **Familias completas**: si una pieza lleva el gesto, sus hermanas también (casilla y radio; todos los campos; todas las capas; todos los menús; pestañas, toggle y grupo de toggles; progreso y deslizador; todos los títulos). Lo exige `pnpm check:ds`.
|
|
16
|
+
- **Todo es variable**: la personalidad no escribe ni una medida, color, peso ni opacidad. Lo exige `pnpm check:ds` (el tema es `conformance: strict`).
|
|
17
|
+
- Carácter barato y reutilizable: baldosa de icono (`IconTile`) con tono, en vez de ilustraciones.
|
|
18
|
+
|
|
19
|
+
## Tipografía
|
|
20
|
+
| Papel | Fuente | Ajuste |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| Titulares (h1–h4 y títulos de componente) | **Fraunces**, serifa variable | Ejes `SOFT 50` (suave) y `WONK 1` (letras con humor, solo a tamaño de titular): `--ds-display-variation`. Peso 700 en h1–h3 (`--ds-heading-weight`), 650 en títulos de componente (`--ds-title-weight`), interlineado 1.25, tracking -0.01em |
|
|
23
|
+
| Cuerpo y controles | **Figtree**, sans geométrica y humanista | Cuerpo de **15px** (`--ds-text-sm`), etiquetas de 13px (`--ds-text-xs`); teclas en 700 (`--ds-key-weight`), lateral en 600 (`--ds-nav-weight`) |
|
|
24
|
+
| Código | Monoespaciada del sistema | — |
|
|
25
|
+
|
|
26
|
+
Reglas:
|
|
27
|
+
- Fraunces **solo a 16px o más**: por debajo de 14px se vuelve delicada. El texto pequeño, siempre Figtree.
|
|
28
|
+
- La escala sube el cuerpo a 15px porque las teclas miden 44px: con 14px el texto quedaba pequeño para el control.
|
|
29
|
+
- Fuentes en `tactile.fonts.css` (Fraunces con los ejes `opsz, wght, SOFT, WONK`): debe ser lo **primero** del CSS de la app.
|
|
30
|
+
|
|
31
|
+
## Variables del gesto (ajustables desde `brand.css`)
|
|
32
|
+
| Variable | Valor | Qué hace |
|
|
33
|
+
|---|---|---|
|
|
34
|
+
| `--ds-key-outline` | tinta (`--foreground`) | contorno de las teclas |
|
|
35
|
+
| `--ds-key-edge` | tinta al 26 % | arista de superficies (tarjetas, tooltip) |
|
|
36
|
+
| `--ds-key-border` | 2px | grosor del contorno |
|
|
37
|
+
| `--ds-key-edge-w` / `-sm` / `-pressed` | 5 / 4 / 2px | arista en reposo, en controles pequeños o densos, y al pulsar |
|
|
38
|
+
| `--ds-key-press` / `-sm` | 3 / 2px | cuánto se hunde al pulsar |
|
|
39
|
+
| `--ds-key-radius` / `-sm` | 14 / 12px | radio de la tecla y de la tecla pequeña |
|
|
40
|
+
| `--ds-rule-w` | 2px | filetes (tarjeta, tabla, acordeón, lateral) |
|
|
41
|
+
| `--ds-overlay-edge-w` | 6px | arista de diálogos y paneles |
|
|
42
|
+
| `--ds-marker` | principal al 62 % (45 % de noche) | rotulador; `transparent` lo apaga |
|
|
43
|
+
| `--ds-marker-thickness` / `--ds-marker-offset` | 0.45em / -0.32em | grosor de la franja y cuánto sube sobre la línea base |
|
|
44
|
+
|
|
45
|
+
Para un tactile «plano» basta con `--ds-key-edge-w: var(--ds-key-border)` y `--ds-key-press: 0px`.
|
|
46
|
+
|
|
47
|
+
## Marca y color
|
|
48
|
+
- `--sidebar-primary`, `--brand`, `--chart-1` y el rotulador **derivan de `--primary`**: si una app cambia el principal, le siguen.
|
|
49
|
+
- El **foco (`--ring`) y el enlace son pino** a propósito: un anillo mostaza sobre papel no llega a 3:1. Si cambias `--primary`, revisa `--primary-foreground`, `--ring` y `--link`, o deja que `pnpm exec orbital-ds-init` los derive y compruebe.
|
|
50
|
+
- La marca de una app vive en su `brand.css`; nunca se edita el tema.
|
|
51
|
+
|
|
52
|
+
## Paleta
|
|
53
|
+
Dos pieles. Valores de diseño, no medidos contra una referencia externa.
|
|
54
|
+
- **Papel (claro)**: fondo `#F6F0E3`, tarjeta `#FFFCF4`, papel hondo `#EDE3CD`, tinta `#2A2233`, primario mostaza `#F2B33D` con texto de tinta, pino `#17624F`, tomate `#B53A22`, cielo `#2F6FB0`, ciruela `#8B5A9E`.
|
|
55
|
+
- **Noche**: fondo `#1D1824`, tarjeta `#2C2636`, tinta clara `#F4EBDA`, mostaza `#F2B33D`, pino `#5CC9A8`, tomate `#FF8266`, cielo `#7DB3F0`.
|
|
56
|
+
- Variante **índigo** (en estudio, no incluida en el paquete): tinta `#232450`, papel `#F4F5FB`, primario `#4B5BBF`, marcador naranja `#FBB232`.
|
|
57
|
+
|
|
58
|
+
## Formas y profundidad
|
|
59
|
+
Radios 8 · 12 · 14 · 16. Arista inferior de 5px (4px en controles pequeños y dentro de calendario, paginación, grupos de botones y campos con botón) que baja a 2px al pulsar. Filetes de 2px. Capas flotantes con contorno de tinta y arista de 4px; diálogos, de 6px.
|
|
60
|
+
|
|
61
|
+
## Referencias y qué se tomó de cada una
|
|
62
|
+
Dirección **original**; no copia ninguna. Se tomó un principio de cada una:
|
|
63
|
+
- **Duolingo** (según fuentes de terceros): la arista inferior que baja al pulsar.
|
|
64
|
+
- **Endorsal** (analizada en navegador): títulos con rotulador de color al 25%, iconos duotono, filas con arista inferior.
|
|
65
|
+
- **SerpWatch** (analizada en navegador): lienzo no blanco y sombras teñidas; aquí se sustituyen por papel y aristas.
|
|
66
|
+
- **Reglas anti-IA** (síntesis propia): evitar degradado morado-índigo, Inter por defecto, un único radio, brillos decorativos, bordes de color en un solo lado.
|
|
67
|
+
|
|
68
|
+
## Qué evita
|
|
69
|
+
Sombras difusas, brillos, degradados decorativos, iconos grises sin carácter, mismo radio en todo, piezas hermanas con aspecto distinto, valores escritos a mano.
|
|
70
|
+
|
|
71
|
+
## Qué hace
|
|
72
|
+
Teclas con arista, rotulador bajo títulos, baldosas de icono con tono, sidebar a ras con la fila activa como tecla pulsada.
|
|
73
|
+
|
|
74
|
+
## Accesibilidad
|
|
75
|
+
- Texto de tinta sobre mostaza: contraste ≈ 10:1. Todos los pares principales y los textos de estado pasan AA (lo comprueba `pnpm check:ds`, también en los colores derivados).
|
|
76
|
+
- El foco usa el anillo de la estructura (`--ds-ring-width`, 3px) en pino, visible sobre papel y sobre mostaza.
|
|
77
|
+
- El estado pulsado no depende del movimiento: la arista cambia de grosor. Con `prefers-reduced-motion` la estructura anula las transiciones y el cambio es instantáneo.
|
|
78
|
+
- Las aristas no sustituyen al texto del estado.
|
|
79
|
+
|
|
80
|
+
## Estado de los valores
|
|
81
|
+
- **Diseño propio**: todos los de este tema; ninguno proviene de una referencia medida.
|
|
82
|
+
- **Pendiente**: validar en pantalla real la piel noche, la tecla menor en calendario y paginación, y la variante índigo.
|
|
@@ -1,16 +1,175 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "tactile",
|
|
3
|
-
"label": "Táctil",
|
|
4
|
-
"essence": "Interfaz de papel y tinta que se toca: teclas con arista y rotulador bajo los títulos.",
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "tactile",
|
|
3
|
+
"label": "Táctil",
|
|
4
|
+
"essence": "Interfaz de papel y tinta que se toca: teclas con arista y rotulador bajo los títulos.",
|
|
5
|
+
"conformance": "strict",
|
|
6
|
+
"signature": [
|
|
7
|
+
"tecla con arista inferior que baja al pulsar",
|
|
8
|
+
"rotulador bajo los títulos"
|
|
9
|
+
],
|
|
10
|
+
"fonts": {
|
|
11
|
+
"display": "Fraunces",
|
|
12
|
+
"body": "Figtree",
|
|
13
|
+
"mono": "system",
|
|
14
|
+
"file": "tactile.fonts.css",
|
|
15
|
+
"distributable": true,
|
|
16
|
+
"axes": {
|
|
17
|
+
"display": "opsz, wght 600–800, SOFT 0–100, WONK 0–1",
|
|
18
|
+
"body": "wght 400–700"
|
|
19
|
+
},
|
|
20
|
+
"settings": {
|
|
21
|
+
"--ds-display-variation": "\"SOFT\" 50, \"WONK\" 1",
|
|
22
|
+
"--ds-heading-weight": 700,
|
|
23
|
+
"--ds-title-weight": 650,
|
|
24
|
+
"--ds-key-weight": 700,
|
|
25
|
+
"--ds-nav-weight": 600
|
|
26
|
+
},
|
|
27
|
+
"scale": {
|
|
28
|
+
"body": "15px (--ds-text-sm)",
|
|
29
|
+
"label": "13px (--ds-text-xs)"
|
|
30
|
+
},
|
|
31
|
+
"rules": [
|
|
32
|
+
"Fraunces solo a 16px o más",
|
|
33
|
+
"texto pequeño siempre en Figtree"
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
"palette": {
|
|
37
|
+
"light": {
|
|
38
|
+
"background": "#F6F0E3",
|
|
39
|
+
"card": "#FFFCF4",
|
|
40
|
+
"paper": "#EDE3CD",
|
|
41
|
+
"foreground": "#2A2233",
|
|
42
|
+
"primary": "#F2B33D",
|
|
43
|
+
"pine": "#17624F",
|
|
44
|
+
"tomato": "#B53A22",
|
|
45
|
+
"sky": "#2F6FB0",
|
|
46
|
+
"plum": "#8B5A9E"
|
|
47
|
+
},
|
|
48
|
+
"dark": {
|
|
49
|
+
"background": "#1D1824",
|
|
50
|
+
"card": "#2C2636",
|
|
51
|
+
"foreground": "#F4EBDA",
|
|
52
|
+
"primary": "#F2B33D",
|
|
53
|
+
"pine": "#5CC9A8",
|
|
54
|
+
"tomato": "#FF8266",
|
|
55
|
+
"sky": "#7DB3F0"
|
|
56
|
+
},
|
|
57
|
+
"derived": [
|
|
58
|
+
"--sidebar-primary",
|
|
59
|
+
"--brand",
|
|
60
|
+
"--chart-1",
|
|
61
|
+
"--ds-marker",
|
|
62
|
+
"--accent"
|
|
63
|
+
],
|
|
64
|
+
"brandNotes": "--ring y --link son pino a propósito: un foco mostaza sobre papel no llega a 3:1"
|
|
65
|
+
},
|
|
66
|
+
"radii": [
|
|
67
|
+
8,
|
|
68
|
+
12,
|
|
69
|
+
14,
|
|
70
|
+
16
|
|
71
|
+
],
|
|
72
|
+
"references": [
|
|
73
|
+
{
|
|
74
|
+
"name": "Duolingo",
|
|
75
|
+
"tookFromIt": "arista inferior que baja al pulsar",
|
|
76
|
+
"source": "fuentes de terceros"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"name": "Endorsal",
|
|
80
|
+
"tookFromIt": "rotulador bajo títulos, iconos duotono",
|
|
81
|
+
"source": "análisis en navegador"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"name": "SerpWatch",
|
|
85
|
+
"tookFromIt": "lienzo no blanco",
|
|
86
|
+
"source": "análisis en navegador"
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"status": {
|
|
90
|
+
"verified": [],
|
|
91
|
+
"approximate": [],
|
|
92
|
+
"designed": [
|
|
93
|
+
"todos los valores"
|
|
94
|
+
],
|
|
95
|
+
"pending": [
|
|
96
|
+
"piel noche con captura real",
|
|
97
|
+
"tecla menor en calendario y paginación",
|
|
98
|
+
"variante índigo"
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
"guide": "tactile.guide.md",
|
|
102
|
+
"gestures": [
|
|
103
|
+
{
|
|
104
|
+
"id": "marker",
|
|
105
|
+
"token": "--ds-marker",
|
|
106
|
+
"off": "transparent",
|
|
107
|
+
"about": "rotulador bajo los títulos",
|
|
108
|
+
"related": [
|
|
109
|
+
"--ds-marker-thickness",
|
|
110
|
+
"--ds-marker-offset"
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"id": "key-outline",
|
|
115
|
+
"token": "--ds-key-outline",
|
|
116
|
+
"about": "contorno de las teclas"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"id": "key-edge",
|
|
120
|
+
"token": "--ds-key-edge",
|
|
121
|
+
"about": "arista de las superficies"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"id": "key-shape",
|
|
125
|
+
"token": "--ds-key-edge-w",
|
|
126
|
+
"flat": "var(--ds-key-border)",
|
|
127
|
+
"about": "arista inferior de las teclas",
|
|
128
|
+
"related": [
|
|
129
|
+
"--ds-key-border",
|
|
130
|
+
"--ds-key-edge-w-sm",
|
|
131
|
+
"--ds-key-edge-w-pressed",
|
|
132
|
+
"--ds-key-press",
|
|
133
|
+
"--ds-key-press-sm",
|
|
134
|
+
"--ds-key-radius",
|
|
135
|
+
"--ds-key-radius-sm",
|
|
136
|
+
"--ds-rule-w",
|
|
137
|
+
"--ds-overlay-edge-w"
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
],
|
|
141
|
+
"a11y": {
|
|
142
|
+
"level": "AA",
|
|
143
|
+
"exceptions": []
|
|
144
|
+
},
|
|
145
|
+
"families": [
|
|
146
|
+
"choice",
|
|
147
|
+
"field",
|
|
148
|
+
"modal",
|
|
149
|
+
"floating",
|
|
150
|
+
"title",
|
|
151
|
+
"toggle",
|
|
152
|
+
"track"
|
|
153
|
+
],
|
|
154
|
+
"motion": {
|
|
155
|
+
"about": "seco y rápido, como una tecla; las piezas que aparecen rebotan un poco",
|
|
156
|
+
"durations": {
|
|
157
|
+
"fast": "80ms",
|
|
158
|
+
"base": "160ms",
|
|
159
|
+
"slow": "240ms"
|
|
160
|
+
},
|
|
161
|
+
"ease": {
|
|
162
|
+
"standard": "cubic-bezier(0.2, 0, 0, 1)",
|
|
163
|
+
"enter": "cubic-bezier(0.34, 1.4, 0.64, 1)",
|
|
164
|
+
"exit": "cubic-bezier(0.4, 0, 1, 1)"
|
|
165
|
+
},
|
|
166
|
+
"choreography": {
|
|
167
|
+
"motion-distance": "4px",
|
|
168
|
+
"motion-scale": "0.98",
|
|
169
|
+
"motion-blur": "0px",
|
|
170
|
+
"spring-bounce": "0.25",
|
|
171
|
+
"motion-stagger": "30ms",
|
|
172
|
+
"motion-press-scale": "1"
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|