Arquitectura de Envoltura de Componentes (.astro)
Define la estructura canónica para cualquier componente reutilizable en Ryukami-UI bajo las reglas del Scorch Design System.
1. Frontmatter Obligatorio
Todo componente debe declarar su interfaz export interface Props:
---
// src/components/NuevoComponente.astro
export interface Props {
variant?: 'crimson' | 'gold' | 'cyan' | 'default';
size?: 'sm' | 'md' | 'lg';
class?: string;
id?: string;
[key: string]: any;
}
const {
variant = 'default',
size = 'md',
class: className = '',
id,
...rest
} = Astro.props;
---2. Polimorfismo Seguro (Elemento Dinámico)
Para botones que pueden actuar como enlaces <a> o botones nativos <button> sin duplicar código:
---
const Tag = Astro.props.href ? 'a' : 'button';
---
<Tag
href={Astro.props.href}
class={`btn-brutal ${className}`}
{...rest}
>
<slot />
</Tag>3. Composición con Slots
Utiliza <slot /> por defecto y slots nombrados (<slot name="prefix" />, <slot name="suffix" />) para máxima extensibilidad de los componentes hijos sin añadir props booleanos innecesarios.