Default
Bordered surface. No attribute needed.
Cards & Surfaces v1 —
packages/design-system/src/components/card.css. Irozon is not a
card-heavy SaaS UI. Whitespace, typography and a hairline stay the preferred way to
group content; enclosure is the exception, reached for only when it genuinely adds
meaning.
.iz-surface.iz-carddata-interactive<a> or <button> only — never a clickable <div>.A heading, some body copy, a hairline before the next section — no enclosure needed. This should stay the first instinct, not the fallback.
No card, no border, no shadow — just type and space doing the work.
.iz-surface separates content from its surroundings with a tint alone —
no border, no shadow. Useful for a settings panel, a code sample, a quoted block.
Grouped, but never mistaken for a clickable object.
Bordered surface. No attribute needed.
Tinted, borderless — quieter than default.
data-variant="subtle"
A stronger border, still no fill difference.
data-variant="outlined"
A real shadow — reserved for content that should read as genuinely above the page.
data-variant="elevated"
Static cards never move on hover. Interactive cards follow the homepage service cards on irozon.se: 24px corners, a translucent surface and a soft shadow on hover, with no card lift or scale and no border/fill change. Hover a card or Tab to it to compare pointer and keyboard feedback.
Open your billing details. Hover for the website shadow; Tab for the Green focus outline.
Link card: translucent surface, shadow feedbackirozon-website/src/components/Services.tsx: a 1px border, 70% surface fill, 16px backdrop blur, 32px padding and 24px corners. The hover shadow uses --shadow-card-hover over 150ms with --motion-ease-standard. Subtle, outlined and elevated variants keep their fill, border and resting elevation roles..iz-card__title for the website's heading color response over 150ms. Shadow and heading feedback use the existing fast motion token. The design system uses --color-link for readable text in both themes. No arrow movement belongs to this service-card pattern; project image zoom and scroll-entry effects are separate patterns.A Badge, some type, nothing more — the card's only job is to hold this together as one unit in a grid of similar units.
.iz-card when
content is a genuine discrete unit (a plan option, a record in a grid) · use a real
<a>/<button> for anything clickable.
<div> pretending to be a card.
<a href> or <button> — native keyboard activation, native focus, no role/tabindex retrofitting.:focus-visible outline on the card element itself, matching every other Irozon control.<a> — nested interactive elements are invalid HTML and break keyboard/screen-reader navigation. Pick one: a card-wide link, or independently focusable controls inside a static card.