1 estrella en GitHub = 1 componente nuevo.

Dar una estrella
Estructura & Layout layoutflexspacing

Horizontal Cluster

Agrupador horizontal flexible para botones e insignias con ajuste automático de línea.

Vista Previa en Vivo

Horizontal Cluster

Uso

Copia y pega este código directamente en tu página de Astro:

astro
---
import { HorizontalCluster } from 'astro-component-kit';
---

<ClusterHorizontal>Content</ClusterHorizontal>
--- import { HorizontalCluster } from 'astro-component-kit'; --- <ClusterHorizontal>Content</ClusterHorizontal>

Instalación Manual

Si no estás usando el paquete npm, crea un archivo nuevo y pega el siguiente código: src/components/lib/HorizontalCluster.astro:

astro
---
/**
 * ClusterHorizontal — Auto-wrapping flex row for buttons, badges, or list items.
 */
interface Props {
  gap?: string;
  align?: 'flex-start' | 'center' | 'flex-end';
  className?: string;
}

const { gap = '0.75rem', align = 'center', className = '' } = Astro.props;
---

<div class={`cluster ${className}`} style={`--gap: ${gap}; --align: ${align};`}>
  <slot>
    <span class="cluster-tag">Tag 1</span>
    <span class="cluster-tag">Tag 2</span>
    <span class="cluster-tag">Tag 3</span>
    <span class="cluster-tag">Tag 4</span>
    <span class="cluster-tag">Tag 5</span>
  </slot>
</div>

<style>
  .cluster {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap, 0.75rem);
    align-items: var(--align, center);
    width: 100%;
  }
  .cluster-tag {
    padding: 0.4rem 0.8rem;
    background: rgb(var(--ink-rgb, 255 255 255) / 0.05);
    border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1);
    border-radius: 9999px;
    font-size: 0.8rem;
    color: #94a3b8;
  }
</style>
--- /** * ClusterHorizontal — Auto-wrapping flex row for buttons, badges, or list items. */ interface Props { gap?: string; align?: 'flex-start' | 'center' | 'flex-end'; className?: string; } const { gap = '0.75rem', align = 'center', className = '' } = Astro.props; --- <div class={`cluster ${className}`} style={`--gap: ${gap}; --align: ${align};`}> <slot> <span class="cluster-tag">Tag 1</span> <span class="cluster-tag">Tag 2</span> <span class="cluster-tag">Tag 3</span> <span class="cluster-tag">Tag 4</span> <span class="cluster-tag">Tag 5</span> </slot> </div> <style> .cluster { display: flex; flex-wrap: wrap; gap: var(--gap, 0.75rem); align-items: var(--align, center); width: 100%; } .cluster-tag { padding: 0.4rem 0.8rem; background: rgb(var(--ink-rgb, 255 255 255) / 0.05); border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1); border-radius: 9999px; font-size: 0.8rem; color: #94a3b8; } </style>

Información Rápida

Categoría
Estructura & Layout
Nombre de archivo
HorizontalCluster.astro
Dependencias
Ninguna — Astro nativo + CSS puro
Etiquetas
layoutflexspacing