Message
blode-ui/messageFreeComponent
A row primitive for chat transcripts, pairing an avatar with content, header, and footer, aligned to the start or end.
Install it
npx shadcn@latest add https://raw.githubusercontent.com/mblode/blode-ui/main/public/r/message.jsonSource
1import type * as React from "react";23import { cn } from "@/lib/utils";45const MessageGroup = ({ className, ...props }: React.ComponentProps<"div">) => (6 <div7 className={cn("flex min-w-0 flex-col gap-2", className)}8 data-slot="message-group"9 {...props}10 />11);1213const Message = ({14 className,15 align = "start",16 ...props17}: React.ComponentProps<"div"> & { align?: "start" | "end" }) => (18 <div19 className={cn(20 "group/message relative flex w-full min-w-0 gap-2 text-sm data-[align=end]:flex-row-reverse",21 className,22 )}23 data-align={align}24 data-slot="message"25 {...props}26 />27);2829const MessageAvatar = ({ className, ...props }: React.ComponentProps<"div">) => (30 <div31 className={cn(32 "flex w-fit min-w-8 shrink-0 items-center justify-center self-end overflow-hidden rounded-full bg-muted group-has-data-[slot=message-footer]/message:-translate-y-8",33 className,34 )}35 data-slot="message-avatar"36 {...props}37 />38);3940const MessageContent = ({ className, ...props }: React.ComponentProps<"div">) => (41 <div42 className={cn(43 "flex w-full min-w-0 flex-col gap-2.5 wrap-break-word group-data-[align=end]/message:*:data-slot:self-end",44 className,45 )}46 data-slot="message-content"47 {...props}48 />49);5051const MessageHeader = ({ className, ...props }: React.ComponentProps<"div">) => (52 <div53 className={cn(54 "flex max-w-full min-w-0 items-center px-3 text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0",55 className,56 )}57 data-slot="message-header"58 {...props}59 />60);6162const MessageFooter = ({ className, ...props }: React.ComponentProps<"div">) => (63 <div64 className={cn(65 "flex max-w-full min-w-0 items-center px-3 text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0 group-data-[align=end]/message:justify-end",66 className,67 )}68 data-slot="message-footer"69 {...props}70 />71);7273export { MessageGroup, Message, MessageAvatar, MessageContent, MessageFooter, MessageHeader };
Files it writes
More from blode/ui
All 85 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | blode/ui | Components | Free | 2 deps | |
| Alertalert | blode/ui | Components | Free | no deps | |
| Alert Dialogalert-dialog | blode/ui | Components | Free | 1 dep | |
| Ask User Questionsask-user-questions | blode/ui | Components | Free | 1 dep | |
| Aspect Ratioaspect-ratio | blode/ui | Components | Free | 1 dep | |
| Attachmentattachment | blode/ui | Components | Free | 1 dep | |
| Autocompleteautocomplete | blode/ui | Components | Free | 1 dep | |
| Avataravatar | blode/ui | Components | Free | 1 dep |
