SkyGens Modern — Design System
Visual identity for every player-facing text in the plugin (chat messages, GUI titles, item names, lores).
All strings live in src/main/resources/locale/en.yml and use MiniMessage formatting.
Core principles
- One system everywhere — every module uses the same line formats; only the accent colors change.
- RGB first — hex colors and gradients, no flat legacy colors on values (structural grays excepted).
- Icons carry the color, labels stay gray — a stat line is identified by its tinted icon, not by coloring the whole line.
- Bold is reserved for item names, section headers and button titles. Never on body text.
- Locale keys are contracts — they are hardcoded in Java (
localeService.getNIComponent(...)). Never rename a key without updating the Java side. Placeholders{0},{1}… are positional; avoid apostrophes in parameterized strings.
Palette
Module accents (chat prefixes, section headers)
| Module | Gradient |
|---|---|
| GENS (generators, levels) | #75fc03 → #cafc8e |
| BANK (money) | #0aa42b → #87fc57 |
| TOKENS | #f6971b → #ffde64 |
| TOOL (omnitool) | #4fd9ff → #bcf0ff |
| BAZAAR / EVENT / PRESTIGE | #ffb700 → #ffd261 |
| BOOSTER | #5500ff → #9d6cff |
| ISLAND | #85FFBD → #c8ffe0 |
| COLLECTION | #85FFBD → #FFFB7D |
| ADMIN | #d20000 → #fc1743 |
| LOOT / combat (arena, dungeon, bestiary) | #fc1743 → #ff7a93 |
Value colors
| Value type | Format |
|---|---|
| Money | <#0aa42b>$<#87fc57>{amount} — always this exact pair |
| Tokens | <#ffde64>{n} <#f6971b>Tokens |
| Exp | <#85FFBD>{n} <#FFFB7D>XP |
| Damage | <#ee3e3e> (dark pair #ac3131) |
| Generic bonus % | <#cafc8e>+{n}% |
| Tier / gold-ish values | <#ffd261> |
| Neutral numbers / names | <white> |
| Errors | <#ff5a5a> |
| Structure (labels, separators, hints) | <gray> / <dark_gray> |
Brand
Gens-branded items (armor, omnitool, backpacks): <b><gradient:#d20000:#fc1743>Name</gradient>.
Line formats
Chat message
<b><gradient:MODULE>NAME</gradient></b> <dark_gray>» <gray>Body with <colored>values<gray>.
- Success/info body:
<gray>with colored values. - Error body:
<#ff5a5a>with colored values, ends with!.
Example:
<b><gradient:#75fc03:#cafc8e>GENS</gradient></b> <dark_gray>» <gray>Generator upgraded to <#ffd261>Tier V<gray>.
Lore stat line
<#ICON_HEX>✦ <gray>Label <dark_gray>» <VALUE>
✦is tinted with the color of the value type (money line = green ✦, tokens = yellow ✦…). Neutral stats use the module accent.- Special icons:
❤health (#ff5a5a),⚡interval/speed (#4fd9ff). - Ranges:
<white>{0}<dark_gray>/<white>{1}.
Action line (always last lore lines)
<#ffd261>▸ Left-Click <gray>to upgrade
<#ffd261>▸ Right-Click <gray>to collect
- Destructive action:
<#ff5a5a>▸ Right-Click <gray>to cancel. - Single-button items just use
▸ Click.
States
<#87fc57>✔ Currently selected <#87fc57>✔ Unlocked <gray>Status <dark_gray>» <#87fc57>✔ Enabled
<#ff5a5a>✖ Locked <gray>Status <dark_gray>» <#ff5a5a>✖ Disabled
Locked requirements: <gray>Reach <#ff5a5a>level {n} <gray>to unlock it.
Section headers (in lores)
<b><gradient:MODULE>Information</gradient>
<b><gradient:MODULE>Bonuses</gradient>
Stat lines under a header are indented with one leading space.
GUI titles
<dark_gray>Module » Sub
Examples: Bazaar » Orders, Omnitool » Select Type, Generator Shop ({page}). No underline, no bold.
Buttons (GUI item titles)
<b><#hex>Title — single hex, bold. Green #87fc57 = positive (buy, confirm, condense), gold #ffd261 = sell/neutral, red #ff5a5a = invalid/error states, #4fd9ff = info/toggles.
Loot rarities
<b><#bdbdbd>COMMON <b><#87fc57>UNCOMMON <b><#4fd9ff>RARE <b><#c77dff>EPIC <b><gradient:#ffb700:#ffd261>LEGENDARY</gradient>
Enchant names
Theme gradient, no "Enchant" suffix. Examples: Token Fortune #ffb700→#ffd261, Fortune #75fc03→#cafc8e, Exp Finder #85FFBD→#FFFB7D, Pyro Bloom #ff7a00→#ffb26b, dupes #f72585→#ff8fab, condensed #c77dff→#e0aaff, Momentum #9d6cff→#c9b3ff.
Full item example
<b><gradient:#87fc57:#0aa42b>Wheat Generator</gradient></b>
<dark_gray>Generator Tier 4
<#ffd261>✦ <gray>Tier <dark_gray>» <#ffd261>IV
<#75fc03>✦ <gray>Production <dark_gray>» <#cafc8e>12<gray>/min
<#75fc03>✦ <gray>Stock <dark_gray>» <white>142<dark_gray>/<white>500
<#87fc57>✦ <gray>Drop price <dark_gray>» <#0aa42b>$<#87fc57>1,250
<#ffd261>▸ Left-Click <gray>to upgrade
<#ffd261>▸ Right-Click <gray>to collect
Do / Don't
- ✅ New message? Copy an existing line of the same kind and swap label/value/accent.
- ✅ Keep
''-free strings:You do not haveinstead ofYou don't have. - ❌ No legacy
§codes, no<yellow>/<green>on values (use the hex palette). - ❌ No small-caps unicode, no
CLICK HEREblocks, no bold body text. - ❌ Never change placeholder indices or counts in an existing key.