Marker
İçerik arasında tarih ayırıcıları ve sistem olayları gibi sessiz notlar; Bugün ya da Dün olarak okunan yapışkan tarih ve saatler içerir.
pnpm dlx shadcn@latest add https://hextaui.com/r/marker.jsonBileşeni, HextaUI tema token'larını ve bileşenin bağımlı olduğu tüm HextaUI bileşenlerini ekler.
Henüz eklemediyseniz tema token'larını global CSS'inize ekleyin.
Bağımlılıkları yükleyin.
pnpm add @base-ui/react class-variance-authority cnAşağıdaki kodu kopyalayıp projenize yapıştırın.
components/ui/marker.tsx İçe aktarma yollarını proje yapılandırmanıza uyacak şekilde güncelleyin.
Varyantlar
default sakin bir nottur, separator onu iki ince çizgi arasında ortalar, border ise bölüm başlığı gibi altını çizer.
Yapışkan tarihler
sticky ile işaretçi kaydırma alanının üstünde kalır. Yapıştığında çizgileri solar ve etiket, mesajların üzerinde okunaklı kalması için yüzen bir hapa dönüşür. Sonraki tarih öncekini itebilsin diye her günü kendi bölümüne koyun.
Göreli tarihler
<MarkerTime />, Bugün, Dün, son bir hafta içindeki bir gün adı, ardından kısa bir tarih okuyan bir <time> işler. Gece yarısı kendini günceller. Kendi ifadeniz için format verin.
Etkinlik
Etkinlik günlüğü için işaretçileri liste öğesi olarak işleyin. İçindeki bağlantılar hover olana kadar altı çizili kalır.
Uzun içerik
Notlar sarar, bölünmeyen dizeler düzeni genişletmek yerine kırılır. Ayırıcı çizgiler iki yanda da asgari uzunluğu korur.
Sağdan sola
Simgeler ve metin okuma yönünü izler.
- İşaretçiler düz metindir, bu yüzden ekran okuyucular onları yerinde okur. Simgeler onlardan gizlenir.
<MarkerTime />, kullanıcı dostu bir etiket gösterirken tam anıdateTimeiçinde tutar.- Azaltılmış hareket açıkken yapışkan hap hareketsiz belirir.
| Prop | Tür | Varsayılan |
|---|---|---|
variant | "default" | "separator" | "border" | "default" |
stickyKaydırma alanının üstüne yapışır ve yapışıkken hap biçimine dönüşür. | boolean | false |
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="marker" | CSS'te işaretçileri hedefler. |
data-variant | Geçerli varyant. |
data-sticky | sticky açıkken bulunur. |
data-stuck | İşaretçi üste yapışıkken bulunur. |
--marker-sticky-top | Yapışıkken üstten uzaklık. Varsayılan 0.5rem. |
| Öznitelik | Açıklama |
|---|---|
data-slot="marker-content" | Metin. Yapışıkken hap olur. |
| Öznitelik | Açıklama |
|---|---|
data-slot="marker-icon" | Ekran okuyuculardan gizlenen 16px'lik bir simge kutusu. |
| Prop | Tür | Varsayılan |
|---|---|---|
dateZorunlu. new Date()'in kabul ettiği her şey. | Date | string | number | – |
localeSunucu ve tarayıcı aynı sonucu versin diye varsayılan olarak sabittir. | Intl.LocalesArgument | "en-US" |
formatGöreli etiketin yerine kendinizinkini koyun. | (date: Date) => ReactNode | – |
| Öznitelik | Açıklama |
|---|---|
data-slot="marker-time" | ISO dateTime içeren time öğesi. |
- AttachmentYüklemeler için dosya ve görsel kartları; ilerleme, durumlar, eylemler, tüm kartı kaplayan bir tetikleyici ve uzantısını koruyan adlar içerir.
- BubbleVaryantlı, köşeleri gruplanmış, tepkileri olan ve etkileşimli içeriğe yer açan sohbet mesajı balonları.
- MessageAvatar, ad, balonlar ve durum içeren bir sohbet mesajı satırı; yeni mesajlar göndericinin tarafından yukarı doğru belirir.
- Message scrollerYeni mesajları takip eden, geriye doğru okurken yerinizi koruyan ve kaçırdıklarınızı atlama düğmesinde sayan bir sohbet kaydırma alanı.