00%
images loaded

Lumen

Personal Finance · Web App

01. Project Overview

Project

Lumen — Money, Illuminated

Timeline

Jan 2026 – Apr 2026

Role

Product Designer · Solo build
(UX/UI, Brand, Front-end collaboration with AI)

Platform

Desktop Web App · Dark-first
Vanilla JS · localStorage

Goal

Design a calm, desktop-first money dashboard that holds any number of currencies and splits stocks, savings, debt, and subscriptions into dedicated pages — each with the depth those categories deserve. Update once in context, and the dashboard shows everything at a glance. Visual language should feel like a quiet observatory: dim, precise, a single warm glow per surface.

What Lumen Does
  • Unifies accounts across any number of currencies in one overview — bank balances, trend chart, category breakdown.
  • Gives stocks, savings, debt, and subscriptions their own pages — each managed in its own context, with the depth those categories need.
  • Syncs every change back to the dashboard — update once in context, see the full picture everywhere else.
  • Links transactions to goals — editing a saving or debt transaction instantly updates the matching goal, and vice versa.
  • Ships with AI-generated insights at the top: budget status, spending trend, income comparison.
  • Onboards in four steps, then gets out of the way — every setting stays editable, so users can skip the flow or adjust anything later.
Dark Mode Glassmorphism Multi-Currency Outfit · DM Mono 2026
Why I built it

02. Problem Definition

Existing budgeting tools either assume one currency, or drop you into a spreadsheet the moment you want to track a goal. None felt calm enough to open daily.

currency_exchange
Currencies scattered across apps

Each currency lived in a different app — euro in one, won in another, dollar somewhere else. No reconciled view of "what I actually have."

insights
Goals disconnected from reality

Editing a transaction never reflected in the goal it belonged to — leaving savings totals stale.

layers
Visual noise, not clarity

Bright charts, coloured category tags, ads, banking CTAs. Opening the app felt like work.

hub
Fragmented tracking

Subscriptions in Notion, investments in broker app, budget in Google Sheets. Nothing spoke to each other.

Listening before designing

03. Research & Insights

I started by mapping my own month — every transaction, every currency transfer, every time I opened a budgeting app and closed it again without doing anything. A handful of friends living across currencies described the same friction.

Key Insights
  • The expensive transactions are the quiet ones. Most overspend came from subscriptions and forgotten recurring charges — not big purchases.
  • Goals need to feel alive. Once a savings goal sits still for two weeks, users stop believing it.
  • Currency context matters more than conversion. Seeing each currency in its native form — €, ₩, $, £ — side-by-side beats a blended "total in one currency."
  • Dedicated spaces beat universal fields. Stocks, savings, debt, and subscriptions each need their own page — data enters in context, then surfaces on the single dashboard.
  • The best financial UI is boring on purpose. Dim surfaces, one warm accent, monospaced numbers, no celebrations.

→ These insights became the four design principles: unify, link, quiet, one place.

How it's built

04. Design System & Components

Instead of wireframing, I went straight into a tight design system — tokens, typography, components. Every card, pill, and button in Lumen traces back to these.

HALO is the brand symbol: a planet ring with a single satellite — a calm object catching light. Familjen Grotesk carries the wordmark, Outfit drives UI, and DM Mono holds every number.

HALO Color · Typography Components Icons · Spacing
Open fullscreen open_in_new
Jenice Ma · Design System · v2.0
LUMEN
MONEY, ILLUMINATED
Style Guide · v2.0
LUMEN is a personal finance platform supporting multi-currency management across income, expenses, savings, investments, debt, and subscriptions — all within a single interface. Designed to bring clarity to complex financial data, this document defines the complete visual language of LUMEN.
Familjen Grotesk · Outfit · DM Mono 3-Mode · Dark / Light / Mono Material Icons Round v2.0 · April 2026
00
00 Brand Identity — LUMEN
LUMEN
MONEY, ILLUMINATED

Latin lumen — the unit of luminous flux. The mark is built as a HALO, visualizing the moment when clarity emerges from the noise of financial data. Royal purple signifies trust and value; the inner satellite is the light of a single transaction.

Logo System — 3 Variants × 3 Modes
 
01 · Dark
02 · Light
03 · Mono
Lockup
A-01
LUMEN
MONEY, ILLUMINATED
A-02
LUMEN
MONEY, ILLUMINATED
A-03
LUMEN
MONEY, ILLUMINATED
Symbol
B-01
B-02
B-03
Favicon
C-01
C-02
C-03
VariantRecommended UseMinimum SizeCharacteristics
LOCKUPHeaders · Login screens · MarketingSymbol 48px+Full brand expression, wordmark + symbol paired
SYMBOLSidebars · Profiles · Loading indicators24px+Full HALO detail, gradients preserved
FAVICONBrowser tabs · App icons · Notifications16 / 24 / 32 / 64 pxGradients stripped, solid lines only
Favicon · Scale Test
Dark
64
32
24
16
Light
64
32
24
16
Mono
64
32
24
16
Wordmark · Familjen Grotesk
LUMEN
MONEY, ILLUMINATED
Uppercase · A–Z
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Lowercase · a–z
abcdefghijklmnopqrstuvwxyz
Numerals + Punctuation
0 1 2 3 4 5 6 7 8 9    . , : ; ! ? — ( )
Weight Scale · 400 → 700
400 LUMEN Regular · brand standard
500 LUMEN Medium · avoid (too heavy)
600 LUMEN SemiBold · never use
700 LUMEN Bold · never use
ContextFontWeightSizeLetter-spacing
LUMEN · HeroFamiljen Grotesk40052–64px3–5px
LUMEN · LockupFamiljen Grotesk40020–26px2–3px
LUMEN · SmallFamiljen Grotesk40011–14px1–2px
Tagline (Primary)Familjen Grotesk4005–8pxauto (JS)
3-Mode Brand Palette
01 · Dark#0C0818
Peak CoreSymbol center · 1.8px ring
#FFFFFF
Ring Outer6.5px · 70%
#C8B0F0
Brand PurpleAccent · Labels
#9075E4
WordmarkLUMEN primary
#E8E4F8
02 · Light#F7F4FC
Peak CoreDeep purple · 1.8px ring
#523580
Ring Outer6.5px · R23 soft
#8870B2
Ring Mid3.5px · Labels
#654588
Halo SoftAtmospheric bloom
#AE95D5
03 · Mono#080B14
Peak CoreSymbol center · 1.8px ring
#FFFFFF
Ring Outer6.5px · 65%
#C0CCE0
Silver AccentBrand accent · Labels
#8898B8
WordmarkLUMEN primary
#EAEFF8
Usage Rules · Do / Don't
DO
  • Choose the mode that matches the background (dark bg → Dark, light bg → Light)
  • Maintain 1 : 1 symbol-to-wordmark ratio when using Lockup
  • Keep minimum clear space — equal to the satellite radius (x)
  • Use Familjen Grotesk weight 400 with letter-spacing 1–5px
  • Switch to favicon variant (solid lines) at or below 32px
DON'T
  • Placing the Dark logo directly on light backgrounds (white peak disappears)
  • Modifying gradient stop colors or opacity values
  • Using the wordmark alone — always pair with symbol, or use symbol alone
  • Rotating, flipping, or distorting the HALO symbol
  • Keeping full gradient treatment at 16px (causes blurring)
01
01 Color System
Semantic Colors
Primary
#7c6af7
--p / --p2
Income · CTA
Expense
#f06292
--pk
Expense
Saved
#26c6b0
--tl
Savings
Net
#f5a623
--am
Net · KRW
Info
#5b9cf6
--bl
EUR · Links
Danger
#ef5350
--rd
Delete
Background Layers
Base
--bg · #07090f
Sidebar
--bg1 · #0c0f1a
Modal
--bg2 · #111520
Elevated
--bg3 · #171c2c
High
--bg4 · #1e2436
Text Colors
Primary
--t · #dde4f5
Secondary
--t2 · #8492b4
Muted
--t3 · #3a4666
02
02 Typography
Font
Sample
Weights
Role
Familjen Grotesk
Google Fonts
LUMEN
400
500–700
Brand · Wordmark · Tagline
LUMEN logotype + MONEY, ILLUMINATED only
Outfit
Google Fonts
Aa Bb Cc 0123
300–800
UI · Body · All Interface Text
Page titles, labels, cards, buttons, nav
DM Mono
Google Fonts
€1,800.00
400
500 + Italic
Numbers · Amounts · Meta
Amounts, CSS vars, dates, codes
Display Value
Outfit 800 · 24px
ls: −1px · Stat cards
€2,450.00
Page Title
Outfit 700 · 15px
ls: −0.3px · Topbar
Overview
Card Title
Outfit 600 · 13px
Transaction rows
Salary — mediagency GmbH
Label / Badge
Outfit 700 · 9px
ls: 1.2px · UPPERCASE
Total Income
Mono Amount
DM Mono 500 · 13px
ls: −0.3px · Values
+€1,800.00
Mono Meta
DM Mono 400 · 9–10px
Dates · Vars · Codes
--p2 / #9d8ffa / Apr 2026
03
03 Spacing & Border Radius
Spacing Scale
2px
micro
4px
xs
7px
sm
12px
grid
18px
card
20px
content
Border Radius
4px
badges
8px
pills
10px
--r2
14px
--r
99px
pill
04
04 Components
Buttons & Pills
All EUR € KRW ₩ Categories lockUSD
Currency Cards · Overview Variant
€ EUR
€5,067
N26 · Vivid
€3,180
€2,768
€412
+€412
₩ KRW
₩6.7M
Shinhan · Kakao
₩2.1M
₩1.8M
₩300k
+₩300k
$ USD
$2,840
Wise
$820
$640
$180
+$180
Detail Cards — Spending / Investments / Savings / Debt
payments
Spending
6 categories
€2,768
92%
restaurant
Food
€307
118%
directions_bus
Transport
€102
68%
candlestick_chart
Investments
4 holdings
€9,453
+1.2%
VWCE
€2,847
+1.8%
NVDA
$2,241
+3.1%
TSLA
€1,104
−2.1%
savings
Savings
3 goals
€1,820
60%
Emergency Fund
€1,820
60%
Travel Fund
₩580k
29%
trending_down
Debt
2 loans
€5,300
56%
Student Loan
€5,300
56%
Credit Card
$420
35%
Bank Cards · Sidebar · Modal
account_balance
Commerzbank
€1,240
EUR
trending_up
Trade Republic
€800
EUR
credit_card
N26
€320
EUR
paid
Cash KRW
₩50,000
KRW
dashboard
receipt_long
savings
trending_down
subscriptions
candlestick_chart
home_work
archive
settings
check_circleSaved · Emergency +€240
05
05 Icon Set — Material Icons Round
dashboarddashboard
receipt_longreceipt_long
savingssavings
trending_uptrending_up
trending_downtrending_down
subscriptionssubscriptions
candlestick_chartcandlestick
paymentspayments
account_balanceacct_balance
addadd
check_circlecheck_circle
visibilityvisibility
settingssettings
archivearchive
deletedelete
editedit
calendar_monthcalendar
locklock
restart_altrestart_alt
home_workhome_work
restaurantrestaurant
directions_busdirections_bus
shopping_bagshopping_bag
06
06 Effects & Motion
Glass Layers
--glassrgba(255,255,255,.038)
--glass2rgba(255,255,255,.06)
--brgba(255,255,255,.07)
--b2rgba(255,255,255,.12)
Glow System
card glowblur 40px · top-right
bg ambientfixed · blur 120px
opacity12–14% per color
noise3.5% overlay
Motion
fadeUp0.4s ease
stagger+40ms per card
hovertranslateY(−2px)
transitionall 0.18s
What shipped

05. Outcome

Onboarding — Smart Defaults

jenice.eu/demo/lumen.html?welcome=1
1
Tell us about you

Name plus language and theme — pre-filled from the browser. Tweak or skip; the app adapts either way.

English 한국어 Deutsch Dark Light
2
Pick your currencies

Suggested from your locale — confirm or add more. Each currency keeps its own column throughout the app, no forced conversion.

€ EUR ₩ KRW $ USD £ GBP ¥ JPY
3
Add your accounts

Smart icons matched to bank names. Each account picks up a glow color; opening balances optional.

N26 · EUR Vivid · EUR Shinhan · KRW Wise · USD + Add
4
What matters most?

Toggle the features you care about — savings, debt, investments, subscriptions. The sidebar adapts; the rest stays out of the way.

Savings Investments Debt Subscriptions

Four condensed screens with smart defaults — locale-aware language, region-suggested currencies, name-matched bank icons. Every step is individually skippable; the bottom-right button morphs from Skip to Continue → the moment a step has enough info. No sign-in, no sync — preferences land in localStorage and the dashboard is ready to fill.

Dashboard — April 2026

jenice.eu/demo/lumen.html
ALL € EUR ₩ KRW $ USD
Morning brief · Apr 22 — Food 18% over budget · spending −12% vs. March · income tracking steady at €3,180
€ EUR
€5,067
N26 · Vivid
€3,180
€2,768
€412
+€412
₩ KRW
₩6.7M
Shinhan · Kakao
₩2.1M
₩1.8M
₩300k
+₩300k
$ USD
$2,840
Wise
$820
$640
$180
+$180
6-Month Flow · ALL
Income
Expense
Net
€4k €3k €2k €1k Nov Dec Jan Feb Mar Apr
payments
Monthly Spending
6 categories
€2,768
/ €3,000 · 92%
restaurant
Food
€307
118%
directions_bus
Transport
€102
68%
shopping_bag
Shopping
€81
54%
candlestick_chart
Investments
4 holdings
€9,453
▲ +1.2% today
VWCE
EUR · 24.5sh
€2,847
+1.8%
NVDA
USD · 5sh
$2,241
+3.1%
TSLA
EUR · 5sh
€1,104
−2.1%
savings
Savings Goals
3 goals
€1,820
+€240/mo · 60%
Emergency Fund
€1,820 / €3,000
60%
Travel Fund
₩580k / ₩2M
29%
Housing Savings
₩220k / ₩1M
22%
trending_down
Debt
3 loans
€5,300
−€280/mo · 56%
Student Loan
€5,300 / €9,500
56%
Credit Card
$420 / $1,200
35%
Lease Loan
₩12M / ₩40M
30%

Key Points

One surface for every personal-finance moving part

Income, expenses, savings, debt, investments and subscriptions all live in the same dark surface. Switch between sections from a single sidebar — no separate apps, no spreadsheets, no syncing services. The dashboard rolls everything up; each section drills into the detail you need.

All-in-one Single Surface
dashboard
receipt_long
savings
trending_down
subscriptions
candlestick_chart
home_work
archive
settings
payments
Spending
€2,768
92% of €3k budget
candlestick_chart
Investments
€9,453
▲ +1.2% today
savings
Savings
€1,820
60% of €3k goal
trending_down
Debt
€5,300
56% paid · €9.5k total
subscriptions
Subscriptions
€87.40 / mo
7 active
archive
Archive
12 months
Auto-snapshot
AI insights as the first thing you see

Three sentences at the top — budget status, spending trend, income trend — turn the dashboard from a spreadsheet into a quick morning read. The strip recomputes itself the moment a transaction lands; no interpretation needed.

Morning Brief Live Insights
Food & Dining is 18% over budget this month — €47 past the €260 ceiling.
Spending is down 12% vs. March — mostly fewer transport charges.
Income is tracking steady — €3,200 against a 6-month average of €3,180.
Any number of currencies, one overview — no conversion

Each active currency gets its own card with its own glow color and native format. Click a currency to drill into the bank-level cards for that currency; click a bank to focus the entire dashboard on that account. The chart label and detail cards follow along instantly. No FX conversion ever — you see your money in the currency it actually lives in.

Multi-Currency No FX Bank Drill
EUR · 2 banks
N26 · Vivid
€5,067
KRW · 2 banks
Shinhan · Kakao
₩6.7M
USD · Wise
Wise
$2,840
One save, two updates — transactions sync goals automatically

When type = Save in the Add Transaction modal, a goal picker appears. Pick a saving goal and the transaction not only logs the deposit, but also pushes the amount into the goal's history and bumps the progress bar. Editing or deleting that transaction reverses both sides via a linked id (savTxId). The goal never drifts from reality.

Two-way Sync Linked IDs
+ New Transaction
Smart currency safety — locked when in use, restored when imported

Settings shows a pill per currency. Currencies with actual data (savings, debts, investments, subscriptions, or banks with non-zero balance / transactions) are locked — you can't accidentally turn them off and orphan your records. Conversely, importing a backup or switching from another build with foreign-currency data auto-activates those currencies on next load with a toast. The state is always consistent.

Data Integrity Auto-sync
EUR KRW $USD £GBP ¥JPY ¥CNY
Locked currencies are in use (savings / debt / investments / transactions / banks with balance) and can't be deactivated. Clear those records first to disable.
Six-month flow + every past month preserved

The flow chart shows the last six months at a glance — income bars, expense bars and a NET line connecting the dots. The current month is brighter; clicking any past bar jumps the dashboard to that month's view. Behind it, Lumen snapshots income, expense, saved, net, category totals and bank balances at every month-end, so a year of financial history stays scrollable.

Trend Auto-archive
6-Month Flow · April highlighted
Nov Dec Jan Feb Mar Apr
MARCH 2026
+€412
€3,180 in · €2,768 out
FEBRUARY 2026
+€528
€3,200 in · €2,672 out
JANUARY 2026
−€184
€3,100 in · €3,284 out

Measured Outcomes

3 → 1

Apps replaced
Notion + Sheets + broker app

< 5s

Time to log a transaction
single modal, keyboard-first

100%

Goal / transaction sync
every edit propagates

N cur.

Any currency, unified
no forced conversion