Tile Elements
The foundation palette — buttons, logo boxes, checks, toggles, dropdowns, and the AI orb. Mirrors Planar's "Tile elements" frame (33:2112) exactly. Visual only — interactivity wires up when sections need it.
TileButton · sizes
Default 36px / 204px wide for full-row CTAs. Pill 26px for compact chips.
TileCheckbox · checked / unchecked
22×22 bordered square. Check glyph when checked.
TileRoundedIcon
42px cream-200 circle, icon slot. For accent indicators.
TileToggle · off / on
42×20 sliding pill. Visual state via on prop.
TileToggleIcons
Segmented icon toggle. Active segment via active prop.
TileAiOrb
72×72 brand-gradient orb. Journey's AI accent moment. Icon slot for the glyph.
TileDropdownArrow · closed / open
24×24 cream-200 circle with chevron. Open prop rotates 180deg.
TileCheckCircle · active / inactive
22×22 circle. Active = dark fill + white check. Inactive = empty white circle.
TileLogoBox · default
Colored square with logo slot. Accepts any hex; logo content sits at intrinsic size (42×42 with a 24px glyph). Matches Figma reference 22:178 — logomark-01 on blue.
TileLogoBox · small
Locked 36×36 with centered glyph. For tighter inline compositions like the credit-card entity tile.
Card
Wrappers and nested boxes. The container atoms every tile composition starts from. Not in Figma's "Tile elements" palette — added for engineering reasoning.
TileCard · default surface
240×240 white card with md padding and the hairline border-default per the Card visibility rule. Surface variants: default (bg-card) / soft (bg-section-alt #F5F3F1) / inverse (ink-900).
Default
bg-bg-card · p-[18px]
TileCard · soft surface
Warm beige variant, borderless. The warmth layer between the white page and inner white cards. Pops on the page by hue, not by border.
Soft
bg-bg-section-alt
TileCard · inverse surface
Dark variant, white text, borderless. For credit-card style or stat callouts.
Inverse
bg-bg-inverse
TileInnerBox
Nested cream-100 cell inside a TileCard. Groups related content with a contrasting fill.
Label
Value
Content
Text patterns and avatars. Not in Figma's "Tile elements" palette — added for engineering reasoning.
TileTitleCaption
Title (19px) + caption stacked vertically. Caption defaults to 14px (text-small); pass captionSize="title" to render at 19px (matches Planar tile references).
Capstone
Material supplier
TileLabelValue
Distributed label/value row, body-small size.
Balance
$13,568.00
TileAvatar · sizes
Square portrait, rounded-sm. Sizes sm 36 / md 42 / lg 60. Falls back to cream-200 placeholder when no src.
Entity
Tiles that identify a person, company, file, or message. Neutral palette by default (no category threads) so the same atom shapes carry any kind of entity. Card visibility comes from the hairline border on TileCard's default surface.
Entity 01 · Prospect Inc.
Auto-height row. TileLogoBox on the left (Prospect Inc. brand blue via the atom's color prop, white logomark inside); eyebrow ("New company") above the primary name on the right.
Entity 02 · Jane / Manager
Auto-height row. TileAvatar on the left, name left-aligned, role right-aligned in muted text.
Entity 03 · codebase_final
File row. Phosphor Paperclip on the left, filename left-aligned (truncating), filetype right-aligned in muted text.
Entity 04 · Message
Message row. TileAvatar at top-left; multi-line message body wraps across the remaining width.
Hey Jane, thanks for reaching out, I can definitely help.
Entity 05 · Payment · Signee
Single square tile, content distributed top-to-bottom via justify-between. Top: 3-line stat stack (small label, h4 value, secondary caption). Bottom: signee row (avatar + name on the left, role right-aligned).
Entity 06 · Invoice
Square tile. TileTitleCaption at top (Invoice / from Prospect Inc., caption matches title size). Bottom group: amount and CTA stacked together (12px gap), both pinned to the tile's bottom edge.
Invoice
from Prospect Inc.
Entity 07 · New Supplier · Capstone
Square tile. TileTitleCaption at top (New Supplier / ID: TC938); inner section-alt pod at bottom containing Capstone branding (rust TileLogoBox, brand name and category). Inner pod is borderless; the outer white card carries the hairline border.
New Supplier
ID: TC938
Entity 08 · Capstone · Material supplier
Inverse of Entity 07: TileLogoBox (Capstone rust) at the top, TileTitleCaption (Capstone / Material supplier, caption matches title size) pinned to the bottom.
Capstone
Material supplier
Entity 09 · Cassy Price
Avatar at top (TileAvatar lg, 60×60). TileTitleCaption (Cassy Price / Cleveland, OH, caption matches title size) pinned to the bottom.
Cassy Price
Cleveland, OH
Entity 10 · Candidate found · Cassy
Same nesting pattern as Entity 07. TileTitleCaption at top (Candidate found / Accounts, caption matches title size); inner section-alt pod at bottom contains TileAvatar md (42×42) + name + city at 14px. Inner pod is borderless.
Candidate found
Accounts
Entity 11 · Attachment
TileTitleCaption at top (Attachment / codebase_final.zip, caption matches title size); large Phosphor Paperclip (size 72, regular weight, primary color) pinned to the bottom-left.
Attachment
codebase_final.zip
Entity 12 · Attachments
TileTitleCaption at top (Attachments / 2 found, caption matches title size). Bottom: vertical stack (12px gap) of two file rows. Each row has a 24px Phosphor icon (Image, FileZip) at half opacity, filename left-aligned, filetype muted right.
Attachments
2 found
Entity 13 · Message · Cassy
Bigger cousin of Entity 04: multi-line message at title size pinned to the top, signee row (avatar + name on the left, role muted right) pinned to the bottom.
Hey Jane, thanks for reaching out, I can definitely help.
Entity 14 · Debit card
First inverse Entity tile. Rectangular auto-height (240 wide × ~158 tall in Figma), reads like an actual card. Padding sm (12px); three sections stacked with 16px gaps. Top: small blue TileLogoBox left, "Debit" muted right. Middle: masked card number. Bottom: Valid/Use label-value columns (24px gap), labels at half opacity. Same credit-card composition Metric 12 stacks with a Balance row.
•••• •••• •••• 6738
Entity 15 · AI summary
Centered vertical stack. TileAiOrb (Journey brand gradient, Sparkle glyph at 32) on top, greeting at title size centered below. Journey substitutes its brand gradient for Planar's motif-05 bitmap on AI surfaces.
Hi Chris, here's your summary for today
Event
Tiles that report something happening: a shared file, a scheduled call, a payment due, a trip leg. Neutral palette (no category threads); icons via Phosphor.
Event 01 · Jane shared a file
Compact row. TileAvatar on the left, single primary label on the right. No secondary value.
Event 02 · Kick-off call
The leanest event tile. Label left, time muted right. No icon, no avatar.
Event 03 · Payment due
Alert row. Phosphor WarningCircle on the left + label, due-in counter muted on the right.
Event 04 · LAX to SF
Flight leg. Phosphor AirplaneTilt + origin code + small arrow (12px, 50% opacity) + destination code, all left-aligned; departure time muted right.
Event 05 · Calendar
Square tile. "Calendar" title pinned to the top; section-alt pod at the bottom holding a 3-line stack (eyebrow date / title-size day / muted event name).
Calendar
Monday
All-hands firesideEvent 06 · Upcoming · Kick-off call
Square tile. "Upcoming" title pinned to the top; section-alt pod at the bottom holding a time+title sub-stack and an avatar+name row.
Upcoming
Kick-off call
Event 07 · Shipped
Square tile. TileTitleCaption "Shipped" / "Arrives Wednesday" (caption matches title size) at top; Phosphor Path icon + city at body size pinned to the bottom.
Shipped
Arrives Wednesday
Event 08 · Restock confirmed
Square tile. "Restock confirmed" title pinned to top. Bottom: section-alt pod (Capstone rust logo chip + brand name + reference ID muted), then two label-value rows (Time/9:30am, Location/Bay 2) with labels primary and values muted right.
Restock confirmed
Event 09 · Capstone supplier
Square tile, no outer title. Top: Capstone TileLogoBox + 2-line text stack at body size (Capstone primary, Material supplier muted). Bottom: three label-value rows (Status, Time, Location), labels primary and values muted right.
Event 10 · Email scheduled
Square tile. "Email scheduled" title at top. Bottom: two stacked bento pods (4px gap), each section-alt pod containing a muted label above a primary value.
Email scheduled
Event 11 · Reminder set
Centered success moment. TileRoundedIcon with a Planar-faithful lime via the atom's new color prop (same documented hex-escape pattern as TileLogoBox) holding a Phosphor Check (bold weight); TileTitleCaption center-aligned with title and matching-size caption below.
All-hands Fireside
Reminder set
Event 12 · File analysed
Square tile. TileTitleCaption (File analysed / Found 37 insights, caption matches title size) at top. Bottom: section-alt pod with a horizontal-apart row — paperclip (50% opacity) + filename left, filetype muted right.
File analysed
Found 37 insights
Control
Tiles that hold an interactive control — a checkbox, toggle, segmented switch, dropdown, or trigger. Each tile pairs a label with the control widget. Visual-only here; interactivity wires up when sections need it.
Control 01 · Plan meeting
Compact row. Label left, TileCheckbox (checked, check glyph inside) right.
Control 02 · Auto-reply
Compact row. Label left, TileToggle (off, nub on the left) right.
Control 03 · Mode
Compact row. Label left, TileToggleIcons (Sun active left, Moon dimmed right).
Control 04 · Attachment
Compact row. 2-line label stack ("Attachment" muted above "proposal_final.pdf" primary) left; TileRoundedIcon holding a Phosphor PaperPlaneTilt right.
Control 05 · Frequency
Compact row. 2-line label stack ("Frequency" muted above "Daily" primary) left; TileDropdownArrow (24px cream circle, caret) right.
Control 06 · Day / Week / Month
3-cell segmented control. Renders via the TileSegmented atom in padding="strip" mode (py-1.5 only, strip bleeds to tile edges).
Control 07 · Manual / Auto
2-cell segmented. Same TileSegmented atom, padding="all" mode (p-1.5 around the cells).
Control 08 · Cassy · checkbox
Compact row. TileAvatar md (42×42) + 2-line stack (Cassy primary / Finance muted, both 16px) left; TileCheckbox checked right.
Control 09 · Cassy · Invite
Same left side as Control 08 (avatar + 2-line stack at 16px). Right: TileButton size="pill" with "Invite" label (26px-tall compact pill button).
Control 10 · Restock · Confirm
Square tile. TileTitleCaption "Restock" / "Incoming delivery" (captionSize="title") at top. Bottom stack: section-alt pod with Capstone rust logo + "Capstone" / "9:30am, Bay 2" 14px (primary / muted), then full-row TileButton "Confirm".
Restock
Incoming delivery
Control 11 · Low stock · Reorder
Square tile. Top: WarningCircle + "Low stock" (16px body) row. Bottom: TileTitleCaption "Aluminium frame" / "4 left" (captionSize="title") then full-row TileButton "Reorder".
Aluminium frame
4 left
Control 12 · Bookkeep.ai · permissions
Square tile. Top: section-alt pod with green TileLogoBox (Bookkeep.ai brand) + name/role at 14px. Bottom: Permissions eyebrow + 2 checkbox rows (Read checked, Write unchecked) with 19px labels.
Control 13 · Cassy Price · toggles
Square tile. Top: section-alt pod with TileAvatar md + Cassy Price / Accounting at 14px. Bottom: 3 toggle rows (Can publish off / Can edit on / Can invite off).
Control 14 · Preferences
Square tile. "Preferences" title at top (no caption). Bottom: 3 toggle rows (Cache results off / Auto-reply on / Require password off).
Preferences
Control 15 · Loading bay door
Square tile. TileTitleCaption "Loading bay door" / "Open" (captionSize="title") at top; one-off physical-switch widget at bottom (96px wide, 2 vertical positions, top ON shows a white bar on dark, bottom OFF shows an outlined circle on section-alt).
Loading bay door
Open
Control 16 · Registration form
Square tile. TileTitleCaption "Registration form" / "Approvals" (captionSize="title") at top. Bottom: TileSegmented (Manual / Auto active) wrapped in a section-alt pod via the atom's class prop. Third use of the atom.
Registration form
Approvals
Control 17 · Subscription · player
Square tile. TileTitleCaption "Subscription" / "Active" at top. Bottom: pill-shaped media player strip (section-alt bg, 3 icon buttons at 48×48); first button is active with dark fill + inverse icon. One-off inline widget.
Subscription
Active
Control 18 · Add files
Square tile. Multi-line title "Add files to begin analysis" at 19px (wraps to 2 lines) at top. Bottom: TileRoundedIcon + Plus glyph + "Add new" muted (14px) horizontal row.
Add files to begin analysis
Control 19 · Assignees
Stacked trio of TileCards (4px gap, no outer card). Each row: TileAvatar md + name/role (16px) + TileCheckbox. Cassy and Janine checked, Ravi unchecked.
Control 20 · Less than · Automation
Stacked pair of TileCards (4px gap, no outer card). Card 1: compact row, "Less than" muted 14px left + "30 units" primary 19px right. Card 2: "Automation" eyebrow + 3 checkbox rows (Reorder ✓ / Email ✗ / SMS ✓) with 19px labels.
Control 21 · Reporting interval
Square tile. TileTitleCaption "Reporting" / "Set interval" (captionSize="title") at top. Bottom: TileSegmented inside a section-alt pod (Day / Week active / Month). Fourth use of the atom.
Reporting
Set interval
Control 22 · Properties · Visibility
Square tile. Top: "Properties" title (19px) + section-alt pod with paperclip + filename + filetype row (same shape as Entity 12 / Event 12). Bottom: "Visibility" label left + TileToggleIcons with Lock active and Globe dimmed.
Properties
Control 23 · Prospect Inc. · Contact found
Stacked pair (4px gap, no outer card). Card 1: Prospect Inc. brand row (same shape as Entity 01, blue TileLogoBox via color prop). Card 2: "Contact found" eyebrow + section-alt pod with Cassy avatar / role + full-row TileButton "Invite".
Control 24 · File analysed · Review
Stacked pair. Card 1: compact paperclip + filename + filetype row. Card 2: TileTitleCaption "File analysed" / "Found 37 insights" + full-row TileButton "Review".
File analysed
Found 37 insights
Control 25 · Payout · Debit card
Stacked pair. Card 1: compact 2-line ("Payout account" muted / "Debit card" primary) + TileDropdownArrow. Card 2: inline duplicate of the Entity 14 credit-card layout (inverse surface, blue brand logo, masked card number, Valid/Use rows). Promote to a TileCreditCard atom on a 3rd use.
•••• •••• •••• 6738
Data viz
Charts, progress, timelines, and stat callouts. Mirrors Planar's three viz tile categories — Metric, Status, and Process.
Metric
Metric 01 · Payment
Auto-height tile with a single justify-between row — small muted label on the left, value on the right.
Metric 02 · Phase B
Compact dark stat pill (157px wide) sitting in an unpadded white container. Label + value layout. Composes TileBatteryPill in label mode.
Metric 03 · Charge
Same dark stat pill as Metric 02, with a 24px lightning bolt icon instead of a label. Composes TileBatteryPill in icon mode.
Metric 04 · Redevelopment
Title + 4-segment phase bar. Each phase fills 0–100% independently. Canonical tile is auto-height (240×126), not 1:1. Composes TilePhaseBar.
Redevelopment
Phase B
Metric 05 · Budget
Title + horizontal progress bar with min/max range labels above the fill. Composes TileProgressBar.
Budget
Expires 9 days
Metric 06 · Performance
Title + 6-bar vertical bar chart with letter month labels. Active bar uses bg-bg-inverse for emphasis. Composes TileBarChart.
Performance
Revenue
Metric 07 · Net Income
Title + 2-segment proportional bar with labels above each segment showing the source split. Inline composition (no atom) — segments are different widths, fully filled with different colors.
Net Income
By source
Sales
Affiliate
Metric 08 · Average order
Title-only header + big-number callout with a TrendUp icon and trend caption. Display value uses font-display + text-h1 (clamps to 45px).
Average order
$7,129
Metric 09 · Capstone
Branded bar-chart variant of Metric 06 — TileLogoBox + 16px (tile-body) title at the top, six-bar TileBarChart at the bottom. Same logo treatment as Process 08 / Status 09.
Capstone
Order volume
Metric 10 · Sales volume
Title + 3 horizontal labeled bars with per-row width. Active row inverts colors. Composes TileBarHorizontal.
Sales volume
Q4
Metric 11 · Activity
Title + 4×8 seat-grid heatmap with mixed cell states (subtle / mid / accent / empty). Composes TileSeatGrid.
Activity
December
Metric 12 · Debit
Stacked tile pair (4px gap) — credit-card style entity tile on top (dark surface, blue logo, masked card number, valid + use rows), then a Balance row tile below. Same Balance row pattern as Metric 01.
•••• •••• •••• 6738
Status
Status 01 · Check passed
Auto-height tile with a 24px shield-tick icon on the left and a small confirmation label on the right. Composes ShieldCheck (Phosphor) inline.
Status 02 · Design consult
Auto-height tile with a small label on the left and an active TileCheckCircle (dark fill, white check) on the right. Composes TileCheckCircle.
Status 03 · Nagano
Title + analog clock with timestamp at bottom-right. Composes TileClock with a small text caption.
Nagano
Japan HQ
Status 04 · Motion detected
Title + 72px sensor-style icon at the bottom. Substituted Phosphor Vibrate for Lucide NFC — different visual but a closer semantic match for motion detection. Inline SVG can swap in later if exact parity is needed.
Motion detected
Loading bay
Status 05 · Connected
Title + percent / globe-icon row + 18-pip signal strength indicator. Composes TileSignalPips with a percent + icon header. Substituted Phosphor GlobeHemisphereWest for Lucide GlobeLock.
Connected
HQ-Wifi
Status 06 · Website redesign
Title-only header + two stacked inner boxes, each with a label and a TileCheckCircle (active for done, inactive for pending). Composes TileInnerBox + TileCheckCircle.
Website redesign
Status 07 · Status / Charging
Stacked tile pair (4px gap) — main tile with title and a 3-icon row showing the state transition (sun → battery), then a TileBatteryPill below. Composes TileCard + TileBatteryPill. Substituted Phosphor BatteryMedium / ArrowRight for Lucide.
Status
Charging
Status 08 · Seats
Title + 3×6 seat grid with three active cells (the "3 available"). Same atom as the Activity heatmap, different pattern. Composes TileSeatGrid.
Seats
3 available
Status 09 · Capstone
Stacked tile group (4px gap) — branded entity tile on top with a 42×42 logo box and title, then two confirmation row tiles below. Composes TileCard + TileLogoBox + TileCheckCircle. Uses Capstone logomark-14 from the brand asset library.
Capstone
Material supplier
Process
Process 01 · Phase B
Inline label + 96×12 progress pill. Auto-height tile. Composes TileProgressBar.
Process 02 · Prospect re-design
Stacked offset gantt bars with Jan/Dec axis. Emphasis row uses bg-bg-inverse. Composes TileGantt.
Prospect re-design
On schedule
Process 03 · Waybill
Horizontal dot timeline with the active stage marker offset by a flex-1 line on the left. Composes TileTimelineLine + TileTimelineDot.
Waybill
No. 4873AX3
Depot 5A
Process 04 · Design phase
Same horizontal dot timeline as Process 03, with a Jan/Dec axis below instead of an inline label. Composes TileTimelineLine + TileTimelineDot.
Design phase
On schedule
Process 05 · Delivery (in progress)
Two-stage journey track with the bottom track left flat (truncated) — the active stage is current and the journey continues. Composes TileJourneyTrack with truncated.
Delivery
No. 4873AX3
Item processed
At Depot
Process 06 · Delivery (complete)
Three-stage journey track with both ends rounded — the journey is complete and the active stage is the final one. Composes TileJourneyTrack.
Delivery
No. 4873AX3
At warehouse
On board
Delivered
Process 07 · Onboarding
Stacked tile pair (4px gap, no outer card) — compact list-row tile on top, main tile with progress below. Composes TileCard + TileAvatar + TileProgressBar.
Onboarding
Chapter 4
Process 08 · Capstone
Horizontal connector timeline for cross-stage flows. Header uses 16px (tile-body) text. Composes TileLogoBox + TileTimelineLine + TileCheckCircle.
Capstone
Material supplier
Compliance