every namethatui element, padded only at the leaves

containers arrange, leaves pad. 49 web elements from namethatui.com, each shown with padding living only at the leaf nodes. flip the inspector (key i) to see every padded node glow.

padded leaf

macos elements (32) live on their own page

the one rule, on one card

every card below is the right way (B) of a single rule: a container never pads itself: it arranges with flex, grid and gap; only leaf nodes pad. when the container pads instead, every child that must reach the edge has to cancel the padding with a negative margin, and each change of inset drifts one cancel away from the others.

wrong · the card pads

the card holds p-4, so the media block and the action seam need -mx-4/-mt-4/-mb-4 to stay full bleed. three cancellations, one per edge, all drifting apart on the next inset change.

right · the leaves pad

the card arranges and paints; name and text pad; the media block and the action seam run wall to wall with zero cancellations.

ruling

if a child needs a negative margin to reach its container's edge, the padding is on the wrong node. move it to the leaves and the hacks disappear as a group.

the right side
<article className="flex w-72 flex-col overflow-hidden rounded-xl border border-zinc-800 bg-zinc-900">
<div className="h-28 bg-gradient-to-br from-sky-600 to-indigo-700" />
<h4 data-pad className="px-4 pt-3 font-semibold">mechanical keyboard</h4>
<p data-pad className="px-4 py-1 text-zinc-400">hot-swappable, 75%.</p>
<div className="flex border-t border-zinc-800">
<a data-pad href="#" className="flex-1 py-2 text-center hover:bg-zinc-800">details</a>
<a data-pad href="#" className="flex-1 border-l border-zinc-800 py-2 text-center text-indigo-300 hover:bg-zinc-800">buy</a>
</div>
</article>

the full treatment of the rule (more comparisons, the inspector, and practiced cases) lives on leaf padding.

web

accordion

web/accordion
shipping

ships in 2 business days.

returns

free returns within 30 days.

warranty

two years, parts and labor.

summary hover and open fills run wall to wall; the padded leaf is the summary and the body.

alert, callout, banner

web/alert
storage almost fullyou have used 92% of your plan.
new pricing is live

the stripe is a container-painted leaf; text leaves pad inside.

avatar group

web/avatar
jtmkal+6

overlap uses translate on the container row, not negative margins.

badge, chip, pill

web/badge
activebetadesign

the removable chip is two leaves split by an overflow-hidden container.

bento grid

web/bento-grid
revenue +18%
users
churn 0.4%

the caption sits on the tile edge; the tile clips, the caption pads.

bottom navigation

web/bottom-navigation

each tab is one padded leaf; the active fill covers the full tab.

breadcrumbs

web/breadcrumbs
home/library/components

crumbs and the current page pad; separators are bare glyphs.

the media block paints, never pads; text and action leaves pad. see the full A/B in “the one rule” above.

chat bubble

web/chat-bubble
hey, is the report ready?almost — sending in an hour.
chart-v2.png

the tail is a one-sided corner radius on the padded leaf.

combobox

web/combobox
▾
BerlinBernBergen

the field is a flex row: input leaf pads, the caret does not.

command palette

web/command-palette
suggestionsduplicate tab ⌘Dclose tab ⌘W
enter to run, esc to close

the rule is a bare paint block between padded rows.

data table

web/data-table
invoicestatusamount
INV-001paid$250
INV-002pending$125
INV-003failed$-39

cells pad; row hover and selection fills run wall to wall.

date picker

web/date-picker
september 2026
motuwethfrsasu123456789101112131415161718192021222324252627282930

every day cell is its own leaf; range and today fills are per-cell.

dialog, drawer, sheet

web/dialog
filters

three filters applied.

apply

the sheet is an edge-anchored column inside a clipped relative container.

profile
billing
or
sign out

rules are bare paint blocks; only the label “or” pads.

drag and drop

web/drag-and-drop
  • first
  • second
  • third

react state reorders: draggable rows, drop to move (was a site.js hook).

linear
ease-out
in-out

react state plays every bar; each row carries its own transition-timing-function.

empty state

web/empty-state

no uploads yet

drop files here or import from a link.

the dashed border belongs to the container; the leaves own the breathing room.

focus ring

web/focus-ring

rings are focus states on the padded leaves, offset from zinc-950.

form field

web/form-field
enter a valid email address

label, input and hint stack with gap; the error border is on the input leaf.

hamburger menu

web/hamburger-menu

bars are bare spans; the burger leaf owns the tap padding. react state shows and hides the links.

header, navbar

web/header-navbar

a demo nav is content: plain components, never the site shell.

hover card

web/hover-card
@mika

pure css reveal: hover on the relative wrapper flips visibility and opacity.

lightbox

web/lightbox
2 of 12

chrome buttons are edge-anchored leaves over a full-bleed backdrop.

ships thursdayv2.4 is liveships thursdayv2.4 is live

one keyframes (mq, in globals.css) translates -50% of the w-max track.

1
2
3
4
5
6

css columns; mb-2 on tiles is the one sanctioned exception to no outer margins.

multi-select

web/multi-select
rustgo

tokens and the inline input share one wrapping flex container.

pagination

web/pagination

divide-x draws the seams; pages are padded leaves over hover fills.

parallax

web/parallax

scroll me

the backdrop sticks while the foreground rolls over it.

sticky top-0 inside overflow-y-auto; zero js, zero transforms.

popover, dropdown, tooltip

web/popover
actions
hover me

details gives the dropdown natively; the tooltip is a hover flip.

progress indicators

web/progress
40%

bar, segmented bar and svg ring; only the segmented label pads.

resize handle

web/resize-handle
drag my edge
fixed pane

native resize:horizontal on the pane; the handle is a bare paint strip.

delete this board?confirm

the veil is an absolute paint layer; the modal stacks above it relatively.

scrollspy

web/scrollspy
intro
install
usage

react state: scroll position picks the active nav item (was a site.js hook).

sign-in form

web/sign-in-form

welcome back

no account? request access

gutter tracks inset every field; the shadcn input and button leaves pad themselves.

skeleton, spinner

web/skeleton

both are pure paint: animate-pulse on the stack, border trick on the spin.

element.animate with a spring-ish curve, run by react on click (was a site.js hook).

status dot

web/status-dot
healthydegradedoffline

ping and core are stacked paint leaves; animate-ping does the pulse.

1cart2payment3done

each step is one leaf: number chip pads inside, the fill covers the step.

sticky, fixed

web/sticky-fixed

the header sticks inside the scroll box while rows slide under it.

switch, checkbox, radio

web/switch

react state drives the toggle knob; the native checkbox and radio are accent-styled.

preview pane.

react state paints the active tab; the underline is an inset shadow.

text scramble

web/text-scramble
decrypting

hover runs a char shuffle in react (was a site.js hook).

three dots

web/three-dots

bounce stagger is animation-delay utilities, no keyframe copies.

timeline

web/timeline
designmon
buildtue
shipwed

the rail is a flex column: dot leaf, then a flex-1 line that closes the gap.

deployedsite is live on workers.
undo

three leaves: status paint block, body column, action seam.

toggle group

web/toggle-group

react state, one segmented frame (same shape as tabs).

truncation

web/truncation
the quick brown fox jumps over the lazy dog

line clamping keeps two lines of this longer paragraph and ends with an ellipsis for the rest.

quarterly-financial-report.pdf

truncate and line-clamp on padded leaves; the split keeps the extension pinned.

source catalogue: namethatui.com. cursors category omitted (the pointer page covers it).

search pages

go to any page