सामग्री पर जाएँ
मेनू
भाषा, अभी हिन्दी
EnglishGaeilge简体中文Españolहिन्दीPortuguêsবাংলাРусский日本語廣東話Tiếng Việtالعربية

rastrillo डिज़ाइन सिस्टम

डिज़ाइन सिस्टम जो कुछ देता है, उसका अवलोकन। थीम: day। भाषा: हिन्दी

UI प्रिमिटिव

वे आकृतियाँ जो कोई कॉम्पोनेंट नहीं हो सकता, क्योंकि वे ऐसे भाग को घेरती हैं जिसे सिर्फ़ कॉल करने वाला जानता है: सेक्शन कार्ड, डेटा ग्रिड, डिस्क्लोज़र मेन्यू, और शेल का अपना ढाँचा। tokens.css क्लास देता है और ऐप मार्कअप लिखता है। नीचे जो कुछ है वह ठीक वही नमूना है जो ui.Styleguide लौटाता है, और वही नमूना ui की जाँचें tokens.css के सामने रखती हैं।

यहाँ के लिंक निष्क्रिय हैं

लिंक निष्क्रिय, नमूने का स्रोत साथ में दिया गया है।

box

पैडिंग वाला खंड कार्ड, और वह शीर्षक जो उसके बाहर बैठता है।

कौन-सा कार्ड कौन-सा है

rst-list और rst-card में जान-बूझकर कोई पैडिंग नहीं है: वे पंक्तियों की क़तार रखते हैं, और हर पंक्ति ख़ुद को पैड करती है। इनमें कोई फ़ॉर्म, अनुच्छेद, लिंक की पट्टी या कोई भी ग़ैर-पंक्ति चीज़ सीधे डालिए और वह किनारे से सटी हुई दिखेगी — किनारे को छूता पाठ ही वह संकेत है। किसी भी सामग्री के लिए पैडिंग वाला कार्ड rst-box है, और उसका शीर्षक उससे पहले भाई-नोड rst-box-head के रूप में आता है।

पूर्वावलोकन
<div rst-box-head><h2>Payout</h2><a rst-btn href="/payout/edit">Edit</a></div>
<section rst-box><p>Everything on a screen sits inside boxes.</p><div rst-box-foot>Last updated 2 hours ago</div></section>

dropdown

हेडर के अतिरिक्त मेन्यू और सूची पट्टी के फ़िल्टर के पीछे बैठा details/summary मेन्यू, और साथ में लागू फ़िल्टर एक हटाने योग्य चिप के रूप में।

पूर्वावलोकन
<details rst-dropdown name="rst-menus">
  <summary>Filter<span rst-caret aria-hidden="true"><svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m6 9 6 6 6-6"/></svg></span><span class="rst-sr-only">Filter orders: Paid</span></summary>
  <div rst-dropdown-menu>
    <a aria-current="true" href="/orders?status=paid">Paid</a>
    <details rst-menu-group name="rst-menus-price" open><summary>Price</summary><div><a href="/orders?price=free">Free</a></div></details>
  </div>
</details>
<span rst-ftok><span rst-ftok-k>Paid</span><a href="/orders" aria-label="Remove filter Paid">✕</a></span>

form-layout

वे ऐट्रिब्यूट जो फ़ॉर्म को उसकी लय और सहेजने की पट्टी देते हैं। कोई पार्शियल इन्हें नहीं निकालता — ये उन फ़ील्ड की क़तार को लपेटते हैं जिसे बुलाने वाला ख़ुद जोड़ता है।

पूर्वावलोकन
<form rst-form-flow method="post" action="/settings">
  <div rst-field>
    <label rst-field-label for="name">Name</label>
    <input rst-input type="text" id="name" name="name">
  </div>
  <div rst-field>
    <label rst-field-label for="email">Email</label>
    <input rst-input type="email" id="email" name="email">
  </div>
  <div rst-field-row>
    <div class="rst-grow" rst-field>
      <label rst-field-label for="city">City</label>
      <input rst-input type="text" id="city" name="city">
    </div>
    <div rst-field>
      <label rst-field-label for="zip">ZIP</label>
      <input rst-input="short" type="text" id="zip" name="zip">
    </div>
  </div>
  <div rst-form-bar>
    <span rst-form-bar-note>Changes save immediately.</span>
    <div rst-form-actions>
      <a rst-btn href="/settings">Cancel</a>
      <button rst-btn="primary" type="submit">Save</button>
    </div>
  </div>
</form>

help

किनारेदार प्रश्नचिह्न, जो सहायता लेख से जुड़ता है। उसका CSS टूलटिप सजावट है; लिंक अपना पूरा वाक्य वाला लेबल खुद रखता है।

पूर्वावलोकन
<a rst-help rst-tip href="/help/orders" target="_blank" rel="noopener" aria-label="Help: orders" data-tip="About orders"><svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><path d="M12 17h.01"/></svg></a>

list-grid

डेटा तालिका की असली शब्दावली: कार्ड अपने स्तंभ एक बार तय करता है, पंक्तियाँ बस कोशिकाएँ चुनती हैं।

स्क्रीनें ऊपर से नीचे जमती हैं

एक स्क्रीन एक स्तंभ है: page-header, फिर section-header + कार्ड, फिर अगला section-header + कार्ड, पढ़ने के क्रम में। क्षैतिज व्यवस्था उन्हीं मुहावरों के लिए है जो उसे साथ लाते हैं: rst-box-head, rst-field-row, rst-lbar, rst-lrow कोशिकाएँ, rst-seg-tabs।

पूर्वावलोकन
<div rst-card style="--rst-cols: 2fr 110px 32px">
  <div rst-lrow="head"><span>Order</span><span class="rst-m-hide">Status</span><span></span></div>
  <div rst-lrow>
    <a class="rst-nm" href="/orders/AB3PX"><bdi>Grace Hopper</bdi><small>AB3PX · <bdi>grace@example.com</bdi></small></a>
    <span class="rst-m-hide rst-cell-mut">Paid</span>
    <details rst-row-menu name="rst-menus"><summary aria-label="Actions for order AB3PX"><svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="12" cy="19" r="1"/></svg></summary>
      <div rst-row-menu-panel><a href="/orders/AB3PX">View</a><hr><button type="submit" class="rst-danger">Refund order…</button></div>
    </details>
  </div>
  <p rst-no-match>No orders match. <a href="/orders">Clear filters</a></p>
</div>
<p rst-count-line>Displaying <strong>1–20</strong> of <strong>412</strong></p>

modal

मोडल का अपना URL होता है, वह क्लाइंट की स्थिति नहीं है: नीचे का पृष्ठ inert चिह्नित, उसके ऊपर पैनल, और बंद करने के लिए एक सादा लिंक।

पूर्वावलोकन
<div rst-backdrop inert>
  <div rst-page><h1>Settings</h1></div>
</div>
<div rst-modal-overlay>
  <dialog rst-modal-panel open aria-labelledby="modal-title">
    <nav>
      <a href="/settings/profile" aria-current="page">Profile</a>
      <a href="/settings/billing">Billing</a>
      <a href="/settings/notifications">Notifications</a>
    </nav>
    <section>
      <a rst-modal-close href="/settings" aria-label="Close settings">✕</a>
      <h2 id="modal-title">Profile</h2>
      <p>Update the name and photo shown across the account.</p>
    </section>
  </dialog>
</div>

उसे उसी URL पर चलते हुए देखिए जहाँ उसका होना बनता है (नए टैब में खुलता है).

selbox

चयन मोड में सूची पंक्ति जो चेकबॉक्स पहनती है। उसका लेबल पंक्ति की पहचान दोहराता है।

पूर्वावलोकन
<label rst-selbox><input type="checkbox" aria-label="Select order AB3PX"></label>

shell-sidebar

sidebar शेल का अपना ढाँचा, जो 800px से नीचे सिमटकर details डिस्क्लोज़र बन जाता है।

पूर्वावलोकन
<div rst-shell-sidebar>
  <a rst-skip href="#main">Skip to content</a>
  <details rst-shell-chrome><summary><svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12h16"/><path d="M4 6h16"/><path d="M4 18h16"/></svg>Menu</summary></details>
  <aside rst-shell-rail><a rst-shell-brand href="/">Notes</a>
    <nav rst-shell-nav><span rst-shell-group>Work</span><a href="/" aria-current="page">Dashboard</a><a href="/reports">Reports</a></nav>
  </aside>
  <main rst-shell-main id="main"><div rst-page>Content.</div></main>
</div>

साइडबार शेल का डेमो खोलें, एक स्वतंत्र पूर्वावलोकन। (नए टैब में खुलता है).

shell-topbar

टॉपबार शेल का अपना ढाँचा, मार्कअप के रूप में। Layout इसे एक पूरे टेम्पलेट की तरह देता है।

पूर्वावलोकन
<div rst-shell-topbar>
  <a rst-skip href="#main">Skip to content</a>
  <header rst-shell-bar><a rst-shell-brand href="/">Notes</a>
    <details rst-shell-menu name="rst-shell-menu"><summary><svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12h16"/><path d="M4 6h16"/><path d="M4 18h16"/></svg>Menu</summary></details>
    <div rst-shell-tail>
    <nav rst-shell-nav><a href="/" aria-current="page">Home</a><a href="/archive">Archive</a></nav>
    <details rst-dropdown rst-shell-account name="rst-menus"><summary>Account<span rst-caret aria-hidden="true"><svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m6 9 6 6 6-6"/></svg></span></summary>
      <div rst-dropdown-menu><a href="/settings">Settings</a></div></details>
    </div>
  </header>
  <main rst-page id="main">Content.</main>
  <footer rst-shell-foot>Made with rastrillo</footer>
</div>

टॉपबार शेल का डेमो खोलें, एक अलग पूर्वावलोकन। (नए टैब में खुलता है).

stat-band

डैशबोर्ड के ऊपर आँकड़ों की एक पंक्ति।

पूर्वावलोकन
<div rst-stats>
  <div rst-stat="lead"><span rst-stat-label>Revenue this month</span><span rst-stat-num>&euro;48,210</span><span rst-stat-delta rst-tone="positive">+12%</span><span rst-stat-note>vs. last month</span></div>
  <div rst-stat><span rst-stat-label>Orders today</span><span rst-stat-num>318</span></div>
  <div rst-stat><span rst-stat-label>Average basket</span><span rst-stat-num>&euro;41.20</span><span rst-stat-delta rst-tone="negative">&minus;3%</span></div>
  <div rst-stat><span rst-stat-label>Refunds</span><span rst-stat-num>7</span></div>
</div>

tblock

किनारेदार कार्ड, जिसका भीतरी हिस्सा :has() के ज़रिए तभी दिखता है जब उसका स्विच चालू हो। स्विच ही असली स्थिति है; दिखना बस सुविधा है।

पूर्वावलोकन
<div rst-tblock>
  <label rst-tblock-head><input type="checkbox" name="notify" checked>
    <span rst-switch-track aria-hidden="true"></span>
    <span><span rst-tblock-title>Email notifications</span><span rst-tblock-desc>Sent for every reply to a thread you're in.</span></span>
  </label>
  <div rst-tblock-body>
    <div rst-field>
      <label rst-field-label for="notify-freq">Frequency</label>
      <input rst-input type="text" id="notify-freq" name="notify_freq" value="Daily digest">
    </div>
  </div>
</div>