Đi tới nội dung
Trình đơn
Ngôn ngữ, hiện là Tiếng Việt
EnglishGaeilge简体中文Españolहिन्दीPortuguêsবাংলাРусский日本語廣東話Tiếng Việtالعربية

hệ thống thiết kế rastrillo

Tổng quan mọi thứ hệ thống thiết kế cung cấp. Chủ đề: day. Ngôn ngữ: Tiếng Việt.

Màn hình danh sách

Màn hình danh sách thông thường: tiêu đề, thanh công cụ và các hàng, chạy được cả trên máy tính lẫn điện thoại.

Các phần tử giao diện dựng sẵn, nhất quán với nhau, được kết xuất ở phía máy chủ.

Từ vựng của chính framework gọi chúng là partial: ui.Templates() trả về partial, và docs/site/templates.md ghi chúng dưới tên đó. Chữ trên trang này đã đổi; chữ trong mã thì không.

Các liên kết ở đây không hoạt động

Liên kết không hoạt động, mã nguồn mẫu được cung cấp kèm.

Mỗi mẫu bên dưới nằm trong khung riêng của nó.

Nội dung mẫu để tiếng Anh. Phần vỏ mẫu thì được dịch.

page-header

Thanh tiêu đề của màn hình: một h1, một phụ đề tuỳ chọn và một hành động chính.

Tiêu đề, tiêu đề phụ và một hành động chính

Xem trước
<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>

Chỉ có tiêu đề

Xem trước
<header rst-page-header>
  <div rst-page-header-titles>
    <h1>Settings</h1>
  </div>
</header>

list-bar

Thanh công cụ ở đầu thẻ danh sách, có tìm kiếm và bộ lọc.

Tìm kiếm kèm trình đơn lọc

Xem trước
<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="Xóa tìm kiếm"><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">Tìm kiếm</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

Nút gửi thật của biểu mẫu tìm kiếm: ẩn khỏi mắt nhìn, vẫn nằm trong thứ tự Tab, và hiện ra khi nhận tiêu điểm bàn phím.

Nhãn mặc định

Xem trước
<section rst-box><button class="rst-sr-only" type="submit">Tìm kiếm</button></section>

Không có gì hiện ra ở đây cho đến khi bạn dùng phím Tab đi vào.

list-row-action

Một hàng danh sách: tên bản ghi làm liên kết chính, một dòng thông tin phụ và một hành động phụ.

Dấu dẫn đầu, trạng thái và một hành động

Xem trước
<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>

Chỉ có tên và dòng thông tin phụ

Xem trước
<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

Một điều khiển phân đoạn gồm các liên kết dựng từ máy chủ. Tab hiện tại là aria-current trên một liên kết.

Hai mục

Xem trước
<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

Một khối bung mở không dùng chút JavaScript nào: một nút summary trên một bảng gồm các liên kết thường.

Trình đơn lọc đã áp dụng một lựa chọn

Xem trước
<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

Dải đầu của chế độ chọn, thay cho thanh danh sách: số lượng, một liên kết mở rộng lựa chọn, và trình đơn hành động.

Đã chọn ba hàng

Xem trước
<div rst-list><div rst-bulkbar><a rst-bulkbar-close href="/posts" aria-label="Chọn xong"><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>

Mục phá hủy nằm cuối cùng: mục đầu tiên mới là thứ biểu mẫu bao quanh chạy ngầm khi nhấn Enter.

pagination

Một dải liên kết thường có đánh số, để việc phân trang vẫn chạy khi tắt JavaScript.

Giữa một danh sách dài

Xem trước
<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>

Trang đầu, tên trợ năng mặc định

Xem trước
<nav rst-pagination aria-label="Phân trang"><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>

Không có Label, nên tên trợ năng của nav lấy từ danh mục.

empty-state

Thẻ trạng thái trống. Trạng thái trống kèm lối vào cho các bước bắt đầu.

Kèm một lời kêu gọi hành động bằng POST

Xem trước
<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>

Chỉ một câu

Xem trước
<div rst-empty>
  <p rst-empty-body>No comments on this post yet.</p>
</div>