The consolidated visual language for Round 3 of the member-portal redesign. Covers color tokens, typography, planetary color system, auspiciousness scale, navigation icons, and component patterns.
CSS custom properties on :root. All portal UI references these tokens — never raw hex values — so themes and modes can be updated in one place.
Three typeface roles. Montserrat Alternates for all headings and small-caps labels. Open Sans for body prose. Physis exclusively for astrological glyphs — never used for Latin text.
Physis glyphs must always carry font-variant-emoji: text to prevent OS emoji override. Always set alongside a serif fallback: font-family: 'Physis', 'Segoe UI Symbol', serif. Never render Physis below 9px — switch to Unicode text labels instead.
Each of the seven traditional planets has a canonical hex color, a glyph character, and a background opacity range for UI surfaces. The glyph color is always the full hex — only the fill/background uses opacity.
| Glyph | Planet | Hex | Glyph color | UI bg opacity | Sample |
|---|---|---|---|---|---|
| ☽ | Moon | #b0bede | #5a6882 | 0.40 · 0.22 · 0.08 | ☽ Moon |
| ☿ | Mercury | #d4782a | #d4782a | 0.38 · 0.20 · 0.07 | ☿ Merc |
| ♀ | Venus | #45aa82 | #45aa82 | 0.35 · 0.18 · 0.06 | ♀ Venus |
| ☉ | Sun | #f2dc78 | #b8820a | 0.30 · 0.16 · 0.06 | ☉ Sun |
| ♂ | Mars | #a84848 | #a84848 | 0.45 · 0.24 · 0.09 | ♂ Mars |
| ♃ | Jupiter | #8878cc | #8878cc | 0.35 · 0.18 · 0.06 | ♃ Jup |
| ♄ | Saturn | #6e6e88 | #6e6e88 | 0.45 · 0.24 · 0.09 | ♄ Saturn |
Glyphs always use the full glyph color (column 4) at opacity 1.0 — never at reduced opacity.
Sun exception: #f2dc78 is the UI/background color; #b8820a is the glyph and text color — this is intentional because the background yellow is too light for text.
Never mix two planet tints on the same surface — if a range spans two planetary periods, use a neutral (#f6f9fc) for the overlap zone.
All calendar cells, day list entries, and chart nodes carry an auspiciousness rating 1–5. Colors were chosen for accessibility on --paper (#f6f9fc) and --white (#ffffff) backgrounds. The teal/green range (4–5) and magenta/deep-magenta range (1–2) are intentionally distinct from all planet colors to avoid collision.
All five text colors achieve minimum 3:1 contrast on --paper and 4.5:1 on --white. Level 3 (--icon #8a98ad) is the only near-miss — at 3.08:1 on white it is decorative/non-informational use only. Never render level 3 as the sole means of conveying state information.
Six icons — one per portal section. Each is a 24×24 SVG drawn on a 24×24 viewBox. Two states: default (--icon #8a98ad) and active (--blue #3f6d96). Used in both the desktop left-rail and the mobile bottom tab bar.
Key layout components that recur throughout the Portal. These are design patterns, not production code — implement to spec but adapt as engineering requires.
Each calendar day carries a single evocative word derived deterministically from its date. These are not horoscopes — they are mood anchors, seeds for reflection.