IndiaCoin
Design system v1
Built 11 Sep 2026 · ledger core live

The look every game site inherits.

Battle.in, sniper.in, catalog.in and the explorer all draw from this one file. Settle it here and nothing gets restyled twice.

One theme, on purpose. IndiaCoin is a dark product — there is no light palette to fall back to, so every surface and every colour is painted explicitly rather than inherited from whatever is behind the page.

01 — Identity

The iC mark

Lowercase i, uppercase C. The C is drawn as a struck coin edge, open on the right; the i leads, and its dot is the only cyan element in the whole mark — the same cyan that means chain everywhere else in the product. Two strokes and a dot, so it survives being 16 pixels wide.

mark · 104px
44px
app icon
32px · 16px favicon

At favicon size the stroke thickens and the dot grows — the same geometry, retuned, because a mark scaled linearly to 16px turns to mush.

02 — The signature element

The chain strip

Every transaction's hash covers the one before it. This is the component that shows it, and it appears on the explorer home and on every transaction page. It is the honest version of "feels like a blockchain" — a reader can take the preimage we publish and recompute the hash themselves.

#1
Genesis
0x8da872b42b4a…
#2,481
Reward
0x41c9e70b8fd3…
#2,482
Stake hold
0xb7702ae15c98…
#2,483 · head
Stake payout
0x2f5ad9c0e714…
03 — Colour

Blue is the brand. The rest is meaning.

Blue is never used to say "good" and green is never used to say "IndiaCoin". Keeping the accent and the semantics separate is what stops a screen full of numbers turning into a screen full of noise.

--ink
#05070D
Page ground. Near-black with a blue bias, not pure black.
--surface
#0C1018
Cards, feeds, tables — anything that is an object.
--surface-2
#141A26
Hover, table headers, chips sitting on a surface.
--blue
#3D7BFF
The accent. Primary actions, links, the logo.
--cyan
#35D4E8
Reserved for the chain: hashes, height, verification.
--mint
#3DDC97
Coins arriving. Rewards, payouts, bonuses.
--amber
#F5C451
Held in escrow. Money that exists but cannot be spent.
--red
#FF5E5E
Burned. Permanent and irreversible — used sparingly.
04 — Typography

Three faces, three jobs

Archivo expanded 112% · 600–800 headings, the wordmark, numbers that shout
1,000,000,000 iC
Public Sans 400–600 body, labels, buttons

Your wallet address is public. Anyone can look it up on the explorer and see every coin that has ever moved through it — that is what makes the ledger transparent. What is never shown is who the address belongs to.

IBM Plex Mono 400–600 · tabular every address, hash, amount and timestamp
iC-7f3a9b2c1e
0x8da872b42b4ae206a4beb401c3caf2b3
1,284.5000   10.0000   0.2500

Every figure uses font-variant-numeric: tabular-nums. In a ledger, digits that do not line up column to column read as sloppy long before anyone can say why.

05 — Showing money

Balances and supply

Four figures, four different meanings. Only the one the reader came for gets the accent treatment; the rest sit quiet so the hierarchy survives.

Circulating
48,210iC
Held by 1,284 wallets
Unissued
999,951,790iC
Still in the treasury
In open stakes
640iC
Across 32 live games
Burned
1,905iC
Destroyed, permanently
iC-7f3a9b2c1e iC-36f8eb44c7 Treasury Burn address

Every address carries a colour derived from the address itself, so a wallet you see often becomes recognisable before you have finished reading it. System wallets are named instead of hashed — nobody needs to memorise the treasury's address.

06 — The live feed

Every transaction type, at a glance

The badge carries the type, the colour carries the direction, and the amount is the only thing in the row set at full weight. On a phone the badge drops to its own line rather than squeezing the amount.

reward
Treasury → iC-7f3a9b2c1e · battle.in
+5.0000
12s ago
stake_hold
iC-36f8eb44c7 → Escrow · battle.in room 918
10.0000
1m ago
stake_payout
Escrow → iC-7f3a9b2c1e · battle.in room 918
+20.0000
1m ago
daily_bonus
Treasury → iC-a91e04b7dd · catalog.in
+10.0000
4m ago
transfer
iC-7f3a9b2c1e → iC-36f8eb44c7 · battle.in
3.0000
9m ago
burn
Escrow → Burn address · battle.in practice
−4.0000
14m ago
refund
Escrow → iC-a91e04b7dd · opponent disconnected
+7.0000
22m ago

Leaderboard

#WalletSiteEarned today
01iC-7f3a9b2c1ebattle.in485.0000
02iC-a91e04b7ddcatalog.in310.0000
03iC-36f8eb44c7battle.in295.0000
04iC-5c02de91afsniper.in120.0000
07 — Controls

Buttons say what happens

One primary per screen. .btn-danger is outlined rather than filled — a destructive action should be findable, not inviting.

08 — The unglamorous states

Empty and loading

Most people's first look at a wallet is an empty one. It should read as a starting point, not a failure.

No transactions yet
This wallet was created a moment ago. Play a round on Battle.in and the first reward will appear here within seconds.
Go to Battle.in
09 — House rules

Six things that keep it coherent

Do

Set every amount, address, hash and timestamp in IBM Plex Mono with tabular figures. No exceptions — a balance in the body face immediately looks wrong next to one that isn't.

Do

Reserve cyan for the chain. Height, hashes, the verification tick. When cyan appears, it means "this is provable".

Do

Show four decimal places on any exact figure, and trim them on display figures. 1 iC is 10,000 units internally; the UI should never imply more precision than a number actually has.

Don't

Use blue for success or green for branding. The accent and the semantics do separate jobs, and mixing them makes a dense screen unreadable.

Don't

Put everything in a card. Border, fill and shadow each say "separate object". Rows in a feed share one surface; a stat tile earns its own.

Don't

Say "blockchain" in the interface. Say height, hash, transaction, wallet. The product is more convincing when it uses the vocabulary rather than the label.


Ships as public/assets/ic.css — one file, no build step, linked by every page on indiacoin.com and copied to each game site for its balance badge.