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