Toggleable tags for filtering — on state uses brand fill, off state uses tertiary
.tag-toggle-group — mix of .tag-toggle.on and .tag-toggle.off
Tabs {.ds-tabs}
Tabbed navigation for switching between content panels
Overview panel content. Switch tabs to see different content.
Features panel content with details about functionality.
Pricing panel content showing available plans.
Reviews panel content with user feedback.
Support panel content with help resources.
Tooltips {.tooltip}
Contextual information on hover
.tooltip.top
TitleBody text
.tooltip.bottom
TitleBody text
.tooltip.left
TitleBody text
.tooltip.right
TitleBody text
Notifications {.notification}
Feedback messages and alerts
.notification — default
Message sent
Your message has been delivered successfully.
.notification.alert — destructive/error
Error occurred
Something went wrong. Please try again.
Dialog {.dialog-overlay}
Modal overlay for focused content and actions
Dialog Heading
This is a dialog component with a scrim overlay. It can contain any content — forms, confirmations, or informational messages.
Modal {.modal-overlay}
Top-aligned overlay with fixed header, scrollable body, and optional footer
Modal Title
This is a modal component with a fixed header, scrollable body, and a fixed footer. The overlay uses a blanket background that blocks interaction with the content below.
Modals are ideal for focused tasks that require the user's full attention — editing a record, reviewing details, completing a multi-step form, or confirming a destructive action.
The body area scrolls independently when content exceeds the available viewport height, while the header and footer remain pinned in place. This ensures the title and primary actions are always accessible.
On mobile viewports (768px and below), the modal expands to fill the entire screen, providing a native app-like experience. The header and footer remain fixed, and the body continues to scroll.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Curabitur pretium tincidunt lacus. Nulla gravida orci a odio. Nullam varius, turpis et commodo pharetra, est eros bibendum elit, nec luctus magna felis sollicitudin mauris. Integer in mauris eu nibh euismod gravida.
Blade {.blade-overlay}
Side panel fixed to the right edge with transparent scrim overlay
Blade Panel
This is a blade component — a side panel that slides in from the right edge of the viewport. The transparent scrim allows the underlying page content to remain visible while preventing interaction.
Blades are well suited for supplementary content that relates to the current view: detail panes, settings panels, filters, or contextual editing forms. They keep the user oriented within the page while surfacing additional information.
Like the modal, the blade uses a shared panel header with a title and dismiss button. The body scrolls independently when content overflows.
On mobile viewports, the blade expands to full screen — effectively identical to the modal's mobile behavior — providing a consistent experience across form factors.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae. Morbi lacinia molestie dui. Praesent blandit dolor. Sed non quam. In vel mi sit amet augue congue elementum.
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec posuere vulputate arcu. Phasellus accumsan cursus velit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae.
Fusce sagittis, libero non molestie mollis, magna orci ullamcorper dolor, at vulputate neque nulla lacinia eros. Sed id ligula quis est convallis tempor. Curabitur lacinia pulvinar nibh. Nam a sapien.
Sheet {.sheet-overlay}
Full-screen overlay with fixed header, scrollable body, and optional footer
Sheet Title
This is a sheet component — a full-screen overlay that takes over the entire viewport. Like the modal, it uses a blanket background that blocks interaction with the content below.
Sheets are ideal for immersive tasks that benefit from maximum screen real estate: complex forms, multi-step workflows, document editing, or any experience that should feel like a dedicated view rather than a floating panel.
The sheet uses the same shared panel header and footer as the modal and blade. The body scrolls independently when content overflows, while the header and footer remain pinned.
On all viewport sizes, including mobile, the sheet fills the entire screen — making it consistent across breakpoints. This is the key difference from modals (centered with max-width) and blades (side-anchored with fixed width).
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
List Row {.list-row}
Flexible row component for lists, with optional icon, subtitle, right content, and chevron
.list-row-icon — Avatar variant (icon in 40px rounded box)
Recent Activity3 new transactions
$1,240.00+$80.00
Payment MethodVisa ending in 4242
$0.00No balance
.list-row-icon.icon-only — Icon variant (raw 24px icon, no box)
Radio button with label and optional description — used in groups for single-select
.radio-group — default radio group
.radio-field.disabled — disabled state
Select Field {.select-field}
Dropdown select with label, description, and error states
.select-field — default
United States
Canada
United Kingdom
Germany
Japan
.select-field.error — with error message
Design
Engineering
Please select a category
.select-field — disabled
Switch Field {.switch-field}
Toggle switch with label and optional description
.switch-field — checked
.switch-field — unchecked
.switch-field.disabled — disabled
Search Input {.search-input}
Pill-shaped search field with icon
.search-input — default with placeholder
.search-input.disabled — disabled
Menu {.menu}
Dropdown menu with items, icons, shortcuts, headings, separators, and danger variant
.menu — with headings, icons, shortcuts, separator, danger item
Account
Popover {.popover}
Floating picker for selecting from a list of options — replaces default OS pickers
.popover — default with selected, hover, and danger states
Selected
Default
Another option
Delete
.popover — minimal without icons
Option A
Option B
Option C
Pagination {.pagination}
Page navigation controls
Icons {.icon-grid}
287 Feather icons available via SVG sprite sheet
activity
airplay
alert-circle
alert-octagon
alert-triangle
align-center
align-justify
align-left
align-right
anchor
aperture
archive
arrow-down-circle
arrow-down-left
arrow-down-right
arrow-down
arrow-left-circle
arrow-left
arrow-right-circle
arrow-right
arrow-up-circle
arrow-up-left
arrow-up-right
arrow-up
at-sign
award
bar-chart-2
bar-chart
battery-charging
battery
bell-off
bell
bluetooth
bold
book-open
book
bookmark
box
briefcase
calendar
camera-off
camera
cast
check-circle
check-square
check
chevron-down
chevron-left
chevron-right
chevron-up
chevrons-down
chevrons-left
chevrons-right
chevrons-up
chrome
circle
clipboard
clock
cloud-drizzle
cloud-lightning
cloud-off
cloud-rain
cloud-snow
cloud
code
codepen
codesandbox
coffee
columns
command
compass
copy
corner-down-left
corner-down-right
corner-left-down
corner-left-up
corner-right-down
corner-right-up
corner-up-left
corner-up-right
cpu
credit-card
crop
crosshair
database
delete
disc
divide-circle
divide-square
divide
dollar-sign
download-cloud
download
dribbble
droplet
edit-2
edit-3
edit
external-link
eye-off
eye
facebook
fast-forward
feather
figma
file-minus
file-plus
file-text
file
film
filter
flag
folder-minus
folder-plus
folder
framer
frown
gift
git-branch
git-commit
git-merge
git-pull-request
github
gitlab
globe
grid
hard-drive
hash
headphones
heart
help-circle
hexagon
home
image
inbox
info
instagram
italic
key
layers
layout
life-buoy
link-2
link
linkedin
list
loader
lock
log-in
log-out
mail
map-pin
map
maximize-2
maximize
meh
menu
message-circle
message-square
mic-off
mic
minimize-2
minimize
minus-circle
minus-square
minus
monitor
moon
more-horizontal
more-vertical
mouse-pointer
move
music
navigation-2
navigation
octagon
package
paperclip
pause-circle
pause
pen-tool
percent
phone-call
phone-forwarded
phone-incoming
phone-missed
phone-off
phone-outgoing
phone
pie-chart
play-circle
play
plus-circle
plus-square
plus
pocket
power
printer
radio
refresh-ccw
refresh-cw
repeat
rewind
rotate-ccw
rotate-cw
rss
save
scissors
search
send
server
settings
share-2
share
shield-off
shield
shopping-bag
shopping-cart
shuffle
sidebar
skip-back
skip-forward
slack
slash
sliders
smartphone
smile
speaker
square
star
stop-circle
sun
sunrise
sunset
table
tablet
tag
target
terminal
thermometer
thumbs-down
thumbs-up
toggle-left
toggle-right
tool
trash-2
trash
trello
trending-down
trending-up
triangle
truck
tv
twitch
twitter
type
umbrella
underline
unlock
upload-cloud
upload
user-check
user-minus
user-plus
user-x
user
users
video-off
video
voicemail
volume-1
volume-2
volume-x
volume
watch
wifi-off
wifi
wind
x-circle
x-octagon
x-square
x
youtube
zap-off
zap
zoom-in
zoom-out
Examples
Full-page compositions built entirely from shared design system components
Page Newsletter
Follow the latest trends
With our daily newsletter
Page Product
Wireless Headphones
New Arrival
$50
Premium wireless headphones with active noise cancellation and 30-hour battery life.
Midnight Black
Silver
Navy Blue
Standard
Compact
Answer the frequently asked question in a simple sentence, a longish paragraph, or even in a list.
Free shipping on orders over $50. Returns accepted within 30 days of purchase.
All products come with a 1-year limited warranty covering manufacturing defects.
Page Product Results
Wireless Speaker$45
Smart Watch$120
Running Shoes$89
Desk Lamp$35
Backpack$65
Sunglasses$55
AI Chatbot
Flippy chats
Chats
Analog Clock React app
Simple Design System
Figma variable planning
OKCLH token algorithm
Component naming advice
Hey Flippy! Write me a script for building an Analog Clock.
F
Sure. Here is a Typescript code block for your Analog Clock project. It is built using React, and uses the local time for London, England as standard. Let me know if you would like to make any refinements to the code.