@saastro
Landing page blocks for Astro. Zero-JS .astro blocks with no dependencies — installable in an Astro project without React — plus interactive React blocks on Base UI.
Install this registry
npx shadcn@latest add https://ui.saastro.io/r/registry.json pnpm dlx shadcn@latest add https://ui.saastro.io/r/registry.json bunx shadcn@latest add https://ui.saastro.io/r/registry.json curl -s https://ui.saastro.io/r/registry.json Components
53 totalCentered hero with badge, heading, description, and dual CTA buttons. Zero-JS Astro component.
npx shadcn@latest add https://ui.saastro.io/r/hero-01.json Split hero with content on the left and image or screenshot on the right. Zero-JS Astro component.
npx shadcn@latest add https://ui.saastro.io/r/hero-02.json Hero with gradient background, floating badge, and a single prominent CTA. Zero-JS Astro component.
npx shadcn@latest add https://ui.saastro.io/r/hero-03.json 3-column feature grid with icons, titles, and descriptions in cards. Zero-JS Astro component.
npx shadcn@latest add https://ui.saastro.io/r/features-01.json Alternating image and text sections to showcase features. Zero-JS Astro component.
npx shadcn@latest add https://ui.saastro.io/r/features-02.json Numbered steps for a how-it-works section, with optional eyebrow and description. Zero-JS Astro component.
npx shadcn@latest add https://ui.saastro.io/r/steps-01.json Three-tier pricing cards with monthly/annual toggle and feature lists.
npx shadcn@latest add https://ui.saastro.io/r/pricing-01.json Two-column comparison of paired statements, with column labels and check/cross marks. Zero-JS Astro component.
npx shadcn@latest add https://ui.saastro.io/r/compare-01.json Full-width CTA banner with gradient background, heading, and action buttons. Zero-JS Astro component.
npx shadcn@latest add https://ui.saastro.io/r/cta-01.json FAQ section with accordion for expandable questions and answers.
npx shadcn@latest add https://ui.saastro.io/r/faq-01.json FAQ con `<details>` nativo: cero JS, respuestas dentro del HTML servido e indexables. El hermano sin hidratar de faq-01.
npx shadcn@latest add https://ui.saastro.io/r/faq-02.json Testimonial grid with avatar, name, role, and quote cards. Zero-JS Astro component.
npx shadcn@latest add https://ui.saastro.io/r/testimonials-01.json Multi-column footer with navigation links, social icons, and copyright. Zero-JS Astro component.
npx shadcn@latest add https://ui.saastro.io/r/footer-01.json Responsive navbar with desktop navigation and mobile hamburger menu.
npx shadcn@latest add https://ui.saastro.io/r/navbar-01.json Responsive grid of blog post cards with image, title, excerpt, and metadata. Zero-JS Astro component.
npx shadcn@latest add https://ui.saastro.io/r/blog-grid-01.json Email newsletter signup section with input and submit button. Zero-JS Astro component.
npx shadcn@latest add https://ui.saastro.io/r/newsletter-01.json Row of key statistics with large numbers and labels. Zero-JS Astro component.
npx shadcn@latest add https://ui.saastro.io/r/stats-01.json "Trusted by" logo cloud section with grayscale hover effect. Zero-JS Astro component.
npx shadcn@latest add https://ui.saastro.io/r/logos-01.json Enhanced button with CVA variants, icon effects, shine, gooey, underline, and gradient animations.
npx shadcn@latest add https://ui.saastro.io/r/button-pro.json El botón base sobre Base UI. Variantes CVA (variant, size) y `render` en vez de `asChild`.
npx shadcn@latest add https://ui.saastro.io/r/button.json Etiqueta compacta con variantes CVA.
npx shadcn@latest add https://ui.saastro.io/r/badge.json Separador horizontal o vertical, accesible.
npx shadcn@latest add https://ui.saastro.io/r/separator.json Tarjeta y sus partes (header, title, description, content, footer). Markup puro, sin dependencias.
npx shadcn@latest add https://ui.saastro.io/r/card.json Acordeón sobre Base UI, con animación de altura por CSS.
npx shadcn@latest add https://ui.saastro.io/r/accordion.json Panel lateral (drawer) sobre Base UI Dialog, con los cuatro lados.
npx shadcn@latest add https://ui.saastro.io/r/sheet.json Campo de texto sobre Base UI, con los estados de foco e invalidez del sistema.
npx shadcn@latest add https://ui.saastro.io/r/input.json Etiqueta de campo. La necesita `field`, y es markup puro.
npx shadcn@latest add https://ui.saastro.io/r/label.json Área de texto multilínea.
npx shadcn@latest add https://ui.saastro.io/r/textarea.json Desplegable sobre Base UI. Pasa `items` al Root: sin eso el trigger pinta el value crudo en vez de la etiqueta.
npx shadcn@latest add https://ui.saastro.io/r/select.json Casilla sobre Base UI.
npx shadcn@latest add https://ui.saastro.io/r/checkbox.json Grupo de opciones excluyentes sobre Base UI.
npx shadcn@latest add https://ui.saastro.io/r/radio-group.json Interruptor sobre Base UI.
npx shadcn@latest add https://ui.saastro.io/r/switch.json Envoltorio de campo: label, descripción y error. Es lo que consume @saastro/forms.
npx shadcn@latest add https://ui.saastro.io/r/field.json Puente entre react-hook-form y los primitivos. FormField/FormControl.
npx shadcn@latest add https://ui.saastro.io/r/form.json Modal sobre Base UI, con backdrop y cierre accesible.
npx shadcn@latest add https://ui.saastro.io/r/dialog.json Panel flotante anclado sobre Base UI.
npx shadcn@latest add https://ui.saastro.io/r/popover.json Ayuda contextual sobre Base UI.
npx shadcn@latest add https://ui.saastro.io/r/tooltip.json Área con scroll y barra propia.
npx shadcn@latest add https://ui.saastro.io/r/scroll-area.json Menú de navegación con submenús, sobre Base UI.
npx shadcn@latest add https://ui.saastro.io/r/navigation-menu.json Control de rango sobre Base UI. Con un thumb emite NÚMERO PLANO, no array.
npx shadcn@latest add https://ui.saastro.io/r/slider.json `<select>` nativo estilado. La opción sin JS cuando no hace falta un desplegable rico.
npx shadcn@latest add https://ui.saastro.io/r/native-select.json Input con addons (prefijo, sufijo, botón).
npx shadcn@latest add https://ui.saastro.io/r/input-group.json Campo de código de un solo uso.
npx shadcn@latest add https://ui.saastro.io/r/input-otp.json Calendario sobre react-day-picker, con la navegación y los estilos del sistema.
npx shadcn@latest add https://ui.saastro.io/r/calendar.json Imagen de persona con iniciales de reserva, sobre Base UI.
npx shadcn@latest add https://ui.saastro.io/r/avatar.json El hueco de lo que está cargando, con la forma que va a tener.
npx shadcn@latest add https://ui.saastro.io/r/skeleton.json Barra de avance sobre Base UI. `value={null}` es indeterminado.
npx shadcn@latest add https://ui.saastro.io/r/progress.json El aviso que ya está en la página, no el que interrumpe.
npx shadcn@latest add https://ui.saastro.io/r/alert.json Tabla nativa con su propio scroll horizontal.
npx shadcn@latest add https://ui.saastro.io/r/table.json Pestañas sobre Base UI, con indicador deslizante.
npx shadcn@latest add https://ui.saastro.io/r/tabs.json Menú desplegable sobre Base UI: items, checkbox, radio y submenús.
npx shadcn@latest add https://ui.saastro.io/r/dropdown-menu.json El menú del botón derecho, sobre Base UI.
npx shadcn@latest add https://ui.saastro.io/r/context-menu.json El diálogo que exige respuesta: no se cierra con Escape ni pinchando fuera.
npx shadcn@latest add https://ui.saastro.io/r/alert-dialog.json