00 · Introduction

A brand built around practice.

Practis helps teams get better the way humans actually get better: by doing the thing, getting feedback, and doing it again. The brand should feel the same way — confident, human, optimistic about AI, and never afraid to keep iterating.

This document covers the systems that make Practis recognizable across every surface — from the homepage to a webinar slide to a sales email signature. Each section tells you the rule, shows the example, and explains the reasoning so you can make a good call when this document doesn't have an answer.

02 · Color

A restrained palette, on purpose.

Click any card to copy its hex value.

03 · Typography

Type does most of the heavy lifting.

One sans for everything. One mono for code and numerics. A modular 1.250 scale so every size lands somewhere predictable.

Inter — primary typeface

Family Inter
Weights 400 · 500 · 600 · 700
License SIL OFL · free
Source rsms.me/inter

System monospace — supporting

For code, tokens, and tabular figures. We use the OS-native monospace stack instead of shipping a custom mono — fewer fonts to load, perfect rendering everywhere.

Stack ui-monospace, "SF Mono", Menlo, Consolas, monospace
Weight 500
Used for Code, tokens, metric numerals

Scale

Stepped scale at 10, 12, 14, 16, 18, 20, 24, 30, 36, 48, 60. Zero letter-spacing across the board. Line-heights are paired to each step, not derived from a ratio.

display-xl 60 / 72 · 600 · 0
Practice
display-lg 48 / 60 · 600 · 0
A thousand reps
display 36 / 40 · 600 · 0
Coaching that scales
h1 30 / 36 · 600 · 0
Section title
h2 24 / 32 · 600 · 0
Subsection heading
h3 20 / 28 · 600 · 0
Component heading
h4 18 / 28 · 600 · 0
Small heading
body-lg 18 / 28 · 400 · 0
Body large. Used for lead paragraphs and feature descriptions. Up to ~65ch per line.
body 16 / 24 · 400 · 0
Body. The default. Comfortable to read.
body-sm 14 / 20 · 400 · 0
Body small. Captions, helper text, dense UI.
caption 12 / 16 · 500 · 0
Caption — meta, attribution, footnotes.
eyebrow / section label 12 / 16 · 600 · 0.8px · uppercase
Section eyebrow

Weights in use

Four weights. Don't introduce a fifth — Inter has eighteen, the system has four.

400 · Regular body, body-sm
The quick brown fox
500 · Medium captions, emphasized body, UI labels
The quick brown fox
600 · SemiBold display, headings, eyebrow, buttons
The quick brown fox
700 · Bold reserved — emphasis within body only
The quick brown fox
04 · Iconography

One icon family, no exceptions.

Lucide. 24×24 viewbox, 2px stroke, rounded line caps and joins. One library so the visual language stays consistent across product and marketing.

chat
mic
check
clock
user
lock
pulse
chart
settings
package
zap
search

Rules

  • · Always 24×24 viewBox. Render at 16, 20, 24, or 32. No other sizes.
  • · Stroke-only. No filled icons in marketing. Filled is reserved for selected/active product states.
  • · 2px stroke at 24px size. Scale stroke proportionally if rendering larger or smaller.
  • · Inherit color via currentColor — never hardcode hex on icons.
  • · If Lucide doesn't have it, ask before commissioning. Mixing icon libraries breaks the system.
05 · Imagery

Real people, real product.

Practis is about humans getting better. Imagery should look like the actual humans we serve — not stock photography pretending to be them.

06 · UI Components

The shared component vocabulary.

The pieces every page and product surface is built from. Use these. Don't fork them.

Buttons

Three variants. Primary for the one thing you want users to do. Ghost for everything else. Link for inline navigation.

PRIMARY
GHOST
LINK Read the full story

Eyebrow + heading pattern

The signature section opener. Use sparingly — one per section, never two.

Sample section

A heading that earns its scale.

One sentence of supporting copy below. Never two. If you need two sentences, you need a different pattern.

Cards

The default container for grouped content. Hairline border, ~5% lighter background than the surface beneath.

Card title

Short supporting line about what this card represents.

Card title

Short supporting line about what this card represents.

Card title

Short supporting line about what this card represents.