Crear un componente de marca
Usa un componente de marca cuando el mismo patrón visual o de comunicación del código fuente del proyecto pertenece a más de una plantilla. Conserva los elementos gráficos de un solo uso en su plantilla. Los componentes de marca se descubren desde component.tsx; las plantillas se descubren desde template.tsx y son propietarias de la definición de salida.
-
Crea el directorio del componente.
Crea un directorio hoja debajo de
src/brand/con la estructura que espera el descubrimiento.Directoriosrc/
Directoriobrand/
Directoriocommunication/
Directoriohero/
- README.md
- component.tsx
- preview.tsx
Consulta Componentes de marca para conocer las reglas exactas de descubrimiento y nombres.
-
Escribe el componente reutilizable.
Acepta entradas semánticas y mantén fuera del componente las decisiones que pertenecen a la plantilla.
src/brand/communication/hero/component.tsx import { Markdown } from '@mauriciodmo/framekit'export interface BrandHeroProps {eyebrow: stringtitle: stringdescription: stringaccentColor?: string}export function BrandHero ({ eyebrow, title, description, accentColor = '#c8f7d9' }: BrandHeroProps) {return (<section><Markdown value={eyebrow} style={{ color: accentColor }} /><Markdown value={title} lists /><Markdown value={description} lists /></section>)}No añadas dimensiones propias de la plantilla, etiquetas de plataforma, controles de exportación ni llamadas a la acción solo para facilitar el primer consumidor. La plantilla consumidora proporciona su canvas, campos, contenido, variantes, recursos y composición circundante.
-
Documenta el directorio hoja.
Añade el README requerido e incluye cerca del principio un resumen independiente para que el catálogo generado tenga una descripción útil.
src/brand/communication/hero/README.md # HeroBloque editorial reutilizable para un mensaje de marca con una etiqueta breve, un título y una descripción.## Entradas- `eyebrow`: etiqueta breve.- `title`: titular; se admite Markdown.- `description`: texto de apoyo; se admiten listas de Markdown.- `accentColor`: color de acento opcional. -
Añade una vista previa representativa.
src/brand/communication/hero/preview.tsx import { BrandHero } from './component'export default function Preview () {return (<div><BrandHeroeyebrow="NUEVO / FRAMEKIT"title="Diseña imágenes con **React**"description="Contenido visual reutilizable para plantillas coherentes."/></div>)}La vista previa exporta por defecto un componente de React y reutiliza el componente fuente con props estáticas representativas.
-
Genera el catálogo.
Ventana de terminal pnpm framekit generateEl comando escribe
src/generated/framekit/brands.tscomo salida generada. No lo edites directamente; corrige el componente fuente, la vista previa o el README y vuelve a generar. -
Consume el componente desde una plantilla.
src/templates/example/template.tsx import { BrandHero } from '@/brand/communication/hero/component'render ({ data }) {return (<main><BrandHeroeyebrow={data.eyebrow}title={data.title}description={data.description}accentColor={data.accentColor}/></main>)}La plantilla sigue siendo responsable de declarar esos campos y de sus dimensiones, contenido, variantes, recursos y composición exterior.
Para conocer las reglas exactas de directorios, README, módulos generados y cargadores, consulta Componentes de marca y la Referencia del catálogo de marca. Para la definición completa de una plantilla, consulta Crear una plantilla. El comportamiento de Markdown utilizado por el ejemplo está en la referencia de Markdown.