Attachment
StableUm arquivo mostrado como card, no estado em que o envio está. O estado vive na raiz e todas as partes o leem de lá.
Instalação
npx up-web-ds add attachmentPreview
Default
States
Sizes
With Media
With Actions
Clickable
Group
Vertical
All states
Default
States
Sizes
With Media
With Actions
Clickable
Group
Vertical
Usage
Props
Attachment
Estende React.ComponentProps<'div'> & VariantProps<typeof attachmentVariants>. Aceita também os atributos padrão de um elemento React (280 não listados).
AttachmentMedia
Estende React.ComponentProps<'div'> & VariantProps<typeof attachmentMediaVariants>. Aceita também os atributos padrão de um elemento React (280 não listados).
AttachmentContent
Estende React.ComponentProps<'div'>. Aceita também os atributos padrão de um elemento React (280 não listados).
AttachmentTitle
Estende React.ComponentProps<'span'>. Aceita também os atributos padrão de um elemento React (280 não listados).
AttachmentDescription
Estende React.ComponentProps<'span'>. Aceita também os atributos padrão de um elemento React (280 não listados).
AttachmentActions
Estende React.ComponentProps<'div'>. Aceita também os atributos padrão de um elemento React (280 não listados).
AttachmentAction
Estende React.ComponentProps<typeof Button>. Aceita também os atributos padrão de um elemento React (285 não listados).
AttachmentTrigger
Estende useRender.ComponentProps<'button'>. Aceita também os atributos padrão de um elemento React (290 não listados).
AttachmentGroup
Estende React.ComponentProps<'div'>. Aceita também os atributos padrão de um elemento React (280 não listados).
Metadata
Notas de acessibilidade
Teclado e leitor de tela verificados por teste: a ação só de ícone carrega aria-label, porque sem ele o controle anuncia "botão" e não diz o que remove; o card clicável é um button de verdade, alcançável por Tab e ativável por Enter, com type=button por padrão para nunca submeter um formulário em volta. O estado nunca é comunicado só pela cor — o card de erro tinge a superfície e a descrição diz o motivo, verificado em navegador. O anel de foco é desenhado no card por focus-within, não no gatilho: ele é uma sobreposição invisível sobre o card inteiro, e um anel em volta dele contornaria uma caixa sem nada legível. Touch verificado em viewport de 375px com emulação de toque: as ações ficam acima do mínimo de 24x24 da WCAG 2.2 SC 2.5.8, e o grupo rola dentro de si em vez de empurrar a página. Reduced motion verificado em navegador com prefers-reduced-motion: reduce — o brilho do título ocupado é ambiente, diz "ainda trabalhando" a quem olha e nada a mais ninguém, então fica atrás de motion-safe: e simplesmente não roda; o título permanece legível, que é a parte que carrega significado. Três utilitários da origem (shimmer, scroll-fade-x, scrollbar-none) não existiam aqui e não estilizavam nada: foram mapeados para animate-text-shimmer, scroll-shadow e scrollbar-quiet.
Classificação
- Layer
- Primitive
- Domínio
- Domain-free (compartilhado)
- Categoria
- data-display
- Status
- Stable
Origem e distribuição
- Fonte
- shadcn registry / attachment
- Licença
- MIT
- Distribuição
- Interna
Acessibilidade
- Teclado: revisado
- Leitor de tela: revisado
- Touch: revisado
- Reduced motion: revisado
Dependências
- Pacotes
- Nenhuma
- Ícones
- Nenhum
- Construído sobre
- Button
- Usado por
- Nenhum ainda