create-lexy 0.6.2 → 0.6.3
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 +7 -2
- package/assets/fonts/{OFL-NotoSans.txt → LICENSE-Geist.txt} +4 -5
- package/assets/fonts/geist-mono-variable-italic.woff2 +0 -0
- package/assets/fonts/geist-mono-variable.woff2 +0 -0
- package/assets/fonts/geist-sans-variable-italic.woff2 +0 -0
- package/assets/fonts/geist-sans-variable.woff2 +0 -0
- package/assets/r/accordion.json +3 -3
- package/assets/r/alert-dialog.json +3 -3
- package/assets/r/app-accordion.json +1 -1
- package/assets/r/app-dialog.json +3 -3
- package/assets/r/app-header-bar.json +2 -2
- package/assets/r/app-sidebar.json +2 -2
- package/assets/r/avatar.json +3 -3
- package/assets/r/badge.json +3 -3
- package/assets/r/brand-background.json +1 -1
- package/assets/r/breadcrumb.json +3 -3
- package/assets/r/button-group.json +3 -3
- package/assets/r/button.json +3 -3
- package/assets/r/calendar.json +2 -2
- package/assets/r/card.json +3 -3
- package/assets/r/chart.json +2 -2
- package/assets/r/checkbox.json +2 -2
- package/assets/r/combobox.json +3 -3
- package/assets/r/command.json +3 -3
- package/assets/r/confirmacion.json +1 -1
- package/assets/r/counter-badge.json +3 -3
- package/assets/r/crm-desk.json +1 -1
- package/assets/r/crm-detalle-caso.json +5 -5
- package/assets/r/date-picker.json +1 -1
- package/assets/r/dialog.json +3 -3
- package/assets/r/dropdown-menu.json +3 -3
- package/assets/r/empty.json +2 -2
- package/assets/r/feature-card.json +3 -3
- package/assets/r/form.json +3 -3
- package/assets/r/header-bar.json +2 -2
- package/assets/r/input.json +3 -3
- package/assets/r/intake-wizard.json +1 -1
- package/assets/r/label.json +3 -3
- package/assets/r/logo.json +2 -2
- package/assets/r/menubar.json +3 -3
- package/assets/r/navigation-menu.json +3 -3
- package/assets/r/pagination.json +2 -2
- package/assets/r/popover.json +3 -3
- package/assets/r/profile-card.json +3 -3
- package/assets/r/progress.json +2 -2
- package/assets/r/radio-group.json +2 -2
- package/assets/r/registry.json +47 -47
- package/assets/r/scroll-area.json +2 -2
- package/assets/r/searchbox.json +3 -3
- package/assets/r/select.json +3 -3
- package/assets/r/separator.json +2 -2
- package/assets/r/sheet.json +2 -2
- package/assets/r/sidebar.json +3 -3
- package/assets/r/skeleton.json +2 -2
- package/assets/r/slider.json +3 -3
- package/assets/r/snippet.json +3 -3
- package/assets/r/spinner.json +2 -2
- package/assets/r/status-dot.json +3 -3
- package/assets/r/switch.json +3 -3
- package/assets/r/table.json +3 -3
- package/assets/r/tabs.json +3 -3
- package/assets/r/tag.json +3 -3
- package/assets/r/textarea.json +3 -3
- package/assets/r/toaster.json +3 -3
- package/assets/r/tooltip.json +3 -3
- package/assets/r/tree.json +3 -3
- package/assets/registry-version +1 -1
- package/assets/theme/lexy-theme.css +562 -112
- package/dist/index.js +97 -91
- package/package.json +4 -2
- package/templates/.claude/skills/lexy-design/SKILL.md +189 -0
- package/templates/.claude/skills/lexy-dev/SKILL.md +168 -0
- package/templates/.claude/skills/lexy-mock-data/SKILL.md +50 -0
- package/templates/.github/copilot-instructions.md +50 -0
- package/templates/.mcp.json +8 -0
- package/templates/AGENTS.md +243 -0
- package/templates/CLAUDE.md +61 -0
- package/templates/ai/IMPLEMENTATION-PROTOCOL.md +148 -0
- package/templates/ai/PRODUCTION-CLEANUP.md +17 -0
- package/templates/ai/PROJECT-CONTEXT.md +65 -0
- package/templates/ai/README.md +19 -0
- package/templates/ai/TECHNICAL-USAGE.md +220 -0
- package/templates/ai/pautas/arquitectura-informacion-ux.md +243 -0
- package/templates/ai/pautas/buenas-practicas.md +236 -0
- package/templates/ai/pautas/calidad-industria.md +109 -0
- package/templates/ai/pautas/diseno-cliente.md +136 -0
- package/templates/ai/pautas/diseno-crm-lexy.md +109 -0
- package/templates/ai/pautas/patrones-de-codigo.md +234 -0
- package/templates/ai/pautas/recetas-layout.md +419 -0
- package/templates/ai/pautas/sistema-visual.md +197 -0
- package/templates/ai/pautas/ux-writing.md +214 -0
- package/templates/scripts/check-geometry.mjs +139 -0
- package/assets/fonts/noto-sans-latin.woff2 +0 -0
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# Buenas prácticas de implementación Lexy
|
|
2
|
+
|
|
3
|
+
Reglas de oficio accionables: cuándo usar qué componente, cómo armar formularios,
|
|
4
|
+
qué estados son obligatorios y qué anti-patrones evitar. Heredan principios de
|
|
5
|
+
Fluent, Material y Apple HIG, aterrizados al registry Lexy y a React.
|
|
6
|
+
|
|
7
|
+
Esto responde *cuándo y cómo*. Para *valores* (espaciado, color, densidad) usa
|
|
8
|
+
[sistema-visual.md](sistema-visual.md); para *layouts completos* usa [recetas-layout.md](recetas-layout.md).
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 1. Elegir el componente correcto
|
|
13
|
+
|
|
14
|
+
- **`Card` vs continuidad.** Usa `Card` para agrupar contenido independiente que se
|
|
15
|
+
consulta como unidad (un resumen, un item de lista). **No** envuelvas cada sección
|
|
16
|
+
de un formulario en una card: rompe la continuidad de lectura. En CRM, prefiere
|
|
17
|
+
superficie plana y tablas antes que muchas cards compitiendo.
|
|
18
|
+
- **`Dialog` vs `Sheet` vs página.**
|
|
19
|
+
- `Dialog`: confirmación o tarea corta y focal que no debe perder el contexto detrás.
|
|
20
|
+
- `Sheet`: panel lateral para detalle o edición sin abandonar la lista (típico CRM).
|
|
21
|
+
- Página: flujos largos, multi-paso o que merecen URL propia. No metas un wizard
|
|
22
|
+
completo en un dialog.
|
|
23
|
+
- **Tabla vs lista.** Tabla cuando comparas registros por las mismas columnas
|
|
24
|
+
(escaneo en diagonal, CRM). Lista cuando cada item es heterogéneo o se lee como
|
|
25
|
+
bloque. No uses tabla para dos campos; no uses cards para 200 filas.
|
|
26
|
+
- **`Tabs` vs secciones.** Tabs para categorías pares que no se necesitan ver a la
|
|
27
|
+
vez. Si el usuario debe comparar o leer todo en orden, usa secciones apiladas.
|
|
28
|
+
- **Botones.** `default` = acción primaria (una sola por vista/sección),
|
|
29
|
+
`secondary`/`outline` = secundarias, `ghost` = terciarias o de baja jerarquía,
|
|
30
|
+
`link` = navegación inline, `destructive` = solo acciones que borran o revierten.
|
|
31
|
+
- **Data-driven antes que primitivas.** Para sidebar, header, diálogo estándar y
|
|
32
|
+
acordeón usa `AppSidebar`, `AppHeaderBar`, `AppDialog` y `AppAccordion` (les
|
|
33
|
+
pasas datos y componen solos); para una app interna completa parte de
|
|
34
|
+
`SidebarProvider` + `AppSidebar` + `SidebarInset` (receta 7). Las primitivas
|
|
35
|
+
(`Sidebar`, `HeaderBar`, `Dialog`, `Accordion`) quedan para composiciones a
|
|
36
|
+
medida que el wrapper no cubre.
|
|
37
|
+
- **Listas largas.** Usa `Pagination` antes de renderizar cientos de filas o
|
|
38
|
+
cortar la lista arbitrariamente. `ScrollArea` es para desborde controlado de
|
|
39
|
+
paneles internos (no reemplaza el scroll de página ni la paginación).
|
|
40
|
+
- **Fechas.** Campo de fecha en formulario = `DatePicker`; selección visual de
|
|
41
|
+
rango o navegación por mes = `Calendar` directo.
|
|
42
|
+
- **`Separator` solo cuando es estrictamente necesario.** Prefiere el espaciado y la
|
|
43
|
+
agrupación (grid 8pt, fondos `card`, encabezados) para separar; el divisor es el
|
|
44
|
+
último recurso, no el primero. Úsalo únicamente para un corte jerárquico real
|
|
45
|
+
(p. ej. entre secciones de un menú o grupos de acciones), nunca entre cada
|
|
46
|
+
elemento de una lista ni para decorar. Por defecto, **no agregues divisores**: si
|
|
47
|
+
el layout se entiende sin ellos, déjalo sin ellos.
|
|
48
|
+
|
|
49
|
+
## 2. Formularios
|
|
50
|
+
|
|
51
|
+
- **`Label` siempre**, asociado con `htmlFor`/`id`. El placeholder **no** reemplaza al
|
|
52
|
+
label: es un ejemplo o instrucción de acción.
|
|
53
|
+
- **Una columna por defecto.** Empareja campos (`grid grid-cols-2`) solo si se
|
|
54
|
+
responden juntos y ayuda a escanear (ej. ciudad/región).
|
|
55
|
+
- **Agrupa con `fieldset`/`legend`** los campos de una misma decisión. El `legend`
|
|
56
|
+
puede ir `sr-only` si el título visible ya lo cubre.
|
|
57
|
+
- **Validación en el momento correcto:** valida al salir del campo (`onBlur`) o al
|
|
58
|
+
enviar, no en cada tecla. El error va **junto al campo**, dice qué pasó y cómo
|
|
59
|
+
corregir, en tono neutro (ver [ux-writing.md](ux-writing.md)).
|
|
60
|
+
- **Estados del control:** marca inválido con `aria-invalid` (el `Input` ya lo
|
|
61
|
+
estiliza), deshabilita con motivo, y en envío usa estado `loading` en el botón sin
|
|
62
|
+
bloquear toda la pantalla.
|
|
63
|
+
- **Obligatorios:** indícalos de forma consistente y accesible, no solo con un
|
|
64
|
+
asterisco suelto. Orden de tabulación = orden visual y de lectura.
|
|
65
|
+
- **No pierdas trabajo:** confirma antes de descartar cambios; preserva lo escrito
|
|
66
|
+
ante un error de red.
|
|
67
|
+
|
|
68
|
+
## 3. Estados obligatorios (regla, no opción)
|
|
69
|
+
|
|
70
|
+
Toda vista que depende de datos resuelve **los cuatro**:
|
|
71
|
+
|
|
72
|
+
1. **Loading** — `Skeleton` con la forma del contenido real cuando el layout es
|
|
73
|
+
conocido; `Spinner` solo para esperas puntuales sin layout (acción de botón,
|
|
74
|
+
envío). Marca `aria-busy`/`aria-live`.
|
|
75
|
+
2. **Empty** — usa el componente `Empty` (título + descripción + acción): explica
|
|
76
|
+
por qué está vacío y ofrece la acción de salida (ej. «Crear primer caso»). Un
|
|
77
|
+
vacío sin acción es un callejón.
|
|
78
|
+
3. **Error** — di qué falló y ofrece reintentar; no escondas el error ni muestres
|
|
79
|
+
datos a medias.
|
|
80
|
+
4. **Contenido** — el estado normal.
|
|
81
|
+
|
|
82
|
+
Éxito puntual (guardado, envío) → `Toast` con el siguiente paso, no un estado de
|
|
83
|
+
página. Ver receta 6 en [recetas-layout.md](recetas-layout.md).
|
|
84
|
+
|
|
85
|
+
## 4. Feedback y motion
|
|
86
|
+
|
|
87
|
+
- **Feedback inmediato.** Toda acción confirma su resultado: cambio de estado,
|
|
88
|
+
toast, o transición. Nunca dejes al usuario sin saber si algo pasó.
|
|
89
|
+
- **No bloquees sin progreso.** Operación > ~400 ms muestra loading (botón, skeleton
|
|
90
|
+
o barra). Para listas, prefiere optimistic UI solo si puedes revertir con claridad.
|
|
91
|
+
- **Motion corto y con propósito** (120–200 ms, sobre `opacity`/`transform`) y
|
|
92
|
+
respeta `prefers-reduced-motion`. Detalles en [sistema-visual.md](sistema-visual.md). El movimiento
|
|
93
|
+
nunca es la única señal de un cambio.
|
|
94
|
+
|
|
95
|
+
## 5. Densidad y responsive
|
|
96
|
+
|
|
97
|
+
- **Móvil primero en cliente; desktop primero en CRM** (el trabajo intensivo vive en
|
|
98
|
+
pantallas grandes), pero ambos deben degradar con dignidad.
|
|
99
|
+
- **Qué colapsa:** en móvil, tablas densas pasan a lista o scroll horizontal
|
|
100
|
+
controlado; toolbars apilan; sidebars se vuelven `Sheet`. No escondas acciones
|
|
101
|
+
frecuentes, esconde detalle secundario.
|
|
102
|
+
- **Target táctil mínimo** ~44×44 px en superficies touch: usa `size='default'`
|
|
103
|
+
(`h-10`) en cliente; reserva `sm` para toolbars de CRM con mouse.
|
|
104
|
+
- **Texto fluido:** no fijes alturas que rompan con texto más largo o zoom; respeta
|
|
105
|
+
reflow hasta 200%.
|
|
106
|
+
|
|
107
|
+
## 6. React y código
|
|
108
|
+
|
|
109
|
+
- **Composición sobre props booleanas.** Prefiere componer (`Card` + contenido) antes
|
|
110
|
+
que un mega-componente con diez flags. Si acumulas `isX`, `hasY`, `showZ`, divide.
|
|
111
|
+
- **Respeta la API del registry.** Usa las variantes que expone el componente
|
|
112
|
+
(`variant`, `size`, `tone`); no sobreescribas su estructura con `className` que
|
|
113
|
+
rompa su comportamiento. Extiende vía `className` con `cn()`, no clonando estilos.
|
|
114
|
+
- **No reinventes lo que existe.** Antes de crear un control, busca en
|
|
115
|
+
`lexy-ai-manifest.json`. Si falta, créalo siguiendo los patrones del proyecto.
|
|
116
|
+
- **`cn()` para clases condicionales**, nunca concatenación de strings con template
|
|
117
|
+
literals sueltos.
|
|
118
|
+
- **Keys estables** en listas (id real, no índice cuando el orden cambia).
|
|
119
|
+
- **Sin estado derivado.** No guardes en estado lo que puedes calcular en render;
|
|
120
|
+
evita efectos que solo sincronizan props con estado.
|
|
121
|
+
- **Accesibilidad en el código:** HTML semántico, un `main`, landmarks, headings sin
|
|
122
|
+
saltos, foco visible, `aria-label` en botones solo-icono. Ver
|
|
123
|
+
[arquitectura-informacion-ux.md](arquitectura-informacion-ux.md).
|
|
124
|
+
|
|
125
|
+
## 7. Convenciones de código (biblia front-end)
|
|
126
|
+
|
|
127
|
+
### Arquitectura del proyecto
|
|
128
|
+
|
|
129
|
+
La arquitectura no se elige por gusto técnico sino por la **forma del producto**
|
|
130
|
+
(el mismo criterio que usa la TUI de `create-lexy`, en `projectShape.ts`):
|
|
131
|
+
|
|
132
|
+
| Forma del producto | Arquitectura | Router |
|
|
133
|
+
|---|---|---|
|
|
134
|
+
| Una pantalla o flujo corto (landing, formulario, demo) | **layered** (`src/components`, `src/views`…) | sin router |
|
|
135
|
+
| Una app con secciones y navegación (dashboard, listados, detalle) | **feature** (`src/features`, `src/app`…) | **react-router** |
|
|
136
|
+
|
|
137
|
+
- En **feature**, la navegación entre vistas se hace con `react-router` (ya
|
|
138
|
+
viene instalado): el `App` monta `<Routes>` y cada vista nueva es un `<Route>`.
|
|
139
|
+
La app se envuelve en `<BrowserRouter>` en `main.tsx`.
|
|
140
|
+
- En **layered** no hay router: una sola pantalla o un flujo corto sin URLs
|
|
141
|
+
propias. Si el proyecto crece a varias secciones, esa es la señal para haber
|
|
142
|
+
partido en feature.
|
|
143
|
+
- **React Compiler** está activo en ambos (memoización automática vía babel en
|
|
144
|
+
`vite.config.ts`): no agregues `useMemo`/`useCallback` defensivos: confía en el
|
|
145
|
+
compilador y reserva la memoización manual para casos medidos.
|
|
146
|
+
|
|
147
|
+
### Nomenclatura
|
|
148
|
+
|
|
149
|
+
| Qué | Convención | Ejemplo |
|
|
150
|
+
|---|---|---|
|
|
151
|
+
| Componentes y vistas | PascalCase | `Button.tsx`, `CasosDesk.tsx` |
|
|
152
|
+
| Hooks | `useX.ts` (camelCase con prefijo `use`) | `useCasos.ts`, `useIsMobile.ts` |
|
|
153
|
+
| Servicios y utils | kebab-case | `casos-service.ts`, `format-rut.ts` |
|
|
154
|
+
| Tipos (archivos) | kebab-case | `caso.types.ts`, `api-types.ts` |
|
|
155
|
+
| Variables y funciones | camelCase | `casosActivos`, `formatearPlazo()` |
|
|
156
|
+
| Borde back→front | `snake_case → camelCase` al recibir | `fecha_limite` → `fechaLimite` |
|
|
157
|
+
|
|
158
|
+
El mapeo `snake_case → camelCase` ocurre **una vez, en el borde** (el servicio que
|
|
159
|
+
consume la API); del servicio hacia adentro todo el front habla camelCase. No
|
|
160
|
+
dejes que el deletreo del backend se filtre a componentes o vistas.
|
|
161
|
+
|
|
162
|
+
### Estado global
|
|
163
|
+
|
|
164
|
+
- **Zustand es el estándar por defecto** para estado global (stores chicos,
|
|
165
|
+
selectores, sin boilerplate).
|
|
166
|
+
- **Jotai** solo para casos genuinamente atómicos (muchas piezas de estado
|
|
167
|
+
independientes y derivadas).
|
|
168
|
+
- **Redux** solo en escenarios complejos o legacy que ya lo usan; no para empezar.
|
|
169
|
+
- **No uses Context API para estado global.** Context es para inyección de
|
|
170
|
+
dependencias de bajo cambio (tema, locale, usuario autenticado); como store
|
|
171
|
+
re-renderiza árboles completos y no escala.
|
|
172
|
+
- Antes de subir algo a un store global pregunta: ¿de verdad lo comparten vistas
|
|
173
|
+
lejanas? El estado local (`useState`) y el de URL siguen siendo lo primero.
|
|
174
|
+
|
|
175
|
+
### Validación
|
|
176
|
+
|
|
177
|
+
- **Zod es mandatorio en formularios**: el schema valida y **`z.infer` es la única
|
|
178
|
+
fuente de verdad del tipado** — no declares a mano un tipo que duplica el schema.
|
|
179
|
+
- El componente `Form` del registry ya integra react-hook-form + zodResolver:
|
|
180
|
+
instálalo con `create-lexy add form` (trae `zod` y `@hookform/resolvers`).
|
|
181
|
+
- Los mensajes de error viven en el schema, en español neutro que dice cómo
|
|
182
|
+
corregir (ver [ux-writing.md](ux-writing.md)).
|
|
183
|
+
- El mismo criterio aplica al borde back→front: si parseas respuestas de API,
|
|
184
|
+
valida con zod y deriva el tipo con `z.infer`.
|
|
185
|
+
|
|
186
|
+
### Barrels (index.ts)
|
|
187
|
+
|
|
188
|
+
- **Solo como API pública de una feature hacia afuera**: `features/casos/index.ts`
|
|
189
|
+
exporta lo que otras features pueden consumir.
|
|
190
|
+
- **Dentro de una feature, imports directos al archivo hermano**
|
|
191
|
+
(`./casos-service`, `./CasoCard`) — nunca a través del barrel propio (ciclos,
|
|
192
|
+
bundles inflados, jumps de navegación).
|
|
193
|
+
- En arquitectura layer no hay barrels: se importa directo del archivo
|
|
194
|
+
(`@/components/base/Button`).
|
|
195
|
+
|
|
196
|
+
## 8. Performance percibida
|
|
197
|
+
|
|
198
|
+
- **Lazy de vistas pesadas** (`React.lazy` + `Suspense`) con un fallback que respete
|
|
199
|
+
el layout, no un salto en blanco.
|
|
200
|
+
- **Sin layout shift:** reserva espacio para imágenes (`width`/`height` o aspect),
|
|
201
|
+
skeletons del tamaño final, y evita que el contenido «salte» al cargar.
|
|
202
|
+
- **Listas largas:** pagina o virtualiza antes de renderizar miles de filas.
|
|
203
|
+
|
|
204
|
+
## 9. Anti-patrones Lexy (lista negra)
|
|
205
|
+
|
|
206
|
+
No hagas esto, aunque «se vea bien»:
|
|
207
|
+
|
|
208
|
+
- **Eyebrow decorativo** (`PASO 1`, `CLIENTE`, `LEGAL TECH`) que repite el título o
|
|
209
|
+
solo adorna. Solo si comunica estado, ubicación real o categoría que cambia la decisión.
|
|
210
|
+
- **Hero comercial en un intake o formulario.** Una ficha no es una landing.
|
|
211
|
+
- **Card envolviendo cada sección** de un formulario o cada fila de una tabla.
|
|
212
|
+
- **Color como único signo de estado.** Siempre acompaña con texto o icono.
|
|
213
|
+
- **Title Case** en UI. Usa sentence case (mayúscula solo inicial).
|
|
214
|
+
- **«¿Estás seguro?»** sin explicar la consecuencia concreta y cómo deshacer.
|
|
215
|
+
- **Emoji** en la interfaz: no son parte de la identidad Lexy.
|
|
216
|
+
- **Densidad sin jerarquía** en CRM: meter datos sin alineación ni agrupación no es
|
|
217
|
+
eficiencia, es ruido.
|
|
218
|
+
- **Aire de cliente en una herramienta de trabajo** (y viceversa): confundir los dos
|
|
219
|
+
mundos es el error más grave.
|
|
220
|
+
- **Esconder con progressive disclosure** costos, riesgos, plazos, errores
|
|
221
|
+
bloqueantes o próximos pasos.
|
|
222
|
+
- **Context API como store global** o tipos duplicando un schema de zod a mano:
|
|
223
|
+
van contra las convenciones de la sección 7.
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## Checklist antes de entregar
|
|
228
|
+
|
|
229
|
+
1. ¿El componente elegido es el correcto para la tarea (no card por defecto)?
|
|
230
|
+
2. ¿Una sola acción primaria por vista/sección?
|
|
231
|
+
3. ¿Formularios con `Label`, error junto al campo y orden de tab correcto?
|
|
232
|
+
4. ¿Resolviste loading, empty, error y contenido?
|
|
233
|
+
5. ¿Hay feedback de toda acción y nada bloquea sin progreso?
|
|
234
|
+
6. ¿Responsive: colapsa detalle, no acciones frecuentes; target táctil suficiente?
|
|
235
|
+
7. ¿Código accesible, semántico y respetando la API del registry?
|
|
236
|
+
8. ¿Ningún anti-patrón de la lista negra?
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Calidad nivel industria — el pase anti-genérico
|
|
2
|
+
|
|
3
|
+
Esta pauta define la **vara de calidad** de una interfaz Lexy: qué separa una
|
|
4
|
+
pantalla con oficio de una pantalla "generada por IA". Úsala en dos momentos:
|
|
5
|
+
al **elegir el patrón** (antes de componer) y como **pase final** antes de
|
|
6
|
+
entregar. Los valores concretos viven en [sistema-visual.md](sistema-visual.md);
|
|
7
|
+
las reglas de oficio en [buenas-practicas.md](buenas-practicas.md). Esto es el
|
|
8
|
+
criterio de revisión.
|
|
9
|
+
|
|
10
|
+
## La referencia mental correcta
|
|
11
|
+
|
|
12
|
+
Antes de componer, pregúntate a qué se parecería esta pantalla en un producto
|
|
13
|
+
de primer nivel del mismo dominio:
|
|
14
|
+
|
|
15
|
+
- **CRM / herramientas internas:** Linear, Stripe Dashboard, Notion, Attio,
|
|
16
|
+
Height. Superficies planas, tablas serias, toolbars compactas, color
|
|
17
|
+
funcional, cero decoración.
|
|
18
|
+
- **Cliente en momento difícil:** GOV.UK, bancos digitales serios, portales de
|
|
19
|
+
salud bien diseñados. Una idea por pantalla, lenguaje directo, cero pirotecnia.
|
|
20
|
+
|
|
21
|
+
Si tu composición no podría vivir en uno de esos productos, todavía no está al
|
|
22
|
+
nivel. "Bonita" no es el estándar; **creíble como producto real** lo es.
|
|
23
|
+
|
|
24
|
+
## Señales de interfaz genérica (si aparece una, corrígela)
|
|
25
|
+
|
|
26
|
+
Estas son las marcas típicas de UI generada sin criterio. Ninguna pasa el pase
|
|
27
|
+
final:
|
|
28
|
+
|
|
29
|
+
1. **Hero + tres cards** para algo que no es una landing. Un intake, un desk o
|
|
30
|
+
un formulario no abren con claim emocional ni grid de features.
|
|
31
|
+
2. **Todo centrado.** El centrado es para momentos puntuales (confirmación,
|
|
32
|
+
login). El trabajo real se alinea a la izquierda y a una grilla.
|
|
33
|
+
3. **Stat-cards por defecto.** Cuatro tarjetas de métricas arriba de un
|
|
34
|
+
dashboard que nadie pidió. Las métricas entran solo si alguien decide algo
|
|
35
|
+
con ellas.
|
|
36
|
+
4. **Cards uniformes para todo.** Grid de tarjetas idénticas como solución
|
|
37
|
+
universal de layout. La tabla, la lista y la superficie plana existen.
|
|
38
|
+
5. **Iconos decorativos** en cada título de sección, ilustraciones genéricas,
|
|
39
|
+
emoji. Lexy no decora; cada icono se gana su lugar.
|
|
40
|
+
6. **Gradientes y sombras dramáticas** donde el sistema pide superficie y borde.
|
|
41
|
+
7. **Datos de relleno irreales:** "John Doe", "Lorem ipsum", "Empresa S.A.",
|
|
42
|
+
métricas redondas (100%, 1.000). Delatan demo y impiden evaluar la
|
|
43
|
+
jerarquía real.
|
|
44
|
+
8. **Copy de folleto:** "Bienvenido a tu plataforma integral de gestión legal".
|
|
45
|
+
El título dice la tarea, no el pitch (ver [ux-writing.md](ux-writing.md)).
|
|
46
|
+
9. **Estados ausentes:** solo se diseñó el caso feliz con datos perfectos, sin
|
|
47
|
+
carga, vacío ni error.
|
|
48
|
+
10. **Simetría forzada:** rellenar columnas o cards para que "se vea parejo".
|
|
49
|
+
La jerarquía manda; el relleno es ruido.
|
|
50
|
+
|
|
51
|
+
## Cómo se ve el oficio
|
|
52
|
+
|
|
53
|
+
Lo que hace que una pantalla se sienta producto real:
|
|
54
|
+
|
|
55
|
+
- **Un punto focal.** En cada vista se puede decir en una frase qué es lo más
|
|
56
|
+
importante, y la composición lo confirma sin leer.
|
|
57
|
+
- **Ritmo de espaciado consistente.** El mismo gap para el mismo tipo de
|
|
58
|
+
relación, en toda la pantalla (grid 8pt; ver
|
|
59
|
+
[sistema-visual.md](sistema-visual.md)). El desorden de espaciado es lo
|
|
60
|
+
primero que delata falta de oficio.
|
|
61
|
+
- **Alineación impecable.** Labels, celdas, botones y bordes comparten ejes.
|
|
62
|
+
Una sola columna desalineada rompe la credibilidad de toda la vista.
|
|
63
|
+
- **Color con disciplina.** Neutros para la estructura, marca donde dirige la
|
|
64
|
+
mirada, tonos de estado solo para estado. Si una pantalla tiene más de un
|
|
65
|
+
acento compitiendo, sobra uno.
|
|
66
|
+
- **Datos de ejemplo realistas del dominio:** nombres chilenos, RUT con
|
|
67
|
+
formato (`12.345.678-9`), materias reales (despido, deuda, error médico),
|
|
68
|
+
plazos concretos («Vence en 3 días»), montos verosímiles ($1.250.000). El
|
|
69
|
+
contenido realista obliga a resolver truncamiento, columnas y jerarquía de
|
|
70
|
+
verdad.
|
|
71
|
+
- **Los cuatro estados resueltos** (carga, vacío, error, contenido) con los
|
|
72
|
+
componentes del sistema: `Skeleton`/`Spinner`, `Empty`, mensaje de error con
|
|
73
|
+
reintento.
|
|
74
|
+
- **Microcopy específico.** Cada botón dice su resultado concreto; cada estado
|
|
75
|
+
dice qué hacer después. Texto genérico = diseño genérico.
|
|
76
|
+
|
|
77
|
+
## Patrón reconocible antes que layout inventado
|
|
78
|
+
|
|
79
|
+
Para cada tipo de encargo existe un patrón que la industria ya validó. Parte
|
|
80
|
+
de ahí y vístelo de Lexy; no inventes la mecánica:
|
|
81
|
+
|
|
82
|
+
| Encargo | Patrón de partida | Receta |
|
|
83
|
+
|---|---|---|
|
|
84
|
+
| Lista operativa de registros | Toolbar + tabla densa + paginación | [recetas-layout.md](recetas-layout.md) §4 |
|
|
85
|
+
| Trabajo sobre un registro | Master-detail (contexto + tabs de trabajo) | [recetas-layout.md](recetas-layout.md) §5 |
|
|
86
|
+
| Captura de datos cliente | Wizard de pasos enfocados con progreso | [recetas-layout.md](recetas-layout.md) §1 |
|
|
87
|
+
| App interna completa | Sidebar colapsable + área de trabajo (`SidebarProvider`, `AppSidebar`, `SidebarInset`) | [recetas-layout.md](recetas-layout.md) §7 |
|
|
88
|
+
| Acceso | Card única centrada | [recetas-layout.md](recetas-layout.md) §3 |
|
|
89
|
+
| Confirmación / éxito | Mensaje + qué sigue + una salida | [recetas-layout.md](recetas-layout.md) §2 |
|
|
90
|
+
|
|
91
|
+
Si el encargo trae referencia visual o Figma, **la referencia manda** sobre
|
|
92
|
+
esta tabla (ver [arquitectura-informacion-ux.md](arquitectura-informacion-ux.md)).
|
|
93
|
+
|
|
94
|
+
## El pase final (antes de entregar, siempre)
|
|
95
|
+
|
|
96
|
+
Recorre la pantalla terminada una vez con estas preguntas. Si alguna falla,
|
|
97
|
+
corrige antes de mostrar:
|
|
98
|
+
|
|
99
|
+
1. ¿Podría esta pantalla vivir en un producto de primer nivel del mismo
|
|
100
|
+
dominio sin desentonar?
|
|
101
|
+
2. ¿Hay alguna señal de la lista de genéricos (hero indebido, cards de
|
|
102
|
+
relleno, iconos decorativos, datos falsos, copy de folleto)?
|
|
103
|
+
3. ¿El espaciado tiene un ritmo consistente y todo comparte ejes de alineación?
|
|
104
|
+
4. ¿La densidad corresponde al mundo (aire en cliente, compacto jerarquizado
|
|
105
|
+
en CRM)?
|
|
106
|
+
5. ¿Los datos de ejemplo son realistas y del dominio legal chileno?
|
|
107
|
+
6. ¿Están los cuatro estados y el microcopy dice siempre el siguiente paso?
|
|
108
|
+
7. Si quito un elemento cualquiera, ¿se pierde algo? Si no, quítalo
|
|
109
|
+
(«menos, pero mejor»).
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Lexy — Filosofía de Diseño
|
|
2
|
+
|
|
3
|
+
> Hacemos fácil lo legal.
|
|
4
|
+
|
|
5
|
+
Este documento no contiene tokens, colores ni medidas. Es la brújula. Si alguna vez no sabes qué decisión tomar, vuelve aquí: describe *cómo se siente* Lexy, no *cómo se construye*. Las especificaciones técnicas viven en otro lugar; esto vive en el criterio.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Quiénes somos cuando diseñamos
|
|
10
|
+
|
|
11
|
+
Lexy existe para una persona que está, casi siempre, en un mal momento: la despidieron, la está ahogando una deuda, un error médico le cambió la vida. Llega asustada, desinformada y convencida de que "lo legal" es un mundo hostil hecho para dejarla afuera.
|
|
12
|
+
|
|
13
|
+
Nuestro trabajo de diseño tiene un solo propósito: **bajarle las pulsaciones**. Todo lo que diseñamos debe hacer que esa persona respire un poco más tranquila. Si una pantalla, un texto o una composición genera ansiedad, intimida o confunde, está mal diseñada — por muy bonita que sea.
|
|
14
|
+
|
|
15
|
+
No somos un estudio jurídico que se ve moderno. Somos una empresa de tecnología que resuelve problemas legales. Esa diferencia de identidad lo cambia todo: no buscamos transmitir solemnidad, prestigio ni autoridad inalcanzable. Buscamos transmitir **claridad, cercanía y control**.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 2. La sensación que perseguimos
|
|
20
|
+
|
|
21
|
+
Si tuviéramos que resumir el "feel" de Lexy en una imagen: **una conversación tranquila con alguien que sabe lo que hace y no te hace sentir tonto.**
|
|
22
|
+
|
|
23
|
+
- **Claro, no simplón.** Simplificamos lo complejo sin tratar al usuario como si no entendiera nada. Respeto e inteligencia, siempre.
|
|
24
|
+
- **Cercano, no informal.** Hablamos de tú, con calidez, pero nunca perdemos la credibilidad. Somos el abogado amigo, no el amigo que improvisa.
|
|
25
|
+
- **Moderno, no frío.** La tecnología está al servicio de la persona, no para presumir. Nada de futurismo gélido ni minimalismo que parece hospital.
|
|
26
|
+
- **Seguro, no arrogante.** Transmitimos que esto va a salir bien, sin prometer imposibles ni inflar el pecho.
|
|
27
|
+
|
|
28
|
+
Cuando dudemos del tono de algo, la pregunta es: *¿esto tranquiliza o impresiona?* Siempre elegimos tranquilizar.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 3. Principios de diseño
|
|
33
|
+
|
|
34
|
+
**1. Primero la legibilidad, después todo lo demás.**
|
|
35
|
+
Un texto que no se lee con comodidad es un fracaso, sin importar qué tan lindo se vea el fondo. La decoración nunca le gana al contenido. Si hay que elegir entre un recurso visual impactante y la claridad de un mensaje, gana el mensaje.
|
|
36
|
+
|
|
37
|
+
**2. El espacio es parte del mensaje.**
|
|
38
|
+
El aire comunica calma. Una composición apretada le grita al usuario que ya está sobrepasado. Damos respiro generoso, dejamos que las cosas respiren, no llenamos cada rincón porque sí.
|
|
39
|
+
|
|
40
|
+
**3. Una idea por pantalla.**
|
|
41
|
+
Acompañamos a la persona paso a paso. No la abrumamos con todo a la vez. Cada momento del recorrido tiene un foco claro y una sola cosa importante que hacer o entender.
|
|
42
|
+
|
|
43
|
+
**4. Menos, pero mejor.**
|
|
44
|
+
Mil "no" por cada "sí". No agregamos secciones, datos, íconos ni adornos para "rellenar" o para parecer más completos. Cada elemento se gana su lugar o no entra. Si una pantalla se siente vacía, es un problema de composición, no una invitación a meter más cosas.
|
|
45
|
+
|
|
46
|
+
**5. Consistencia que genera confianza.**
|
|
47
|
+
La persona aprende a usar Lexy una vez y confía en que va a funcionar igual siempre. La sorpresa es enemiga de la tranquilidad. Repetimos patrones, no reinventamos en cada pantalla.
|
|
48
|
+
|
|
49
|
+
**6. Honestidad visual.**
|
|
50
|
+
No escondemos costos en letra chica, no disfrazamos errores, no usamos trucos para empujar decisiones. El diseño refleja la misma transparencia que prometemos en el servicio. Si algo es malo para el usuario, no lo maquillamos.
|
|
51
|
+
|
|
52
|
+
**7. Accesibilidad por defecto.**
|
|
53
|
+
La persona puede estar estresada, cansada, con baja visión, con poca motricidad, usando el teléfono en malas condiciones o apoyándose en tecnología asistiva. Diseñamos para esas variaciones desde el inicio. Una interfaz cliente debe poder leerse con comodidad, navegarse con teclado, entenderse sin depender solo del color y corregirse sin culpa ni confusión. Los mínimos WCAG son punto de partida; la meta es que más personas puedan completar el flujo con autonomía.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 4. Patrones de interfaz cliente
|
|
58
|
+
|
|
59
|
+
### Ficha web o formulario de antecedentes
|
|
60
|
+
|
|
61
|
+
Cuando el encargo sea una ficha web, intake, formulario de antecedentes o carga de datos para revisión legal, no diseñes una landing. La pantalla debe sentirse como un trámite guiado y tranquilo, no como una página comercial.
|
|
62
|
+
|
|
63
|
+
Patrón recomendado:
|
|
64
|
+
|
|
65
|
+
- Flujo por pasos cuando la información sea extensa.
|
|
66
|
+
- Stepper visible si hay varias etapas.
|
|
67
|
+
- Una sección principal por pantalla o paso.
|
|
68
|
+
- Título directo de la tarea, por ejemplo `Datos personales`.
|
|
69
|
+
- Copy breve que explique para qué se piden los datos.
|
|
70
|
+
- Nota clara para campos obligatorios si corresponde.
|
|
71
|
+
- Formulario de ancho contenido, legible, con pares de campos solo cuando ayudan a escanear.
|
|
72
|
+
- CTA principal claro al final del paso, por ejemplo `Guardar y continuar`.
|
|
73
|
+
- Ayuda contextual o flotante cuando reduzca ansiedad sin competir con el formulario.
|
|
74
|
+
|
|
75
|
+
Evita:
|
|
76
|
+
|
|
77
|
+
- Hero grande con claim emocional.
|
|
78
|
+
- Eyebrows como `Ficha`, `Evaluación`, `Nuevo caso` si no aportan orientación.
|
|
79
|
+
- Cards envolviendo cada bloque de formulario cuando el patrón necesita continuidad.
|
|
80
|
+
- Aside explicativo o resumen lateral si el diseño de referencia no lo muestra.
|
|
81
|
+
- Iconos decorativos para cada sección.
|
|
82
|
+
- Meter todas las etapas en una sola pantalla para parecer completo.
|
|
83
|
+
|
|
84
|
+
Si una referencia de Figma muestra una ficha de un paso, respeta ese patrón: stepper, foco único, densidad, campos y CTA. No la transformes en dashboard ni en formulario completo multi-sección salvo que el encargo lo pida.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 5. Identidad visual — el espíritu, no la receta
|
|
89
|
+
|
|
90
|
+
**El isotipo es nuestra firma.** La marca tiene un símbolo propio que comunica activación, conexión y "encendido" — la chispa de poner las cosas en movimiento. Lo tratamos con respeto: tiene aire alrededor, protagonismo cuando corresponde, y nunca lo deformamos ni lo recargamos. Funciona mejor como gesto grande y seguro que como adorno pequeño y repetido sin criterio.
|
|
91
|
+
|
|
92
|
+
**Los fondos y patrones son atmósfera, no ruido.** La marca tiene un mundo gráfico propio, con texturas y patrones construidos a partir de su símbolo. Los usamos para dar identidad y profundidad — pero **siempre subordinados al contenido**. Un patrón nunca compite con un texto. Cuando hay que comunicar algo importante, el fondo se hace a un lado: se atenúa, se calma, se vuelve telón. La regla de oro: si tienes que entrecerrar los ojos para leer encima de un fondo, el fondo perdió.
|
|
93
|
+
|
|
94
|
+
**La tipografía tiene jerarquía clara.** Hay una voz para los grandes momentos — los titulares, las portadas, lo que tiene que emocionar y quedar — y otra voz para el trabajo diario — los textos largos, las interfaces, lo que tiene que leerse sin esfuerzo durante minutos. No confundimos los roles: lo expresivo para destacar, lo legible para acompañar. Mezclar mal estos registros es la forma más rápida de que algo se sienta poco profesional.
|
|
95
|
+
|
|
96
|
+
**El color tiene jerarquía emocional.** Hay un color que es la marca, que aparece donde importa y dirige la mirada. Hay tonos de apoyo que crean ambiente. Y hay colores con trabajo funcional — avisar de un éxito, una alerta, un error — que tienen que leerse como lo que son, universalmente, sin que el usuario tenga que aprender un código. Un estado de éxito se siente como éxito; una alerta se siente como alerta. Nunca sacrificamos esa claridad funcional por coherencia estética.
|
|
97
|
+
|
|
98
|
+
**Las submarcas son familia, no clones.** Lexy tiene líneas especializadas. Cada una tiene su matiz propio que la hace reconocible, pero todas pertenecen claramente a la misma casa. Se sienten hermanas: comparten estructura, tono y espíritu, y se diferencian con sutileza, no con estridencia.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 6. Voz y tono editorial
|
|
103
|
+
|
|
104
|
+
La forma en que escribimos *es* diseño. Un buen layout con mal texto es un mal producto.
|
|
105
|
+
|
|
106
|
+
**Cómo suena Lexy:**
|
|
107
|
+
|
|
108
|
+
- **Hablamos de tú.** Cercanía directa, nunca el "usted" distante y acartonado de los abogados tradicionales.
|
|
109
|
+
- **Primera persona plural.** "Hacemos", "creemos", "te acompañamos". Estamos del mismo lado de la mesa que el usuario, no enfrente.
|
|
110
|
+
- **Frases cortas y humanas.** Decimos "lo legal", no "la materia jurídica". Si una palabra técnica se puede reemplazar por una cotidiana sin perder precisión, la reemplazamos.
|
|
111
|
+
- **Primero el beneficio, después la prueba.** Abrimos con lo que la persona gana, no con nuestras credenciales ni con latinazgos.
|
|
112
|
+
- **Énfasis con intención.** Cuando queremos destacar una idea, lo hacemos en un solo gesto y sobre una sola palabra — el diferenciador, el verbo que importa. No acumulamos recursos de énfasis ni gritamos con mayúsculas y signos. Un acento bien puesto vale más que diez.
|
|
113
|
+
|
|
114
|
+
**Lo que nunca hacemos:**
|
|
115
|
+
|
|
116
|
+
- No usamos jerga legal para impresionar.
|
|
117
|
+
- No prometemos lo que no podemos cumplir.
|
|
118
|
+
- No asustamos para vender ("si no actúas ya, lo pierdes todo").
|
|
119
|
+
- No usamos emoji: no son parte de nuestra identidad y diluyen la credibilidad.
|
|
120
|
+
- No escribimos párrafos eternos donde basta una frase.
|
|
121
|
+
|
|
122
|
+
**La prueba del tono:** lee cualquier texto en voz alta imaginando que se lo dices a alguien recién llegado, asustado, sentado frente a ti. Si suena a folleto corporativo, a contrato o a robot, reescríbelo. Si suena a una persona competente y amable explicándole las cosas con calma — está listo.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## 7. Cómo tomar decisiones cuando esto no alcanza
|
|
127
|
+
|
|
128
|
+
Ningún documento cubre todos los casos. Cuando enfrentes una decisión sin respuesta obvia, pásala por estos filtros, en orden:
|
|
129
|
+
|
|
130
|
+
1. **¿Tranquiliza a una persona estresada?** Si genera ansiedad, descártalo.
|
|
131
|
+
2. **¿Se entiende sin esfuerzo?** La claridad le gana a la elegancia siempre.
|
|
132
|
+
3. **¿Es honesto?** Si esconde, presiona o engaña, no es Lexy.
|
|
133
|
+
4. **¿Se siente parte de la familia?** Coherente con todo lo demás, sin sorpresas gratuitas.
|
|
134
|
+
5. **¿Sobra?** Si lo puedes quitar y nada se pierde, quítalo.
|
|
135
|
+
|
|
136
|
+
Diseñar para Lexy es, en el fondo, un acto de empatía: ponerse en los zapatos de alguien que la está pasando mal y construirle un camino claro, cálido y sin trampas. Si cada decisión nace de ahí, el resto se ordena solo.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Lexy CRM — Filosofía de Diseño (interfaz interna)
|
|
2
|
+
|
|
3
|
+
> La interfaz existe para que el trabajo se haga fácil. Todo gira en torno a la tarea.
|
|
4
|
+
|
|
5
|
+
Este documento es la brújula para diseñar la plataforma interna de Lexy: el lugar donde los abogados y el equipo gestionan casos, ejecutan tareas, hacen seguimiento y mueven el trabajo hacia adelante. No contiene tokens, colores ni medidas — describe *cómo se siente* trabajar acá, no *cómo se construye*.
|
|
6
|
+
|
|
7
|
+
**Lee esto antes que nada:** la interfaz para clientes y la interfaz para el equipo son dos mundos distintos. La del cliente existe para *tranquilizar a alguien que la está pasando mal*. Esta existe para *que el abogado ejecute su trabajo de la forma más fácil e intuitiva posible*. No las confundas. Pero ojo: "fácil e intuitivo" no significa lento ni espaciado — significa que en cada momento la interfaz pone por delante lo que la tarea necesita, anticipa el siguiente paso y elimina la fricción. Es una herramienta orientada a la tarea, y la tarea es siempre el centro.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. Para quién diseñamos acá
|
|
12
|
+
|
|
13
|
+
El usuario es un abogado o un miembro del equipo Lexy que va a pasar **horas al día, todos los días**, dentro de esta herramienta para ejecutar tareas concretas: avanzar un caso, redactar una gestión, cumplir un plazo, hacer seguimiento. Conoce el dominio y maneja muchos casos a la vez, mientras le interrumpen constantemente.
|
|
14
|
+
|
|
15
|
+
Nuestro trabajo de diseño tiene un propósito claro: **que cada tarea sea lo más fácil e intuitiva de realizar.** Que el abogado nunca tenga que pensar *cómo* usar la herramienta, solo *qué* quiere lograr — y que la interfaz lo lleve hasta ahí sin tropiezos. Eso a veces significa anticiparle el siguiente paso, a veces poner una acción justo donde la mano la busca, a veces tener todo el contexto a la vista para que no tenga que ir a buscarlo. La interfaz hace el trabajo pesado para que la persona se concentre en el criterio, que es lo único que el software no puede poner.
|
|
16
|
+
|
|
17
|
+
Nuestro éxito no se mide en "qué linda quedó la pantalla". Se mide en **qué tan fácil y fluido le resultó al abogado hacer lo que vino a hacer.**
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. La sensación que perseguimos
|
|
22
|
+
|
|
23
|
+
Si el producto de cliente se siente como *una conversación tranquila*, esto se siente como **un buen taller de trabajo**: cada herramienta a la mano, todo a la vista, nada que estorbe entre la persona y la tarea. Ordenado, fluido y sin fricción.
|
|
24
|
+
|
|
25
|
+
- **Fácil, no simplista.** La tarea se realiza con el mínimo esfuerzo posible — pero sin esconder lo que el trabajo realmente requiere. Quitamos fricción, no capacidad.
|
|
26
|
+
- **Intuitivo, no adivinatorio.** El siguiente paso es siempre evidente. La persona no tiene que detenerse a pensar cómo se usa la herramienta; la herramienta se explica sola al ritmo de la tarea.
|
|
27
|
+
- **Eficiente, no apurado.** La velocidad nace del orden y de la anticipación, no del caos. Densidad que se entiende, no que abruma.
|
|
28
|
+
- **Predecible, no rígida.** Todo está donde la tarea lo necesita y responde al instante. Las sorpresas, acá, cuestan tiempo y errores.
|
|
29
|
+
|
|
30
|
+
La pregunta de oro cuando dudemos: *¿esto hace más fácil ejecutar la tarea, o solo se ve bien?* Si no facilita el trabajo, sobra.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 3. Principios de diseño
|
|
35
|
+
|
|
36
|
+
**1. La tarea es el centro de todo.**
|
|
37
|
+
Cada pantalla se diseña preguntando primero: ¿qué vino a hacer aquí la persona? Todo lo que ayuda a esa tarea va al frente; todo lo que no, se aparta o desaparece. No diseñamos "pantallas de información", diseñamos lugares donde se ejecuta un trabajo concreto, y los ordenamos alrededor de ese trabajo.
|
|
38
|
+
|
|
39
|
+
**2. La densidad al servicio de la tarea.**
|
|
40
|
+
Acá el espacio en blanco generoso no es calma, es scroll y clics extra. El abogado quiere ver su lista de casos, los datos clave de uno y sus próximas acciones sin tener que navegar. Mostramos más por pantalla — siempre que siga siendo legible y jerárquico, y siempre que sirva a la tarea que está ejecutando. Compactar bien es un acto de respeto por su tiempo.
|
|
41
|
+
|
|
42
|
+
**3. La información que se necesita junta, va junta.**
|
|
43
|
+
Nada de mandar al usuario a tres pantallas para juntar el contexto de una decisión. Lo que se consulta en conjunto, vive en conjunto. El trabajo fluye cuando el contexto no se fragmenta.
|
|
44
|
+
|
|
45
|
+
**4. La acción está siempre a la mano.**
|
|
46
|
+
Las tareas frecuentes se hacen en el menor número de pasos posible, idealmente sin cambiar de contexto. Acciones rápidas, edición en línea, atajos de teclado para los power users. Si algo se hace cincuenta veces al día, tiene que costar casi cero.
|
|
47
|
+
|
|
48
|
+
**5. El estado siempre es visible.**
|
|
49
|
+
El experto debe saber, sin preguntar: en qué etapa está cada caso, qué le toca hacer, qué está atrasado, qué espera de otros. El sistema le quita de la cabeza lo que el sistema puede recordar por él. La memoria de trabajo es un recurso escaso; no la gastamos en cosas que la interfaz puede sostener.
|
|
50
|
+
|
|
51
|
+
**6. Escaneabilidad sobre belleza.**
|
|
52
|
+
Una tabla densa y bien alineada que se lee en diagonal vale más que una tarjeta espaciosa y elegante. Priorizamos alineación, jerarquía visual y consistencia de formato para que el ojo encuentre lo que busca de inmediato. La estética sirve a la lectura rápida, no al revés.
|
|
53
|
+
|
|
54
|
+
**7. Cero pérdida de trabajo.**
|
|
55
|
+
Nada erosiona más la confianza de un profesional que perder lo que hizo. Guardado confiable, estados claros de "se guardó / no se guardó", confirmaciones solo donde el riesgo lo amerita, y siempre una forma de deshacer. El sistema es un colega responsable, no uno que te hace repetir trabajo.
|
|
56
|
+
|
|
57
|
+
**8. Consistencia férrea.**
|
|
58
|
+
El experto memoriza la herramienta y trabaja en piloto automático. Cada patrón que se repite igual es velocidad ganada; cada excepción es un tropiezo. Acá la consistencia importa todavía más que en el producto de cliente, porque el uso es intensivo y repetido.
|
|
59
|
+
|
|
60
|
+
**9. Accesibilidad operativa.**
|
|
61
|
+
El abogado también puede trabajar con fatiga visual, interrupciones, una mano ocupada, pantallas pequeñas, zoom alto o necesidades permanentes de accesibilidad. La densidad nunca justifica perder contraste, foco visible, navegación por teclado, labels claros o estados comprensibles. Una herramienta interna accesible reduce errores y velocidad perdida; no es una concesión, es calidad operativa.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 4. Jerarquía y densidad — el espíritu, no la receta
|
|
66
|
+
|
|
67
|
+
**El trabajo manda; la marca acompaña.** Esta es una herramienta, no una pieza de marca. La identidad de Lexy está presente, pero contenida: da pertenencia y coherencia sin robar protagonismo ni espacio. Acá los fondos decorativos, los patrones expresivos y los gestos de marca grandes **no tienen lugar** — cada pixel que ocupa decoración es un pixel que no muestra información útil. El lujo, en una herramienta de trabajo, es la sobriedad.
|
|
68
|
+
|
|
69
|
+
**Los patrones conocidos son una fuente de confianza.** Tenemos un design system propio — nuestros componentes, nuestra estética, nuestra identidad — y eso no está en discusión. Lo que no reinventamos es *cómo se comportan* las cosas: una tabla se ordena como la gente espera que se ordene, un formulario valida cuando corresponde, un menú se abre donde la mano lo busca, un botón primario pesa más que uno secundario. Nos apoyamos deliberadamente en las convenciones y guidelines de la industria — los principios de Apple HIG, Fluent Design, Material y compañía — no para copiar su apariencia, sino para heredar décadas de patrones de interacción que el abogado ya tiene internalizados. Vestimos esos patrones con la piel de Lexy; no inventamos mecánicas nuevas para problemas ya resueltos. Cuando un control se ve propio pero se comporta como la persona espera, puede apretar el botón y avanzar **sin dudar**, confiando en que la herramienta hará exactamente lo que parece que va a hacer. Esa previsibilidad — alineación impecable, coherencia entre pantallas, consistencia férrea en cómo se ven y actúan los elementos — es lo que le da la seguridad para ejecutar la tarea en piloto automático. La originalidad, acá, se reserva para resolver mejor el problema de fondo, nunca para sorprender con la mecánica de un control. Lo familiar en el comportamiento no es falta de creatividad: es respeto por la confianza del usuario.
|
|
70
|
+
|
|
71
|
+
**La jerarquía visual hace el trabajo pesado.** Con mucha información en pantalla, lo que distingue una buena interfaz de una abrumadora es la jerarquía: qué se ve primero, qué es secundario, qué está agrupado con qué. Usamos peso, tamaño, agrupación y alineación para que el ojo del experto vaya solo a lo importante. Un buen tablero denso se *siente* ordenado aunque tenga el triple de datos que una pantalla de cliente.
|
|
72
|
+
|
|
73
|
+
**El color trabaja, no decora.** En esta interfaz el color es sobre todo funcional: distinguir estados, señalar urgencias, agrupar categorías, marcar lo que requiere atención. Un caso atrasado, una tarea vencida, un hito cumplido — se reconocen al instante por su color, de forma consistente en todo el sistema. El color es un lenguaje de trabajo, no un adorno; lo usamos con disciplina para que nunca pierda significado.
|
|
74
|
+
|
|
75
|
+
**La tipografía es para leer rápido y mucho.** Acá no buscamos expresividad ni momentos memorables; buscamos que se puedan leer tablas, listas y formularios durante horas sin fatiga. Claridad, alineación impecable y una jerarquía de texto sobria y predecible. Lo expresivo se queda en el producto de cliente; acá manda lo funcional.
|
|
76
|
+
|
|
77
|
+
**Las tablas y listas son ciudadanas de primera clase.** Buena parte del trabajo vive en vistas de muchos registros. Las tratamos con el cariño que merecen: ordenables, filtrables, escaneables, con la información correcta en cada columna y acciones al alcance. Una tabla bien diseñada es, en este producto, tan importante como una buena portada lo es en el de cliente.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 5. Voz y tono editorial
|
|
82
|
+
|
|
83
|
+
El producto de cliente habla cálido y tranquilizador. Acá hablamos como **colegas eficientes entre profesionales**: directos, precisos, sin rodeos.
|
|
84
|
+
|
|
85
|
+
**Cómo suena el CRM:**
|
|
86
|
+
|
|
87
|
+
- **Preciso y breve.** Etiquetas claras, sin adornos. El experto no necesita que lo motiven con frases lindas; necesita saber qué es cada cosa de un vistazo.
|
|
88
|
+
- **Vocabulario profesional, sin miedo.** Acá sí usamos los términos del oficio — etapas procesales, tipos de gestión, nomenclatura jurídica real. El usuario los conoce y traducirlos a lenguaje simple solo lo haría más lento.
|
|
89
|
+
- **Orientado a la acción.** Los textos de botones y tareas dicen qué va a pasar, en verbos claros y concretos. Nada de ambigüedad sobre el resultado de una acción.
|
|
90
|
+
- **Sin paternalismo, pero nunca a costa de la claridad.** No explicamos de más ni celebramos cada microacción, pero sí dejamos siempre evidente qué hacer y cómo. Respetar al usuario es no hacerle perder el tiempo — jamás es dejarlo perdido.
|
|
91
|
+
|
|
92
|
+
**Los mensajes que sí importan: errores y estados.** Cuando algo sale mal o hay que confirmar algo riesgoso, somos claros y útiles: qué pasó, qué consecuencia tiene, qué puede hacer. Sin alarmismo pero sin esconder la gravedad. En una herramienta de trabajo, un buen mensaje de error vale más que diez frases motivacionales.
|
|
93
|
+
|
|
94
|
+
**La prueba del tono:** imagina que un colega abogado con experiencia lee el texto por encima del hombro. Si le suena obvio, profesional y eficiente — bien. Si le suena a que lo están tratando como novato o a que le están haciendo perder el tiempo con relleno — reescríbelo.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 6. Cómo tomar decisiones cuando esto no alcanza
|
|
99
|
+
|
|
100
|
+
Pasa cada decisión por estos filtros, en orden:
|
|
101
|
+
|
|
102
|
+
1. **¿Hace más fácil ejecutar la tarea?** Ese es el norte. Si no facilita el trabajo, sobra.
|
|
103
|
+
2. **¿El siguiente paso es evidente sin pensarlo?** Si la persona tiene que detenerse a descifrar la interfaz, falló.
|
|
104
|
+
3. **¿Muestra lo necesario sin obligar a navegar?** El contexto fragmentado es el enemigo.
|
|
105
|
+
4. **¿Es consistente con el resto?** El uso intensivo premia la repetición y castiga la excepción.
|
|
106
|
+
5. **¿Protege el trabajo del usuario?** Nada que arriesgue perder lo hecho.
|
|
107
|
+
6. **¿La decoración le está quitando espacio a la tarea?** Si sí, gana la tarea.
|
|
108
|
+
|
|
109
|
+
Diseñar el CRM de Lexy es diseñar alrededor de la tarea. El acto de empatía acá es hacerle el trabajo fácil al abogado: entender qué viene a lograr, quitarle del camino todo lo que estorba, anticiparle el siguiente paso y construirle un lugar donde ejecutar su trabajo sea simple, intuitivo y fluido — para que pueda dedicar su cabeza a lo único que importa: el caso de una persona real.
|