תרשימים ותצוגות חזותיות
<LineChart>, <BarChart>, <Sparkline>, <ProgressBar>, <Gradient> ו-<Image>.
תרשימים מצוירים באמצעות תווי בלוקים. עמודות משתמשות בשמונה רמות לכל תא, וקווים משתמשים ברשת נקודות של 2×2 לכל תא.
<LineChart height={6} series={[ { label: "p50", data: p50 }, { label: "p95", data: p95, color: "muted" }, ]} formatValue={(v) => `${Math.round(v)}ms`}/><BarChart data={[{ label: "iad1", value: 1240 }, { label: "sfo1", value: 860 }]} /><Sparkline data={requests} /><ProgressBar label="Build" value={0.42} /><LineChart>
תרשימי קווים במטריצת נקודות עם ציר Y ומקרא.
| Prop | תיאור |
|---|---|
series | { data, label?, color? }[] |
data | קיצור לסדרה אחת |
height | שורות (ברירת מחדל 8) |
min / max | גבולות קבועים (ברירת מחדל: הנתונים) |
axis | ציר Y עם תוויות מינימום ומקסימום |
formatValue | תוויות ציר (ברירת מחדל 1.2k) |
marker | quadrant (ברירת מחדל) או braille |
braille דוחס 2×4 נקודות בכל תא. יש להשתמש בו בטרמינלים: Menlo, גופן המסוף של DevTools ב-macOS, אינו כולל ברייל, והגליפים החלופיים רחבים יותר מתא.
צבעי ברירת המחדל של הסדרות הם accent, success, warning, info ו-danger.
<BarChart>
עמודות אופקיות עם תוויות וערכים מיושרים, בדיוק של שמינית תא.
<BarChart data={regions} max={2000} formatValue={(v) => `${v} req/s`} /><Sparkline>
ממלא את רוחבו בנקודות העדכניות ביותר. ערך height מעל 1 מרנדר שטח מלא.
<Sparkline data={throughput} height={3} />sparkline(values) מחזיר את אותו sparkline כמחרוזת.
<ProgressBar>
| Prop | תיאור |
|---|---|
value / max | התקדמות (יש להשמיט למצב בלתי קצוב) |
variant | block (חלק) line thin |
width | תאים (ברירת מחדל: מילוי) |
label | טקסט בתחילת הפס |
formatValue | טקסט בסוף הפס (ברירת מחדל 42%) |
פסים בלתי קצובים נעים בקצב הפריימים של מנגנון הרינדור ועוצרים כשהפלט מושהה.
<Gradient>
אינטרפולציית צבע לכל תא. מחרוזות מרובות שורות חולקות מעבר צבע אחד, ולכן הוא מתאים לשילוב עם <AsciiFont>.
<Gradient colors={["#ff4d8d", "#3291ff"]} bold>▼ Text.js</Gradient><Gradient colors="dusk">{renderAsciiFont("SHIP").join("\n")}</Gradient>מעברי צבע בעלי שם: geist dusk ocean mono ember.
<Image>
המסופים של Chromium ושל Firefox מציירים את התמונה כספרייט פיקסלים. פיקסל ארט (256 צבעים או פחות, ללא פיקסלים שקופים חלקית) שומר על עד 8 × 16 פיקסלים לתא, ותצלומים על עד 4 × 8. Safari, טרמינלים, עותקי טקסט פשוט ודפים עם runtime = "server" מקבלים חצאי בלוקים ▀: כל תא מכיל שני פיקסלים, העליון בצבע החזית והתחתון ברקע. יש להעביר renderMode="halfblock" כדי לצייר חצאי בלוקים בכל מקום, כפי שעשה <Image> בגרסה 1.3.
<Image src="/avatar.png" width={24} /><Image pixels={{ width, height, data }} height={8} fit="cover" />| Prop | תיאור |
|---|---|
src | כתובת URL של תמונה (בדפדפן בלבד) |
pixels | נתוני RGBA גולמיים במבנה { width, height, data }, 4 בתים לפיקסל לפי סדר השורות |
width / height | רוחב בתאים, גובה בשורות. יש להעביר אחד מהם לשמירת יחס הממדים, או להשמיט את שניהם לקבלת 1 × 2 פיקסלים לתא (src משנה את הגודל עד ל-256 × 256 px לכל היותר) |
fit | contain (ברירת מחדל), cover או fill |
alt | טקסט שמוצג בזמן טעינת src או אם הטעינה נכשלת |
renderMode | auto (ברירת מחדל: ספרייט כשיש תמיכה, חצאי בלוקים ▀ במקומות אחרים) או halfblock |
<Image> מקבל גם מאפייני layout.
src נטען דרך canvas, ולכן תמונות ממקור אחר דורשות CORS. pixels מקבל נתוני RGBA גולמיים בכל מקום, כולל בטרמינל.
תמונה מצוירת כחצאי בלוקים גם ב-Chromium וב-Firefox כשאי אפשר להציג אותה כספרייט אחד:
- שתי תמונות זו לצד זו באותן שורות, כמו בגלריה.
- תצלום עם טקסט לצידו. פיקסל ארט לצד טקסט נשאר ספרייט.
- תמונה שנחתכת באמצעות תיבה עם
overflow="hidden", או מוסתרת חלקית על ידי תיבה אחרת. - פיקסלים שקופים מעל טקסט או מעל יותר מצבע רקע אחד.
<Pixels> (ניסיוני)
@textjs/react/experimental מייצא את <Pixels> למאגרי פריימים חיים בפורמט 0xRRGGBBAA, כגון משחקים, אמולטורים ווידאו. יש לכתוב פיקסלים ארוזים ישירות לתוך source.data ולהגדיל את frame לציור מחדש.
import { Pixels, type PixelSource } from "@textjs/react/experimental";const source: PixelSource = { width: 320, height: 200, data: new Uint32Array(320 * 200) };<Pixels source={source} frame={frame} width={80} height={25} pixelAspect={5 / 6} />| Prop | תיאור |
|---|---|
source | { width, height, data: Uint32Array } בסדר 0xRRGGBBAA |
frame | מונה פריימים; יש להגדיל לאחר שינוי source.data |
width / height | גודל התיבה בתאים ובשורות |
fit | contain (ברירת מחדל) או fill |
pixelAspect | הרוחב המוצג חלקי הגובה של פיקסל מקור אחד (ברירת מחדל 1) |
palette | פלטת PackedColor[] אופציונלית לכימות הצבעים לפיה |
sample | מסנן לתצוגה החלופית בחצאי בלוקים: nearest (ברירת מחדל) או average |
renderMode | auto (ברירת מחדל: ספרייט כשיש תמיכה, חצאי בלוקים ▀ במקומות אחרים) או halfblock |
renderMode="auto" מצייר ספרייט מפוקסל ב-Chromium, וב-Firefox לפי כללי העיצוב של המסוף שלו (ללא מדידת ביצועים), ומשתמש בחצאי בלוקים ▀ כחלופה ב-Safari, בטרמינלים, בעותקי טקסט פשוט ובדפים עם runtime = "server". יש להעביר renderMode="halfblock" כדי לצייר חצאי בלוקים בכל מקום.
כדי לצייר פיקסלים ללא React, יש לייבא את drawPixels מתוך @textjs/core/experimental יחד עם DrawPixelsOptions, PixelSource, PixelFit, PixelSample, PixelRenderMode, PixelEncoding ו-PixelRect. האפשרות encoding: "rgba" שומרת על יותר מ-256 צבעים ועל שקיפות אלפא הדרגתית בתמונות סטטיות, ו-fallback מצייר תאים מותאמים בכל מקום שבו אי אפשר להציג את הספרייט. לפרטים על ניהול גרסאות של ייצואים ניסיוניים, ראו שינויים שוברי תאימות.