Identity & design system·/brand

Seedvest brand book

Plant today. Grow for life. A fictional concept: every name, number and registration here is made up.

Colour

Every token in theme.ts with its light and dark value. Gain and loss are never shown by colour alone: always ▲/▼ or +/−.

TokenLightDarkRole
primary#0F3D2E#5BE584Primary brand (Forest); headers, primary buttons. Dark: Sprout, buttons invert
onPrimary#F5F1E8#0B1612Text and icons on primary
surface#F5F1E8#0B1612App and site background (Paper). Dark: Night Forest
onSurface#10201A#E9E4D8Primary text (ink)
accent#5BE584#5BE584Sprout; leaves, highlights, gain fills on dark. Never text on light
success#16733F#5BE584Success states and positive text
warning#F4C152#F4C152Warnings (Sun)
danger#B8322A#FF7A6BErrors and destructive text
muted#5E6B63#93A39ASecondary text
card#FFFDF8#13221CRaised surfaces on Paper
raised#FFFFFF#1C2E26Sheets and popovers
sunken#EDE7DA#0F1C17Inputs and segmented-control tracks
line#D9D2C3#2A3D34Dividers and borders (decorative, 1.33:1 on Paper)
moss#2F6B4F#3F8A66Secondary brand; pressed states, foliage shade
coral#FF6B5B#FF7A6BLoss Coral; loss fills and small chart marks, with a number beside it
gainText#16733F#5BE584Positive numbers
lossText#B8322A#FF7A6BNegative numbers
chartUp#1F8F50#5BE584Up candles and area lines
chartDown#E5533F#FF7A6BDown candles
sun#F4C152#F4C152Watering day, SIP badges, the sun in the garden
soil#6B5A45#8A7560Garden soil, trunk outlines, Rootnote accents
sky#CFE8E1#16302AGarden daytime sky
skyDusk#F6D7B8#2B2A3AGarden dusk sky
leafDry#B7A36B#9C8C5CDry-leaf tint for thirsty plants

Contrast (WCAG 2.1, computed)

PairSampleRatioVerdictNote
ink on paperAa 1,23414.98:1✓ AAA
forest on paperAa 1,23410.79:1✓ AAA
muted on paperAa 1,2344.96:1✓ AA
muted on cardAa 1,2345.50:1✓ AA
gainText on paperAa 1,2345.24:1✓ AA
lossText on paperAa 1,2345.28:1✓ AA
sprout on paperAa 1,2341.43:1✗ decorative onlyDecorative only, never text
coral on paperAa 1,2342.48:1✗ decorative onlyFills only, with a lossText number beside it
chartUp on paperAa 1,2343.65:1✓ Graphic ≥3:1
chartDown on paperAa 1,2343.30:1✓ Graphic ≥3:1
sprout on forestAa 1,2347.52:1✓ AAAPrimary accent pairing
forest on sproutAa 1,2347.52:1✓ AAAButton text
forest on sunAa 1,2347.29:1✓ AAA
coral on forestAa 1,2344.35:1✓ AA largeLarge text only; use #FF8577 for small text
coral-light #FF8577 on forestAa 1,2345.14:1✓ AA
dark: ink on nightAa 1,23414.55:1✓ AAA
dark: muted on cardAa 1,2346.24:1✓ AA
dark: sprout on cardAa 1,23410.20:1✓ AAA
dark: loss on cardAa 1,2346.48:1✓ AA

Type scale

Instrument Serif for display and any number ≥ 26 px; Inter with tabular figures below that; JetBrains Mono for order IDs and shortcuts; Noto Sans Devanagari in Hindi. Mobile size/line-height, website in brackets.

  • display-xl
    56/60 [96/100]
    Website hero, SIP projection number
    ₹1,16,170
  • display-l
    44/48 [72/76]
    Portfolio value on Home
    ₹70,214
  • display-m
    34/40 [56/60]
    Stock price, screen titles
    ₹412.60
  • display-s
    26/32 [40/46]
    Section headings, celebration card
    Your garden is waiting.
  • title
    18/24 [22/28]
    Card and sheet titles
    Kestrel Flexi Cap Fund
  • body-l
    16/24 [18/28]
    Body
    NAV is the price of one unit of a fund.
  • body
    14/20 [16/24]
    Default UI text
    Units arrive by tomorrow.
  • label
    13/16
    Buttons, tabs, chips (sentence case)
    Plant a seed
  • caption
    12/16
    Meta, timestamps, disclaimers
    Assumed, not promised
  • micro
    11/14
    Canopy table headers, uppercase +4%
    Order book
  • num-table
    13/18
    Canopy tables, watchlists
    1,240.50 412.60 96.95

The ₹ glyph in Instrument Serif is set at 80% size, baseline-aligned. Buttons use sentence case, never ALL CAPS.

JetBrains Mono · B buy · S sell · Ctrl+Enter place · Esc close

Icons

Custom brand icons on the lucide 24 px grid: 1.75 stroke, round caps and joins, currentColor. Garden, Seed and Rootnote have filled variants for active tab states.

  • Seed
    162432filled
  • Sprout
    162432
  • WateringCan
    162432
  • Garden
    162432filled
  • Rootnote
    162432filled
  • Canopy
    162432
  • Breather
    162432
  • SunCloud
    162432
  • ValidBadge
    162432

Voice

Patient, trustworthy, optimistic, plain-spoken: a kind older cousin who happens to be a chartered accountant.

1. Plain words first, jargon second (and explained)

✓ DoNAV is the price of one unit of a fund. Today it's ₹84.22.

✗ Don’tCurrent NAV ₹84.2170 (T-1), XIRR 14.2% annualised.

Rule: A jargon term may appear only if a one-line explanation or a Rootnote chip sits next to it.

2. Calm, never alarming

✓ DoMarkets are down 1.8% today. Your seeds keep growing on their own schedule.

✗ Don’t🔴 Market CRASH! Your portfolio lost ₹2,340!

Rule: No exclamation marks on losses, no red backgrounds for whole screens. Loss Coral is only for numbers and small chart marks.

3. Honest about risk, without scaring

✓ DoEquity funds can go down in the short term. Over 5+ years they've historically done better than FDs, but that's not a promise.

✗ Don’tSafe, guaranteed returns of 12%!

Rule: Never “guaranteed”, “safe”, “sure-shot”, “double your money” or “risk-free” (except literally in “risk-free rate” in glossary text).

4. Warm and specific, never cute about money

✓ DoYour first seed is planted. ₹500 in Kestrel Flexi Cap Fund, units arrive by tomorrow.

✗ Don’tYay!!! You're a millionaire in the making 🚀🚀

Rule: At most one emoji per message, only 🌱 🌿 🌳 ☀️ 🌧️. Never 🚀 💰 🤑 📈.

Copy bank

All 49 microcopy strings from 03 §5, keyed for the i18n dictionaries. Search by text, key, number or section.

49 of 49
  1. #1Onboarding

    Every SIP is a seed. / Plant ₹100 a month. Watch it grow into something real.

    onboarding.welcome1.title · onboarding.welcome1.body
  2. #2Onboarding

    See your money grow. / Your portfolio becomes a garden. Big plants, small plants, all yours.

    onboarding.welcome2.title · onboarding.welcome2.body
  3. #3Onboarding

    Calm by design. / No tips. No F&O. Just steady investing, explained simply.

    onboarding.welcome3.title · onboarding.welcome3.body
  4. #4Onboarding

    Start with ₹100

    onboarding.cta.start
  5. #5Onboarding

    What's your mobile number? / We'll send a 6-digit OTP. We'll never ask for it on a call.

    onboarding.phone.title · onboarding.phone.helper
  6. #6Onboarding

    Let's grow your first leaf / 6 quick steps · about 8 minutes · keep your PAN handy

    kyc.hub.title · kyc.hub.sub
  7. #7Onboarding

    PAN verified. Hello, {name} 👋

    kyc.pan.success
  8. #8Onboarding

    Quick selfie. Blink twice when the circle turns green.

    kyc.selfie.prompt
  9. #9Onboarding

    We sent ₹1 to your account to check it's yours. It's yours to keep.

    kyc.bank.penny
  10. #10Onboarding

    Who should get your investments if something happens to you? / Skip for now (opt out)

    kyc.nominee.title · kyc.nominee.skip
  11. #11Onboarding

    All set. We're checking your documents. / Usually takes under 10 minutes. We'll notify you.

    kyc.submitted.title · kyc.submitted.sub
  12. #12Onboarding

    Your Seedvest account is ready 🌱 Plant your first seed today.

    push.accountLive
  13. #13Home and Garden

    Your garden is waiting. / Plant your first seed with as little as ₹100. / Plant a seed

    home.garden.empty.title · home.garden.empty.body · home.garden.empty.cta
  14. #14Home and Garden

    Today's change hidden · Tap to see

    home.calm.chip
  15. #15Home and Garden

    Sunny in the markets today. Your garden's doing well.

    home.garden.caption.up
  16. #16Home and Garden

    Cloudy today. Short dips are normal; your seeds keep growing on schedule.

    home.garden.caption.down
  17. #17Home and Garden

    {name} is {pct}% below what you paid. Plants have dry spells too.

    home.plant.thirsty
  18. #18Home and Garden

    Amounts hidden. Tap the eye to show.

    home.privacy.on
  19. #19Explore, stock and fund

    Search funds, stocks or 'tax saver'

    explore.search.placeholder
  20. #20Explore, stock and fund

    Nothing called '{query}' in our garden yet. / Try a company name or a fund type, like 'index'.

    explore.search.empty.title · explore.search.empty.body
  21. #21Explore, stock and fund

    Very High risk: the value can swing a lot in the short term. Best for 5+ years.

    fund.risk.veryHigh
  22. #22Explore, stock and fund

    Direct plan: no commission to anyone, so more of your money stays invested.

    fund.direct.tooltip
  23. #23Explore, stock and fund

    Swipe to buy

    order.cta.buy
  24. #24Explore, stock and fund

    Swipe to sell

    order.cta.sell
  25. #25Explore, stock and fund

    Order placed. Buying {qty} shares of {name} at market price.

    order.placed
  26. #26Explore, stock and fund

    Done. {qty} shares of {name} bought at {price}.

    order.filled
  27. #27Explore, stock and fund

    Market's closed. Your order will go in when it opens at {time}.

    order.marketClosed
  28. #28Explore, stock and fund

    You need {amount} more to place this order. / Add money

    order.insufficient.title · order.insufficient.cta
  29. #29Explore, stock and fund

    That price is outside today's allowed range for {name} ({low} – {high}).

    order.priceBand
  30. #30Seeds (SIP)

    How much can you plant each month?

    sip.planner.title
  31. #31Seeds (SIP)

    Could grow to {amount} / if returns average {rate}% a year · assumed, not promised

    sip.projection.label · sip.projection.sub
  32. #32Seeds (SIP)

    Watering day tomorrow 🌧️ {amount} goes into your {goal} seed.

    sip.push.dayBefore
  33. #33Seeds (SIP)

    Watered. {amount} added to {fund}. Your {goal} is {pct}% of the way there.

    sip.push.success
  34. #34Seeds (SIP)

    Couldn't water your seed. Your bank declined {amount}. We'll try again tomorrow at {time}.

    sip.mandate.failed
  35. #35Seeds (SIP)

    Pause for 1, 2 or 3 months. Your plant stays; it just won't grow as fast.

    sip.pause.confirm
  36. #36Seeds (SIP)

    Your first seed is planted 🌱 / {name} · {date} · {fund} · {amount} a month

    sip.first.title · sip.first.sub
  37. #37Seeds (SIP)

    One year of watering. 12 of 12 months, steady. 🌳

    sip.anniversary
  38. #38Breather and calm

    Take a breath. / The {index} is down {pct}% today. Selling in a hurry often locks in a loss. Still want to sell? / Keep my shares / Continue to sell

    breather.title · breather.body · breather.keep · breather.continue
  39. #39Breather and calm

    Show long-term growth first. Today's ups and downs stay one tap away.

    settings.calm.desc
  40. #40Errors, empty states, system

    We lost the connection. Your money is safe; we'll retry in a moment. / Try again

    error.network.body · error.network.cta
  41. #41Errors, empty states, system

    Something went wrong on our side. Nothing was charged.

    error.generic
  42. #42Errors, empty states, system

    No orders yet. When you buy or sell, it'll show up here.

    orders.empty
  43. #43Errors, empty states, system

    Keep an eye on things. Tap ☆ on any stock or fund to add it here.

    watchlist.empty
  44. #44Errors, empty states, system

    All quiet. We'll only ping you when it matters.

    notifications.empty
  45. #45Errors, empty states, system

    For your safety, we locked Seedvest. Enter your 4-digit PIN.

    session.timeout
  46. #46Errors, empty states, system

    Seedvest will never ask for your OTP, PIN or to pay a personal UPI ID. Our payment IDs always end in @valid.

    help.fraud
  47. #47Canopy (desktop)

    B buy · S sell · Ctrl+Enter place · Esc close

    canopy.orderHint
  48. #48Canopy (desktop)

    Type a stock, a command, or ? for shortcuts

    canopy.palette.placeholder
  49. #49Canopy (desktop)

    Rejected: quantity exceeds available holdings (you hold {held}).

    canopy.order.rejected

Motion

Growth is slow; feedback is fast. Nothing flashes. Organic, not bouncy. Up is growth. With reduced motion, growth becomes a 200 ms crossfade and number morphs are instant.

ease-grow
cubic-bezier(0.22, 1, 0.36, 1)
Plant growth, tree growth, sheet entrances
ease-settle
cubic-bezier(0.33, 0, 0.2, 1)
Number morphs, list reorders
ease-exit
cubic-bezier(0.4, 0, 1, 1)
Dismissals

Durations and springs

  • dur-fast 120 ms
    Press states, chips
  • dur-base 240 ms
    Sheets, tabs, toasts
  • dur-slow 600 ms
    Garden updates, chart range changes
  • dur-grow 1,200 ms
    First sprout, projection tree re-grow
  • spring-soft stiffness 170 · damping 26 · mass 1
    Sheets, plant height changes
  • spring-leaf stiffness 120 · damping 14
    Leaf unfurl (leaves only)

Sprout Pop

Soil rises (150 ms), the seed wiggles and cracks (450, 750 ms), the stem and two leaves grow on spring-leaf (900, 1,300 ms), a ring pulses (1,500 ms), then the certificate slides up (1,900 ms). No confetti.

Plant species

Nine species rendered through plantSpec(). Drag the sliders: plants droop (a shape change) and dry (a colour change) when a holding is down, so loss is never colour alone. Every plant is always leafy and coloured: the thirstiest one is tan, never grey or dead.

  • Oak
    Large-cap, flexi and index equity funds
    h 126 · leaves 19 · droop 0.0°
  • Pine
    Mid and small cap
    h 126 · leaves 19 · droop 0.0°
  • Cypress
    ELSS (lock-in)
    h 126 · leaves 19 · droop 0.0°
  • Hedge
    Debt and liquid
    h 126 · leaves 19 · droop 0.0°
  • Sunflower
    Gold
    h 126 · leaves 19 · droop 0.0°
  • Bamboo
    Hybrid and multi-asset
    h 126 · leaves 19 · droop 0.0°
  • Palm
    International
    h 126 · leaves 19 · droop 0.0°
  • Tulip
    Individual stocks (hue from sector)
    h 126 · leaves 19 · droop 0.0°
  • Clover
    ETFs
    h 126 · leaves 19 · droop 0.0°

Row icons and stress cases

Each species at 16, 24 and 32 px (the holdings-row icon), then healthy against the worst case the mapping allows: height 40 and 220, fully dry and drooping 18°.

Species16 · 24 · 32 pxHealthyThirsty, h 40Thirsty, h 220
Oak
Pine
Cypress
Hedge
Sunflower
Bamboo
Palm
Tulip
Clover

Mockups

Physical and social mockups from 07 §8. Slots read from media.ts and show a labelled placeholder until the P5 asset lands.

  • mock-seedbox
    PSD + AI scene · 1600×1067 · pending P5
  • seedbox-dieline
    Illustrator · 1600×1200 · pending P5
  • mock-seedcard
    AI prompt 4 (03 §11) · 1600×1067 · pending P5
  • mock-apparel
    PSD · 1600×1067 · pending P5
  • mock-volunteer
    AI + composite · 1600×1067 · pending P5
  • mock-pot
    AI + composite · 1600×1067 · pending P5
  • mock-hq
    AI + composite · 1600×1067 · pending P5
  • mock-booth
    PSD booth mockup · 1600×1067 · pending P5
  • mock-van
    PSD + AI · 1600×1067 · pending P5
  • mock-tote
    PSD · 1600×1067 · pending P5
  • mock-diary
    PSD · 1600×1067 · pending P5
  • mock-ooh-shelter
    PSD + AI backdrop · 1600×1067 · pending P5
  • mock-ooh-station
    PSD + AI backdrop · 1600×1067 · pending P5
  • mock-ooh-highway
    PSD + AI backdrop · 1600×1067 · pending P5
  • social-1
    Figma → export · 1080×1080 · pending P5
  • story-1
    Figma → export · 1080×1920 · pending P5