Every brand.
Zero hardcoded values.

The Flutter design system that ships tokens, components, and themes from one layer. Rebuild only what changed, theme everything else.

dievas · component stage
colour
indigo500#6366F1
slate900#0F172A
slate50#F8FAFC
elevation
e24px
e38px
e416px
radius
SM4px
MD8px
XL324px
spacing
s28px
s416px
s832px
// primitives · raw values, no Flutter dependency
DievasColourPrimitives.indigo500   // 0xFF6366F1
DievasRadiusPrimitives.MD          // 8.0
DievasSpacingPrimitives.s4         // 16.0
InheritedModel idle, nothing rebuilt

Compiled, not composed.

Five layers, one source of truth. Nothing to reconcile, nothing to drift. Each chapter ends in something that runs.

01
Tokens · dievas_tokens

One source of truth.

Primitives become semantic roles become context. The page you're reading is themed by the same chain your app will use, from raw int to runtime colour. No special cases.

primitive · 0xFF6366F1
→
semantic · DievasColourSemanticLight.brand
→
component · CoreColours.brand
→
context.colours.core.brand
02
Aspects · InheritedModel

Rebuild what changed, nothing more.

Ten typed aspects ride an InheritedModel. A single text change rebuilds only the dependents that read text, never the layout and never the whole tree.

Pick an aspect →

text rebuilt · 0
layout rebuilt · 0
spacing rebuilt · 0
03
Components · Moon catalogue

One catalogue, fifty states, today.

Buttons, switches, inputs and more behave identically from first commit. Focus, disabled, and motion handling are baked into the component, not bolted on by you.

Pick a state →

04
Multi-brand · DievasScope

One app, every brand.

DievasScope retimes and recolours a running tree with zero code paths and zero restarts. Tap a brand, and the card that follows rebinds to its tokens on the spot.

Pick a colour →

Sign in to continue
Browse the workspace in your brand.
05
Gallery · Widgetbook

Every permutation, running.

Every component, every state, exercised in a live Widgetbook gallery against the real token set, in your browser and not a screenshot.

Two sheets, One token model.

The stage, the chapters, and the page you're reading all rebind to the same semantic layer. Nothing is themed twice.Flip the toggle.

Light sheet
DievasLightThemeData()
Dark sheet
DievasDarkThemeData()

Verified, in the code.

Four things Dievas holds true at every layer, verified in the code and shown on this page.

Semantic by construction

Components read the semantic layer and nothing else. A Widget never hardcodes a Colour, Radius, or Duration. Do not believe Our Docs? Try a Grep

Accessible from first frame

Focus, Semantics, and Animation handling are built into the components, not layered on by you at integration time.

Granular by inheritance

InheritedModel keeps a theme tweak a narrowly scoped micro rebuild instead of an app wide hot swap. Your Widget rebuilds when its aspect changes.

Open, not orphaned

On pub.dev with a public Widgetbook gallery and a living component catalogue behind it.Built by Serticode Inc.