सामग्री पर जाएँ
अनुभाग
भाषा, अभी हिन्दी
Rastrillo डिज़ाइन सिस्टम

UI प्रिमिटिव

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

हर उदाहरण असली है, पर उसके लिंक कहीं नहीं ले जाते।

box

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

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

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

पूर्वावलोकन
<div rst-box-head>
  <h2>भुगतान राशि</h2>
  <a rst-btn href="/payout/edit">संपादित करें</a>
</div>
<section rst-box>
  <p>स्क्रीन पर सब कुछ बक्सों के अंदर रहता है।</p>
  <div rst-box-foot>2 घंटे पहले अपडेट किया गया</div>
</section>

button

बटन चार रूपों और तीन आकारों में आते हैं, और कोई लिंक भी बटन जैसा दिख सकता है। फ़ॉर्म भेजते समय दिखने वाले स्पिनर के लिए form-foot देखें।

पूर्वावलोकन
<p>
  <button rst-btn type="button">रद्द करें</button> <button rst-btn="primary" type="button">सहेजें</button> <button rst-btn="ghost" type="button">पूर्वावलोकन</button> <button rst-btn="danger" type="button">हटाएँ</button>
</p>
<p>
  <button rst-btn="primary sm" type="button">छोटा</button> <button rst-btn="primary" type="button">सामान्य</button> <button rst-btn="primary lg" type="button">बड़ा</button> <a rst-btn href="/orders">ऑर्डर देखें</a>
</p>
<p>
  <button rst-btn="primary block" type="button">जारी रखें</button>
</p>
<p>
  <button rst-btn type="button" disabled>संग्रहित</button>
</p>

dropdown

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

पूर्वावलोकन
<details rst-dropdown name="rst-menus">
  <summary>
    फ़िल्टर
    <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">ऑर्डर छाँटें: भुगतान हो चुका</span>
  </summary>
  <div rst-dropdown-menu>
    <a aria-current="true" href="/orders?status=paid">भुगतान हो चुका</a>
    <details rst-menu-group name="rst-menus-price" open>
      <summary>कीमत</summary>
      <div>
        <a href="/orders?price=free">मुफ़्त</a>
      </div>
    </details>
  </div>
</details>
<span rst-ftok>
  <span rst-ftok-k>भुगतान हो चुका</span>
  <a href="/orders" aria-label="फ़िल्टर हटाएँ: भुगतान हो चुका">✕</a>
</span>

form-layout

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

पूर्वावलोकन
<form rst-form-flow method="post" action="/settings">
  <div rst-field>
    <label rst-field-label for="name">नाम</label>
    <input rst-input type="text" id="name" name="name">
  </div>
  <div rst-field>
    <label rst-field-label for="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">शहर</label>
      <input rst-input type="text" id="city" name="city">
    </div>
    <div rst-field>
      <label rst-field-label for="zip">पिन</label>
      <input rst-input="short" type="text" id="zip" name="zip">
    </div>
  </div>
  <div rst-form-bar>
    <span rst-form-bar-note>बदलाव तुरंत सहेजे जाते हैं।</span>
    <div rst-form-actions>
      <a rst-btn href="/settings">रद्द करें</a>
      <button rst-btn="primary" type="submit">सहेजें</button>
    </div>
  </div>
</form>

help

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

पूर्वावलोकन
<a rst-help rst-tip href="/help/orders" target="_blank" rel="noopener" aria-label="सहायता: ऑर्डर" data-tip="ऑर्डर के बारे में">
  <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 var(--rst-col-menu)">
  <div rst-lrow="head">
    <span>ऑर्डर</span>
    <span class="rst-m-hide">स्थिति</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">भुगतान हो चुका</span>
    <details rst-row-menu name="rst-menus">
      <summary aria-label="Grace Hopper के लिए कार्रवाइयाँ">
        <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">देखें</a>
        <hr>
        <a class="rst-danger" href="/orders/AB3PX/refund">ऑर्डर का रिफ़ंड करें…</a>
      </div>
    </details>
  </div>
  <p rst-no-match>कोई ऑर्डर मेल नहीं खाता। <a href="/orders">फ़िल्टर हटाएँ</a></p>
</div>
<p rst-count-line>
  <strong>412</strong> में से <strong>1–20</strong> दिखाए जा रहे हैं</p>

modal

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

पूर्वावलोकन
<div rst-backdrop inert>
  <div rst-page>
    <h1>सेटिंग</h1>
  </div>
</div>
<div rst-modal-overlay>
  <dialog rst-modal-panel open aria-labelledby="modal-title">
    <nav>
      <a href="/settings/profile" aria-current="page">प्रोफ़ाइल</a>
      <a href="/settings/billing">बिलिंग</a>
      <a href="/settings/notifications">सूचनाएँ</a>
    </nav>
    <section>
      <a rst-modal-close href="/settings" aria-label="सेटिंग बंद करें">✕</a>
      <h2 id="modal-title">प्रोफ़ाइल</h2>
      <p>पूरे खाते में दिखने वाला नाम और फ़ोटो बदलें।</p>
    </section>
  </dialog>
</div>

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

selbox

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

पूर्वावलोकन
<label rst-selbox>
  <input type="checkbox" aria-label="ऑर्डर AB3PX चुनें">
</label>

shell-sidebar

किसी सामग्री पृष्ठ पर sidebar शेल का ढाँचा: फ़ोन पर, सूची पर वापस जाने का एक नियंत्रण।

पूर्वावलोकन
<div rst-shell-sidebar="page">
  <a rst-skip href="#main">सामग्री पर जाएँ</a>
  <div rst-shell-back>
    <a href="/#nav-reports" rel="up" aria-label="अनुभाग पर वापस जाएँ">अनुभाग</a>
  </div>
  <aside rst-shell-rail>
    <h1 rst-shell-title>
      <span><a rst-shell-brand href="/">Notes</a></span><span>रिपोर्ट</span>
    </h1>
    <a rst-shell-brand href="/">Notes</a>
    <nav rst-shell-nav>
      <span rst-shell-group>काम</span>
      <a id="nav-dashboard" href="/dashboard">डैशबोर्ड</a>
      <a id="nav-reports" href="/reports" aria-current="page">रिपोर्ट</a>
    </nav>
    <div rst-shell-rail-foot>
      <details rst-dropdown rst-shell-profile name="rst-shell-menu">
        <summary>
          <span rst-shell-avatar>
            <span rst-person-av aria-hidden="true">A</span>
            <span rst-person-name>Ada Lovelace</span>
          </span>
        </summary>
        <div rst-dropdown-menu>
          <div rst-shell-who>
            <span rst-person-av aria-hidden="true">A</span>
            <span rst-person-name>Ada Lovelace</span>
            <span rst-person-email>ada@example.com</span>
          </div>
          <a href="/settings">सेटिंग</a>
        </div>
      </details>
    </div>
  </aside>
  <main rst-shell-main id="main">
    <div rst-page>सामग्री।</div>
  </main>
</div>

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

shell-topbar

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

पूर्वावलोकन
<div rst-shell-topbar>
  <a rst-skip href="#main">सामग्री पर जाएँ</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>मेनू</summary>
    </details>
    <div rst-shell-tail>
      <nav rst-shell-nav>
        <a href="/" aria-current="page">होम</a>
        <a href="/archive">संग्रह</a>
      </nav>
      <details rst-dropdown rst-shell-account name="rst-menus">
        <summary>
          खाता
          <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">सेटिंग</a>
        </div>
      </details>
    </div>
  </header>
  <main rst-page id="main">सामग्री।</main>
  <footer rst-shell-foot>rastrillo से बना</footer>
</div>

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

stat-band

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

पूर्वावलोकन
<div rst-stats>
  <div rst-stat="lead">
    <span rst-stat-label>इस महीने की आय</span>
    <span rst-stat-num>&euro;48,210</span>
    <span rst-stat-delta rst-tone="positive">+12%</span>
    <span rst-stat-note>पिछले महीने की तुलना में</span>
  </div>
  <div rst-stat>
    <span rst-stat-label>आज के ऑर्डर</span>
    <span rst-stat-num>318</span>
  </div>
  <div rst-stat>
    <span rst-stat-label>औसत ऑर्डर मूल्य</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>रिफ़ंड</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>ईमेल सूचनाएँ</span>
      <span rst-tblock-desc>आप जिस थ्रेड में हैं, उसके हर जवाब पर भेजा जाता है।</span>
    </span>
  </label>
  <div rst-tblock-body>
    <div rst-field>
      <label rst-field-label for="notify-freq">आवृत्ति</label>
      <input rst-input type="text" id="notify-freq" name="notify_freq" value="दैनिक सारांश">
    </div>
  </div>
</div>