المخططات والمرئيات
<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>
مخططات خطية بمصفوفة نقاط مع محور ص ودليل.
| Prop | الوصف |
|---|---|
series | { data, label?, color? }[] |
data | اختصار لسلسلة واحدة |
height | الصفوف (الافتراضي 8) |
min / max | حدود ثابتة (الافتراضي: البيانات) |
axis | محور ص مع تسميات للحدين الأدنى والأقصى |
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> أيضًا خصائص التخطيط.
يُحمّل src عبر لوحة رسم، لذا تحتاج الصور من مصادر مختلفة إلى 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 خلاياك الخاصة حيثما يتعذر عرض الكائن الرسومي. راجع التغييرات غير المتوافقة لمعرفة كيفية تحديد إصدارات الصادرات التجريبية.