Mục lục tham khảo

The Eloquent · Bộ giao diện

Tài liệu tham khảo

Mọi thành phần, thành phần thương hiệu và khối trong registry Eloquent UI, kèm bản xem trực tiếp, các trạng thái, thao tác bàn phím và ví dụ tiếng Việt.

Thành phần58

  • Button

    Ink-fill, outline, secondary, ghost, link and destructive (✕ icon) buttons; 44px hit targets.

  • Label

    Form label in the Barlow 600 kicker style.

  • Field

    Label, control, description and error layout on Base UI Field and Fieldset; errors shown by a 2px ink rule and an ! icon.

  • Input

    Single-line text field as a 1px ink form line; invalid is a 2px rule; 44px high.

  • Textarea

    Multi-line text field with the 1px ink form line; invalid is a 2px rule.

  • Input group

    One form line with a control plus text, icons or buttons either side, split by ink hairlines.

  • Combobox

    Filterable single or multiple select on Base UI Combobox; ink rules, tint-1 highlight with an ink rule, no shadow.

  • Kbd

    Keyboard key and shortcut chips: Barlow Condensed capitals in a 1px ink rule.

  • Native select

    Native <select> with an ink border, chevron and 44px height; invalid is a 2px ink underline.

  • Select

    Select on Base UI: ink trigger, paper popup with a 1px rule, ink check on the chosen item; no shadow or radius.

  • Input OTP

    One-time code entry on Base UI OTP Field: square 44px cells sharing 1px ink rules, Barlow Condensed figures.

  • Checkbox

    Tick, untick or mixed choice on Base UI Checkbox; checked is an ink fill plus a check glyph.

  • Radio Group

    Pick one option on Base UI RadioGroup and Radio; selected is an ink fill with a paper dot.

  • Switch

    On/off setting on Base UI Switch; on is an ink track with a paper thumb, optional ON/OFF text.

  • Slider

    Number or range input on Base UI Slider; hairline track, heavy ink range, square thumb.

  • Toggle

    Two-state button on Base UI Toggle; pressed shown by an ink fill and aria-pressed, never colour alone.

  • Toggle Group

    Segmented set of toggles on Base UI ToggleGroup, divided by shared 1px ink rules; pressed segments are ink fills.

  • Button Group

    Joins related buttons into one segmented control divided by shared 1px ink rules, with a text cell and separator.

  • Form

    Validated forms on Base UI Form and Field with react-hook-form and zod; errors shown by ink rules, icons and an error summary at the top on submit.

  • Separator

    Ink rule on Base UI Separator: hair (1px) or heavy (3px), horizontal or vertical.

  • Collapsible

    Collapsible on Base UI: 44px ink trigger, opacity-only panel, no hover effect.

  • Scroll Area

    Scroll area on Base UI: square ink thumb on a tint-1 track, focusable viewport.

  • Popover

    Popover on Base UI: ink on paper, 1px ink rule, no shadow, radius or arrow.

  • Tooltip

    Tooltip on Base UI: ink block, paper Barlow 12px, no arrow, shadow or radius; opens on focus.

  • Dialog

    Dialog on Base UI: paper popup, 1px ink rule and heavy top rule, 85% paper backdrop, focus trapped.

  • Sheet

    Sheet on Base UI Dialog: full-height paper panel from any side, 1px inner ink rule, focus trapped.

  • Table

    Semantic table in Barlow: heavy header rule, hairline rows, tabular right-aligned figures.

  • Alert Dialog

    Alert dialog on Base UI: Dialog's paper and rules, no corner close, Action and Cancel are Buttons, focus trapped.

  • Drawer

    Drawer on Base UI: paper panel from any edge, heavy 3px ink rule as the handle, swipe to dismiss, focus trapped.

  • Hover Card

    Hover card on Base UI PreviewCard: link trigger with the marker highlight, popover-style paper and 1px ink rule, opens on hover and focus.

  • Dropdown Menu

    Dropdown menu on Base UI Menu: paper popup, 1px ink rule, ink-fill highlight, hairline separators, checkbox, radio and submenu rows.

  • Context Menu

    Context menu on Base UI ContextMenu: focusable area, opens at the pointer or from Shift+F10, ink-fill highlight, hairline separators.

  • Menubar

    Menubar on Base UI Menubar and Menu: heavy top rule and bottom hairline, ink-fill trigger when open, Dropdown Menu rows.

  • Sonner

    Toaster and toast() on Base UI Toast: paper and 1px ink rule at bottom-right, state by icon, rule or hatched band, never colour.

  • Tabs

    Tabs on Base UI: 3px ink rule on the selected tab, big ModeSwitcher variant, no hover.

  • Accordion

    Accordion on Base UI: hairline items, +/- glyph, opacity-only panel, no hover effect.

  • Navigation Menu

    Navigation menu on Base UI: Barlow caps bar, heavy rule under the current page, flat ruled panel, no hover effect.

  • Breadcrumb

    Breadcrumb trail: nav, ordered list, underlined ink links, middle-dot separators, no hover effect.

  • Pagination

    Pagination links: Barlow Condensed numerals, ink fill on the current page, 44px targets, no hover effect.

  • Aspect Ratio

    Aspect ratio box: CSS aspect-ratio, unstyled, no hover effect.

  • Resizable

    Resizable panels on react-resizable-panels: hairline handle with grip dots, 44px hit area, no hover effect.

  • Card

    Card with no box: heavy 3px top rule, serif content, hairline footer; header, title, description, action, content and footer parts.

  • Item

    Row for a record: media, title, description and actions, closed by an ink hairline; renders as a link with the render prop.

  • Empty

    Empty state: ink hairline, tracked kicker, Playfair headline, serif sentence and an optional ink drawing or icon slot.

  • Command

    Command palette on Base UI Autocomplete (inline): type to filter, arrows to choose, Enter to run; CommandDialog for Ctrl+K.

  • Sidebar

    Side navigation: hairline edge, heavy-rule active item, collapsible groups, icon rail with tooltips and a sheet on small screens.

  • Calendar

    Month grid on react-day-picker: hairline weeks, ink-fill selection, heavy-rule today, Barlow Condensed numerals, 44px days.

  • Date picker

    Date field on Calendar and Popover: a ruled trigger opens a square, flat calendar; Esc returns focus to the trigger.

  • Data table

    Table with sortable headers (aria-sort, ink glyphs), a column filter, a columns popover and paging, on TanStack Table and the Eloquent table.

  • Carousel

    Slides on Embla: ruled slides, numbered Barlow Condensed controls, labelled previous and next, jumps under reduced motion.

  • Chart

    Charts on Recharts in ink: series told apart by pattern, dash and label; one labelled image with a data table alternative; no animation under reduced motion.

  • Badge

    Square status label in Barlow Condensed capitals: ink fill, tint, outline or 2px destructive outline with a cross.

  • Avatar

    Square avatar on Base UI Avatar: hairline frame, greyscale image, initials fallback from props.

  • Alert

    Alert panel with a state per variant: tint-1 info, check success, hatched tint-2 warning, 2px ink rule error.

  • Progress

    Progress bar on Base UI Progress: hairline track, ink fill, value text in Barlow Condensed.

  • Meter

    Meter on Base UI Meter: same hairline track and ink fill as Progress, for a value in a known range.

  • Skeleton

    tint-1 placeholder block that pulses only when motion is allowed.

  • Spinner

    Ink square outline that turns while loading; labelled status, still under reduced motion.

Thành phần thương hiệu16

  • Typography

    Brand text elements: two-voice headline, kicker, lede, body, drop cap, pull-quote, figure and meta.

  • Kicker

    tracked-capitals label with an optional leading ink rule.

  • Headline

    two-voice headline (roman lead, italic tail) in four sizes; the marker highlight shows only when it is a link.

  • Tech line

    middle-dot separated stack line in Barlow.

  • Ink figure

    greyscale illustration frame (multiply blend) in 9:16, 16:9, 3:4 or 1:1, with required alt text.

  • Stat tile

    tint-1 figure tile (Barlow Condensed figure, unit, caption) and StatRow, a row of exactly three.

  • Language switch

    EN · VI switch; the current locale in ink 700, the other a real link that keeps the hash and ?mode. No flags.

  • Folio line

    name · title · city between two ink hairlines, with the language switch.

  • Proof

    three lines, Problem. / Built. / Result., with a bold sans lead word and serif text.

  • Story card

    kicker, headline, lede and stack under a heavy rule, with an optional 96px 9:16 ink thumbnail.

  • Cover

    kicker, two-voice headline and a 16:9 ink scene, for slide titles and social images.

  • Calling card

    a 390 × 844 no-scroll screen with four contact buttons, two tiles and a black footer.

  • Language bar

    a non-modal bottom bar that offers the other language once, written in that language.

  • Mode switcher

    a tint-2 band asking what brings you to the paper, with two large tabs (solid ink when selected) synced to the URL hash; controlled or uncontrolled.

  • CTA band

    the press band with a classifieds kicker, a two-voice Playfair headline and an outlined on-press mailto button.

  • Editor panel

    Get in touch with labelled contact rows, a QR slot and an Email me button; variant=band is the press-black contact band for the CV.

Khối6

  • Article layout

    Brand block: front-page link, kicker, headline, standfirst and byline, body column, At a glance aside, pull quote and Keep reading.

  • Masthead

    Block: the nameplate, folio line with the language switch, and the section nav.

  • Press footer

    Block: the one inverse block, with contact, Download CV, a LinkedIn QR code slot, the language switch and Back to top.

  • Philosophy carousel

    Block: three tabs (I Leverage, II Habit, III Delivery), each with a Playfair quote, body text, a 3:4 ink panel and a signature.

  • Classifieds form

    Block: the brief form (name, company, email, brief, four-way project size) with an error summary, inline success and error messages and an onSubmit prop; no network call.

  • Print A4

    Block: an A4 page shell (210 by 297mm, 44 to 52px margins, main column plus a 210 to 228px side column), a named @page rule for print and a page-break helper. Pure layout.