Marker
Notas discretas entre el contenido, como separadores de fecha y eventos del sistema, con fechas y horas fijas que se leen como Hoy o Ayer.
pnpm dlx shadcn@latest add https://hextaui.com/r/marker.jsonAñade el componente, los tokens del tema de HextaUI y los componentes de HextaUI de los que depende.
Añade los tokens del tema a tu CSS global, si aún no lo has hecho.
Instala las dependencias.
pnpm add @base-ui/react class-variance-authority cnCopia y pega el siguiente código en tu proyecto.
components/ui/marker.tsx Actualiza las rutas de importación para que coincidan con la configuración de tu proyecto.
Variantes
default es una nota discreta, separator la centra entre dos líneas finas y border la subraya como el título de una sección.
Fechas fijas
Con sticky, un marcador permanece en la parte superior de su área de scroll. Una vez fijado, sus líneas se desvanecen y la etiqueta se convierte en una píldora flotante para seguir siendo legible sobre los mensajes. Coloca cada día en su propia sección para que la siguiente fecha empuje a la anterior.
Fechas relativas
<MarkerTime /> renderiza un <time> que muestra Hoy, Ayer, un día de la semana dentro de la última semana y después una fecha corta. Se actualiza solo a medianoche. Pasa format para usar tu propio texto.
Actividad
Renderiza los marcadores como elementos de lista para un registro de actividad. Los enlaces del interior aparecen subrayados hasta que se pasa el cursor.
Contenido largo
Las notas se ajustan y las cadenas sin espacios se cortan en lugar de ensanchar el diseño. Las líneas separadoras conservan una longitud mínima a ambos lados.
De derecha a izquierda
Los iconos y el texto siguen la dirección de lectura.
- Los marcadores son texto simple, así que los lectores de pantalla los leen en su lugar. Los iconos se les ocultan.
<MarkerTime />conserva el momento exacto endateTimemientras muestra una etiqueta amigable.- La píldora fija aparece sin movimiento cuando el movimiento reducido está activado.
| Prop | Tipo | Predeterminado |
|---|---|---|
variant | "default" | "separator" | "border" | "default" |
stickySe fija a la parte superior del área de scroll y se convierte en una píldora mientras está fijado. | boolean | false |
render | ReactElement | (props, state) => ReactElement | <div> |
| Atributo | Descripción |
|---|---|
data-slot="marker" | Apunta a los marcadores en CSS. |
data-variant | La variante actual. |
data-sticky | Presente cuando sticky está activado. |
data-stuck | Presente mientras el marcador está fijado en la parte superior. |
--marker-sticky-top | Distancia desde la parte superior mientras está fijado. Por defecto es 0.5rem. |
| Atributo | Descripción |
|---|---|
data-slot="marker-content" | El texto. Se convierte en la píldora mientras está fijado. |
| Atributo | Descripción |
|---|---|
data-slot="marker-icon" | Una caja de icono de 16px, oculta a los lectores de pantalla. |
| Prop | Tipo | Predeterminado |
|---|---|---|
dateObligatorio. Cualquier valor que acepte new Date(). | Date | string | number | – |
localeFijo por defecto para que el servidor y el navegador coincidan. | Intl.LocalesArgument | "en-US" |
formatSustituye la etiqueta relativa por la tuya. | (date: Date) => ReactNode | – |
| Atributo | Descripción |
|---|---|
data-slot="marker-time" | El elemento time, con un dateTime ISO. |
- AttachmentTarjetas de archivos e imágenes para subidas, con progreso, estados, acciones, un trigger de tarjeta completa y nombres que conservan su extensión.
- BubbleBurbujas de mensajes de chat con variantes, esquinas agrupadas, reacciones y espacio para contenido interactivo.
- MessageUna fila de mensaje de chat con avatar, nombre, burbujas y estado, donde los mensajes nuevos suben desde el lado del remitente.
- Message scrollerUn área de desplazamiento de chat que sigue los mensajes nuevos, conserva tu posición mientras lees mensajes anteriores y cuenta lo que te perdiste en el botón de salto.