React ट्यूटोरियल

टाइप कइल फंक्शन घटक, एक-एक फाइल, मानक पैटर्न से नियंत्रित value + onChange — सब कुछ ओइसहीं चलेला जइसे React पहिले से चलेला।

रउआ का बनाईब

एगो छोट संपर्क फॉर्म — लेबल वाला क्षेत्र, जमा करे के बटन, नियंत्रित स्थिति, असली कीबोर्ड आ स्क्रीन-रीडर व्यवहार — पहिले सादा, फेर शैली के साथे, करीब 10 मिनट में।

शुरू करे से पहिले

रउआ के git, Node 22 भा नया, आ pnpm 10 भा नया चाहीं। कवनो React 18+ परियोजना चली — Next.js, Vite भा सादा React।

कदम 1 — कोड पाईं

git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-react-headless
pnpm install
pnpm test        # vitest + @testing-library/react
pnpm run storybook   # browse all 571 components

घटक इहाँ सपाट फाइल बाड़ें: components/ — Button.tsx, TextInput.tsx — हर एक के बगल में ओकर परीक्षण, story आ दस्तावेज। जवन फाइल चाहीं ओकरा के आपन ऐप में कॉपी करीं, भा रेपो ले आईं आ ओहि से आयात करीं।

कदम 2 — रउआ के पहिला घटक

import Button from "lily-design-system-react-headless/components/Button";

export function SaveBar() {
  return <Button onClick={save}>Save</Button>;
}

ई देखावेला <button class="button" type="button">। Props: type, disabled, pressed (देखावेला aria-pressed), label (एगो aria-label सारे खातिर), className, आ कवनो अतिरिक्त गुण मूल तत्व पर फइल जाला।

कदम 3 — एगो छोट फॉर्म जोड़ीं

import { useState } from "react";
import Form from ".../components/Form";
import Field from ".../components/Field";
import TextInput from ".../components/TextInput";
import Button from ".../components/Button";

export function ContactForm() {
  const [name, setName] = useState("");
  return (
    <Form label="Contact form" onSubmit={handleSubmit}>
      <Field label="Full name" required>
        <TextInput id="name" label="Full name" value={name} onChange={setName} required />
      </Field>
      <Button type="submit">Save</Button>
    </Form>
  );
}

Field दिखे वाला label आपन prop के रूप में, भीतर रखल लेबल घटक के रूप में ना — एक बेर दीं, पर Fieldआ TextInputके label सुलभ नाम देला।

2026-08-29 के जाँचल: पहिले के मसौदा में अलग Label के भीतर Fieldके भीतर रखल गइल रहे, जवना से दू गो लेबल (एगो खाली) दिखल काहे कि Field पहिले से आपन label prop — ठीक टुकड़ा के कंपाइल करके पता चलल। रास्ता संयुक्त संपर्क-फॉर्म रास्ता उहे पैटर्न ह, असली e2e आ axe परीक्षण से जाँचल।

कदम 4 — एकरा के शैली दीं

ऊपर के सब कुछ शुद्ध संरचना के रूप में रेंडर होखेला, रउआ के शैली खातिर तैयार। हुक के शैली दीं — .button, .text-input, .label, .field — आपन स्टाइलशीट में, एकरा से Tailwind उपयोगिता के परत चढ़ाईं className, भा तैयार थीम लिंक करीं:

<link rel="stylesheet" href="/themes/united-states-web-design-system.css" />

कदम 5 — सब कुछ चलत देखीं

Next.js उदाहरण ऐप पूरा कैटलॉग शैली आ प्रदर्शन के साथे बा, Playwright e2e आ axe-core आधाररेखा के साथे:

git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-react-next-examples
pnpm install && pnpm run dev

अगिला कदम

रास्ता में सवाल बा? मदद पन्ना जवाब से भरल बा — आ अगर कवनो कदम अउरी साफ हो सकेला, हमनी के बताईं आ हमनी खुशी से ट्यूटोरियल सुधारब।