Design systemSourceful Energyv0.1 · Lite
One page · one system

A single page to show Claude what Sourceful looks like.

DESIGN

Tokens, type specimens and shadcn primitives skinned with the Sourceful visual system. Point an AI here and anything it builds will feel like ours.

Scroll for the systemDirectory · 00 of 04
01 · BrandEditorial lightSignal orangeSatoshi
Ground truth · tokens

Warm cream, near-black ink, one recurring orange.

Editorial light is the default. Grounds alternate between cream (#F5F2E1), paper (#FAFAF7), and near-black (#0A0A0A). Signal orange #E85D1F carries the accent.

Grounds
Ink#0A0A0A
Cream#F5F2E1
Paper#FAFAF7
Surface#FFFFFF
Accent
E85D1F
Signal#E85D1F
Editorial green#15803D
Success only
Destructive#FF0D0D
Error only
Scale · Signal orange
50
100
200
300
400
500
600
700
800
900
950

One brand scale. Lower steps (50–200) are washes and soft tints, 500 is the signal, higher steps (600–950) are pressed and ink pairings. Editorial green stays a single success token, not a scale.

Typography
Specimen · Satoshi 900
clamp(5rem, 18vw, 15rem)
200ms
Display · Satoshi 500
clamp(2.5rem, 6.5vw, 5.5rem)

Local energy coordination infrastructure.

Heading · Satoshi 300
h1 / h2 / h3

The physical rails that make distributed energy work

Body · Satoshi 400
16px · line 1.55

The Zap is a gateway that runs locally. No cloud dependency for real-time dispatch. Supports P1, Modbus-TCP, Modbus-RTU, MQTT and OCPP. Compatible with 180M EU smart meters.

Micro-label · 11px / 0.18em
uppercase
Behind the meterSE · DE · NLDirectory · 00 of 08
Mono · JetBrains
code · stats · tabular
<200ms · 50Hz · €2.5B · 180M meters
Voice
Physics before buzzwords

“Edge control under 200ms” beats “lightning-fast coordination”.

Collaborative with industry

Utilities and grid operators are partners, never opponents.

Specific over generic

Numbers and examples. €2.5B, not “massive savings”.

No em dashes, no hype

No “revolutionary”, “game-changing”, “seamless”. Commas and periods.

Two inks, three greens, one signalDirectory · 01 of 04
02 · Editorial systemLogosDuotone photographyCharts · Maps · Layouts
Graphic grammar

Logos, photography, charts and maps. One visual grammar, many surfaces.

Every graphic element inherits the same hairlines, signal orange, and Satoshi kickers. Photos get the duotone treatment. Charts are hand-rolled SVG. Maps are Natural Earth coastlines traced on scroll.

Logo
Icon · squircle
Icon · squircleSVG · on ink
sourceful-icon.svg
Icon · squircle
Icon · squircleSVG · on cream (CSS invert)
sourceful-icon.svg
Lockup · squircle
Lockup · squircleSVG · on ink
sourceful-squircle.svg
Lockup · squircle
Lockup · squircleSVG · on cream (CSS invert)
sourceful-squircle.svg

One SVG master lives in public/assets/sourceful-squircle.svg. For light grounds, apply filter: brightness(0) to invert the white fill to ink. All other bolt-in-circle variants are deprecated, do not use them.

Duotone photography
Solar array at dusk
Solar array at duskSignal · ink → #E85D1F
Volvo PU2000 industrial battery
Volvo PU2000 industrial batteryCool · ink → #D1E0F0
Stockholm cityscape
Stockholm cityscapeInk · monochrome wash

Photos get remapped through an inline SVG filter: luminance grayscale → gamma lift → two-colour table remap. Shadows go to deep ink, highlights to signal orange. One coherent graphic, not a tinted snapshot.

Charts
hand-rolled SVG · no recharts
01·ConsumptionLast 24h
18.4kWh
02·Production mixToday · by source
SolarBatteryGrid
12.1kWh self-generated
03·Spot priceSE3 · today
1.84SEK/kWh · now
04·Peak shavingEvening event
2.2kW clipped
05·Phase balanceLive
L1
14.2 A
L2
11.6 A
L3
16.8 A
14.2 / 11.6 / 16.8A
06·Grid flowToday · net
−2.3kWh · net export

Thin strokes, tabular numerals, signal orange for the primary series, hairline greys for everything else. Every chart is plain SVG so the stroke weights stay exact at any density.

Maps
Natural Earth · scroll-traced
Sweden01 / 03
Kalmar
Germany02 / 03
Berlin
Netherlands03 / 03
Amsterdam

Natural Earth 50m coastlines projected to a 1000×1000 viewBox. Each country traces itself on scroll via pathLength, staggered across tiles. Signal-orange dot marks the city anchor.

Layouts
editorial page rhythms
Sourceful01 / 04
200ms
Edge control, non-negotiable
Hero specimenInk ground · Satoshi 900
Warm cream, near-black ink, one recurring orange.
Editorial light is default. Grounds alternate between cream, paper, and near-black. Signal orange carries the accent.
Section02 / 04
Two-column spreadCream ground · 8/4 display
Stats · 3-up
180M
meters
<200
ms p95
€2.5B
savings
03 of 04
Stats gridPaper ground · 3-up metrics
04 · ApplyOne URL · one prompt · done
Closing spreadInk ground · specimen CTA

Four layouts recur across every Sourceful surface. Each stays within the hairline rhythm: micro-label kicker at the top, specimen or two-column body in the middle, directory counter at the bottom.

Slide deck
editorial pitch decks · 16:9 · ink or cream ground
Sourceful EnergyCapital Day · 2026

Sweden needs a
coordination layer.
We're building it.

The world needs one. We start in Europe.

EventCapital DayDate2026
SpeakerFredrik Ahlgren, CEOCo.Sourceful Labs AB
Title slideHero statement · bold Satoshi + signal highlight
Sourceful Energy05 · The Pattern
Why this works — the historical pattern

Batteries are
the new railroads.

EraPhysical innovationFinancial innovationCapital mobilized
Railroads · 1850s–90sSteam locomotiveFirst mortgage bonds · land-grant securities$10B · 81% of NYSE by 1885
Solar · 2013PV panels at scaleSolarCity ABS at 4.8%$54M pilot → $15B+ market
C&I batteries · nowLFP packs at $70/kWhSPV today · revenue-backed securities tomorrowFirst standalone BESS ABS · 2027–2030
5.0yrs
Payback
53%
Median IRR
95%
Runs clear 12% IRR

Technology creates the asset. Financial instruments create the market.
We're building both.

Table slideFour-column comparison · highlight row

Decks stay in the editorial system. Grounds alternate between ink (#0A0A0A) and cream (#F5F2E1), signal orange (#E85D1F) carries one or two highlight words per slide, Satoshi at display weight, JetBrains Mono for kickers and page counters. One big idea per slide. Fredrik likes a table when the argument is comparative, that's what the second specimen is for.

How the brand renders in the wildDirectory · 02 of 04
03 · Componentsshadcn/uiRadix primitivesTailwind + CVA
Skinned with Sourceful tokens

Everything you need, none of what you don’t.

Every primitive is stock shadcn/ui wired to the Sourceful tokens. Copy the files, keep the CSS variables and Tailwind config, and it looks native anywhere.

Buttonsvariant · size
Badgesstatus · counters
Signal
Ink
Online
Cream
Signal soft
Secondary
Outline
Error
Alertsdefault · destructive · signal
Cardsstats · content
Avg edge latency
187ms
under 200ms target
Pilot sites
24
+3 this quarter
Batteries hosted
6.4 MWh
Stockholm + Kalmar
Formsinput · textarea · select · check · radio · switch · slider
40%
62%
Tabs · Accordion · Tablelayout · disclosure · data
Stockholm · Kungsgatan 42. 200 kWh installed, operator-owned, K3 compliant.

SiteMarketCapacityStatusLatency
Kungsgatan 42Sweden200 kWh
Online
187ms
Hafenstraße 7Germany400 kWh
Offline
Prinsengracht 112Netherlands150 kWh
Commissioning
212ms
Spinners47 variants · monospace · edge-activity indicators

Terminal-style frame-cycle indicators. Use them on live grid tiles, Zap boot, firmware flash, or while an agent thinks — anywhere sub-second response would otherwise feel silent. Braille reads as infrastructure, ASCII as CLI.

Braille32 variants · agent streams + edge activity
dots10f · 80ms
dots28f · 80ms
dots310f · 80ms
dots414f · 80ms
dots517f · 80ms
dots624f · 80ms
dots724f · 80ms
dots829f · 80ms
dots98f · 80ms
dots107f · 80ms
dots118f · 100ms
dots1256f · 80ms
dots138f · 80ms
dots1412f · 80ms
sand35f · 80ms
bounce6f · 120ms
dots_circle8f · 80ms
wave8f · 100ms
scan10f · 70ms
rain12f · 100ms
pulse5f · 180ms
snake16f · 80ms
sparkle6f · 150ms
cascade14f · 60ms
columns26f · 60ms
orbit8f · 100ms
breathe17f · 100ms
waverows16f · 90ms
checkerboard4f · 250ms
helix16f · 80ms
fillsweep11f · 100ms
diagswipe16f · 60ms
ASCII15 variants · CLI + low-bandwidth grounds
dqpb4f · 100ms
rolling_line6f · 80ms
simple_dots4f · 400ms
simple_dots_scrolling6f · 200ms
arc6f · 100ms
balloon5f · 120ms
circle_halves4f · 50ms
circle_quarters4f · 120ms
point5f · 200ms
square_corners4f · 180ms
toggle2f · 250ms
triangle4f · 50ms
grow_horizontal12f · 120ms
grow_vertical10f · 120ms
noise6f · 100ms
Live grid tiledots · cream · edge sample pending
frequency sampling · 50Hz target
Agent thinkingwave · signal · model streaming
claude · 247 tokens/s
Zap bootorbit · cream · MQTT handshake
gateway · provisioning
Drop-in primitivesDirectory · 03 of 04
04 · Using with ClaudePoint and buildDESIGN.md · one URLNo npm install
Give Claude DESIGN.md

BUILD

One URL. Paste it into your prompt. Tell Claude to match tokens, type, and components. No package install, no config, no Tailwind setup on their end.

# Example prompts

Create a pitch slide on the $20 Zap gateway and our 200ms
edge response, and use the Sourceful design system to ensure
consistency:

  https://design.sourceful.energy/DESIGN.md


Create a device-detail dashboard for a commercial Vault
showing SoC, spot price, peak shaving, and the last 24h of
grid flow. Use the Sourceful design system to ensure
consistency:

  https://design.sourceful.energy/DESIGN.md


# The shape

Name the thing + name the subject + point at DESIGN.md.
The spec carries the look. Your sentence carries the
substance, so the numbers and claims stay real.
design.sourceful.energy/DESIGN.mdDirectory · 04 of 04