Marker
Notas discretas entre o conteúdo, como divisores de data e eventos do sistema, com datas e horários fixos que aparecem como Hoje ou Ontem.
pnpm dlx shadcn@latest add https://hextaui.com/r/marker.jsonAdiciona o componente, os tokens de tema do HextaUI e quaisquer componentes do HextaUI dos quais ele depende.
Adicione os tokens de tema ao seu CSS global, se ainda não o fez.
Instale as dependências.
pnpm add @base-ui/react class-variance-authority cnCopie e cole o código a seguir no seu projeto.
components/ui/marker.tsx Atualize os caminhos de importação para corresponder à configuração do seu projeto.
Variantes
default é uma nota discreta, separator a centraliza entre duas linhas finas e border a sublinha como um título de seção.
Datas fixas
Com sticky, um marcador permanece no topo da sua área de rolagem. Depois de fixado, suas linhas desaparecem e o rótulo vira uma pílula flutuante para continuar legível sobre as mensagens. Coloque cada dia em sua própria seção para que a próxima data empurre a anterior.
Datas relativas
<MarkerTime /> renderiza um <time> que mostra Hoje, Ontem, um dia da semana dentro da última semana e, depois, uma data curta. Ele se atualiza sozinho à meia-noite. Passe format para usar sua própria redação.
Atividade
Renderize os marcadores como itens de lista para um log de atividades. Links dentro deles ficam sublinhados até o hover.
Conteúdo longo
As notas quebram linha e strings sem quebras são quebradas em vez de alargar o layout. As linhas separadoras mantêm um comprimento mínimo nos dois lados.
Da direita para a esquerda
Ícones e texto seguem a direção de leitura.
- Os marcadores são texto simples, então os leitores de tela os leem no lugar. Os ícones ficam ocultos deles.
<MarkerTime />mantém o momento exato emdateTimeenquanto mostra um rótulo amigável.- A pílula fixa aparece sem movimento quando o movimento reduzido está ativado.
| Prop | Tipo | Padrão |
|---|---|---|
variant | "default" | "separator" | "border" | "default" |
stickyFixe-se ao topo da área de rolagem e vire uma pílula enquanto fixado. | boolean | false |
render | ReactElement | (props, state) => ReactElement | <div> |
| Atributo | Descrição |
|---|---|
data-slot="marker" | Seleciona os marcadores no CSS. |
data-variant | A variante atual. |
data-sticky | Presente quando sticky está ativado. |
data-stuck | Presente enquanto o marcador está fixado ao topo. |
--marker-sticky-top | Distância do topo enquanto fixado. O padrão é 0.5rem. |
| Atributo | Descrição |
|---|---|
data-slot="marker-content" | O texto. Vira a pílula enquanto fixado. |
| Atributo | Descrição |
|---|---|
data-slot="marker-icon" | Uma caixa de ícone de 16px, oculta dos leitores de tela. |
| Prop | Tipo | Padrão |
|---|---|---|
dateObrigatório. Qualquer valor que new Date() aceite. | Date | string | number | – |
localeFixo por padrão para que servidor e navegador concordem. | Intl.LocalesArgument | "en-US" |
formatSubstitua o rótulo relativo pelo seu. | (date: Date) => ReactNode | – |
| Atributo | Descrição |
|---|---|
data-slot="marker-time" | O elemento time, com um dateTime ISO. |
- AttachmentCards de arquivo e imagem para uploads, com progresso, estados, ações, um gatilho no card inteiro e nomes que mantêm a extensão.
- BubbleBalões de mensagem de chat com variantes, cantos agrupados, reações e espaço para conteúdo interativo.
- MessageUma linha de mensagem de chat com avatar, nome, balões e status, em que as novas mensagens surgem do lado do remetente.
- Message scrollerUma área de rolagem de chat que acompanha as novas mensagens, mantém sua posição enquanto você relê e conta o que você perdeu no botão de saltar.