Design Guidelines · v1.0 · 2026-05-12

The visual language of a proof-of-personhood network.

This document is the canonical reference for anyone creating on behalf of twin3 — Twitter banners, Discord posts, video stills, slide decks, landing pages, ad creative. It does not replace your judgment; it gives you the same starting palette, type, and tone as every other contributor, so the network reads as one voice across many hands.

Two modes: Cream  ·  Forest · Two accent layers: Storytelling  ·  Product · Three typefaces: EB Garamond  ·  Inter  ·  JetBrains Mono

Operating instructions

Read this once and bookmark it. The rest of this page is a reference — colours, type, voice rules, templates. This section is the procedure: how to go from "I have an idea" to "the post is live" without the result feeling off-brand or off-tone. Seven steps and one checklist.

  1. 01

    Pull the source files

    Three things to grab before drafting anything:

    • The AI Skill — copy twin3-design.md from the card at the top of this page and paste it into your AI assistant (Claude / ChatGPT / Gemini) as custom instructions. Your assistant then critiques your draft against the same rules every other creator follows.
    • The logo — download the Primary mark (SVG + PNG 2048) and, if you're producing a social avatar or circle-cropped placement, the Avatar variant too. Never screenshot the mark, never rebuild it from memory.
    • The typefaces — EB Garamond, Inter, JetBrains Mono. Free on Google Fonts; install locally for your design tool.
  2. 02

    Pick your accent layer before you pick anything else

    twin3 has two accent palettes and they do different jobs. Decide which side of the line you are on:

    • Storytelling (mint + gold on forest) — wide banners, hero illustrations, video stills, podium-style announcements. The piece is moving people, not asking them to click.
    • Product (terracotta on cream) — dashboard buttons, links, transactional UI, anything with a single call-to-action. The piece is asking the reader to do one specific thing.

    If your piece bridges both — a launch announcement that links to the dashboard — let storytelling carry the hero and reserve terracotta for the single call-to-action that closes the piece. Never put mint and terracotta in the same line of type.

  3. 03

    Write the copy first. Design second.

    Visuals will mislead you about whether the words work. Draft the headline and the body in plain text, then run them through the three voice principles:

    • Any financial advice or positioning language? Cut it. Never say buy / sell / hold / ape / undervalued / next 100×.
    • Any superlative without a number behind it? Replace with the number. "141,872 humans on BNB Chain" beats "massive community."
    • Does it read like a press release? Add back your own voice. Your audience follows you because you sound like you, not because you sound like us.

    Cadence: headlines 3–9 words, body sentences 15–25, em-dash yes, ellipsis no, emoji at most one (usually zero). Read it aloud once before moving on.

  4. 04

    Compose the visual

    For Twitter, pick one of the three canvases and lock the anchors from the Twitter section below:

    • Profile header — 1500 × 500, render at 2400 × 1000
    • In-feed post — 1600 × 900
    • Square (Instagram / Threads / Lens / Farcaster cross-post) — 1080 × 1080

    For every canvas: kicker top-left (mono, mint, prefix + ISO date), title second (sans bold, gold, under 9 words), body bottom-left (sans, cream-dim, one line), mark bottom-right (Primary SVG, 48–72px, 0.85 opacity). Date format is always YYYY-MM-DD — never "May 11, 2026."

    For non-Twitter pieces: respect the typographic hierarchy, the two-layer accent rule, and 1× clear space around the mark.

  5. 05

    Run the pre-flight checklist

    Eight items. If any are unchecked, the piece is not ready. The checklist is below this list — print it, keep it in your pinboard, run it before every publish.

  6. 06

    Get one peer review

    Share the draft with one other creator or community member before you publish. They catch the things you went blind to — a number that contradicts itself, a typo in the kicker, a tone that drifted away from the brief. Don't ship without this step.

    Drop drafts into the twin3 community Discord for casual review, or DM a fellow creator. Reviewers: be specific. "Looks good" helps nobody; "the headline reads as financial advice — propose 'X' instead" lands the fix.

  7. 07

    Publish, tag, then walk away

    Tag @twin3_ai on Twitter so the official account can amplify. Drop the link into the relevant twin3 community Discord channel so other creators see what shipped. Then walk away — don't reply-guy your own post for 30 minutes; let the work breathe.

When you're stuck — paste your draft into the AI assistant you loaded the Skill into and ask: "Score this against the three voice principles. What would you cut, replace, or add?" If the answer feels off, ask the community Discord. If you're producing paid creator work and need the brief or assets clarified, reach out to the twin3 team via the usual channel.

This guide is versioned. v1.0 · 2026-05-12. The numbers in §9 of the AI Skill markdown (141,872 humans, Coinbase listing date) are point-in-time — when you quote them, link to the source so the reader can verify them fresh. We will rev this page when the rules change; the page footer always shows the current version.

Foundations

Two themes, three type families, two accent layers. Every other token in this system is derived from these — if you find yourself reaching for a colour or font not listed here, that is the design system asking you to stop and write back.

Surface & ink — anchors
Cream is the default. Forest is for environments where attention is scarce — full-bleed video frames, hero banners, product-launch announcements where a single moment must hold the eye. Both modes share the same forest greens; only paper and ink swap.
Cream · Paper
Bg / Paper
#FAFAF5
Cream · Paper sub
Bg / Paper sub
#F5F3EE
Forest · Paper
Bg / Paper
#0A120C
Forest · Paper sub
Bg / Paper sub
#0F1810
Cream · Ink primary
Ink
#1A1A1A
Forest · Ink primary
Ink
#E8E0C8
Forest greens — brand anchor
Forest · Deep
Forest deep
#2D4A35
Forest
Forest
#4A7C59
Forest · Sage
Sage
#8DAE9A
Forest · Mist
Mist
#C5D9CB
Accent — storytelling layer
Use for: wide banners, hero illustrations, big-moment announcements, video stills, motion graphics, podium-style social posts. Mint signals life and signal-detection; gold/amber signals warmth, value, and the human spark inside the network.
Storytelling · Mint
Mint
#7DDC8C
Storytelling · Mint glow
Mint glow
#6FDB8F
Storytelling · Amber warm
Amber warm
#FF9A3C
Storytelling · Amber
Amber
#FBBF24
Storytelling · Gold
Gold
#FFD66E
Accent — product layer
Use for: dashboard buttons, links, tabs, form states, transactional notices, anything a user clicks. Terracotta is the only colour in the system that earns the right to say "do this now." If everything is loud, nothing is loud — keep storytelling and product accents on separate posters.
Product · Terracotta
Terracotta
#C0512F
Product · Terracotta hover
Terracotta hover
#A84327
Forest mode · Terracotta
Terracotta (dark)
#D8744F
Typography
Three typefaces, distinct roles. EB Garamond for editorial body and display; it carries the voice of a long-form publication, which is what twin3 wants to read as. Inter for product UI — buttons, navigation, dashboard chrome — where letterform clarity at small sizes wins. JetBrains Mono for kickers, data, labels, anywhere the design wants to whisper "this is a system, not a slogan."
EB Garamond Semibold Display headlines · 40–72px · -0.015em
Without a digital body, you don't exist.
Inter Semibold Section headlines · 24–32px · -0.01em
The proof-of-humanity layer for AI agents.
EB Garamond Regular Body · 17–22px · line-height 1.55
Every Digital Twin is a verified human on-chain. Agents pay $0.001 to confirm they are talking to a person, not a script — and the human keeps the receipt, not the platform.
Inter Regular UI body / captions · 13–16px · line-height 1.6
Connect your wallet to mint your Digital Twin SBT. Bound to one human, one device, non-transferable.
JetBrains Mono Kicker · 11–13px · 0.14em tracking · uppercase
▸ Live on Coinbase Agentic Marketplace
JetBrains Mono Data & numerals · 14–18px · natural case
141,872 humans · $0.001 / check · BNB Chain

Iconography

twin3 doesn't ship a bespoke icon set. The defaults below cover every interface need we currently have. Pick from one library and stick to it — mixing icon families is a visual tell that breaks the calm-infrastructure feel of the brand faster than any colour mistake.

▸ Default UI icons

Lucide

24×24 grid, 1.75px stroke, single-weight. Lucide's hairline geometry matches the editorial restraint of EB Garamond and the terracotta product layer. Load from CDN; never recolour stroke unless inverting for a dark surface.

lucide.dev →
▸ Brand glyph

▸   (U+25B8)

Treat the right-pointing small triangle as a brand asset, not a generic chevron. It prefixes every mono kicker, every ghost link, every download chip. If you reach for a different arrow / chevron / play glyph, stop — you're breaking the system.

▸ Status glyphs

Type does the work

Verified / pending / revoked statuses are rendered as mono UPPERCASE labels inside coloured pills (mint, amber, terracotta) — never as bespoke icon shapes. The typography is doing double-duty, and that's the point: fewer parts to maintain.

▸ What not to use

Emoji, mostly never

At most one emoji per post, usually zero. Never use emoji as a UI icon. Never use Phosphor, Tabler, Material, Heroicons, or any other set on the same surface as Lucide — pick one, stay in it.

If a needed icon isn't in Lucide, draw it in the same 24×24 / 1.75px / single-stroke hairline style. Don't add a second library to fill one gap — that's how design systems become wallpaper.

Voice & tone

twin3 writes like a serious publication reporting on a serious thing. Calm, specific, true. The product is meaningful enough that it does not need to shout. These three principles are non-negotiable — everything else (humour, length, structure, language) is the creator's call.

01
No financial recommendations.
We never tell anyone to buy, sell, hold, or allocate. We describe what twin3 is, what it does, who uses it, and what it costs. Price talk, "ape in," "next 100×," "to the moon" — out. The audience includes participants in many jurisdictions; an off-hand suggestion is a regulatory and trust problem we don't need.
02
No hype, no exaggeration, no claims we can't show.
Specific, verifiable numbers beat superlatives every time. "141,872 humans on BNB Chain" is stronger than "massive community." If a claim can't link to a page, a contract, a dashboard, or an on-chain record, rewrite it until it can — or drop it.
03
Keep your voice. Stay inside the frame.
Creators are not interchangeable. Your humour, rhythm, and angle are why your audience follows you, not us. Use this guide for visual language, palette, type, and the two principles above — then sound like yourself. We'd rather you write something only you could write than file copy that reads like a press release.
Practical do / don't
Don't
"twin3 is going to flip every identity protocol — get in now before it's too late." Predictive, comparative, urgency-baited. Three principles broken at once.
Do
"twin3's proof-of-humanity layer just shipped on Coinbase's Agentic Marketplace. Agents pay $0.001 per check; the human keeps the receipt." Specific event, specific number, no instruction to act.
Don't
"Massive community, insane growth, biggest thing in Web3 right now." Superlatives the reader can't check.
Do
"141,872 verified humans on BNB Chain as of today. One SBT per person, non-transferable." Two numbers, one mechanism, all checkable.
Don't
"Buy the dip — twin3 is undervalued and the listing is rocket fuel." Financial advice + price prediction. Hard no.
Do
"Why this listing matters: it lets AI agents pay you, the human, for your verified attention. The economics flip from platform-extracts-from-user to user-monetises-presence." Explains a mechanism, no instruction about positioning.
Don't
"twin3 — the future of identity 🚀🔥💎" Vague + emoji ladder + future tense the brand doesn't own.
Do
"twin3 mints one SBT per verified human, bound to one wallet. That's the entire mechanism." Present tense, one sentence, complete.
Sentence shape — the cadence
Headlines run 3–9 words. Body sentences run 15–25 words. Short sentence, longer sentence, short sentence — that rhythm is the house style. Em-dashes are fine; ellipses are not (they read as hesitation, and we are not hesitant). One emoji per post if it earns its place; usually none.

Two visual layers

Storytelling and product are different jobs. Storytelling moves people; product helps them finish a task. Each has its own palette, its own surface, its own typographic logic — keep them apart and the system holds. Mix them and the brand starts shouting over itself.

Without a digital body,
you don't exist. ▸ Storytelling layer
Layer A · Storytelling
Forest + matrix-rain + warm crystals
Wide banners, video stills, hero illustrations, full-screen announcements. Mint and gold do the work. Headlines run in EB Garamond at display size; mono accents in mint with subtle glow.
▸ Your reward · season 01
Combined share · $213.78
$150.00 from your verified votes, plus $63.78 as a 10% bonus on the invitees you brought to the network.
Open dashboard
Layer B · Product
Cream + forest border + terracotta CTA
Dashboard cards, Lucy embeds, account settings, transactional notices. Inter for the interface, EB Garamond for body copy, mono for labels and data. Terracotta is reserved for the one action the card is asking for.
When the layers meet
When a piece bridges marketing and product — for example, a launch announcement that links to the dashboard — let storytelling carry the hero, then hand off cleanly. Put terracotta only on the call-to-action that ends the piece. Never mix mint and terracotta in the same typographic line; pick a side, finish the thought, then switch.

Imagery

Photography and illustration choices are where most "calm infrastructure" brands quietly capsize back into Web3 hype clichés. Hold the line here.

DO
  • Warm — cream, forest, amber tones dominate. Even cool subjects are colour-graded toward warmth.
  • Slightly grainy — a touch of film grain reads as honest. Pristine bokeh reads as stock.
  • Reportorial — a hand on a keyboard, a printed receipt, a crowd from the back. Things humans actually do.
  • Black-and-white is allowed — high contrast, editorial-magazine feel.
DON'T
  • Bluish-purple gradients — the lazy crypto default. Out.
  • Glossy 3D chrome — coin renders, metallic robots, neon grids. Out.
  • Cool-toned imagery — anything that leans cyan / cobalt / lavender breaks the warmth.
  • Stock that looks like stock — generic handshakes, hooded hackers, glowing globes.

When in doubt: would this image fit on the cover of a long-form magazine about infrastructure? If yes, use it. If it would only fit on a Web3 Twitter thumbnail, don't.

Twitter templates

Three canvases cover almost every twin3 social use: profile header, in-feed post image, and square (for cross-posting to platforms that crop to 1:1). Each has fixed copy slots and a consistent corner-of-the-frame for the mark — so a fast-scrolling viewer can identify a twin3 post in under one second without reading.

Profile header
1500 × 500 final · render at 2400 × 1000 · 3:1
Layer A · Storytelling
▸ Proof of humanity for the agent economy
twin3
One verified human · one Digital Twin SBT · BNB Chain

Copy slots

  • kicker · mono · mint · 1 line · the network's job-to-be-done
  • title · sans bold · gold · 1–2 words · usually just "twin3"
  • body · sans · cream-dim · the one-line mechanism

Anchors

  • Kicker: top-left at (4%, 8%)
  • Title: top-left at (4%, 30%) · max-width 60%
  • Body: bottom-left at (4%, 88%) · max-width 50%
  • Mark: bottom-right at (96%, 92%) · 48–72px

Background

  • Base: forest gradient #1a2e20 → #0f1810
  • Texture: alphanumeric matrix-rain at 13–18% opacity
  • Floating: 2–3 crystal/orb shapes, warm amber glow, vary depth
In-feed post image
1600 × 900 · 16:9
Layer A · Storytelling
▸ Announcement · 2026-05-11
Live on Coinbase Agentic Marketplace.
$0.001 per proof-of-humanity check · x402 · BNB Chain

Copy slots

  • kicker · mono · mint · category + ISO date (▸ ANNOUNCEMENT · YYYY-MM-DD)
  • title · sans bold 64–80pt · gold · 1–2 lines max
  • body · sans · cream-dim · 1 line, the proof

Anchors

  • Kicker: (4%, 6%)
  • Title: (4%, 18%) · max-width 70%
  • Body: (4%, 88%) · max-width 60%
  • Mark: (96%, 94%)

Variants by purpose

  • Announcement → kicker prefix ▸ ANNOUNCEMENT + ISO date
  • Feature explainer → kicker ▸ HOW IT WORKS + topic
  • Milestone → kicker ▸ MILESTONE + number
Square crosspost
1080 × 1080 · 1:1
Layer A · Storytelling
▸ Milestone · BNB Chain
141,872
verified humans.
One SBT each. Non-transferable.

Copy slots

  • kicker · mono · mint · category
  • title · sans bold · gold · headline number or 2-line claim
  • body · sans · cream-dim · the mechanism in 1 line

Anchors

  • Kicker: (6%, 6%)
  • Title: (6%, 16%) · max-width 80%
  • Body: (6%, 82%)
  • Mark: (94%, 94%)

Use case

  • Cross-platform: Instagram, Threads, Lens, Farcaster
  • Crops gracefully to 4:5 if the platform forces it
Universal rules across all three canvases
Mark always bottom-right (or top-right on profile header where bottom is cropped by avatar). Never centre the mark. Never replace it with a wordmark only. Kicker always starts with — the triangle is part of the system. Date format is always ISO (YYYY-MM-DD), never "May 11, 2026" or "11/5/26". Keep the title under 9 words; if you can't, the title isn't done yet.

Component library

A small set of repeating elements that recur across product surfaces. These are not exhaustive — they are the building blocks creators most often need to mock up screens, slides, or announcement carousels. Use them as-is.

Primary CTA
Terracotta. One per card, one per fold. The single thing the surface is asking for.
Secondary CTA
Forest outline. For supporting actions; never matches the visual weight of the primary.
Ghost / link
Mono, uppercase, trailing arrow. For tertiary navigation, footers, deeplinks.
Status pill
▸ Verified ▸ Pending review ▸ Action required
Mono uppercase inside a soft tint. Three semantic tones: success / warn / danger.
Kicker line
Season 01 · Week 14
Mono uppercase with leading triangle. Pairs with a serif headline below.
Data badge
141,872 humans $0.001 per check
Mono numeral + lowercase mono unit. Use for verified, sourceable facts only.

Motion & interaction

Motion should feel like paper, not jelly. Calm easings, short durations, no bounces or spring overshoot. The product is serious; the animation language has to match.

▸ Easing
cubic-bezier(0.22, 0.61, 0.36, 1)
A flat ease-out. Movements decelerate into rest, never overshoot or wobble.
▸ Duration · fast
180ms
Hover state changes, focus outlines, small property tweaks.
▸ Duration · base
220ms
Default for any transition that touches more than one property.
▸ Duration · slow
320ms
Entering / leaving surfaces — modals, drawers, page-level fades.
Interaction states

Hover

Product surfaces: terracotta darkens to #A84327 on Cream / lightens to #E58A66 on Forest. Other surfaces: paper colour shifts by 8% darker or lighter. Never opacity-only — opacity hover reads as broken state.

Press

Translate Y by 1px. No scale, no glow, no shadow shift. The element should feel like it's been physically pressed into the paper, not like it's about to launch.

Focus

2px terracotta outline at 4px offset on Cream; 2px mint outline at 4px offset on Forest. Always visible. Accessibility is not optional and outline suppression is the most common a11y regression — don't strip it.

Loading

Mono ellipsis or static skeleton bars in --bg-paper-sub. No spinners that rotate forever; no rainbow shimmers. If the wait is over 2 seconds, surface a number ("loading 142 of 4,802 records") instead of an indeterminate animation.

Reduced motion. Always honour @media (prefers-reduced-motion: reduce) — drop transitions to 0ms, swap any translation/transform for an instant state change. The design system's "no bounce" stance helps here: there's no playful motion to suppress, just timing to flatten.

Downloads

Everything on this page that you can take with you, in one place. The complete kit zip is the fastest way in if you're starting from a blank page; the individual files are here if you already have a working setup and just need one piece.

▸ Complete kit · ~150 KB

twin3-design-kit.zip

The whole starter pack — AI Skill (SKILL.md), design tokens (twin3-tokens.css), canonical logo SVG + 2048×2048 PNG, avatar variant, three Twitter canvas templates with the matrix-rain script, and a kit README walking you through where each piece goes. Unzip, point your AI at SKILL.md, start designing.

Download kit
Individual files
twin3-design.md AI Skill
All rules as a single markdown with Claude Skill frontmatter. Drop into Claude / ChatGPT / Gemini as custom instructions.
~9 KB · plain markdown
twin3-tokens.css CSS
All design tokens — both themes, both accent layers, type scale, radii, shadows, motion. Includes t3-* utility classes (buttons, pills, kickers, data badges).
~11 KB · drop in <head>
twin3-logo.svg Logo
Primary mark, transparent corners. Works on Cream or Forest backgrounds.
~1 KB · vector
twin3-logo.png Logo · 2048
Same primary mark as 2048×2048 high-res raster.
~94 KB · PNG, RGBA
twin3-logo-avatar.svg Avatar
Solid-fill variant with yin-yang inverted corners. For Twitter / Discord / Instagram profile pictures and any circle-crop placement.
~1 KB · vector
twin3-logo-avatar.png Avatar · 2048
Same avatar variant as 2048×2048 high-res raster.
~66 KB · PNG, RGB
twitter-header.html Template
Profile header canvas (1500×500, 3:1). Replace the kicker / title / body strings, screenshot at native size.
~1 KB · open in browser
twitter-in-feed.html Template
In-feed post canvas (1600×900, 16:9). Same anchors as the header template.
~1 KB · open in browser
twitter-square.html Template
Square cross-post canvas (1080×1080, 1:1). For Instagram, Threads, Lens, Farcaster.
~1 KB · open in browser
twitter.css Template
Shared backdrop, type, and anchor rules for the three Twitter canvases. Imports twin3-tokens.css.
~2 KB · CSS
matrix-rain.js Template
Procedurally paints the forest matrix-rain texture inside any .t3-tw__matrix container at the spec'd 80–100×50–70px grid.
~1 KB · vanilla JS