PRODUCT HUNTWe just launched the Department of Machine Verification (let your agent join the community)View launch →
Design system · 2026-04-19

The .agent design system

Live reference for every primitive. This page IS the source of truth — it uses the real components in production-grade Pretext-native CSS.

Tokens

Color tokens

--bg#ffffff / #0a0a0a · Surface base
--fg#111111 / #f5f5f5 · Primary text
--fg-soft#222222 / #e5e5e5 · Strong body
--muted-strong#525252 / #a1a1a1 · Body / readable
--muted#737373 / #7a7a7a · Captions
--hairline#e5e5e5 / #2a2a2a · Dividers
--hairline-strong#d4d4d4 / #3a3a3a · Input + action borders
--surface#f5f5f5 / #1a1a1a · Section bg
--dot#e1261c / #f23a2f · The signature
--dot-strong#c41e15 / #ff4a3e · Hover on dot
--error#dc2626 / #ef4444 · Validation only
--warn#d97706 / #f59e0b · Warning accent
Tokens

Spacing scale

4px
8px
12px
16px
20px
24px
32px
48px
64px
96px
120px
144px
Primitives

Typography

Inter Tight · Display

Headlines & the billboard

Inter Tight · Section title

Why .agent matters

Inter · Body

Body copy uses Inter at 16–20px for readability. Long-form sections use the `lg` size for comfort.

JetBrains Mono · Technicalsupport.acme.agent · 28,000 members
Primitives

Brand mark

The .agent wordmark — period always red, rest follows the surrounding context font. The hero billboard is the only intentional scale exception.

font="display".agent
font="mono".agent
font="body".agent
Primitives

Hairlines

1px var(--hairline) — visible structure is the Swiss/Rams editorial move. Between sections, around grids, never doubled.

Above
Below
Edu
Gov
Agent
Primitives

Buttons

Six variants. Pills for primary CTAs (round = affordance). Rectangles for form-attached submits. Hairline-bordered secondaries. Ghost for menu items.

Primary CTA — pill
Form submit — rectangular
Secondary
Ghost
Destructive
Disabled (any variant)
Primitives

SearchField

Hero conversion primitive. Kinetic placeholder cycles through real-world examples, sticky .agent suffix follows the input, auto-width keeps the suffix tight to the text. Respects prefers-reduced-motion.

Hero — kinetic placeholder
CTA — static placeholder
Primitives

Billboard wordmark

Hero centerpiece. clamp(88px, 13vw, 168px) — the largest text on the page. Brand IS the hero. The only intentional scale exception to the type system.

.agent

Sections

PartnerGrid

Full-bleed 2×8 grid. White-fill SVG logos darken via filter to mid-gray; hover snaps to fully on-brand. Permanent mono captions under each cell — no tooltips (museum-plaque pattern). Last cell is the "see all" tile.

Backed by builders & researchers at
Sections

TrustGrid

Three-column TLD comparison. Each column gets a hairline border; the highlighted column (.agent) gets a 3px red left bar and an inline "PROPOSED" badge.

.edu
Education

Accredited institutions only. Restricted since 1985.

.gov
Government

Verified US government entities. Restricted and regulated.

.agent
AIProposed

Open community application to ICANN. Standards, governance, and discovery built in the open.

Sections

NotificationBar

Sits BELOW the navbar (not sticky — scrolls away with the page). Supports two contexts via data-context: default (mono on white) and DMV (terminal-green CRT for cross-property cohesion). Dismissable via the × button.

context="news" (default)
AGENTBRIEFCurated daily news for the agentic webnews.agentcommunity.org →
context="dmv" — terminal-green CRT
DMVDepartment of Machine Verification — self-serve kiosk previewdmv.agentcommunity.org →
Primitives

Forms

Flat-editorial form pattern — bottom-line inputs, mono uppercase labels, (?) tooltip explainers, 16×16 square checkboxes, inline toggles, mini-badge status pills. No box chrome. Quiet, structured.

MiniBadge — 4 variants
availableSPECpendingproposed
FormField with required + tooltip
FormField with InlineToggle
FormField — no extras
FormField — error state (after blur)

Required — enter your full legal organization name

InlineCheckbox — states
Unchecked
Checked
InlineToggle
Domain row with MiniBadge (in context)
yourname.agentavailable
Primitives

StatusPill

Rounded pill with a solid dot + mono uppercase label. Three variants for membership state. For compact inline availability use MiniBadge instead.

ActivePendingNo domain
Primitives

IconSquareBtn

Hairline-bordered square button — transparent background, --hairline-strong border, hover lifts to --surface. Used for social share, profile actions, and auth provider entry points. Renders <a> when href is supplied, otherwise <button>.

Sizes28 / 32 (default) / 36
Primitives

CometLoader

Rotating conic-gradient ring. A bright red head with a ~160° fading trail, masked to a donut. Reads as a "dot chasing its tail." Used by the search field during availability checks and inline in the Toast loading variant.

size=16
size=24 (default)
size=36 · 1200ms
size=56 · 900ms
Components

Member globe

Two-mode monochrome WebGL sphere powered by a dependency-free in-house renderer. Dots (presence) — tiny uniform member dots on the surface, rotating spotlight cast of logo + name cards. Towers (density) — hypsometric prisms on a smaller sphere: height ∝ √(count/max), log-scaled hypsometric ramp (green lowlands → gold → amber → orange → red peaks), one muted aggregate per country-only org. The spotlight cast keeps running over the towers. Red peaks aside, red is reserved for spotlight dots and the top-band tower peak. Hover pauses, drag rotates, cards link to member profiles. Fixture data; the live version feeds from /api/map/globe.

mode="presence" · Dots · maxSpotlights=4

mode="density" · Towers

Primitives

Branded icons

Service glyphs used across auth providers and share surfaces. Prefer these over lucide brand icons — they ship matching stroke weights, sizing, and aria labels.

XIcon
LinkedInIcon
GitHubIcon
GoogleIcon
MDX

Callout

Flat-editorial block for long-form content — hairline rectangle with a 2px semantic left bar, mono uppercase label in the icon slot (no lucide inside callouts). Four types: note, info, tip, warning.

Note
Self-describing names are the point
The .agent taxonomy covers personal roots, company surfaces, fleets, and community hubs — the name itself tells you the shape.
Info
Membership is free, non-binding, and never requires payment information.
Tip
Pro tip
Pre-register your preferred domain before the ICANN application window closes — early consideration is subject to allocation policies.
Warning
ICANN-safe framing
.agent is pending ICANN approval. The community is applying — we are not a registry operator. Pre-registration is non-binding.
Feedback

Toast (sonner)

Inverted flat-editorial rectangle — dark on light pages, light on dark. 2px semantic left bar (--bg accent for default/success/info, --warn for error/warning, --dotfor loading). Mono uppercase label in the icon slot replaces sonner's default colored circles.

API surface stays the same — call toast.success(title, { description }) / toast.error(…) / toast(…). The <Toaster> in app/layout.tsx is globally styled (see .ac-toast-* rules in globals.css). A server-side redirect can also trigger a toast on the destination page via ?type=signin|signup|error|success|info&message=….

MDX

Docs / blog prose

Signature rules — top-hairline H2 with a red § marker, hairline-dash <ul>, mono red counter <ol>, display-italic blockquote on a red bar. Full renderers live in components/content/mdx-components.tsx and ship automatically for every page under /docs and /blog.

Headings

Heading 1

Heading 2 with § marker

Heading 3

Heading 4

Body + link

Body copy sits at 17px / 1.7 line-height on --fg-soft, capped at 68ch for comfort. Links use an animated bottom-line in --dot that thickens to full-width on hover.

Unordered list — hairline dash
  • Early internet — IP addresses connected machines. DNS made the web usable for humans.
  • Social platforms — user IDs ran the database. Handles made communities possible.
  • Agents — endpoint URLs connect systems. Names will make the agentic web trustworthy.
Ordered list — mono red counter
  1. Who can name agents — and who can't.
  2. Discovery — which agents are findable and which aren't.
  3. Trust signals — what counts as "verified" and who decides.
Blockquote
"Whoever controls the naming layer for agents decides what's legible on the agentic web. That choice should not be privatized."
Inline code + code block

Resolve an AID record with a standard dig TXT query.

bashCopy
dig TXT _aid.support.acme.agent +short
# → "v=aid1; capabilities=chat,support"
Table
PhaseWindowStatus
Community building2024 – 2026Active
ICANN window30 Apr – 12 Aug 2026Pending
Delegation2027+Conditional
LeadText

Lead paragraphs sit between a heading and the body — Inter 19–20px, muted-strong color, tight tracking. Use for the intro under an H1 / H2.