Octagon OS Design System · 0.1
Everything a calm, beautiful dashboard is made of.
One system for every screen: the tokens, components, charts, motion and laws behind the Octagon OS dashboard — written in Svelte, so the live app can use every piece directly.
Principles
Soft gradient cards on a frosted panel. Depth from light, not from borders.
Big, light, tabular figures. Every number on screen adds up to the ones beside it.
Things arrive, slide and settle on one easing. Scrolling is smooth and never fights you.
Every control does something. Every state is designed: loading, empty, error, filled.
Browse
Only finished pages are listed. Each phase adds its pages.
Foundations
Foundations
Foundations
Foundations
Foundations
Components
Components
Components
Components
Components
Components
Components
Components
Components
Components
Components
Components
Charts
Charts
Charts
Charts
Charts
Charts
Layouts & blocks
Layouts & blocks
Layouts & blocks
Layouts & blocks
Layouts & blocks
Layouts & blocks
AI
Brand & web
Brand & web
Brand & web
Brand & web
Brand & web
Brand & web
Brand & web
Motion
Motion
Motion
Motion
Motion
Motion
Motion
Motion
Build plan
Built in phases. Each phase is shown working before the next one starts.
- 1FoundationsColour, three themes, type, space, radius, depth, icons and the px lawsReady
- 2ComponentsButtons, switchers, badges and cards ready · fields, menus, tables, feedback, states and navigation nextIn progress
- 3ChartsThe signature set plus rings, timelines, compare charts and small chartsNext
- 4MotionRules for scroll, popups, dropdowns, hover, notifications, transitions, grain — and a catalogueNext
- 5Layouts & blocksPage patterns, density, phone rules and ready-made sectionsNext
- 6Auth, branding, themes, websiteSign-in screens, brand rules, theme builder and the marketing siteNext
Use it
Import a component, wrap the app once for smooth scrolling and themes.
<script>
import '$ds/styles/tokens.css';
import '$ds/styles/base.css';
import { startSmoothScroll } from '$ds/motion/core.js';
import Button from '$ds/components/Button.svelte';
onMount(startSmoothScroll);
</script>
<Button variant="primary" icon="plus">New project</Button>