متن اور اسٹائلنگ
رنگوں، متن کی خصوصیات اور تھیم ٹوکنز سے ڈیپلائمنٹ کارڈ کو اسٹائل دیں۔
اس باب میں
- متن کی خصوصیات
- تھیم ٹوکنز
- ڈیپلائمنٹ کارڈ
- تھیمز
ہر سیل میں ایک کریکٹر، ایک فورگراؤنڈ، ایک بیک گراؤنڈ اور خصوصیات کا ایک سیٹ ہوتا ہے۔ Text.js انہیں %c CSS spans میں کمپائل کرتا ہے، اس لیے کونسول اصل رنگ، بولڈ اور اٹالک دکھاتا ہے۔
متن کی خصوصیات
<Text> میں bold، dim، italic، underline اور strikethrough استعمال ہوتے ہیں۔ نیسٹ کیے گئے <Text> ایلیمنٹس ایک ہی لائن میں اسٹائل شدہ spans بن جاتے ہیں۔
<Text> Deployed <Text bold>acme-web</Text> to <Text color="accent">iad1</Text></Text>تھیم ٹوکنز
color prop ہیکس ویلیوز، رنگوں کے سادہ نام (emerald) اور تھیم ٹوکنز قبول کرتا ہے؛ Tailwind پیلیٹ کے شیڈز کلاسز (text-emerald-400) سے لگتے ہیں۔ ٹوکنز فعال تھیم کے مطابق ہوتے ہیں، اس لیے معنی ظاہر کرنے والی ہر چیز کے لیے انہیں ترجیح دیں۔ ایک اسٹیٹس کمپوننٹ شامل کریں:
شامل کردہ: import { Text } from "@textjs/app";شامل کردہ: شامل کردہ: export type DeployStatus = "ready" | "building" | "error" | "queued";شامل کردہ: شامل کردہ: export const STATUS = {شامل کردہ: ready: { label: "Ready", color: "success" },شامل کردہ: building: { label: "Building", color: "warning" },شامل کردہ: error: { label: "Error", color: "danger" },شامل کردہ: queued: { label: "Queued", color: "subtle" },شامل کردہ: } as const;شامل کردہ: شامل کردہ: export function Status({ status }: { status: DeployStatus }) {شامل کردہ: const s = STATUS[status];شامل کردہ: return <Text color={s.color} wrap="nowrap">{`● ${s.label}`}</Text>;شامل کردہ: }ڈیپلائمنٹ کارڈ
bg-surface کارڈ کو بیک گراؤنڈ سے ابھارتا ہے۔ ڈیپلائمنٹ آئی ڈی اسٹیٹس کا رنگ لیتا ہے، بلڈ کے دوران اٹالک ہوتا ہے اور ایرر پر اس کے اوپر لکیر آ جاتی ہے۔
ہٹائے گئے: import { Box, Spacer, Text, useInput } from "@textjs/app";شامل کردہ: import { Box, Spacer, Text, useAppTheme, useInput } from "@textjs/app";شامل کردہ: import { Status, STATUS, type DeployStatus } from "./status";شامل کردہ: شامل کردہ: const ORDER: DeployStatus[] = ["ready", "building", "error", "queued"];شامل کردہ: export default function Page() {شامل کردہ: const { theme, cycleTheme } = useAppTheme();شامل کردہ: const [status, setStatus] = useState<DeployStatus>("ready");شامل کردہ: شامل کردہ: useInput((e) => {شامل کردہ: if (e.input === "t") cycleTheme();شامل کردہ: if (e.input === "s") setStatus((s) => ORDER[(ORDER.indexOf(s) + 1) % ORDER.length]);شامل کردہ: });شامل کردہ: return ( <Box className="flex-col grow"> {/* top bar, now with the theme name on the right */}شامل کردہ: <Box className="flex-col border rounded px-2 py-1 bg-surface">شامل کردہ: <Box className="flex-row gap-2 h-1">شامل کردہ: <Text bold>acme-web</Text>شامل کردہ: <Status status={status} />شامل کردہ: </Box>شامل کردہ: <Text color="muted" wrap="truncate-end">feat: stream cells downward</Text>شامل کردہ: <Text color={STATUS[status].color} italic={status === "building"} strikethrough={status === "error"}>شامل کردہ: dpl_8fK2شامل کردہ: </Text>شامل کردہ: </Box> </Box> );}wrap="truncate-end" طویل کمٹ پیغامات کو دوسری قطار میں لپیٹنے کے بجائے … پر ختم کرتا ہے۔
تھیمز
Text.js کے ساتھ پانچ تھیمز آتے ہیں: Geist Dark، OpenCode Dark، Tokyo Night، Amber CRT اور Geist Light۔ انہیں باری باری بدلنے کے لیے کونسول میں t دبائیں۔ پورا فریم نئے پیلیٹ میں دوبارہ پینٹ ہوتا ہے، کیونکہ اوپر دیا گیا ہر رنگ ایک ٹوکن ہے۔
آزمائیں
یہ باب کے اختتام پر Acme Deploys ہے، جو DevTools میں چل رہی ہے۔ پیڈ پر کلک کریں، پھر نیچے دی گئی کلیدیں استعمال کریں۔
کونسول کھولیں
ایپ DevTools میں رینڈر ہوتی ہے۔پہلے Safari کی ترتیبات → ایڈوانسڈ میں “ویب ڈیولپرز کے لیے فیچرز دکھائیں” آن کریں۔ پھر یہاں کلک کریں اور t دبائیں۔
ڈیسک ٹاپ پر کھولیں
یہ ایپ DevTools کونسول میں رینڈر ہوتی ہے، جس کے لیے ڈیسک ٹاپ براؤزر چاہیے۔
کوئز
2 سوالاتباب مکمل کرنے کے لیے ہر سوال کا جواب دیں۔