Un sistema de diseño profesional construido con SvelteKit, Tailwind CSS v4 y la metodología Atomic Design.
Nota: Este proyecto NO utiliza Histoire ni herramientas de catálogo de componentes. Los componentes se prueban directamente en las páginas de la aplicación.
src/
├── lib/
│ ├── components/
│ │ ├── 01-atoms/ # Componentes básicos (Button, Input)
│ │ ├── 02-molecules/ # Composiciones de átomos (SearchForm)
│ │ ├── 03-organisms/ # Secciones complejas (Header, Footer)
│ │ └── 04-templates/ # Estructuras de página (ArticleLayout)
│ ├── utils/
│ │ └── cva.ts # Helper para variantes de componentes
│ └── stores/
│ └── theme.ts # Store para gestión de tema
├── routes/ # Páginas de SvelteKit
└── app.css # Tokens de diseño y estilos globales
El sistema utiliza una arquitectura de dos niveles:
Valores brutos e inmutables (colores, espaciado, tipografía).
Tokens que consumen los componentes (ej. bg-primary, text-text-default).
El modo oscuro se implementa redefiniendo únicamente los tokens semánticos.
# Instalar dependencias
pnpm install
# Iniciar servidor de desarrollo
pnpm dev
# Construir para producción
pnpm build
<script>
import { Button, Input } from '$lib/components/01-atoms';
</script>
<Button intent="primary" size="md">Click me</Button>
<Input placeholder="Escribe algo..." variant="default" />
<script>
import { SearchForm } from '$lib/components/02-molecules';
import { Input } from '$lib/components/01-atoms';
</script>
<SearchForm>
<Input type="search" placeholder="Buscar..." />
</SearchForm>
<script>
import { Header } from '$lib/components/03-organisms';
</script>
<Header>
<svelte:fragment slot="logo">
<a href="/">Logo</a>
</svelte:fragment>
<svelte:fragment slot="navigation">
<nav>...</nav>
</svelte:fragment>
</Header>
El proyecto incluye configuración para desarrollo asistido por IA:
.cursor/mcp.json - Conecta con la documentación oficial de Svelte.cursorrules - Reglas específicas del proyecto para la IAConsulta la guía completa en docs/Guia Svelte-AtomicDesign.md para entender la arquitectura completa del sistema.
pnpm dev - Servidor de desarrollopnpm build - Construir para producciónpnpm preview - Previsualizar build de producciónpnpm check - Verificar tipos con svelte-checkEl modo oscuro se gestiona mediante el store de tema:
<script>
import { toggleTheme, theme } from '$lib/stores/theme';
</script>
<button on:click={toggleTheme}>
{$theme === 'dark' ? '☀️' : '🌙'}
</button>
MIT