⁦Box⁩ کے ساتھ لے آؤٹ

سیلز میں Flexbox سے ڈیش بورڈ کا شیل بنائیں: اوپری بار، سائیڈ بار اور کارڈز۔

اس باب کی ایپ آپ کے کونسول میں چل رہی ہے۔ اسے ⌘⌥JCtrl+Shift+J⌘⌥KCtrl+Shift+K⌘⌥C سے کھولیں (پہلے ڈیولپر فیچرز فعال کریں)، پھر اسے آزمائیں۔
باب دیکھیں3:39

اس باب میں

  • اوپر کی بار
  • سائیڈ بار اور کارڈز
  • ڈیفالٹ طور پر ریسپانسیو

کونسول سیلز کا ایک گرڈ ہے۔ Text.js اس کا لے آؤٹ Yoga سے بناتا ہے، جو وہی flexbox انجن ہے جسے ⁦React Native⁩ استعمال کرتا ہے، اس لیے <Box> ⁦CSS flexbox⁩ کے اصولوں پر عمل کرتا ہے۔ اکائیاں سیلز ہیں: p-1 پیڈنگ کا ایک کالم اور ایک قطار ہے۔

اوپر کی بار

زیادہ تر اسکرینیں ایک کالم ہوتی ہیں: ایک قطار کی بار، پھر باقی سب کچھ۔ h-1 سے بار کی اونچائی مقرر کریں اور grow سے مواد کو باقی جگہ لینے دیں۔

app/page.tsx+8-4tsx
ہٹائے گئے: import { Box, Text, useInput } from "@textjs/app";شامل کردہ: import { Box, Spacer, Text, useInput } from "@textjs/app";export default function Page() {  return (ہٹائے گئے:     <Box className="flex-col border rounded px-2 py-1">ہٹائے گئے:       <Text bold>▼ Acme Deploys</Text>ہٹائے گئے:       <Text color="muted">Hello, console.</Text>شامل کردہ:     <Box className="flex-col grow">شامل کردہ:       <Box className="flex-row h-1 px-1 gap-2 shrink-0">شامل کردہ:         <Text bold>▼ Acme</Text>شامل کردہ:         <Text color="subtle">acme.local</Text>شامل کردہ:         <Spacer />شامل کردہ:       </Box>شامل کردہ:       <Box className="flex-row grow">{/* sidebar + cards */}</Box>    </Box>  );}

<Spacer> ایک پھیلنے والا باکس ہے: اس کے بعد کی ہر چیز دائیں کنارے تک دھکیل دی جاتی ہے۔

مقررہ چوڑائی اور دائیں بارڈر والی ایک سائیڈ بار اور تین کارڈز شامل کریں جو باقی چوڑائی بانٹ لیں۔ grow کے ساتھ basis-0 ہر کارڈ کو اس کے مواد سے قطع نظر برابر حصہ دیتا ہے۔

app/page.tsx+31-1tsx
شامل کردہ: const NAV = ["Overview", "Deployments", "Settings"];شامل کردہ: شامل کردہ: function Card({ title, value }: { title: string; value: string }) {شامل کردہ:   return (شامل کردہ:     <Box className="flex-col border rounded px-1 grow shrink basis-0" minWidth={14} minHeight={4}>شامل کردہ:       <Text color="subtle">{title}</Text>شامل کردہ:       <Text bold>{value}</Text>شامل کردہ:     </Box>شامل کردہ:   );شامل کردہ: }شامل کردہ: export default function Page() {شامل کردہ:   const [sidebar, setSidebar] = useState(true);شامل کردہ:   const [stacked, setStacked] = useState(false);شامل کردہ: شامل کردہ:   useInput((e) => {شامل کردہ:     if (e.input === "s") setSidebar((v) => !v);شامل کردہ:     if (e.input === "d") setStacked((v) => !v);شامل کردہ:   });شامل کردہ:   return (    <Box className="flex-col grow">      {/* top bar */}ہٹائے گئے:       <Box className="flex-row grow">{/* sidebar + cards */}</Box>شامل کردہ:       <Box className="flex-row grow">شامل کردہ:         {sidebar && (شامل کردہ:           <Box className="flex-col w-18 shrink-0 border-r px-1 pt-1">شامل کردہ:             {NAV.map((item) => <Text key={item}>{item}</Text>)}شامل کردہ:           </Box>شامل کردہ:         )}شامل کردہ:         <Box className={stacked ? "flex-col grow gap-1 p-1" : "flex-row grow items-start gap-1 p-1"}>شامل کردہ:           <Card title="Production" value="acme-web" />شامل کردہ:           <Card title="Deployments" value="6 today" />شامل کردہ:           <Card title="Build time" value="38s p50" />شامل کردہ:         </Box>شامل کردہ:       </Box>    </Box>  );}

کونسول میں s اور d دبائیں۔ Yoga لے آؤٹ کا دوبارہ حساب کرتا ہے اور صرف تبدیل شدہ قطاریں دوبارہ پینٹ ہوتی ہیں، اس لیے سائیڈ بار کو ٹوگل کرنے پر صرف ایک console.log درکار ہوتا ہے۔

ڈیفالٹ طور پر ریسپانسیو

گرڈ ڈاک کیے گئے DevTools پینل کے مطابق ہوتا ہے۔ کونسول کو کھینچ کر چوڑا یا اونچا کریں تو کارڈز کی ترتیب بدل جاتی ہے۔ جب آپ کو بریک پوائنٹس کی ضرورت ہو تو useBreakpoint() موجودہ بریک پوائنٹ سیلز میں واپس کرتا ہے۔

آزمائیں

یہ باب کے اختتام پر Acme Deploys ہے، جو DevTools میں چل رہی ہے۔ پیڈ پر کلک کریں، پھر نیچے دی گئی کلیدیں استعمال کریں۔

▼ 02 · ⁦Box⁩ کے ساتھ لے آؤٹ

کونسول کھولیں

⌘⌥J
CtrlShiftJ
⌘⌥K
CtrlShiftK
⌘⌥C

ایپ DevTools میں رینڈر ہوتی ہے۔پہلے Safari کی ترتیبات → ایڈوانسڈ میں “ویب ڈیولپرز کے لیے فیچرز دکھائیں” آن کریں۔ پھر یہاں کلک کریں اور ⁦s⁩ دبائیں۔

ڈیسک ٹاپ پر کھولیں

یہ ایپ DevTools کونسول میں رینڈر ہوتی ہے، جس کے لیے ڈیسک ٹاپ براؤزر چاہیے۔

کوئز

2 سوالات

باب مکمل کرنے کے لیے ہر سوال کا جواب دیں۔

⁦className⁩ یوٹیلٹیز میں ⁦p-1⁩ کا کیا مطلب ہے؟

 

کون سی کلاس باکس کو باقی جگہ لینے دیتی ہے؟