PatternDisponible

Message

Estructura de conversación con autor, contenido y metadatos.

Loading example…

Instalación

Agrega el componente y sus dependencias desde el registro que está ejecutándose en tu computadora.

terminal
npx shadcn@latest add https://brutallab.facilito.dev/r/message.json

Uso

Importa el componente en tu proyecto y conserva el código bajo tu control.

tsx
'use client';

import {
  MessageGroup,
  Message,
  MessageContent,
  MessageHeader,
  MessageFooter,
} from '@/components/ui/message';
import { Bubble, BubbleContent } from '@/components/ui/bubble';

export default function Demo() {
  return (
    <MessageGroup className="w-full max-w-lg">
      <Message>
        <MessageContent>
          <MessageHeader>
            <strong>Alex</strong>
          </MessageHeader>
          <Bubble variant="muted">
            <BubbleContent>
              The new components are ready to review.
            </BubbleContent>
          </Bubble>
          <MessageFooter>
            <time dateTime="2026-09-12T10:30:00">10:30</time>
          </MessageFooter>
        </MessageContent>
      </Message>
    </MessageGroup>
  );
}

Estados e interacción

Aspecto, comportamiento y comprobación con teclado.

  • Es una superficie o contenido, no un control por defecto. No añade hover, pulsado ni foco ficticios.
  • Las acciones internas usan Button o enlaces. Un estado informativo necesita texto además del color.

Referencia API

Propiedades propias de BrutalLab. También acepta los atributos nativos correspondientes.

PropTipoDefaultDescripción
string?Extends the root visual styles without changing its semantics.
ReactNode?Compose the exported subcomponents as shown in the runnable example.

Accesibilidad

Reglas que deben conservarse cuando el componente se adapte a un producto.

Conserva las etiquetas visibles y el HTML semántico del ejemplo.

Mantén el foco visible y comprueba la composición mediante el teclado.

Personaliza el aspecto con className sin reemplazar los atributos ARIA de la primitiva.