Altris/ Design Language/ Components/ Library
Components

Component library

Twelve components composed entirely from the foundations. Buttons, inputs, cards, tables, navigation, alerts. Each carries its tokens — copy and ship.

Interface specimens demonstrate the visual system. Product data is illustrative; the download-list example links to the actual brand files.

01 · Buttons

Buttons

Four roles — Primary, Secondary, Ghost, Accent. Use Primary at most once per view; Accent for promotional CTAs only.

.btn / .secondary / .ghost / .accent / .loadingAxia Bold · 14/20 · 10px y · 18px x
!
Rule. Primary leads. Never two primary buttons in the same view — pair Primary with Secondary or Ghost.
02 · Inputs & forms

Inputs & forms

Single height, single border, no radius. Labels above, helper below. Focus is graphite — full-strength border, no glow.

Order IDs are 8 characters — check the confirmation email.
.input · .select · .textarea · .field.error15/22 · 10y / 12x · 1px rule
.checkbox · .radio · .toggle16px · graphite-fill · square
64%
.slidergraphite thumb · 4px track
03 · Badges, tags, status

Badges & tags

Status badges carry one of the four signal colours. Tags are neutral; chips use Axia. Never a gradient, never a shadow.

Neutral Validated Attention Rejected Active
Sodium-ion × Energy cell × Automotive × EU-made ×
available selected active inactive
.badge · .tag-x · .pillAxia Regular 10/11 · square
04 · Cards

Cards

Single-rule containers, never floating. Padding is the spacing scale. Stat cards stack on a single grid baseline.

Energy cell · Type 8

160 Wh/kg, validated.

The reference cell from the Uppsala Pilot Plant. Optimized for energy density, automotive low-voltage, EU bill of materials.

.product-cardimg + eyebrow + h4 + body + footer
Energy density
160 Wh/kg
▲ +12% vs prior gen
Cycle life
4,000+
▲ third-party verified
Pipeline · 2027
10M cells
.stat-card · .progressAxia Black 36 · graphite bar
05 · Alerts & callouts

Alerts

Three-pixel left rule, no fill, ground stays paper. The signal colour belongs to the rule and the icon — nothing else.

i
Heads up. Choose a file from the asset library to download it.
✓
Validated. Energy density figure is third-party verified at 25°C ambient.
!
Caution. Below −20°C, expect a 6–8% capacity drop. Plan thermal management accordingly.
✕
Restricted. Performance figures past 65°C are out of operating envelope and should not be quoted externally.
.alert · .info · .ok · .err3px rule-left · paper bg · 14/22
06 · Tables

Data tables

Mono headers, sans body. Rules between rows, never between cells. Numbers right-aligned in Axia. Hover is paper.

CellForm factorEnergy · Wh/kgC-rateOperating · °CStatus
Type 8 · EnergyPouch · 21Ah1603C−40 / +65Validated
Type 6 · PowerCylindrical · 1865013016C−30 / +60Validated
Type 4 · GridPrismatic · 80Ah1452C−20 / +55Active
Type 12 · AuxiliaryPouch · 8Ah12010C−40 / +65Attention
Reference module48V · 14s1555C−40 / +65Validated
.data-tableAxia Regular headers · 13/22 body · 12px y · 14px x
08 · People & identity

Avatars

Square, two-letter monogram, Axia Black. No photographic avatars in product UI; reserve photography for editorial.

RA
RH
JS
EK
RA
RH
.avatarSquare · Axia Black · 36/48/64
09 · Downloads

Asset library

Wordmark, datasheets, type kit. Anything you ship externally should come from here, not from a slack DM.

AssetFormat
Altris wordmark · graphiteSVGDownload ↓
Altris wordmark · whiteSVGDownload ↓
Design tokensCSSDownload ↓
.data-table · download listSame table component, different shape
10 · Interaction states

Interaction states

Every interactive component answers all six states. No glows, no shadows — state is carried by border, fill, and opacity only.

StateButtonInput / SelectCheckbox / Radio / ToggleLink
DefaultGraphite fill, white text1px rule border1px rule-bold outlineUnderline, ink
HoverFill deepens one step——Ink → deep-90
Focus2px graphite outline, 2px offsetBorder → graphite, no glow2px graphite outline2px graphite outline
Active / checkedSame as hoverBorder → graphiteGraphite fill—
Disabled40% opacity, no pointerPaper fill, faint ink40% opacityFaint ink, no underline
Loading.loading — label hidden, 14px spinner———
State matrixborder · fill · opacity — never glow
i
Errors. Validation uses .field.error — border and helper text turn --s-error. Never color the label or the value text.