Chart
Tema renkli Recharts grafikleri; etiketleri tek bir yapılandırmadan okuyan bir tooltip ve gösterge, ayrıca görünür odak halkalı klavye gezintisi.
pnpm dlx shadcn@latest add https://hextaui.com/r/chart.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 recharts cnAşağıdaki kodu kopyalayıp projenize yapıştırın.
components/ui/chart.tsx İçe aktarma yollarını proje yapılandırmanıza uyacak şekilde güncelleyin.
Grafikleri Recharts bileşenleriyle oluşturur ve chart içindeki parçaları yalnızca ihtiyaç duyduğunuz yerde eklersiniz. Recharts sarılmaz; bu yüzden kendi belgeleri ve yükseltme kılavuzları olduğu gibi geçerlidir.
Bir ChartConfig her veri anahtarını bir etikete, isteğe bağlı bir simgeye ve bir renge eşler. Veriden ayrı kalır; böylece tek bir config birkaç grafiğe hizmet edebilir.
Grafiğin ilk render'da kendini ölçebilmesi için <ChartContainer /> bileşenine bir yükseklik, bir min-h-* veya bir aspect-* verin. Hiçbiri yoksa aspect-video'ya geri döner.
Her config anahtarı, grafiğine kapsamlanmış bir --color-KEY değişkeni olur. Bunu bir tema token'ına, herhangi bir CSS rengine yönlendirin veya ayrı light ve dark değerleri verin.
Recharts'ın bir renk aldığı her yerde değişkeni kullanın: bileşenlerde, verinizde veya Tailwind sınıflarında.
Tema beş grafik token'ı ile gelir: --chart-1 ile --chart-5; mavi, camgöbeği, kehribar, mor ve gül. Bu sırada, komşu renkler yaygın renk körlüğü biçimlerinde ayırt edilebilir kalır ve her biri açık ve koyu arka planlara karşı en az 3:1 kontrasta sahiptir. Onları sırayla kullanın ve legend ya da etiketleri açık tutun; böylece renk asla tek ipucu olmaz.
Mobile users gibi CSS adında geçerli olmayan anahtarlar --color-Mobile-users olur.
Çubuk grafik
Bir ızgara, bir eksen, <ChartTooltip /> ve <ChartLegend />. Tooltip ve legend etiketlerini ve renklerini config'ten okur.
Çizgi grafik
indicator="line" tooltip anahtarlarını tanımladıkları çizgilerle eşleştirir.
Yığılmış çubuklar
Aynı stackId'ye sahip çubuklar üst üste yığılır. Yığın tek bir çubuk gibi okunsun diye yalnızca dış uçları yuvarlayın.
Yatay çubuklar
Grafikte layout="vertical" ayarlayın ve eksen türlerini değiştirin. <LabelList /> her değeri çubuğunun sonuna yazdırır.
Halka
Her dilim rengini verideki fill değerinden alır. Tooltip ve legend üzerindeki nameKey, her dilimin etiketini config'te arar.
Radar
Polar ızgaralar ve eksenler, kartezyen olanlarla aynı soluk çizgileri ve etiketleri alır.
Tooltip
dot, line ve dashed göstergeleri arasında geçiş yapın ve etiketi hideLabel ile gizleyin. <ChartTooltip /> üzerindeki defaultIndex ilk render'da bir noktayı gösterir.
Değerleri biçimlendirme
valueFormatter sayıyı biçimlendirir ve göstergeyi ile adı korur. labelFormatter etiket için aynısını yapar. Bunun yerine tüm bir satırı değiştirmek için formatter kullanın.
Simgeler
Config'teki bir icon, tooltip ve legend içindeki renk anahtarının yerine geçer.
Açık ve koyu renkler
Bir theme nesnesi her temada farklı bir renk seçer. Değişimi görmek için site temasını değiştirin.
Negatif değerler
Her çubuğu <Cell /> ile renklendirin ve sıfırı <ReferenceLine /> ile işaretleyin.
Uzun etiketler
Uzun seri adları legend'da ve tooltip'te sarar; büyük değerler ise yanlarında tek satırda kalır.
Sağdan sola
Recharts eksenleri kendiliğinden yansıtmaz. x ekseninde reversed ayarlayın ve y eksenini sağa taşıyın. Okuyucunun rakamlarını göstermek için tooltip'e locale geçin.
Recharts accessibilityLayer'ı varsayılan olarak açar; böylece grafik, nokta nokta gezindiğiniz tek bir tab durağıdır.
| Tuş | Action |
|---|---|
| Tab | Grafiğe odaklanır ve bir odak halkası gösterir. |
| ←→ | Tooltip'i sonraki veya önceki noktaya taşır. Ters çevrilmiş bir eksende tuşlar ekranı izler. |
| Enter | Tooltip'i geçerli noktada gösterir veya gizler. |
- Grafikler ekran okuyucular için birer görseldir. Her birini yakında görünür bir başlıkla veya Recharts grafiğinde bir
aria-labelile adlandırın ve kişiler tam değerlere ihtiyaç duyuyorsa bir tablo sunun. - Tooltip ve legend her seriyi metinle adlandırır; böylece okuyucunun yalnızca renkleri eşleştirmesi gerekmez.
- Azaltılmış harekette Recharts giriş animasyonlarını atlar ve tooltip noktalar arasında kaymak yerine atlar.
- Tooltip değerleri,
localegeçmediğiniz süreceen-USile biçimlendirilir; böylece sunucu ve tarayıcı aynı metni üretir.
Parçalar Recharts'ın üstünde durur. İçine koyduğunuz grafik bileşenlerinde her Recharts prop'u yine çalışır.
Config'i sağlar, renk değişkenlerini yazar ve alt öğesinin çevresinde bir Recharts <ResponsiveContainer /> oluşturur. Tüm <div> prop'larını alır.
| Prop | Tür | Varsayılan |
|---|---|---|
configHer veri anahtarı için etiketler, simgeler ve renkler. | ChartConfig | – |
children<BarChart /> gibi bir Recharts grafiği. | ReactElement | – |
initialDimensionKapsayıcı ölçülmeden önce kullanılan boyut. | { width: number; height: number } | { width: 320, height: 200 } |
idGrafiği data-chart içinde adlandırır. Belirtilmezse oluşturulur. | string | – |
| Öznitelik | Açıklama |
|---|---|
data-slot="chart" | Kapsayıcı. |
data-chart | Renk değişkenlerinin kapsamlandığı id. |
--color-KEY | Yapılandırılan her anahtar için bir renk değişkeni. |
| Prop | Tür | Varsayılan |
|---|---|---|
label | ReactNode | – |
iconTooltip ve legend içindeki renk anahtarının yerine geçer. | ComponentType | – |
colorHerhangi bir CSS rengi veya değişkeni. | string | – |
themeTema başına bir renk için color yerine kullanın. | { light: string; dark: string } | – |
Noktalar arasında daha kısa bir kayma olan Recharts <Tooltip />. Tüm Recharts tooltip prop'larını alır.
| Prop | Tür | Varsayılan |
|---|---|---|
contentGenellikle <ChartTooltipContent />. | ReactElement | (props) => ReactNode | – |
animationDuration | number | 200 |
animationEasing | string | "ease-out" |
defaultIndexİlk render'da tooltip'i bu noktada gösterir. | number | – |
| Prop | Tür | Varsayılan |
|---|---|---|
indicator | "dot" | "line" | "dashed" | "dot" |
hideLabel | boolean | false |
hideIndicator | boolean | false |
labelKeyEtiket için kullanılacak config veya veri anahtarı. | string | – |
nameKeyHer ad için kullanılacak config veya veri anahtarı. | string | – |
valueFormatterHer değeri biçimlendirir; göstergeyi ve adı korur. | (value, name, item) => ReactNode | – |
labelFormatter | (label, payload) => ReactNode | – |
formatterHer satırın yerine geçer. | (value, name, item, index, payload) => ReactNode | – |
localeSayısal değerleri biçimlendirir. | Intl.LocalesArgument | "en-US" |
colorHer satır için tek bir gösterge rengi. | string | – |
className | string | – |
labelClassName | string | – |
| Öznitelik | Açıklama |
|---|---|
data-slot="chart-tooltip" | Kutu. |
data-slot="chart-tooltip-label" | Etiket. |
data-slot="chart-tooltip-item" | Seri başına bir satır. |
data-slot="chart-tooltip-indicator" | Renk anahtarı. |
data-indicator | Anahtarda: nokta, çizgi veya kesikli. |
--chart-indicator | Anahtarın rengi. |
Recharts <Legend />. Tüm Recharts legend prop'larını alır ve serileri alfabetik yerine tanımladığınız sırada listeler.
| Prop | Tür | Varsayılan |
|---|---|---|
contentGenellikle <ChartLegendContent />. | ReactElement | (props) => ReactNode | – |
itemSorternull bildirilen sırayı korur. | "value" | "dataKey" | (item) => number | string | null | null |
| Prop | Tür | Varsayılan |
|---|---|---|
hideIcon | boolean | false |
nameKeyHer ad için kullanılacak config veya veri anahtarı. | string | – |
className | string | – |
| Öznitelik | Açıklama |
|---|---|
data-slot="chart-legend" | Liste. |
data-slot="chart-legend-item" | Seri başına bir giriş. |
data-slot="chart-legend-indicator" | Renk örneği. |
Kendi tooltip veya legend içeriğinizi oluşturmak için bir <ChartContainer /> içinde { config } döndürür.
- AvatarBaş harf yedekli kullanıcı fotoğrafları, durum rozetleri ve sayıya daralan yığılmış gruplar.
- BadgeRenkli noktalı durum etiketleri, kayarak kapanan kaldırılabilir etiketler ve yeni değerine dönen sayaçlar.
- Cardİçeriği gruplamak için bir yüzey; üç varyant, kenardan kenara medya, eşmerkezli yarıçaplar ve tüm kartı kaplayan bağlantılar içerir.
- Data tableGerçek veriler için bir tablo; sıralama, arama, satır seçimi, sabitlenmiş sütunlar, yapışkan başlık ve sayfalama içerir.
- ItemListeler, ayarlar ve seçiciler için medya, metin ve eylemlerden oluşan bir satır; gruplanmış bir yüzey ve satırlar arasında kayan bir hover vurgusu içerir.
- KbdKısayollar için, her platformda doğru simgeleri gösteren, düzgün sesli okunan ve gerçek tuşlar gibi basılan tuş başlıkları.
Kullanıldığı bloklar
Chart üzerine kurulan bloklar.
- BillingBir yapay zeka ürünü için Cursor, Claude ve Vercel tarzında plan ve kullanım. Modele göre bölünmüş, dönem sonunu öngören ve krediler bitmeden uyaran bir kullanım ölçeri, üzerinde gezinebileceğiniz günlük bir grafik, ölçer üzerinde önizleyebileceğiniz uyarılara sahip bir harcama limiti, tam orantılı hesaplamayla plan değişiklikleri, gerçek doğrulamalı bir kart formu ve PDF olarak indirilen faturalar.
- SettingsCursor ve Claude gibi düzenlenmiş, bir yapay zeka ürünü için ayarlar. Arama, gruplar ve harici bağlantılı dolu bir kenar çubuğu, sakin seçiciler ve iç içe seçenekler içeren satır kartları, yalnızca bir şey değiştiğinde yükselen koyu bir kaydetme adası, kaydetmek için ⌘S, kontrollerinizden ya da sunucunuzdan gelen alan hataları ve içeriğin şeklini alan yükleme durumları.