Paquete npm @wendermedia/astro-components con 150 componentes, terminal y Storybook
10 min read

astro-components v2.0 — 150 Componentes en npm

#Astro #npm #Open Source #Component Library #Storybook #Design System

Hoy publiqué @wendermedia/astro-components v2.0 como paquete npm público. La librería contiene 150 componentes Astro en 17 categorías — desde herramientas de accesibilidad hasta componentes SEO y secciones de página completas. Todo construido con CSS custom properties, sin dependencias externas, compatible con RGPD.

150
Componentes
17
Categorías
549
Stories en Storybook
0
Dependencias externas

No me creas — compruébalo tú mismo

Cuando evalúas librerías de componentes, nadie quiere listas con viñetas. Quieres ver cómo lucen y se comportan los componentes realmente.

Para eso existe el Storybook en vivo: wm-astro-components.netlify.app

549 stories — cada componente con controles interactivos, diferentes estados y variantes. Verificaciones de accesibilidad integradas. Sin instalación local, sin registro. Solo abre y navega.

¿Qué incluye?

Las 17 categorías cubren todo lo necesario para un sitio web Astro completo:

Accessibility (12)

SkipLinks, FocusTrap, FontResizer, ThemeToggle, AccessibilityToolbar, TextToSpeech, LiveRegion — todo para cumplimiento WCAG.

SEO (8)

Meta tags, JSON-LD, OpenGraph, TwitterCard, Hreflang, Canonical, RichSnippets — datos estructurados para cada página.

Sections (68)

Hero, CTA, Pricing, FAQ, Team, Testimonials, Timeline, Awards, Blog, Contact — secciones de página listas para usar.

UI (19)

Accordion, Modal, Tabs, Toast, Tooltip, CommandPalette, Drawer, Dropdown — elementos interactivos sin runtime.

Layouts (15)

Bento, Magazine, Dashboard, Portfolio, Newspaper, Split, Landing, Docs — templates de página completos.

E-Commerce (5)

ProductCard, Cart, Wishlist, QuickView, AddToCart — piezas de shopping sin atarte a un framework.

Navigation (4)

Breadcrumbs, MobileNav, Pagination, Sidebar — todos con soporte de teclado y ARIA.

Maps (2)

GoogleMap y OpenStreetMap — compatible con RGPD con consentimiento de dos clics.

Media (3)

VideoPlayer, AudioPlayer, ImageGallery — lazy loading y consent gates incluidos.

Además: formularios, utilidades de contenido, componentes sociales, un proveedor de sistema de diseño, componentes de imagen optimizados y una galería con slider antes/después.

Esta librería vs. alternativas

Antes de comprometerte con una librería de componentes, vale la pena comparar. Aquí los tres enfoques más comunes:

Criterio @wendermedia/astro-components Recommended Construir todo tú mismo Otras librerías Astro
Componentes 150 probados y listos Ilimitados, pero esfuerzo propio Varía (10–50 típico)
Tiempo de setup < 2 minutos Semanas a meses 5–15 minutos
Accesibilidad WCAG 2.2 AA compliant Debe implementarse manualmente Parcial
Componentes SEO 8 dedicados (JSON-LD, OG, etc.) Manual por página Raramente incluidos
Design tokens Sistema completo de tokens Necesitas construir el tuyo Normalmente dependiente de Tailwind
Dependencias externas 0 0 (si eres disciplinado) React/Preact a menudo necesario
Documentación Storybook 549 stories en vivo Debes configurarlo tú mismo Raramente disponible
Compatible con RGPD Sí, consent gates integrados Debes implementarlo tú mismo Raramente considerado
Licencia MIT (copyright retenido) Varía

Inicio rápido: instalación y primer componente

De cero a una página funcional con SEO, accesibilidad y sistema de diseño en dos minutos:

De npm install a la página terminada

  1. Instalar el paquete

    npm install @wendermedia/astro-components — un comando, sin dependencias adicionales.

  2. Importar componentes

    Cada categoría tiene su propio path de importación. Solo carga lo que necesitas.

  3. Agregar a tu página

    Usa los componentes en templates Astro como de costumbre. Pasa props y listo.

  4. Personalizar el diseño

    Sobrescribe CSS custom properties o usa el DesignSystemProvider.

Ejemplos de importación por categoría

Diferentes tipos de proyecto necesitan diferentes categorías. Aquí tres setups típicos:

---
// Secciones de página y componentes de layout
import { Hero, Features, FAQ, CTA, Pricing } from '@wendermedia/astro-components/sections';
import { Testimonials, Team, Timeline } from '@wendermedia/astro-components/sections';
import { BentoLayout, MagazineLayout } from '@wendermedia/astro-components/layouts';
import { Header, Footer } from '@wendermedia/astro-components/layout';
---

<Header />
<Hero title="Bienvenido" subtitle="Subtítulo" />
<Features features={[{ title: 'Rápido', description: 'Cero JS.' }]} />
<FAQ items={[{ question: '¿Pregunta?', answer: 'Respuesta.' }]} />
<Footer />
---
// Componentes SEO para datos estructurados
import { SEO } from '@wendermedia/astro-components/seo';
import { JsonLd } from '@wendermedia/astro-components/seo';
import { OpenGraph } from '@wendermedia/astro-components/seo';
import { Hreflang } from '@wendermedia/astro-components/seo';
import { Canonical } from '@wendermedia/astro-components/seo';
---

<SEO title="Mi Sitio" description="Descripción" />
<JsonLd type="LocalBusiness" data={{
  name: 'Nombre de Empresa',
  address: { street: 'Calle 1', city: 'Ciudad' }
}} />
<Hreflang alternates={[
  { lang: 'de', href: '/de/' },
  { lang: 'en', href: '/en/' },
]} />
---
// Accesibilidad / WCAG 2.2 AA
import { SkipLinks } from '@wendermedia/astro-components/accessibility';
import { FocusTrap } from '@wendermedia/astro-components/accessibility';
import { AccessibilityToolbar } from '@wendermedia/astro-components/accessibility';
import { FontResizer } from '@wendermedia/astro-components/accessibility';
import { ThemeToggle } from '@wendermedia/astro-components/accessibility';
import { TextToSpeech } from '@wendermedia/astro-components/accessibility';
import { LiveRegion } from '@wendermedia/astro-components/accessibility';
---

<SkipLinks />
<AccessibilityToolbar position="right" />
<FontResizer />
<ThemeToggle />
<TextToSpeech selector="article" />
<LiveRegion politeness="polite" />

¿Por qué open source?

Estos componentes fueron construidos y probados en 187 proyectos. Funcionan en sitios web, prototipos, landing pages y tiendas e-commerce. En algún punto, mantenerlo todo interno deja de tener sentido.

Open source aquí no significa “proyecto comunitario con issues y pull requests” — significa: la librería está disponible públicamente, el código fuente es transparente, y otros proyectos pueden construir sobre ella.

CLI incluido

El paquete incluye una herramienta CLI para crear proyectos nuevos:

npx create-wm-component

Ocho templates disponibles: Blog, E-Commerce, Landing Page, Portfolio, Corporate, Docs, SaaS y Affiliate. Cada template configura los componentes, layouts y design tokens correctos.

Sistema de diseño como base

Los 150 componentes comparten el mismo sistema de tokens: CSS custom properties para colores, tipografía, espaciado, sombras y radios. Un DesignSystemProvider en la categoría design-system provee los tokens base. Sobrescribe con tus propios valores — el branding se mantiene consistente.

---
import { DesignSystemProvider } from '@wendermedia/astro-components/design-system';
---

<DesignSystemProvider
  primaryColor="#2563eb"
  fontFamily="Inter, sans-serif"
  borderRadius="0.5rem"
/>

Si prefieres escribir CSS directamente, también puedes configurar los tokens manualmente en un archivo CSS global:

:root {
  --color-primary-500: #2563eb;
  --font-family-body: 'Inter', sans-serif;
  --radius-md: 0.5rem;
}

Preguntas frecuentes

FAQ de la librería

¿Qué sigue?

La librería es estable y lista para producción. Planificado:

  • Integraciones con frameworks: Los wrappers de React, Vue, Svelte y Solid ya existen en la carpeta integrations/
  • Expansión de Storybook: Más stories y variantes para casos especiales
  • Presets de design tokens: Temas predefinidos para diferentes industrias

Código fuente, paquete npm y Storybook: