Workbeat Design System
Workbeat Design System
Catálogo, documentación API, ejemplos y changelog del WDS para producto, desarrollo y agentes de IA.
src/design-system en un host y mantén el título del navegador como “Workbeat”.Trae el snapshot local del DS
El DS no se instala desde npm: llega como carpeta
src/design-systemsincronizada desde el repo fuente (workbeat-ia-2.1) por el equipo de frontend. En un host esa carpeta es de sólo lectura: los cambios se piden en el repo fuente, nunca se editan localmente (rompen el sync). Para un proyecto nuevo usa la skillwds-scaffold-new-project; para reparar uno existente,wds-setup.Prerrequisitos
- React 19, Tailwind CSS v4 y alias
@/* → src/*. - Las dependencias de
src/design-system/dependencies.json(Radix, sonner, lucide-react, oidc-client-ts…). - No cargues fuentes:
styles.cssya declara WB Open Sans desde los assets del DS.
- React 19, Tailwind CSS v4 y alias
Importa los estilos
src/styles.css/* src/styles.css del host: importa el DS una sola vez */ @import "./design-system/styles.css"; /* estilos exclusivos del host (sin @layer, después del import) */Monta el provider raíz
src/Root.tsximport { WDSProvider } from "@/design-system/contexts/WDSProvider"; import { SideCanvas } from "@/design-system/components/layout/SideCanvas"; const HOST_COMPONENT_DEFAULTS = { avatar: { shape: "square" } } as const; export function Root() { return ( <WDSProvider authAdapter={authAdapter} env={runtimeEnv} componentDefaults={HOST_COMPONENT_DEFAULTS}> <App /> <SideCanvas /> </WDSProvider> ); }WDSProvidermonta auth, configuración, theme, tooltips, sitios, feature toggles, permisos, Toaster y el provider de SideCanvas. MontaSideCanvassi alguna vista abre side panels. Para sesión real, el host inyecta un WDSAuthAdapter (BFF OIDC con cookie httpOnly).Usa componentes y patrones
import { Button } from "@/design-system/components/ui/button"; import { FullTable } from "@/design-system/components/patterns/full-table"; import { useSideCanvas } from "@/design-system/hooks/useSideCanvas";Si existe un patrón para tu necesidad, es obligatorio usarlo (ver Inventario de patrones). Los datos siempre pasan por service objects (
src/services/*), también en modo mock.Themes y modo oscuro
El theme se resuelve solo (prop
theme→ claimTheme→ default). El modo oscuro lo activa el host con.darken<html>. Pruébalo en Fundamentos · Themes y modo oscuro.