Elevation
Only floating surfaces cast a shadow. Each shadow carries its own hairline ring.
const SHADOWS = [
{
name: "shadow-raised",
className: "h-20 rounded-lg bg-overlay shadow-raised",
usage: "Raised buttons and pickers, the workspace pill.",
},
{
name: "shadow-floating",
className: "h-20 rounded-lg bg-overlay shadow-floating",
usage: "The action bar.",
},
{
name: "shadow-popover",
className: "h-20 rounded-lg bg-overlay shadow-popover",
usage: "Menus, popovers, tooltips.",
},
];
export default function Elevation() {
return (
<div className="grid grid-cols-3 gap-6 bg-default p-2 font-sans text-body-md text-default">
{SHADOWS.map((shadow) => (
<div className="flex flex-col gap-3" key={shadow.name}>
<div className={shadow.className} />
<code className="font-medium">{shadow.name}</code>
<span className="text-body-md text-muted">{shadow.usage}</span>
</div>
))}
</div>
);
}
- Surfaces in the page flow are flat and set apart by
bg-insetorbg-control, not by shadow. - The 1px ring is part of the shadow, so no surface needs a border.