Interface reference

UI element library

A visual draft design system for all 81 interface entries, with styled examples and platform-aware guidance for web and macOS.

Visual examples for all 81 entries

Every example is shown at reading size. Interactive controls update within the sample, and the larger view gives you more room to inspect it. Definitions and guidance stay below.

The examples use the draft VINASIG palette, Space Grotesk, restrained surfaces, and shared spacing. Use web entries for website work. macOS samples are platform references. Their web adaptations are included only where the underlying need has a reasonable web equivalent.

49 entries

Web interface patterns

Use these entries to identify common website structures, controls, and states.

Navigation and wayfinding

10
02Bottom Navigation - Tab Barbottom-navigation
Your workspace

Home

Pick up where your team left off.

Brand websiteUpdated 12 minutes ago
Product launch3 people. Updated yesterday
Definition and implementation guidance

A compact navigation region anchored to the bottom edge that switches among a small set of primary destinations.

Implementation guidance

Use only when persistent destination switching benefits a mobile-first product. Keep the item count small, label every icon, mark the current destination, and account for device safe areas.

Accessibility

Use a labeled navigation landmark with links and aria-current=page. Pair every icon with a visible text label, give badges an accessible name, and include safe-area padding when the bar is fixed to the viewport. Reserve space for the bar so it does not cover content or focused controls.

06Stepssteps

Payment. Step 3 of 4

Definition and implementation guidance

An ordered set of stages that communicates progress through a multi-step task.

Implementation guidance

Show the current stage, completed stages, and what remains from one progress value. Let people return to completed stages and advance one stage at a time. Do not let them jump over required steps. Use it for a task flow, not as a substitute for page breadcrumbs or general navigation.

Accessibility

Represent the stages as an ordered list and identify exactly one current step with aria-current=step. Give each step a readable label and state, keep future steps unavailable until they are next, and do not convey completion by color alone.

09Scrollspyscrollspy

Overview

A scrollspy keeps the section index in sync with the content currently in view.

Use the links to jump directly to a section.

Behavior

The active marker follows the section as you scroll through the article.

The content remains in place while the index reflects your reading position.

Accessibility

Each link points to a real section heading, and the current link is announced to assistive technology.

Scroll this panel or choose a section from the index.

Definition and implementation guidance

A section index whose current link follows the heading currently in view.

Implementation guidance

Use on long pages with meaningful section headings. Keep navigation links usable when observation is delayed, and update the active item without changing the reading position unexpectedly.

Accessibility

Use a labeled navigation landmark and mark the current section link with aria-current when appropriate. Keep every section reachable without scrolling or pointer-only actions.

12Paginationpagination
Search results
Featured project. 2 of 5Brand system

Shared colors, type, and interface guidance.

Page numbers navigate results. Dots change the featured project.

Definition and implementation guidance

Controls for moving among discrete pages of a result set.

Implementation guidance

Use when users benefit from stable page boundaries, direct page access, and predictable back navigation. Preserve filters and sorting, and do not combine pagination with an unexplained infinite scroll.

Accessibility

Place controls in a navigation landmark with a pagination label. Identify the current page and give previous, next, and numbered links understandable names.

16Site Header vs. Navigation Barsite-header-navigation-bar
VINASIG
Definition and implementation guidance

A site header is a page region that may contain identity and utilities. A navigation bar is a set of links to destinations.

Implementation guidance

Use a header for page or site context and a nav element for grouped navigation. Do not make every header item a navigation link or duplicate the same destinations without a clear need.

Accessibility

Use header and nav landmarks with distinct labels when there are multiple navigation regions. Preserve the same destinations and current-page state across responsive layouts.

19Hamburger Menu - Nav Drawerhamburger-menu-nav-drawer
Fieldnotes
Your workspace

Overview

Keep the work moving with a clear view of your projects and updates.

Active projects8
Updated this week14

Open the menu to move between workspace sections.

Definition and implementation guidance

A compact trigger that reveals navigation in a panel, often on a narrow screen.

Implementation guidance

Use a labeled menu button to open a drawer containing the same destinations as the desktop navigation. Decide whether the drawer is modal or non-modal and implement that behavior consistently.

Accessibility

Expose expanded state and the controlled panel. Support keyboard activation and Escape. For a modal drawer, move focus in, contain it while open, and restore focus on close.

47Three Dots - Overflow Menuthree-dots-overflow-menu
01
Horizontal dots

Meatballs - More

Brand system

Secondary actions for this item.

02
Vertical dots

Kebab menu

Lan Anh

A vertical icon for the same kind of menu.

03
Three lines

Hamburger

Workspace

Opens the site's navigation drawer.

04
Command label

Ellipsis

File command

The dots in the label ask for more input.

Choose a control to compare what each kind of dots does.

Definition and implementation guidance

A menu trigger that collects secondary actions not shown in the primary interface.

Implementation guidance

Use only for infrequent or space-constrained secondary actions. Keep important actions visible, use a consistent icon orientation, and anchor the menu to its trigger.

Accessibility

Give the button a name such as More actions and expose expanded state. Support menu keyboard behavior, Escape, outside dismissal, and visible focus.

70Command Palettecommand-palette
VINASIG workspace

Project library

Find a project or run a common action.

Brand system

Colors, type, and interface guidance

8 files

UI components

Reusable patterns for product teams

24 items

Research notes

References and project decisions

12 notes

Choose a command to see its result here.

Command palette

Find an action

Recent

Actions

UpDown MoveEnter RunEsc Close

Open the palette to search projects, actions, and pages. Commands in this sample provide preview feedback only.

Definition and implementation guidance

A searchable launcher for actions and destinations, usually opened by a button or keyboard shortcut.

Implementation guidance

Use only when there are enough frequent commands to justify a launcher. Keep the shortcut discoverable, group results clearly, and include actions in ordinary navigation too.

Accessibility

Use a labeled dialog and combobox or listbox behavior with arrow keys, Enter, Escape, and visible focus. Do not intercept browser or assistive-technology shortcuts.

72Tabstabs

Brand system

Shared colors, type, and interface guidance for the website.

Active project8 collaborators
Definition and implementation guidance

A set of peer labels that switches one shared content panel at a time.

Implementation guidance

Use only for closely related views that belong in one context. Do not use tabs as a substitute for site navigation or when users need to compare all content at once.

Accessibility

Implement tablist, tab, and tabpanel relationships, selected state, arrow-key movement, and a clear activation model. Keep content available at narrow widths.

74Breadcrumbsbreadcrumbs

Two middle levels are collapsed to keep this path readable.

Definition and implementation guidance

A short path of ancestor links that places the current page within a hierarchy.

Implementation guidance

Show meaningful parent locations in order and keep the current location understandable. Do not include unrelated destinations or substitute breadcrumbs for primary navigation.

Accessibility

Use a labeled navigation landmark and identify the current page. On narrow screens, shorten the visual path without removing its accessible context.

Content and data

10
01Data Table - Table Viewdata-table
NorthwindPaid$4,280
Acme CoOverdue$2,940
GlobexPending$1,860
InitechPaid$1,215
UmbrellaPaid$640
HooliPending$510
Pied PiperOverdue$480
StarkPaid$350
AperturePending$270
WaystarOverdue$120
1 selectedRows 1-5 of 10
Page 1 of 2
Definition and implementation guidance

A two-dimensional collection of related records arranged by rows and labeled columns.

Implementation guidance

Use a native table for comparison and lookup. Add sorting only where it helps, identify the active sort, and preserve row and column meaning when the table scrolls or reflows. If column resizing helps, keep the table geometry stable and expose a keyboard-operable resize handle.

Accessibility

Use a caption when helpful, scoped row and column headers, and labeled buttons for sortable columns. Expose selected rows and mixed select-all state. Make resize handles focusable separators with arrow-key controls, and keep keyboard access to controls inside cells.

03Timelinetimeline
Order #4821Order tracking
Out for delivery
  1. Order placed3 items
  2. Payment confirmedVisa ending 4242
  3. ShippedLeft the warehouse
  4. Out for deliveryArriving by 6 pm

Select the open marker to finish delivery.

Definition and implementation guidance

A sequence of dated events arranged in chronological order.

Implementation guidance

Use for history or progress records where time order matters. Keep event labels and dates readable, distinguish it from task steps, and change from horizontal to vertical layout when space is limited.

Accessibility

Use an ordered list when sequence matters and mark machine-readable dates with time elements. Do not use color or a connecting line as the only indication of order.

04Status Dot - Presence Indicatorstatus-dot
Live nowDesign standup
Ava ReyesAvailableLast active now
Set presence

Choose a status to preview presence.

Definition and implementation guidance

A compact visual indicator that communicates a person's presence or an item's current state.

Implementation guidance

Pair the dot with a readable status name wherever the meaning is not unmistakable. Use stable semantic colors and do not rely on hover to reveal the only explanation.

Accessibility

Expose the status as text or as part of the associated accessible name. Hide the dot from assistive technology when adjacent text already communicates its meaning.

05Chat Bubble - Message Bubblechat-bubble
Sam KimOnlineActive now
  1. Are we still on for 3?

  2. Delivered
Definition and implementation guidance

A visual container for one message in a conversation between participants.

Implementation guidance

Group messages by speaker and time when useful. Keep alignment, color, and bubble shape secondary to message content, and support long text, links, and attachments without clipping.

Accessibility

Expose the speaker and message text in reading order. Use a log region only for a conversation that updates dynamically, and announce new messages without moving focus.

07Avatar Groupavatar-group
Project ApolloDesign team
8 collaborators
  • Ar
  • Jt
  • Mt
  • Dk
  • Sp
  • Ln
  • Rb
  • Ea

Select +4 to see all collaborators.

Definition and implementation guidance

A compact presentation of several people associated with a shared item or activity.

Implementation guidance

Use when the people or group size matter. Keep overlap modest, provide a way to discover every person's identity, and show the number of hidden members when the group is abbreviated. The overflow control should reveal the full group.

Accessibility

Give each avatar a useful alternative name, including initials used when a photo is unavailable. Name the overflow control with the total member count, expose its expanded state and controlled list, and make every member discoverable.

17Cardshare-card
Case study

Redesigning checkout

How we cut a six-step flow down to two screens without losing a point of trust.

Maya4 min read

Definition and implementation guidance

A content container with named media, header, body, metadata, and footer regions.

Implementation guidance

Use a column layout for the card and pin its footer with automatic top spacing when cards share a row height. Keep media clipped to the card radius and place padding on the content slots. Do not nest links or buttons inside a whole-card link.

Accessibility

Use an article for a standalone card. Give the media a useful text alternative when it conveys content, and keep each footer action as a separate, clearly named control.

33Truncation - Ellipsis & Line Clamptruncation
Container width
text-overflow: ellipsis

The quarterly review meeting has been rescheduled to Friday afternoon.

-webkit-line-clamp: 2

Release notes. This update reworks the sync engine, fixes twelve reported issues with offline edits, and adds keyboard shortcuts for every panel in the app.

middle truncation (filename)

Quarterly…12.pdf

fade-out mask

This preview fades at the edge when there is more text than the available space.

Narrow container. Full text stays available to assistive technology.

Definition and implementation guidance

A display rule that shortens text at one line or a set line count and marks the omission.

Implementation guidance

Use only when the full content remains available through a clear detail view or expansion. Avoid truncating names, instructions, values, or actions needed to make a decision.

Accessibility

Keep the full text in the accessible name or provide an explicit disclosure. Do not rely on a hover-only tooltip to reveal content.

71Accordion - Disclosureaccordion-disclosure
How are colors chosen?

Color roles begin with the identity palette and use semantic tokens for interface states.

Can I add a color?

Each section opens independently, so several answers can stay visible.

Definition and implementation guidance

A stack of labeled sections whose content can be expanded or collapsed.

Implementation guidance

Use to organize secondary content, not to hide essential instructions by default. Native details and summary allow multiple open sections. Give each details element in a group the same name when only one should stay open.

Accessibility

Use native details and summary for simple disclosures so the browser supplies disclosure semantics and keyboard behavior. Animate the revealed panel without adding redundant aria-expanded state.

73Badge vs. Chip vs. Pill vs. Tagbadge-chip-pill-tag
BadgeCount attached to an item
Chip
Toggle to select. X to remove
PillIn reviewShort status text
TagDocumentationCategory metadata
Definition and implementation guidance

A badge reports a compact status or count. A chip is an interactive value or filter. A pill describes a rounded shape. A tag labels content.

Implementation guidance

Choose the term and behavior by purpose, not shape. Keep status text readable, make removable chips expose a separate remove action, and avoid adding decorative labels without meaning.

Accessibility

Expose status in text, name interactive chips, and preserve keyboard operation for selection and removal. Do not communicate category or urgency by color alone.

77Empty Stateempty-state

No projects yet

Create your first project to start collecting interface patterns.

Definition and implementation guidance

A region that explains why expected content is absent and what a person can do next.

Implementation guidance

Distinguish no data, no search results, loading, permission limits, and errors. Offer one useful next step when available and keep decoration secondary.

Accessibility

Use a clear heading and plain-language explanation. Ensure the next action is a real keyboard-accessible control and do not announce static empty text as an urgent alert.

Forms and controls

10
08Multi-selectmulti-select
Checkbox dropdownSelect several teams
Token multi-selectSearch and remove choices
DesignResearch
Transfer listMove teams between lists
Available
Selected
Definition and implementation guidance

A selection control that lets a person choose more than one value from a known set.

Implementation guidance

Use checkboxes for short visible sets. Use a searchable multi-select when the set is large, keep selected values visible and removable, and distinguish it from a single-value combobox.

Accessibility

Prefer native checkboxes or a proven accessible listbox pattern. Announce selected values, support keyboard movement and removal, and keep the label separate from the current value.

11Sign-in Formsign-in-form
Definition and implementation guidance

A form that collects the credentials or identity-provider choice needed to start an account session.

Implementation guidance

Ask only for information required to sign in. Support password managers, preserve non-sensitive entries after errors, and make recovery and alternate sign-in methods easy to find.

Accessibility

Use visible labels, correct autocomplete tokens, a clear submit button, and errors associated with their fields. Do not communicate validation through color alone.

13Date Pickerdate-picker
Definition and implementation guidance

A control for entering one date or choosing a date or range from a calendar.

Implementation guidance

Prefer the native date input when its platform behavior meets the task. A custom calendar must support month changes, selected and unavailable dates, sensible date formats, and a narrow viewport.

Accessibility

Keep a visible label and explain accepted formats. For a custom calendar, provide keyboard navigation, announce the focused and selected date, and label month controls.

18Resize Handle - Size Gripresize-handle-web
Definition and implementation guidance

A small grip at the edge or corner of a resizable control that can be dragged to change its dimensions.

Implementation guidance

Use the native textarea grip for resizable text fields and choose a resize axis that protects the surrounding layout. Set sensible minimum and maximum sizes, and keep overflow clipped so the browser can display its grip.

Accessibility

Keep a textarea visibly labeled and keyboard-editable, with predictable resize limits. Use a focusable separator with arrow-key resizing and value semantics only for an actual pane splitter.

32Form Fieldform-field
We’ll only use this to sign you in.
Use letters and numbers only.
Definition and implementation guidance

A single data-entry control with a persistent label, optional placeholder, helper text, and validation state.

Implementation guidance

Keep labels visible, mark required fields, and use helper text for format or purpose. Show a specific error after invalid input without clearing the entered value. Restore the helper when the value is valid.

Accessibility

Associate each label with its input using for/id. Connect the active helper or error using aria-describedby, set aria-invalid when invalid, and never use a placeholder as the only label.

34Drag & Dropdrag-and-drop

To do

2
  • Write the intro
  • Ship the draft

In review

2
  • Fix the header
  • Update pricing

Pick up a task to see its drag preview. The blue column marks the destination and the line marks its position.

Canvas selection

Resize ≠ move

Drag or focus a handle. Arrow = 3 px - Shift + Arrow = 20 . Px.

Selection 65% × 58%. Resize handles change its size. They do not move it.

Definition and implementation guidance

An interaction for moving an item to another position or destination by dragging it.

Implementation guidance

Show a clear drag grip, destination highlight, and insertion position. Provide a visible move control for keyboard and touch users, and confirm where the item moved.

Accessibility

Announce pickup and the completed move in a live region, keep focus on the moved item, and make dragging optional. A resize handle changes size. It does not move an item.

69Combobox - Autocomplete - Typeaheadcombobox-autocomplete-typeahead
Apple
Apricot
Blueberry
Cherry

Type to filter, then use the Up and Down arrow keys and Enter.

Definition and implementation guidance

An editable or select-only input paired with a popup of allowed values or suggestions.

Implementation guidance

Use when typed input benefits from constrained choices or suggestions. Explain whether arbitrary values are allowed and keep the entered value separate from the active suggestion.

Accessibility

Follow a complete combobox pattern with an accessible name, expanded and active-descendant states, arrow-key navigation, Enter selection, and Escape dismissal.

76Focus Ring - :focus-visiblefocus-ring-focus-visible
Use Tab and Shift+Tab to move the ring. Text fields may also show focus after a pointer click.Preview only. Save changes here without sending a request.
Definition and implementation guidance

A visible indicator that identifies the current keyboard focus target, commonly shown with the :focus-visible state.

Implementation guidance

Use :focus-visible for a high-contrast outline around keyboard-focused controls and leave a clear offset from the control. Use :focus only when the state should also appear for pointer or programmatic focus. Never remove the browser outline without an equally visible replacement.

Accessibility

Preserve a distinguishable outline in forced-colors and high-contrast modes. Test keyboard navigation at 200% zoom, check contrast against each surface, and keep the ring outside clipped containers.

79Switch vs. Checkbox vs. Radioswitch-checkbox-radio
Include in summary
Contact method
Choose any topics and one contact method, then save.
Definition and implementation guidance

A switch turns one setting on or off, a checkbox selects independent options, and a radio group selects one option from a set.

Implementation guidance

Choose by the decision model. Use a switch for an immediate binary setting, checkboxes for independent choices, and radios for a required single choice.

Accessibility

Prefer native inputs with visible labels. Group related choices with a legend, expose checked state, and keep keyboard behavior consistent with the native control.

80Toggle Group - Segmented Controltoggle-group-segmented-control
Text alignment
Project overview

Switch alignment to preview the selected text layout.

Single selection. Center

Definition and implementation guidance

A connected row of compact options that keeps one view or mode selected at a time.

Implementation guidance

Use for a small set of peer options with persistent selection. Distinguish value selection from tabs that change a content panel and from menus that launch actions.

Accessibility

Use a radio group for exclusive values or buttons with pressed state for independent toggles. Provide clear labels and keyboard movement appropriate to the chosen pattern.

Feedback and overlays

9
10Inline Alert vs. Callout vs. Bannerinline-alert-callout-banner
Banner. page-wide
Scheduled maintenanceSaturday, 02:00 UTC. Your work stays safe.
Workspace settings

Payment method

Manage the card connected to your workspace.

Callout. page context
Automatic renewalYour plan renews monthly. You can update billing details at any time.
Inline alert. warningCard ending in 4242Default payment method
Your card expires in 3 days.Update it to avoid interrupting your subscription.

Callouts stay with page content. Alerts can be dismissed. Banners span the page. Toasts disappear on their own.

Definition and implementation guidance

Three notice placements have different roles. An inline alert belongs to a task or field, a callout explains nearby content, and a banner spans a page or region.

Implementation guidance

Choose placement by scope and urgency. Keep persistent information in the page, reserve live alerts for timely changes, and use a banner only when the message affects the wider page.

Accessibility

Pair severity color with a visible label or icon. Keep static page-load notices out of live alert roles. Use status or alert semantics only when content is added dynamically, according to its urgency.

25Lightboxlightbox
Trip photosQuiet places, collected
03 images

Select a photo to inspect it at full size.

Trip photos01 - 03
Dune lightErg Chebbi. Morocco
Use the left and right arrow keys to browse. Press Esc to close.
Definition and implementation guidance

An overlay that presents an enlarged image or media item above the page.

Implementation guidance

Use when inspecting the media is the task. Open a modal viewer from a clear thumbnail, keep the caption and next or previous controls beside the media, and adapt the image to the available viewport.

Accessibility

Open a labeled native dialog modally so the page behind it is inert. Support Escape and backdrop dismissal, return focus to the selected thumbnail, and provide useful media alternatives or captions. Arrow-key gallery navigation should not scroll the page.

36Progress Ring vs. Spinner vs. Progress Barprogress-ring-spinner-bar
Progress ring
27%
Known amount
Spinner
Duration unknown
Progress bar
27%Upload, 27%
Known amount

The ring and bar show the same upload progress. The spinner has no time estimate.

Definition and implementation guidance

A progress bar or ring reports measurable completion. A spinner communicates an indeterminate wait.

Implementation guidance

Use a spinner when the remaining duration is unknown. Use a ring for compact determinate progress and a linear bar when a readable track fits. Animate only real progress, keep determinate indicators synchronized, and stop at the actual reported value.

Accessibility

Give determinate indicators an accessible name and current value that matches the visible percentage. Use a native progress element for a linear bar where possible. Give an indeterminate spinner a status label without aria-valuenow, avoid announcing every animation frame, and provide a reduced-motion state.

64Toast - Snackbartoast-snackbar
Studio workspace
Project settingsBrand direction
Saved a moment ago
Changes saved
Definition and implementation guidance

A brief, non-blocking message that confirms or reports a recent action.

Implementation guidance

Use for short feedback that does not require a response. Keep important errors or persistent instructions visible until resolved, and do not cover primary controls.

Accessibility

Announce updates through a polite status region without moving focus. Pause auto-dismiss while the toast is hovered or contains keyboard focus, and give actionable messages enough time and a clearly named action.

65Modal Dialog vs. Drawer vs. Sheetmodal-dialog-drawer-sheet
Workspace
Recent filesUpdated just now
BrandBrand directionUpdated today
ProductProduct briefEdited yesterday
ResearchAudience notesEdited Monday
DesignHomepage reviewUpdated Friday

Delete file?

This action keeps its context inside the demo frame.

Edit details

This panel stays beside the workspace while you edit.

Share with...

Choose this edge-attached layout for a compact task or mobile view.

Definition and implementation guidance

A modal dialog interrupts the page for a focused task. A drawer is a side panel. A sheet is a panel that rises from an edge, often on mobile.

Implementation guidance

Choose the form by task and viewport, not decoration. Block background interaction only for a true modal task and avoid nesting overlays.

Accessibility

Use a labeled dialog, manage initial and return focus, support Escape when safe, and make background inert only for a modal. Keep close controls visible.

66Popover vs. Dropdown Menu vs. Tooltippopover-dropdown-tooltip
Popover

Rich content with persistent controls

Menu

Keyboard actions that close on selection

Tooltip

Brief help on hover or focus

Definition and implementation guidance

A popover holds related supplementary content, a dropdown menu offers actions or choices, and a tooltip provides brief non-interactive help.

Implementation guidance

Select by content and interaction. Anchor the panel to its trigger, place it within the viewport, and never put required actions in a hover-only tooltip.

Accessibility

Use a named trigger and correct popup semantics. Support keyboard opening and dismissal, expose expanded state where relevant, and keep focus behavior appropriate to the pattern.

67Scrim - Backdrop - Overlayscrim-backdrop-overlay
Studio workspaceProject overview
Active projects12Across four teams
Reviews due04Two need approval
Team members28Working this week
Recent updates18Since Monday
Definition and implementation guidance

A visual layer behind an overlay that separates it from and de-emphasizes the underlying page.

Implementation guidance

Use only when an overlay blocks or temporarily redirects attention. Keep the overlay surface readable and define whether activating the backdrop dismisses it.

Accessibility

Treat a purely visual scrim as decorative. Ensure the dialog or drawer, not the backdrop, receives focus and has a clear close action.

68Skeleton vs. Spinnerskeleton-spinner
Async states

Preparing workspace

Choose a loading cue that matches the result.

Loading
Skeleton

Project preview

Layout known

Reserves the content shape and keeps the page from jumping.

Spinner

Fetching analytics

Wait unknown
Connecting to the serviceWaiting for a response

Signals ongoing work when the result shape is not known yet.

The skeleton shimmer and spinner are moving. Pause motion to inspect them.

Definition and implementation guidance

A skeleton reserves the shape of expected content. A spinner indicates an indeterminate process without a known result shape.

Implementation guidance

Use a skeleton when the eventual layout is known and a short spinner for an indeterminate wait. Avoid flashing placeholders for fast operations or pretending content is loaded.

Accessibility

Mark updating regions as busy and provide a textual progress status when useful. Hide decorative skeleton blocks and respect reduced motion.

78Hover Cardhover-card
Hover or focus the username
Definition and implementation guidance

A contextual preview that appears near a referenced item when it receives hover or focus.

Implementation guidance

Use for optional preview context, not required content or a hidden action menu. Support touch, avoid flicker between trigger and panel, and close predictably.

Accessibility

Make the content available on keyboard focus and through a touch-friendly action. If the panel contains interactive controls, use popover behavior rather than tooltip behavior.

Layout and motion

10
14Parallax Scrollingparallax-scrolling
Background 0.15xMiddle 0.45xContent 1x
Field notes

Look through a slower-moving background.

Trail map

The middle layer moves at 0.45x.

Packing list

Content moves at the full scroll speed.

Definition and implementation guidance

A scroll effect in which visual layers move at different rates to suggest depth.

Implementation guidance

Use only as a restrained visual enhancement. Keep content in normal reading order, avoid scroll hijacking and motion that harms orientation, and provide a reduced-motion alternative.

Accessibility

Do not encode information in the moving layer. Respect prefers-reduced-motion and keep text contrast stable over every background position.

15Carouselcarousel
Definition and implementation guidance

A viewport that presents one or more items from a larger sequence, with controls for changing the visible slides.

Implementation guidance

Use only when browsing a sequence is better than seeing the items together. Avoid automatic rotation by default, keep controls visible, and let content reflow without clipping.

Accessibility

Use labeled previous and next buttons and announce the active slide when necessary. Support keyboard operation, pause automatic movement, and preserve a logical reading order.

20Bento Gridbento-grid
This quarter
Revenue$48.2k+8.4% vs last quarter
Active users2.4kThis month
Growth12%Year over year
New signups+9Today
Definition and implementation guidance

A grid of related content blocks that uses varied spans or sizes within one aligned layout.

Implementation guidance

Use when items have a clear relationship and the variation helps hierarchy. Preserve source order, avoid decorative empty tiles, and collapse to a readable single-column sequence on narrow screens.

Accessibility

Use ordinary document structure for static content. Do not assign interactive grid semantics unless arrow-key cell navigation is implemented.

21Masonry Layout - Pinterest Gridmasonry-layout

Plain grid

Same six cards, aligned in rows.

01 ResearchAudience interviews and market notes.
02 PlanScope, timing, and owners.
03 PrototypeExplore the flow, test key screens, and refine the details.
04 ReviewShare feedback with the team.
05 LaunchPrepare the release and tell customers.
06 LearnReview the results.

Masonry

CSS columns fallback flows down each column.

01 ResearchAudience interviews and market notes.
02 PlanScope, timing, and owners.
03 PrototypeExplore the flow, test key screens, and refine the details.
04 ReviewShare feedback with the team.
05 LaunchPrepare the release and tell customers.
06 LearnReview the results.
Definition and implementation guidance

A multi-column arrangement that packs items with different heights into vertical columns.

Implementation guidance

Use for browsable collections where strict row alignment is not important. Keep visual and DOM reading order understandable, and reduce the column count as the available width shrinks.

Accessibility

Do not reorder content visually in a way that conflicts with keyboard or assistive-technology reading order. Keep each item independently understandable.

22Easing - Timing Functioneasing
Same duration. 1.2 sOnly the timing curve changes.

Linear

linear

Constant speed

Ease-out

cubic-bezier(0, 0, .58, 1)

Fast start, soft landing

Ease-in-out

cubic-bezier(.4, 0, .2, 1)

Quick middle, calm ends

The curves describe the same 1.2-second journey from start to target.

Definition and implementation guidance

A motion curve that controls how an animation accelerates and decelerates over time.

Implementation guidance

Use a small shared set of curves and durations. Match motion to the change being shown, keep state feedback quick, and avoid using easing to disguise slow or confusing behavior.

Accessibility

Respect reduced-motion preferences and avoid motion that flashes or repeatedly attracts attention. Never make an animated transition the only way to understand a state change.

23Spring Animationspring-animation
Same start and targetCompare how each motion arrives.
Ease-out
Slows into place
Spring
CSS linear() curve. passes the target, then settles
Definition and implementation guidance

A physics-inspired transition that overshoots or settles in response to stiffness and damping.

Implementation guidance

Use sparingly for meaningful spatial movement. Keep settling time short, avoid adding bounce to routine controls, and fall back to a calm state change when motion is reduced.

Accessibility

Honor prefers-reduced-motion and keep the final state available without animation. Do not repeatedly move content while a person is reading or entering data.

24Text Scramble - Decode Effecttext-scramble
Decode sequence

Each character locks into place from left to right.

Definition and implementation guidance

A brief character replacement effect that resolves into a final text string.

Implementation guidance

Treat as decorative and avoid for labels, instructions, prices, or any content users must read immediately. Keep the final text stable and do not run the effect repeatedly.

Accessibility

Keep a stable text value in the accessibility tree and hide decorative character churn from assistive technology. Disable the effect for reduced motion.

26Marqueemarquee

Thoughtful by design. Clear by default. Built for everyone. Motion with purpose.

Definition and implementation guidance

A continuously moving strip of repeated or sequential content.

Implementation guidance

Avoid for essential information and do not force people to track a long moving line. If movement is needed, provide a pause control and stop on focus or hover where appropriate.

Accessibility

Respect reduced motion, prevent duplicated loop content from being read twice, and keep every action reachable without following the moving strip.

35Divider vs. Separator vs. Ruledivider-separator-rule

Thematic break

<. Hr>

Project overview

Shared colors and type guide the website.


Next section

Use a thematic break when the subject changes.

Control separator

role=". Separator"
CutCopyPaste
Delete
Marks the boundary between action groups.

Decorative rule

border-block-start
Brand system

Updated by Lan Anh

Shared color and type guidance.

Visual only. Assistive technology ignores the line.
Definition and implementation guidance

An HTML <hr> marks a thematic break in content, role=separator marks a boundary between control groups, and a CSS border is purely visual.

Implementation guidance

Use <hr> when the topic changes, role=separator when distinct control groups need a boundary, and a CSS border for decoration only. Set the separator orientation to match the line.

Accessibility

Hide decorative lines from assistive technology. Expose semantic separators with the correct orientation, and never make a static line focusable.

75Sticky vs. Fixed Positioningsticky-fixed-positioning
Positioning in a scrollable paneScroll the notes to compare
Scrollable paneProject overview
Sticky section headerComponent notes
In flow
Navigation

Keep primary destinations easy to scan and preserve a clear current location.

Forms

Pair every field with a visible label and concise instructions.

Feedback

Place status messages close to the action that caused them.

Layout

Use the nearest scroll area to keep local section context visible.

Help controlposition: fixed
Definition and implementation guidance

Sticky positioning stays within its scroll container while scrolling. Fixed positioning removes an element from normal flow and anchors it to the viewport or a transformed containing block.

Implementation guidance

Prefer sticky for local context. It scrolls normally until it reaches its inset, then stays within its containing block. Use fixed for persistent viewport controls. Reserve space, respect safe areas, and ensure pinned content does not cover content or focused targets.

Accessibility

Keep the reading order meaningful and keyboard focus visible when content scrolls. Make scrollable regions keyboard accessible when needed. Check zoom, narrow layouts, and reduced viewport height.

32 entries

macOS interface patterns

Use these entries to recognize native macOS concepts. Do not reproduce desktop chrome in a website without a clear product need.

Window and workspace

9
37Mac Windowmac-window
Project notesSynced
Project notes. updated today

Brand direction

Shared colors and type guide the website.

Lan Anh. Design lead3 collaborators
Definition and implementation guidance

A native application frame that contains a title, toolbar, content, resizing edges, and system window controls.

Implementation guidance

Let the operating system manage window movement, sizing, focus, and lifecycle. Keep the title about the current document or view rather than repeating the app name.

Accessibility

Use native window and title APIs so window identity and focus are exposed to assistive technology. Keep content reachable when the window is resized.

Web adaptation

A website lives inside a browser window. Do not recreate macOS traffic lights or a fake title bar inside an ordinary web page.

38Inbox Split Viewinbox-split-view
Mailbox

Inbox

Inbox
Gl
Grace Linto me

Roadmap draft

A first pass for the next quarter.

Hi Lan Anh,

I attached a first pass at the Q4 roadmap. Could you review the launch milestones before Thursday?

Thanks,
Grace

3 messages in Inbox
Definition and implementation guidance

A master-detail workspace with a list of items beside the selected item's content.

Implementation guidance

Keep selection, list filtering, and the detail view synchronized. Support pane resizing within useful limits and preserve the selected item when the list changes.

Accessibility

Label each pane, expose the selected row, and provide keyboard movement between the list and detail. Do not communicate selection only by row color.

Web adaptation

Use a responsive master-detail layout. On narrow screens, show one pane at a time with a clear back path to the list.

39Scroll View - Scrollerscroll-view
JournalRecent activity
  1. Color roles updatedLan Anh revised the semantic palette.
  2. Logo guide reviewedMai left feedback on clear space.
  3. New project createdBrand refresh. 4 collaborators
  4. Brand system approvedTypography and color are ready.
  5. Component notes addedForm controls. 3 comments
  6. Export preparedGuidelines packaged for review.
  7. Accessibility review completedContrast checks passed.
  8. Visual tokens refreshedSpacing scale aligned across pages.
  9. Navigation prototype sharedSent to the product team.
  10. Project archivedSpring campaign. 12 files

Legacy scroller. the track reserves space beside the content.

Definition and implementation guidance

A viewport that displays content larger than its available area and provides scrolling.

Implementation guidance

Prefer system scrolling and preserve normal trackpad, wheel, and keyboard behavior. Avoid nested scroll regions unless independent movement is useful.

Accessibility

Keep the scrollable content in reading order and ensure keyboard users can reach controls at both ends. Do not hide the only visible indication that more content exists.

Web adaptation

Use native overflow scrolling. Give an independently scrolling region a name and keyboard access when it contains focusable content.

45Column View - Browsercolumn-view-browser
FilesProjects - NameThat
Files
Projects
NameThat

Projects - NameThat. Select a folder to reveal its contents in the next column.

Definition and implementation guidance

A hierarchical browser that opens the next level of items in a new adjacent column.

Implementation guidance

Use when people need to inspect and select nested files or categories. Keep the selected path visible and provide a clear way to move to a parent level.

Accessibility

Label each column and selected item, preserve a predictable focus path, and expose hierarchy without depending on horizontal placement alone.

Web adaptation

Use a tree, nested navigation, or breadcrumb path when it fits the data. Avoid forcing narrow screens to scroll horizontally through unlabeled columns.

46Outline Viewoutline-view
Project
Overview
Design system
Colors
Typography
Delivery
Definition and implementation guidance

A hierarchical list whose rows can reveal or conceal nested children.

Implementation guidance

Use for structured parent-child data. Keep disclosure separate from row actions and preserve expansion and selection when the view updates.

Accessibility

Expose item level, expanded state, and selection. Use native outline semantics or implement the complete tree keyboard model rather than adding a tree role to a static list.

Web adaptation

Use nested lists with native disclosure buttons for simple structures. Use an interactive tree only when arrow-key navigation is fully implemented.

53Inspectorinspector
Project. brand campaignSpring collection
1280 × 800
Spring - summer 2026

Featured image selected. Inspector shows image properties.

Definition and implementation guidance

A contextual panel that displays or edits properties of the current document, selection, or tool.

Implementation guidance

Keep inspector content tied to the current selection and group properties by task. Avoid duplicating the document hierarchy or placing unrelated settings in the panel.

Accessibility

Give the panel a heading and labeled controls. Announce meaningful selection changes and preserve the user's focus while values update.

Web adaptation

Use a responsive side panel or drawer. On small screens, make its open and close state explicit and preserve a path back to the main content.

59Desktop Sidebar - Source Listdesktop-sidebar-source-list
Brand assetsProjects
Library

Projects

Active work and shared spaces.

  • Brand systemUpdated today8 items
  • Website redesignUpdated yesterday12 items
  • Launch checklistUpdated Sep 245 items
Definition and implementation guidance

A persistent source list for switching among related locations, collections, or filters within a window.

Implementation guidance

Keep the hierarchy shallow and the selected source visible. Distinguish location navigation from actions and retain selection as the content pane updates.

Accessibility

Use a labeled list or navigation structure, expose selection, and support standard keyboard traversal.

Web adaptation

Adapt the sidebar to a drawer or compact navigation on narrow screens. Avoid duplicating the site's primary navigation inside a page-specific source list.

61Toolbar - Unified Title Bartoolbar-unified-title-bar
Open note

Brand direction

Shared colors and type guide the website.

Edited today. Saved
Separator

The toolbar items, item labels, overflow menu, and title-bar separator are interactive. Native window chrome is not simulated.

Definition and implementation guidance

A row of window-level actions visually integrated with the title region.

Implementation guidance

Group a small set of frequent actions, keep the document or view title identifiable, and make essential commands available through the app's other command paths.

Accessibility

Give icon-only controls accessible names and group related actions. Preserve keyboard focus and expose overflow actions.

Web adaptation

Use a page header or toolbar for related page actions. Do not imitate native window chrome, and provide an overflow menu when controls no longer fit.

62Traffic Lights - Window Controlstraffic-lights-window-controls
Macos reference. web adaptationProject notes
Document

Brand direction

Saved

Shared colors and type guide the website.

macOS maps close, minimize, and zoom/full screen to its traffic lights. This light-mode web example uses labelled page controls instead of copying the colored window chrome.

Definition and implementation guidance

The native close, minimize, and zoom controls in a macOS application window.

Implementation guidance

Let the system provide window controls and their placement. Do not recolor or repurpose the controls inside a native app.

Accessibility

Preserve system labels and keyboard alternatives for close, minimize, and zoom.

Web adaptation

Do not draw red, yellow, and green circles in a website to imitate a Mac window. Use browser navigation and real in-page actions.

Menus and commands

8
43Combo Buttoncombo-button
Definition and implementation guidance

A primary action joined to a separate menu trigger for closely related alternatives.

Implementation guidance

Use only when one action is the clear default and related actions share its purpose. Keep the main action and menu trigger visually distinct.

Accessibility

Expose two independently named controls and announce menu expanded state. Preserve keyboard access to the main action and every menu item.

Web adaptation

Use a labeled action button and a separate menu button with expanded state. Do not make an ambiguous single target perform different actions by click location.

48Menu Barmenu-bar
VINASIG

Choose a menu to see its commands and keyboard shortcuts.

Definition and implementation guidance

The operating-system region that groups application-wide commands into persistent menus.

Implementation guidance

Use native menu roles and platform shortcuts for app commands. Group commands by task, avoid long menus and deep nesting, and keep primary actions discoverable.

Accessibility

Preserve native keyboard navigation and command labels. Communicate checked, disabled, and submenu states through system semantics.

Web adaptation

A normal website should use a site header and navigation, not imitate the macOS system menu bar. Use a web menubar only for a desktop-style app with the complete keyboard model.

49Context Menucontext-menu

Right-click or click the folder, or press Shift+F10.

The menu actions are examples. No files will be changed.

Definition and implementation guidance

A menu of commands related to the selected item or location, opened in its immediate context.

Implementation guidance

Include actions that apply to the target, label destructive actions clearly, and keep the menu close to the pointer or selected item.

Accessibility

Support keyboard invocation, menu navigation, and clear item names. Ensure the same actions can be found without a mouse or secondary click.

Web adaptation

Use a custom context menu only when it adds real contextual actions. Provide a visible menu button alternative for touch and keyboard users.

50Disclosure Triangledisclosure-triangle
Q3 Report.pages
Notes.md
installer.dmg
Definition and implementation guidance

A native disclosure indicator showing whether associated content is expanded or collapsed.

Implementation guidance

Keep the indicator beside the label it controls and reflect the current state. Do not use the triangle as an unlabelled standalone action.

Accessibility

Expose the control name and expanded state. Make the full label area operable and preserve standard keyboard activation.

Web adaptation

Use a button or native details summary with an adjacent icon. Keep the expanded state in semantics and style both open and closed states.

55Popoverpopover-macos
VBrand guidelines
Web editor preview
Color direction. spring 2026

Clarity, built into every choice.

Keep related playback and output controls attached to their source.

Updated todayField notes. 04
Positioning rect
Anchor arrow points to the source controlEscape or click outside to dismiss
Definition and implementation guidance

A temporary panel anchored to the control or item that opened it.

Implementation guidance

Keep content short and directly related to the trigger. Dismiss it predictably and reposition it when the window edge or available space changes.

Accessibility

Expose the trigger relationship, panel name, and dismissal behavior. Keep interactive content keyboard reachable and return focus appropriately.

Web adaptation

Use an accessible anchored popover for related supplementary content. Do not use hover alone as the trigger for essential information.

56Pop-Up Button vs. Pull-Down Button vs. Combo Boxpopup-pulldown-combo-box
AppKit control studySimilar menus, different jobs

Choose a value, run a command, or type a value of your own.

01Pop-up button
Keeps the selected value visible.
02Pull-down button
File actions
The button label stays fixed. Items run commands.
03Combo box
Type any font, or choose a suggestion.

Medium is the current text scale. Menu actions are preview-only.

Definition and implementation guidance

A pop-up button chooses a value, a pull-down button opens actions, and a combo box combines text entry with suggestions or choices.

Implementation guidance

Choose the control by task rather than appearance. Keep a selected value visible for value selection and separate commands from form values.

Accessibility

Expose the correct native role, current value, and keyboard behavior. Do not make a command menu appear to be a required form selection.

Web adaptation

Use select for a fixed value, a menu button for actions, and a labeled combobox for editable suggestions. Style the open custom popup as well as its trigger.

57Segmented Controlsegmented-control-macos
Project browserBrand assets
Icon view
Brand system8 items
Logo exports12 items
Guidelines4 items
Definition and implementation guidance

A connected set of compact options for choosing one mode or view.

Implementation guidance

Use for a small number of peer choices. Keep selected state clear and labels short, and avoid using it for unrelated commands.

Accessibility

Expose the control as a labeled group with one selected value. Preserve keyboard selection and announce state changes.

Web adaptation

Use a radio group or toggle group for value selection. Use tabs only when each option switches a corresponding content panel.

81Menu Bar Extra - Status Itemmenu-bar-extra
VINASIG StudioBrand system
WorkspaceBrand system

All files are current

Last synced today at 10:42 AM

Choose the status icon to see sync actions.

Web example. This status menu lives inside the app. A website cannot add an item to the macOS system menu bar.

Definition and implementation guidance

A native app status item placed in the macOS menu bar with a compact icon or value and an optional menu.

Implementation guidance

Reserve it for a persistent app-level status or quick action. Keep the icon recognizable, menu short, and status current without interrupting other work.

Accessibility

Provide a native accessible name and value, support keyboard access, and do not rely on icon shape or color alone.

Web adaptation

A website cannot add a macOS menu bar item. Show status within the product or use a supported installed-app capability only when the user expects it.

Input and editing

9
27Insertion Caret - Insertion Pointinsertion-caret

Click in the text to place the caret, then move it with the arrow keys.

Definition and implementation guidance

The system-drawn position marker that shows where the next typed character will appear in editable text.

Implementation guidance

Let the native text control manage caret movement, selection, and editing. Do not draw a competing caret or move the insertion point unexpectedly while the person types.

Accessibility

Preserve native text editing, selection, and voice-control behavior. Keep the caret visible against the field background and do not use it as the only focus indicator.

Web adaptation

Use native input and text editing behavior. Apply a legible caret color only when needed and never replace the browser insertion caret with a decorative animation.

28Pointer - Cursorpointer-cursor
ArrowPage contentcursor: default
I-beam, verticalSelect vertical textcursor: vertical-text
Context menuRight-click for optionscursor: context-menu

Hover a sample to preview the browser cursor. Resize controls respond to drag and arrow keys. macOS-only shapes are marked when CSS has no direct equivalent.

Definition and implementation guidance

The pointer shape that changes to communicate the kind of interaction available at the current location.

Implementation guidance

Use the platform cursor conventions for text, links, resizing, and unavailable states. Do not use pointer shape alone to explain an action or custom cursor artwork without a task need.

Accessibility

Keep the same action available to keyboard and touch users. Cursor changes must reinforce, not replace, a visible control name or focus state.

Web adaptation

Use the browser cursor defaults for text and controls. Set pointer only on actionable targets and use resize cursors only for working resize handles.

30Volume Slidervolume-slider
65%

Adjusts continuously as you drag.

Normal

Five marked stops. The value snaps from one tick to the next.

Definition and implementation guidance

A continuous control for adjusting audio output level within a bounded range.

Implementation guidance

Keep the current level perceivable and make mute behavior explicit. Support small adjustments without requiring pointer precision.

Accessibility

Expose the control name, current value, and value range. Preserve keyboard adjustment and the platform's standard accessibility value announcements.

Web adaptation

Use a labeled range input for continuous volume. Provide a readable value or mute state and preserve arrow-key operation.

31Color Wellcolor-well
Blue#0A6CFF
Definition and implementation guidance

A two-part color control that shows the current color, opens quick swatches, and provides access to a full color panel.

Implementation guidance

Keep the current-color swatch and the full-panel button distinct. The swatch opens quick choices and an eyedropper when the platform supports screen sampling. The adjacent panel button opens the full color panel.

Accessibility

Name both buttons and expose the current color as text. Keep palette choices keyboard-operable and associate custom color inputs with visible labels and instructions.

Web adaptation

Use a labeled color input or an accessible picker. Pair the swatch with a text value, keep the quick palette and full panel actions distinct, and offer screen sampling only when the browser supports it.

40Search Fieldsearch-field
Projects3 projects
  • Brand systemShared color and type guidanceUpdated today
  • Website redesignProduct design. 4 collaboratorsActive project
  • Launch checklistRelease preparation. 12 tasksDue Friday

Definition and implementation guidance

A text field specialized for entering a query, with search, clear, and sometimes recent-query behavior.

Implementation guidance

Label the search purpose and keep the query after results update. Make clearing reversible and distinguish suggestions from submitted results.

Accessibility

Expose a search name, query value, and clear action. Keep keyboard submission and result announcements predictable.

Web adaptation

Use a visible label with a search input. Add a clear action only when it is named, keyboard accessible, and useful.

42Token Fieldtoken-field
Lan AnhMinh Tran

Type a name or email. Press Return or comma to add. Press Return on a token to edit.

Definition and implementation guidance

An editable field that turns recognized entries into separate removable values.

Implementation guidance

Use for sets such as recipients or labels when individual values must remain visible. Explain token creation, validation, editing, and removal.

Accessibility

Name the field and each token, expose invalid values, and provide an accessible remove action. Preserve predictable caret and keyboard behavior between tokens.

Web adaptation

Build on an accessible combobox or text input plus a list of tokens. Keep every token removable by keyboard and do not represent values only as styled text.

44Rating Capacity Level Indicatorrating-capacity-level-indicator
Rating4 of 5 stars
Rating style. Select a star or use arrow keys.
Capacity6 of 10. Normal
Warning at 7. Critical at 9
Relevance8 of 10. Strong match
Relevancy style. 0 to 10
Definition and implementation guidance

A compact graphic that displays a bounded measurement, capacity, or rating.

Implementation guidance

Use a meter for a measured quantity and a rating control when people can set a score. State the scale and current value, and do not confuse a rating with task progress.

Accessibility

Expose the value, minimum, maximum, and whether the control is adjustable. Pair symbols with a readable label such as a numeric rating or capacity description.

Web adaptation

Use a meter for non-interactive measurements and a keyboard-accessible radio or button group for editable ratings.

52Focus Ringfocus-ring-macos
WorkspaceBrand review
First responder

Press Tab to move focus. When Full Keyboard Access is on, Tab can reach Save.

Full Keyboard Access is on. Focus a control to see its ring.

Definition and implementation guidance

The system focus treatment that identifies the control receiving keyboard input.

Implementation guidance

Preserve the platform's focus appearance unless a control needs a compatible custom treatment. Do not remove the ring to make controls look cleaner.

Accessibility

Keep the focused control obvious and maintain adequate contrast across light, dark, and increased-contrast appearances.

Web adaptation

Use a consistent visible :focus-visible treatment for keyboard navigation. Do not suppress outlines globally.

60Stepperstepper
Step 1. Minimum 1. Maximum 12
Definition and implementation guidance

A compact pair of controls for increasing or decreasing a numeric value by a fixed increment.

Implementation guidance

Use only when the value and increment are easy to understand. Show the current value nearby and enforce valid minimum and maximum bounds.

Accessibility

Give increase and decrease actions clear names and preserve keyboard adjustment. Expose the value and limits of the associated input.

Web adaptation

Use a labeled number input or spinbutton with explicit increment and limit behavior. Keep values editable when that is more efficient than repeated clicks.

System panels and status

6
29Empty Trash Alertempty-trash-alert
TrashRecently deleted
8 items
  • Homepage concept.png2.4 MB
  • Workshop notes.pdf840 KB
  • Brand exports.zip18 MB
  • 5 more items

Empty the Trash?

This permanently removes 8 items from Trash. You can’t undo this action.

This preference is saved in this browser. The preview never deletes files.

Definition and implementation guidance

A system alert that confirms a high-impact action before permanently removing a group of discarded items.

Implementation guidance

Name the affected content and explain whether recovery is possible. Make the safe action easy to choose and use the platform's standard alert hierarchy.

Accessibility

Give the alert a specific title, clear action labels, and a predictable default. Ensure VoiceOver announces the alert and the focused choice.

Web adaptation

Use a labeled confirmation dialog only when the action is destructive and not easily undone. Name the consequence and provide cancel and explicit destructive actions.

41Save Panelsave-panel
Save your workChoose a name, location, and format.
Where
File Format

Preview only. Save will not create a file.

Definition and implementation guidance

A native file panel for naming an output and selecting where and in what format it will be saved.

Implementation guidance

Use the system panel for file access, location selection, and format options. Explain the resulting file type and avoid custom paths that contradict system permissions.

Accessibility

Rely on the native file panel's accessible controls and provide a clear document name before opening it. Announce success or recoverable save errors in the app.

Web adaptation

Use a browser download or a supported user-initiated file save API. Do not imitate a system file picker or claim access to arbitrary local paths.

51Dock Badgedock-badge
Projects3 unread items

The bounce is separate from the badge. This preview does not send a system notification.

Definition and implementation guidance

A short count or status label displayed over an app icon in the macOS Dock.

Implementation guidance

Reserve badges for actionable changes that a person may need to notice. Keep counts accurate, remove them when resolved, and avoid using them as decoration.

Accessibility

Make the underlying update available inside the app and announce important changes there. A Dock badge must not be the only notification.

Web adaptation

A web page cannot set a macOS Dock badge. Use an in-page count or a supported installed-app capability only after explaining and obtaining the required permission.

54Editor Colors Panel - Floating Window - HUDeditor-colors-panel
Document. brand systemBrand guidelines
Floating above editor
VINASIG studio01 - 04
Color direction. spring 2026

Clarity, built into every choice.

Color relationships help people find the next step and understand what matters.

Primary actionSapphire#295B9C
WEB PREVIEW. Native window level and app activation are represented conceptually.

Sapphire selected. Colors panel is floating above the editor.

Definition and implementation guidance

A floating utility panel that provides color selection or related editing controls while another document remains in context.

Implementation guidance

Keep the panel associated with the editing task, allow it to close without losing changes, and avoid obscuring the area being edited.

Accessibility

Name the panel and each color action. Maintain focus and announce selection changes without stealing focus from the document unexpectedly.

Web adaptation

Use an anchored popover for brief controls or a dialog for a larger task. Avoid a floating HUD that has no clear trigger or dismissal.

58Delete Sheetdelete-sheet
DocumentsQ3 report
Project file

Quarterly report

  • Q3 Report.pdfUpdated today. 2.4 MB
  • Notes.mdUpdated yesterday. 8 KB

Open a document sheet to review the destructive action.

Activity
Another window

Project activity

This separate window stays available while Documents has a sheet open.

Project activity is up to date.

Only the Documents window is blocked. This preview does not delete a real file.

Definition and implementation guidance

A document-attached confirmation panel for an action that affects the current document or window.

Implementation guidance

Keep the question scoped to the affected document, state what will be deleted, and offer a clear cancel path. Do not chain multiple confirmations for one action.

Accessibility

Use a labeled native sheet and preserve focus in its task scope. Announce the consequence and return focus to the invoking control after dismissal.

Web adaptation

Use a contextual dialog or sheet only when attachment to a specific workspace adds meaning. Otherwise use the standard modal confirmation pattern.

63Visual Effect Material - Vibrancyvisual-effect-material-vibrancy
Floating utilityColorsPopover material
Material layerNSVisualEffectView.Material
Vibrant foregroundNSVisualEffectView.allowsVibrancy
Primary actionSapphire

CSS preview with a solid fallback. Native macOS materials adapt to the window and system.

Definition and implementation guidance

A native translucent surface that blends with content behind it while keeping foreground controls readable.

Implementation guidance

Use system material APIs and preserve text legibility across light, dark, and varied backgrounds. Do not apply transparency to every surface.

Accessibility

Check contrast as the background changes and support increased contrast settings. Keep essential content readable when transparency is reduced.

Web adaptation

Use translucent web surfaces only when contrast remains reliable over every background. Provide a solid-color fallback and avoid decorative blur by default.

Interactive example