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.
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. 1 of 5Studio identity
A clear foundation for a growing team.
Featured project. 2 of 5Brand system
Shared colors, type, and interface guidance.
Featured project. 3 of 5Product launch
A coordinated release across every channel.
Featured project. 4 of 5Research library
Findings organized for the next decision.
Featured project. 5 of 5Campaign overview
One view of the work in progress.
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
V FieldnotesLaYour workspace
Overview
Keep the work moving with a clear view of your projects and updates.
Active projects8Updated 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.
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.
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
Recent activity
Color roles refinedLan Anh updated semantic colors. 10:42
Guidelines sharedMai Tran left feedback. Yesterday
Project files
Brand guidelines.pdfPDF. Updated today
Logo exports.zipArchive. Updated Sep 24
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
Northwind
Paid
$4,280
Acme Co
Overdue
$2,940
Globex
Pending
$1,860
Initech
Paid
$1,215
Umbrella
Paid
$640
Hooli
Pending
$510
Pied Piper
Overdue
$480
Stark
Paid
$350
Aperture
Pending
$270
Waystar
Overdue
$120
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
Order placed3 items
Payment confirmedVisa ending 4242
ShippedLeft the warehouse
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
ArAva ReyesAvailableLast active now
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
SkSam KimOnlineActive now
Are we still on for 3?
·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
VINASIG. digital goodsA clearer way to check out
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?
Add a supporting color only when it has a clear interface role and passes contrast checks.
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
Badge3Count attached to an itemChipToggle to select. X to removePillIn reviewShort status textTagDocumentationCategory 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
DesignResearchNo matching teams
Transfer listMove teams between lists
AvailableAll teams selected
SelectedNo teams 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
Choose a start date, then an end date.
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.
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
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
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.
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
SpinnerDuration unknown
Progress bar
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
VStudio workspace
Project settingsBrand direction
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
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
Filter projectsRefine the current list
12 projects
Rich content with persistent controls
Menu
Keyboard actions that close on selection
TooltipLast updated today at 10:42.
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.
Active projects12Across four teamsReviews due04Two need approvalTeam members28Working this weekRecent updates18Since Monday
Focused task
Review project access
The workspace stays visible behind this panel, but the scrim dims it and prevents interaction.
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
Project preview readyWorkspace overview. 6 files
Reserves the content shape and keeps the page from jumping.
Spinner
Fetching analytics
Wait unknown
Connecting to the serviceWaiting for a response
Analytics readySummary updated just now
Signals ongoing work when the result shape is not known yet.
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
Designed by
J
Jane Appleseed@jane
Design systems engineer. Making interfaces easier to name and build.
Toronto2.4k
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
01 - 03
Discover
Understand the audience and the opportunity.
02 - 03
Explore
Compare directions and shape a clear concept.
03 - 03
Make
Build the chosen direction into a useful system.
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 monthGrowth12%Year over yearNew 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
StartTarget
Constant speed
Ease-out
cubic-bezier(0, 0, .58, 1)
StartTarget
Fast start, soft landing
Ease-in-out
cubic-bezier(.4, 0, .2, 1)
StartTarget
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.
StartTarget
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
Name that UI
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.
Thoughtful by designClear by defaultBuilt for everyoneMotion with purpose
Thoughtful by designClear by defaultBuilt for everyoneMotion 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.
LaLan Anh. Design lead3 collaborators
Window closedThe demo stays open so you can restore this example.
Minimized to DockRestore the window to continue.
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
Mail
Mailbox
Inbox
No messages match this view.
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
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
Color roles updatedLan Anh revised the semantic palette.
Logo guide reviewedMai left feedback on clear space.
New project createdBrand refresh. 4 collaborators
Brand system approvedTypography and color are ready.
Visual tokens refreshedSpacing scale aligned across pages.
Navigation prototype sharedSent to the product team.
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
Files
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.
Select a source to update this window's content, or collapse the sidebar.
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
Notes
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.
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
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.
Switch views to see how the same folders are arranged.
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
Sync statusRecent activity
Sync completed
4 files uploaded
Sync statusSync settings
Automatic sync keeps this workspace up to date.
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.
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.
Disappearing itemNative macOS drag stateNo direct CSS equivalent
Column
Panel
cursor: col-resizeRow
Panel
cursor: row-resizeLeft edge
Panel
cursor: w-resizeRight edge
Panel
cursor: e-resizeTop edge
Panel
cursor: n-resizeBottom edge
Panel
cursor: s-resize
Column resize
Panel
cursor: col-resizeRow resize
Panel
cursor: row-resizeZoom in
cursor: zoom-inZoom out
cursor: zoom-outFrame resize down-right
Canvas
cursor: nwse-resizeFrame resize up-right
Canvas
cursor: nesw-resize
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
Adjusts continuously as you drag.
SlowestSlowNormalFastFastest
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
Quick colorsChoose a system color
Available in supported browsers.
ColorsFull color panel
Blue#0A6CFF
Custom color
Drag the color field or use arrow keys, then adjust hue.
Enter a six-digit HEX value, then apply it.
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
Ctrl F
Recent searches
No recent searches.
Projects3 projects
Brand systemShared color and type guidanceUpdated today
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.
Rating style. Select a star or use arrow keys.
Capacity
Warning at 7. Critical at 9
Relevance
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
Trash emptied
No files were changed on your device.
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
Documents
Preview only. Save will not create a file.
Enter a file name to enable Save.
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
3
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.
Color relationships help people find the next step and understand what matters.
Primary actionSapphire#295B9C
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.
Document sheet
Delete “Q3 Report”?
This removes the report from the Documents window. You can restore this example after confirming.
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
Document. brand systemBrand guidelinesClarity in every choice.
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.