মূল বিষয়ে যান
মেনু
ভাষা, এখন বাংলা
EnglishGaeilge简体中文Españolहिन्दीPortuguêsবাংলাРусский日本語廣東話Tiếng Việtالعربية

rastrillo ডিজাইন সিস্টেম

ডিজাইন সিস্টেম যা কিছু দেয়, তার সংক্ষিপ্ত পরিচয়। থিম: signal। ভাষা: বাংলা

তালিকার পর্দা

সাধারণ তালিকা স্ক্রিন: শিরোনাম, টুলবার আর সারি, ডেস্কটপ ও মোবাইল দুটোতেই চলে।

আগে থেকে তৈরি, পরস্পর সঙ্গতিপূর্ণ UI উপাদান, সার্ভারে রেন্ডার করা।

ফ্রেমওয়ার্কের নিজের পরিভাষায় এগুলিকে partial বলা হয়: ui.Templates() partial ফেরত দেয়, আর docs/site/templates.md সেই নামেই এগুলির নথি রাখে। এই পাতার শব্দ বদলেছে; কোডের শব্দ বদলায়নি।

এখানকার লিংকগুলি নিষ্ক্রিয়

লিংক নিষ্ক্রিয়, নমুনার সোর্স আলাদা করে দেওয়া আছে।

নিচের প্রতিটি নমুনা নিজের ফ্রেমে।

নমুনার বিষয়বস্তু ইংরেজিতে। নমুনা শেলগুলি অনূদিত।

page-header

স্ক্রিনের শিরোনাম বার: একটি h1, ঐচ্ছিক উপশিরোনাম, আর একটি প্রধান ক্রিয়া।

শিরোনাম, উপশিরোনাম আর একটি প্রধান কাজ

প্রিভিউ
<header rst-page-header>
  <div rst-page-header-titles>
    <h1>Posts</h1>
    <p rst-page-header-sub>Everything you have written, newest first.</p>
  </div>
  <a rst-btn="primary" href="/posts/new"><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="M5 12h14"/><path d="M12 5v14"/></svg>Write a post</a>
</header>

শুধু শিরোনাম

প্রিভিউ
<header rst-page-header>
  <div rst-page-header-titles>
    <h1>Settings</h1>
  </div>
</header>

list-bar

তালিকা কার্ডের উপরের টুলবার, সঙ্গে অনুসন্ধান ও ফিল্টার।

খোঁজা, সঙ্গে একটি ফিল্টার ড্রপডাউন

প্রিভিউ
<div rst-list><div rst-lbar>
  <search><form rst-search method="get" action="/posts">
  <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="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
  <input type="search" name="q" value="release" placeholder="Search posts" aria-label="Search posts">
  <a rst-search-clear href="/posts?sort=newest" aria-label="অনুসন্ধান মুছুন"><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="M18 6 6 18"/><path d="m6 6 12 12"/></svg></a>
  <input type="hidden" name="sort" value="newest">
  <button class="rst-sr-only" type="submit">খুঁজুন</button>
</form></search>
  <details rst-dropdown name="rst-menus">
  <summary rst-btn aria-label="Filter by status: Paid">Paid <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></summary>
  <div rst-dropdown-menu>
    <a href="/posts">All</a>
    <a href="/posts?status=paid" aria-current="true">Paid <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="M20 6 9 17l-5-5"/></svg></a>
    <a href="/posts?status=free">Free</a>
  </div>
</details>
</div></div>

list-search-submit

খোঁজার ফর্মের আসল সাবমিট বোতাম: চোখের আড়ালে, কিন্তু Tab ক্রমে আছে, আর কীবোর্ড ফোকাস পেলেই সামনে আসে।

পূর্বনির্ধারিত লেবেল

প্রিভিউ
<section rst-box><button class="rst-sr-only" type="submit">খুঁজুন</button></section>

ট্যাব দিয়ে এখানে না আসা পর্যন্ত কিছুই দেখা যায় না।

list-row-action

একটি তালিকা সারি: রেকর্ডের নাম মূল লিংক হিসেবে, একটি মেটা লাইন, আর একটি গৌণ ক্রিয়া।

শুরুর চিহ্ন, অবস্থা আর একটি কাজ

প্রিভিউ
<div rst-list><div rst-row>
  <span rst-row-lead data-lead="accent" aria-hidden="true">RN</span>
  <span rst-row-main><a href="/posts/1">Release notes, August</a><small rst-row-sub>Published 2 August · 4 min read</small></span>
  <span rst-status rst-tone="positive">Published</span>
  <a rst-row-action href="/posts/1/edit" aria-label="Edit Release notes, August">Edit</a>
</div></div>

শুধু নাম আর মেটা লাইন

প্রিভিউ
<div rst-list><div rst-row>
  <span rst-row-main><a href="/posts/2">Why we moved off the old runner</a><small rst-row-sub>Draft · saved 20 minutes ago</small></span>
</div></div>

seg-tabs

সার্ভারে রেন্ডার করা লিংক দিয়ে গড়া সেগমেন্টেড কন্ট্রোল। বর্তমান ট্যাব হলো একটি লিংকের উপর aria-current।

দুটি বিভাগ

প্রিভিউ
<nav rst-seg-tabs aria-label="Post sections"><a href="?tab=basics" aria-current="page">Basics</a><a href="?tab=advanced">Advanced</a></nav>

dropdown

JavaScript ছাড়াই একটি ডিসক্লোজার: একটি summary বোতাম, তার নিচে সাধারণ লিঙ্কের প্যানেল।

একটি বাছাই প্রয়োগ করা ফিল্টার মেনু

প্রিভিউ
<details rst-dropdown name="rst-menus">
  <summary rst-btn aria-label="Sort posts: newest first">Newest <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></summary>
  <div rst-dropdown-menu>
    <a href="/posts?sort=newest" aria-current="true">Newest <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="M20 6 9 17l-5-5"/></svg></a>
    <a href="/posts?sort=oldest">Oldest</a>
    <a href="/posts?sort=title">By title</a>
  </div>
</details>

bulk-bar

নির্বাচন মোডের উপরের পট্টি, যা তালিকা বারের জায়গা নেয়: সংখ্যা, নির্বাচন বাড়ানোর একটি লিঙ্ক, আর কাজের মেনু।

তিনটি সারি নির্বাচিত

প্রিভিউ
<div rst-list><div rst-bulkbar><a rst-bulkbar-close href="/posts" aria-label="নির্বাচন সম্পন্ন"><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="M18 6 6 18"/><path d="m6 6 12 12"/></svg></a><span rst-bulkbar-count>3 selected</span><a rst-bulkbar-escalate href="/posts?select=all">Select all 412 matching</a><details rst-dropdown name="rst-menus"><summary>Actions<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><button type="submit" name="action" value="export">Export</button><button type="submit" name="action" value="unpublish">Unpublish</button><button type="submit" name="action" value="delete" class="rst-danger">Delete…</button></div></details></div></div>

ধ্বংসাত্মক আইটেমটি সবার শেষে থাকে: প্রথম এন্ট্রিটিই সেই ডিফল্ট, যা ঘিরে থাকা ফর্মে Enter চাপলে চলে যায়।

pagination

সাধারণ লিঙ্কের একটি নম্বরযুক্ত সারি, যাতে JavaScript বন্ধ থাকলেও পাতা বদল কাজ করে।

দীর্ঘ তালিকার মাঝামাঝি

প্রিভিউ
<nav rst-pagination aria-label="Posts pages"><a href="/posts?page=3">Previous</a><a href="/posts?page=1">1</a><span rst-pagination-gap aria-hidden="true">…</span><a href="/posts?page=3">3</a><span aria-current="page">4</span><a href="/posts?page=5">5</a><span rst-pagination-gap aria-hidden="true">…</span><a href="/posts?page=9">9</a><a href="/posts?page=5">Next</a>
</nav>

প্রথম পাতা, পূর্বনির্ধারিত অ্যাক্সেসযোগ্য নাম

প্রিভিউ
<nav rst-pagination aria-label="পৃষ্ঠা বিন্যাস"><span rst-pagination-disabled>Previous</span><span aria-current="page">1</span><a href="/posts?page=2">2</a><a href="/posts?page=2">Next</a>
</nav>

কোনো Label নেই, তাই nav-এর অ্যাক্সেসযোগ্য নাম ক্যাটালগ থেকে আসে।

empty-state

খালি-অবস্থার কার্ড। খালি অবস্থা, সঙ্গে শুরু করার পথ।

POST দিয়ে করা একটি আহ্বানসহ

প্রিভিউ
<div rst-empty>
  <h2 rst-empty-title>Nothing here yet</h2>
  <p rst-empty-body>No posts yet. Your first one is a good place to start.</p>
  <form rst-empty-cta method="post" action="/posts/seed">
    <input type="hidden" name="csrf" value="tok-123">
    <button rst-btn="primary" type="submit">Add sample posts</button>
  </form>
</div>

শুধু বাক্যটি

প্রিভিউ
<div rst-empty>
  <p rst-empty-body>No comments on this post yet.</p>
</div>