Logica ERP — Theme spec
Every design token and component under the active Logica ERP theme, rendered live. Download the raw .md / .css / .json from the bar above.
Colours
Background
#f7f9fc · dark #0b0d0f
Foreground
#2c3335 · dark #f7f9fc
Card
#ffffff · dark #1a1f23
Card foreground
#2c3335 · dark #f7f9fc
Popover
#ffffff · dark #1e2429
Popover foreground
#6a727c · dark #9dacbe
Primary
#2FB77E · dark #0b5b3a
Primary foreground
#ffffff · dark #adffdd
Secondary
#006cd1 · dark #004c94
Secondary foreground
#ffffff · dark #a3e8ff
Muted
#ffffff · dark #1e2429
Muted foreground
#6a727c · dark #a4b1c1
Accent
#2FB77E · dark #0b5b3a
Accent foreground
#ffffff · dark #adffdd
Destructive
#cc0000 · dark #a51212
Destructive foreground
#f7f9fc · dark #ffccd4
Border
#d1dff0 · dark #31383f
Input
#d1dff0 · dark #31383f
Ring
#2FB77E
Logica ERP
#2FB77E
Logica Visi
#E72858
Logica Spatia
#EB9900
Logica Flow
#0987f6
Chart 1
#d657bb · dark #c341a7
Chart 2
#1fa1c1 · dark #1899b9
Chart 3
#e6a433 · dark #d4962b
Chart 4
#2EB67D · dark #1c9b66
Chart 5
#9a68bb · dark #7b489d
Radii
Small
Medium
Large
XL
Highlight
Typography
The quick brown fox · Aa 0123456789
Body / sans — the quick brown fox jumps over the lazy dog.
Mono — const rate = 0.815;
Components
The full collection, grouped as on the site — buttons & actions, forms & inputs, data display, overlays, navigation, feedback & status, and charts & KPIs. Every component is rendered under this theme.
design.md source
The same content as a portable Markdown spec — copy it, or download from the bar above.
# Logica Suite theme preset: ERP v1
Design-system token bundle exported from the Logica Suite design admin. Paste the CSS block into your app's global stylesheet, or read token values from the table / JSON below.
## Fonts
- **Sans:** Plus Jakarta Sans
- **Mono:** Follows main font
## Radius
- **Base radius:** `0.850rem`
- **Small (rounded-sm):** `0.40rem`
- **Medium (rounded-md):** `0.70rem`
- **Large (rounded-lg):** `0.85rem`
- **XL (rounded-xl):** `0.85rem`
- **Highlight (accent / nav item):** `0.40rem`
## Sidebar spacing
| Token | CSS variable | Value |
| --- | --- | --- |
| Heading size | `--nav-heading-size` | `0.75rem` |
| Item size | `--nav-item-size` | `0.75rem` |
| Item gap | `--nav-item-gap` | `0.15rem` |
| Group gap | `--nav-group-gap` | `1.5rem` |
| Heading hover zoom | `--nav-heading-hover-scale` | `1.02` |
| Active item bar width | `--nav-item-active-bar-width` | `0` |
## Motion
Transition durations + easing. `base` drives every default transition.
| Token | CSS variable | Value |
| --- | --- | --- |
| Micro | `--motion-micro` | `90ms` |
| Fast | `--motion-fast` | `120ms` |
| Base | `--motion-base` | `180ms` |
| Slow | `--motion-slow` | `280ms` |
| Easing | `--motion-ease` | `cubic-bezier(0.4, 0, 0.2, 1)` |
## Elevation (shadow)
| Token | CSS variable | Elevation | Box-shadow |
| --- | --- | --- | --- |
| Small · cards, inputs, buttons | `--elevation-sm` | 2dp | `0 2px 4px -1px rgba(15, 23, 42, 0.084)` |
| Medium · popovers, menus, dropdowns | `--elevation-md` | 8dp | `0 6px 16px -4px rgba(15, 23, 42, 0.156)` |
| Large · dialogs, sheets, modals | `--elevation-lg` | 16dp | `0 12px 32px -8px rgba(15, 23, 42, 0.240)` |
## Type scale
| Step | CSS variable | Size | Line-height |
| --- | --- | --- | --- |
| Extra small (text-xs) | `--type-xs` | `0.75rem` | `1rem` |
| Small (text-sm) | `--type-sm` | `0.875rem` | `1.25rem` |
| Base (text-base) | `--type-base` | `1rem` | `1.5rem` |
| Large (text-lg) | `--type-lg` | `1.125rem` | `1.75rem` |
| XL (text-xl) | `--type-xl` | `1.25rem` | `1.75rem` |
| 2XL (text-2xl) | `--type-2xl` | `1.5rem` | `2rem` |
| 3XL (text-3xl) | `--type-3xl` | `1.875rem` | `2.25rem` |
| 4XL (text-4xl) | `--type-4xl` | `2.25rem` | `2.5rem` |
## Chrome transparency
Sidebar / header background opacity (100% = opaque; lower = frosted glass).
| Token | CSS variable | Value |
| --- | --- | --- |
| Sidebar | `--sidebar-opacity` | `100%` |
| Header | `--header-opacity` | `45%` |
## Colors
| Token | CSS variable | Light | Dark |
| --- | --- | --- | --- |
| background | `--background` | `#f7f9fc` | `#0b0d0f` |
| foreground | `--foreground` | `#2c3335` | `#f7f9fc` |
| card | `--card` | `#ffffff` | `#1a1f23` |
| cardForeground | `--card-foreground` | `#2c3335` | `#f7f9fc` |
| popover | `--popover` | `#ffffff` | `#1e2429` |
| popoverForeground | `--popover-foreground` | `#6a727c` | `#9dacbe` |
| primary | `--primary` | `#2FB77E` | `#0b5b3a` |
| primaryForeground | `--primary-foreground` | `#ffffff` | `#adffdd` |
| secondary | `--secondary` | `#006cd1` | `#004c94` |
| secondaryForeground | `--secondary-foreground` | `#ffffff` | `#a3e8ff` |
| muted | `--muted` | `#ffffff` | `#1e2429` |
| mutedForeground | `--muted-foreground` | `#6a727c` | `#a4b1c1` |
| accent | `--accent` | `#2FB77E` | `#0b5b3a` |
| accentForeground | `--accent-foreground` | `#ffffff` | `#adffdd` |
| destructive | `--destructive` | `#cc0000` | `#a51212` |
| destructiveForeground | `--destructive-foreground` | `#f7f9fc` | `#ffccd4` |
| border | `--border` | `#d1dff0` | `#31383f` |
| input | `--input` | `#d1dff0` | `#31383f` |
| ring | `--ring` | `#2FB77E` | `#2FB77E` |
| accentErp | `--accent-erp` | `#2FB77E` | `#2FB77E` |
| accentVisi | `--accent-visi` | `#E72858` | `#E72858` |
| accentSpatia | `--accent-spatia` | `#EB9900` | `#EB9900` |
| accentFlow | `--accent-flow` | `#0987f6` | `#0987f6` |
| chart1 | `--chart-1` | `#d657bb` | `#c341a7` |
| chart2 | `--chart-2` | `#1fa1c1` | `#1899b9` |
| chart3 | `--chart-3` | `#e6a433` | `#d4962b` |
| chart4 | `--chart-4` | `#2EB67D` | `#1c9b66` |
| chart5 | `--chart-5` | `#9a68bb` | `#7b489d` |
## Interactive states
Hover / pressed colours for the solid buttons. `auto` = derived from the base.
| Token | CSS variable | Light | Dark |
| --- | --- | --- | --- |
| primaryHover | `--primary-hover` | `#34da95` | `#14b871` |
| primaryActive | `--primary-active` | `#128153` | `#06462c` |
| secondaryHover | `--secondary-hover` | `#2fb5f9` | `#168bc5` |
| secondaryActive | `--secondary-active` | `auto` | `#02325f` |
| destructiveHover | `--destructive-hover` | `#fd5858` | `#da3e3e` |
| destructiveActive | `--destructive-active` | `auto` | `#510101` |
## Sidebar states
Hover / selected / pressed colours for the sidebar nav. A blank value falls back to the token shown.
| Token | CSS variable | Light | Dark |
| --- | --- | --- | --- |
| navItemHoverBg | `--nav-item-hover-bg` | `#38e59d` | `#14a368` |
| navItemHoverFg | `--nav-item-hover-fg` | `accent-foreground` | `#adffdd` |
| navItemSelectedBg | `--nav-item-selected-bg` | `accent` | `#055735` |
| navItemSelectedFg | `--nav-item-selected-fg` | `accent-foreground` | `#adffdd` |
| navItemPressedBg | `--nav-item-pressed-bg` | `#128153` | `#128153` |
| navItemPressedFg | `--nav-item-pressed-fg` | `nav-item-hover-fg` | `nav-item-hover-fg` |
| navItemActiveBar | `--nav-item-active-bar` | `nav-item-selected-fg` | `nav-item-selected-fg` |
| navHeadingColor | `--nav-heading-color` | `primary` | `#14a368` |
## App shell
Sidebar / header surface + border colours. A blank value falls back to the token shown.
| Token | CSS variable | Light | Dark |
| --- | --- | --- | --- |
| sidebar | `--sidebar` | `card` | `#1e2429` |
| sidebarForeground | `--sidebar-foreground` | `#2c3335` | `#a4b1c1` |
| sidebarBorder | `--sidebar-border` | `#d0d9e1` | `border` |
| header | `--header` | `card` | `#1e2429` |
| headerForeground | `--header-foreground` | `foreground` | `foreground` |
| headerBorder | `--header-border` | `#2FB77E` | `#2FB77E` |
## Data card
Title / value / icon + badge / trend colours for data cards. A blank value falls back to the token shown.
| Token | CSS variable | Light | Dark |
| --- | --- | --- | --- |
| cardTitle | `--card-title` | `muted-foreground` | `#a4b1c1` |
| cardValue | `--card-value` | `card-foreground` | `card-foreground` |
| cardIcon | `--card-icon` | `primary` | `#d0fbe9` |
| cardIconBg | `--card-icon-bg` | `#d0fbe9` | `#0b5b3a` |
| trendUp | `--trend-up` | `#2FB77E` | `#2FB77E` |
| trendDown | `--trend-down` | `destructive` | `#8f0000` |
## Input & popover
Input field surface and popover title colour. A blank value falls back to the token shown.
| Token | CSS variable | Light | Dark |
| --- | --- | --- | --- |
| inputBackground | `--input-background` | `background` | `background` |
| popoverTitle | `--popover-title` | `#2c3335` | `#f7f9fc` |
| accentSurface | `--accent-surface` | `popover` | `popover` |
| iconColor | `--icon-color` | `currentColor` | `currentColor` |
| iconColorHover | `--icon-color-hover` | `icon-color` | `icon-color` |
| iconColorActive | `--icon-color-active` | `icon-color-hover` | `icon-color-hover` |
| chartText | `--chart-text` | `muted-foreground` | `muted-foreground` |
| loadingBar | `--loading-bar` | `primary` | `primary` |
| toggleSun | `--toggle-sun` | `#fbbf24` | `#fbbf24` |
| toggleMoon | `--toggle-moon` | `#38bdf8` | `#38bdf8` |
| tabActiveBg | `--tab-active-bg` | `background` | `#0b5b3a` |
| tabBg | `--tab-bg` | `muted` | `muted` |
| tabBorder | `--tab-border` | `transparent` | `transparent` |
| tabText | `--tab-text` | `muted-foreground` | `#adffdd` |
| tabActiveText | `--tab-active-text` | `foreground` | `#adffdd` |
| switchChecked | `--switch-checked` | `primary` | `primary` |
| switchTrack | `--switch-track` | `input` | `input` |
| switchThumb | `--switch-thumb` | `background` | `background` |
| switchBorder | `--switch-border` | `transparent` | `transparent` |
| calloutBg | `--callout-bg` | `muted` | `#2e1e00` |
| calloutBorder | `--callout-border` | `border` | `#7a5000` |
| calloutIcon | `--callout-icon` | `primary` | `#2FB77E` |
## Outline button
Outline button border / text / fill (rest) and hover / pressed. A blank value falls back to the token shown.
| Token | CSS variable | Light | Dark |
| --- | --- | --- | --- |
| outlineBorder | `--outline-border` | `#d1dff0` | `#31383f` |
| outlineForeground | `--outline-foreground` | `#6a727c` | `#f7f9fc` |
| outlineBackground | `--outline-background` | `background` | `#0b0d0f` |
| outlineHoverBg | `--outline-hover-bg` | `#e5ebf1` | `#495869` |
| outlineHoverFg | `--outline-hover-fg` | `#6a727c` | `#f7f9fc` |
| outlineActiveBg | `--outline-active-bg` | `#bac1c9` | `#2d3743` |
| outlineActiveFg | `--outline-active-fg` | `#6a727c` | `#f7f9fc` |
## CSS
```css
/* Logica Suite preset: ERP v1 */
@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap");
:root {
--radius: 0.850rem;
--radius-sm-token: 0.40rem;
--radius-md-token: 0.70rem;
--radius-lg-token: 0.85rem;
--radius-xl-token: 0.85rem;
--radius-highlight-token: 0.40rem;
--background: #f7f9fc;
--foreground: #2c3335;
--card: #ffffff;
--card-foreground: #2c3335;
--popover: #ffffff;
--popover-foreground: #6a727c;
--primary: #2FB77E;
--primary-foreground: #ffffff;
--secondary: #006cd1;
--secondary-foreground: #ffffff;
--muted: #ffffff;
--muted-foreground: #6a727c;
--accent: #2FB77E;
--accent-foreground: #ffffff;
--destructive: #cc0000;
--destructive-foreground: #f7f9fc;
--border: #d1dff0;
--input: #d1dff0;
--ring: #2FB77E;
--accent-erp: #2FB77E;
--accent-visi: #E72858;
--accent-spatia: #EB9900;
--accent-flow: #0987f6;
--chart-1: #d657bb;
--chart-2: #1fa1c1;
--chart-3: #e6a433;
--chart-4: #2EB67D;
--chart-5: #9a68bb;
--primary-hover: #34da95;
--primary-active: #128153;
--secondary-hover: #2fb5f9;
--secondary-active: color-mix(in oklab, var(--secondary), black 16%);
--destructive-hover: #fd5858;
--destructive-active: color-mix(in oklab, var(--destructive), black 16%);
--nav-item-hover-bg: #38e59d;
--nav-item-hover-fg: var(--accent-foreground);
--nav-item-selected-bg: var(--accent);
--nav-item-selected-fg: var(--accent-foreground);
--nav-item-pressed-bg: #128153;
--nav-item-pressed-fg: var(--nav-item-hover-fg);
--nav-item-active-bar: var(--nav-item-selected-fg);
--nav-heading-color: var(--primary);
--sidebar: var(--card);
--sidebar-foreground: #2c3335;
--sidebar-border: #d0d9e1;
--header: var(--card);
--header-foreground: var(--foreground);
--header-border: #2FB77E;
--card-title: var(--muted-foreground);
--card-value: var(--card-foreground);
--card-icon: var(--primary);
--card-icon-bg: #d0fbe9;
--trend-up: #2FB77E;
--trend-down: var(--destructive);
--input-background: var(--background);
--popover-title: #2c3335;
--accent-surface: var(--popover);
--icon-color: currentColor;
--icon-color-hover: var(--icon-color);
--icon-color-active: var(--icon-color-hover);
--chart-text: var(--muted-foreground);
--loading-bar: var(--primary);
--toggle-sun: #fbbf24;
--toggle-moon: #38bdf8;
--tab-active-bg: var(--background);
--tab-bg: var(--muted);
--tab-border: transparent;
--tab-text: var(--muted-foreground);
--tab-active-text: var(--foreground);
--switch-checked: var(--primary);
--switch-track: var(--input);
--switch-thumb: var(--background);
--switch-border: transparent;
--callout-bg: var(--muted);
--callout-border: var(--border);
--callout-icon: var(--primary);
--outline-border: #d1dff0;
--outline-foreground: #6a727c;
--outline-background: var(--background);
--outline-hover-bg: #e5ebf1;
--outline-hover-fg: #6a727c;
--outline-active-bg: #bac1c9;
--outline-active-fg: #6a727c;
--sidebar-opacity: 100%;
--header-opacity: 45%;
--font-sans: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
--font-mono: var(--font-sans);
--nav-heading-size: 0.75rem;
--nav-item-size: 0.75rem;
--nav-item-gap: 0.15rem;
--nav-group-gap: 1.5rem;
--nav-heading-hover-scale: 1.02;
--nav-item-active-bar-width: 0;
}
.dark {
--background: #0b0d0f;
--foreground: #f7f9fc;
--card: #1a1f23;
--card-foreground: #f7f9fc;
--popover: #1e2429;
--popover-foreground: #9dacbe;
--primary: #0b5b3a;
--primary-foreground: #adffdd;
--secondary: #004c94;
--secondary-foreground: #a3e8ff;
--muted: #1e2429;
--muted-foreground: #a4b1c1;
--accent: #0b5b3a;
--accent-foreground: #adffdd;
--destructive: #a51212;
--destructive-foreground: #ffccd4;
--border: #31383f;
--input: #31383f;
--ring: #2FB77E;
--accent-erp: #2FB77E;
--accent-visi: #E72858;
--accent-spatia: #EB9900;
--accent-flow: #0987f6;
--chart-1: #c341a7;
--chart-2: #1899b9;
--chart-3: #d4962b;
--chart-4: #1c9b66;
--chart-5: #7b489d;
--primary-hover: #14b871;
--primary-active: #06462c;
--secondary-hover: #168bc5;
--secondary-active: #02325f;
--destructive-hover: #da3e3e;
--destructive-active: #510101;
--nav-item-hover-bg: #14a368;
--nav-item-hover-fg: #adffdd;
--nav-item-selected-bg: #055735;
--nav-item-selected-fg: #adffdd;
--nav-item-pressed-bg: #128153;
--nav-item-pressed-fg: var(--nav-item-hover-fg);
--nav-item-active-bar: var(--nav-item-selected-fg);
--nav-heading-color: #14a368;
--sidebar: #1e2429;
--sidebar-foreground: #a4b1c1;
--sidebar-border: var(--border);
--header: #1e2429;
--header-foreground: var(--foreground);
--header-border: #2FB77E;
--card-title: #a4b1c1;
--card-value: var(--card-foreground);
--card-icon: #d0fbe9;
--card-icon-bg: #0b5b3a;
--trend-up: #2FB77E;
--trend-down: #8f0000;
--input-background: var(--background);
--popover-title: #f7f9fc;
--accent-surface: var(--popover);
--icon-color: currentColor;
--icon-color-hover: var(--icon-color);
--icon-color-active: var(--icon-color-hover);
--chart-text: var(--muted-foreground);
--loading-bar: var(--primary);
--toggle-sun: #fbbf24;
--toggle-moon: #38bdf8;
--tab-active-bg: #0b5b3a;
--tab-bg: var(--muted);
--tab-border: transparent;
--tab-text: #adffdd;
--tab-active-text: #adffdd;
--switch-checked: var(--primary);
--switch-track: var(--input);
--switch-thumb: var(--background);
--switch-border: transparent;
--callout-bg: #2e1e00;
--callout-border: #7a5000;
--callout-icon: #2FB77E;
--outline-border: #31383f;
--outline-foreground: #f7f9fc;
--outline-background: #0b0d0f;
--outline-hover-bg: #495869;
--outline-hover-fg: #f7f9fc;
--outline-active-bg: #2d3743;
--outline-active-fg: #f7f9fc;
}
:root {
--motion-micro: 90ms;
--motion-fast: 120ms;
--motion-base: 180ms;
--motion-slow: 280ms;
--motion-ease: cubic-bezier(0.4, 0, 0.2, 1);
}
:root {
--elevation-sm: 0 2px 4px -1px rgba(15, 23, 42, 0.084);
--elevation-md: 0 6px 16px -4px rgba(15, 23, 42, 0.156);
--elevation-lg: 0 12px 32px -8px rgba(15, 23, 42, 0.240);
}
:root {
--type-xs: 0.75rem;
--type-xs-lh: 1rem;
--type-sm: 0.875rem;
--type-sm-lh: 1.25rem;
--type-base: 1rem;
--type-base-lh: 1.5rem;
--type-lg: 1.125rem;
--type-lg-lh: 1.75rem;
--type-xl: 1.25rem;
--type-xl-lh: 1.75rem;
--type-2xl: 1.5rem;
--type-2xl-lh: 2rem;
--type-3xl: 1.875rem;
--type-3xl-lh: 2.25rem;
--type-4xl: 2.25rem;
--type-4xl-lh: 2.5rem;
}
```
## JSON
```json
{
"name": "ERP v1",
"colors": {
"light": {
"background": "#f7f9fc",
"foreground": "#2c3335",
"card": "#ffffff",
"cardForeground": "#2c3335",
"popover": "#ffffff",
"popoverForeground": "#6a727c",
"primary": "#2FB77E",
"primaryForeground": "#ffffff",
"secondary": "#006cd1",
"secondaryForeground": "#ffffff",
"muted": "#ffffff",
"mutedForeground": "#6a727c",
"accent": "#2FB77E",
"accentForeground": "#ffffff",
"destructive": "#cc0000",
"destructiveForeground": "#f7f9fc",
"border": "#d1dff0",
"input": "#d1dff0",
"ring": "#2FB77E",
"accentErp": "#2FB77E",
"accentVisi": "#E72858",
"accentSpatia": "#EB9900",
"accentFlow": "#0987f6",
"chart1": "#d657bb",
"chart2": "#1fa1c1",
"chart3": "#e6a433",
"chart4": "#2EB67D",
"chart5": "#9a68bb",
"popoverTitle": "#2c3335",
"outlineBorder": "#d1dff0",
"outlineForeground": "#6a727c",
"primaryHover": "#34da95",
"primaryActive": "#128153",
"secondaryHover": "#2fb5f9",
"destructiveHover": "#fd5858",
"outlineHoverFg": "#6a727c",
"outlineHoverBg": "#e5ebf1",
"outlineActiveBg": "#bac1c9",
"outlineActiveFg": "#6a727c",
"navItemHoverBg": "#38e59d",
"navItemPressedBg": "#128153",
"sidebarForeground": "#2c3335",
"sidebarBorder": "#d0d9e1",
"headerBorder": "#2FB77E",
"cardIconBg": "#d0fbe9",
"trendUp": "#2FB77E"
},
"dark": {
"background": "#0b0d0f",
"foreground": "#f7f9fc",
"card": "#1a1f23",
"cardForeground": "#f7f9fc",
"popover": "#1e2429",
"popoverForeground": "#9dacbe",
"primary": "#0b5b3a",
"primaryForeground": "#adffdd",
"secondary": "#004c94",
"secondaryForeground": "#a3e8ff",
"muted": "#1e2429",
"mutedForeground": "#a4b1c1",
"accent": "#0b5b3a",
"accentForeground": "#adffdd",
"destructive": "#a51212",
"destructiveForeground": "#ffccd4",
"border": "#31383f",
"input": "#31383f",
"ring": "#2FB77E",
"accentErp": "#2FB77E",
"accentVisi": "#E72858",
"accentSpatia": "#EB9900",
"accentFlow": "#0987f6",
"chart1": "#c341a7",
"chart2": "#1899b9",
"chart3": "#d4962b",
"chart4": "#1c9b66",
"chart5": "#7b489d",
"popoverTitle": "#f7f9fc",
"outlineBorder": "#31383f",
"outlineForeground": "#f7f9fc",
"outlineBackground": "#0b0d0f",
"primaryHover": "#14b871",
"primaryActive": "#06462c",
"secondaryHover": "#168bc5",
"secondaryActive": "#02325f",
"destructiveHover": "#da3e3e",
"destructiveActive": "#510101",
"navItemHoverBg": "#14a368",
"navItemPressedBg": "#128153",
"navItemHoverFg": "#adffdd",
"navItemSelectedFg": "#adffdd",
"sidebar": "#1e2429",
"sidebarForeground": "#a4b1c1",
"header": "#1e2429",
"headerBorder": "#2FB77E",
"cardTitle": "#a4b1c1",
"cardIcon": "#d0fbe9",
"cardIconBg": "#0b5b3a",
"outlineHoverBg": "#495869",
"outlineActiveBg": "#2d3743",
"outlineActiveFg": "#f7f9fc",
"outlineHoverFg": "#f7f9fc",
"trendDown": "#8f0000",
"trendUp": "#2FB77E",
"navItemSelectedBg": "#055735",
"navHeadingColor": "#14a368",
"tabActiveBg": "#0b5b3a",
"tabText": "#adffdd",
"calloutBorder": "#7a5000",
"calloutBg": "#2e1e00",
"calloutIcon": "#2FB77E",
"tabActiveText": "#adffdd"
}
},
"radii": {
"base": "0.850rem",
"sm": "0.40rem",
"md": "0.70rem",
"lg": "0.85rem",
"xl": "0.85rem",
"highlight": "0.40rem"
},
"fonts": {
"sans": {
"presetId": "google:Plus Jakarta Sans"
},
"mono": {
"presetId": "follow-sans"
}
},
"nav": {
"headingSize": "0.75rem",
"itemSize": "0.75rem",
"itemGap": "0.15rem",
"groupGap": "1.5rem",
"headingHoverScale": "1.02",
"activeItemBarWidth": "0"
},
"opacity": {
"sidebar": "100%",
"header": "45%"
},
"motion": {
"micro": "90ms",
"fast": "120ms",
"base": "180ms",
"slow": "280ms",
"ease": "cubic-bezier(0.4, 0, 0.2, 1)"
},
"elevation": {
"shadowSm": 2,
"shadowMd": 8,
"shadowLg": 16
},
"typeScale": {
"xs": {
"size": "0.75rem",
"lineHeight": "1rem"
},
"sm": {
"size": "0.875rem",
"lineHeight": "1.25rem"
},
"base": {
"size": "1rem",
"lineHeight": "1.5rem"
},
"lg": {
"size": "1.125rem",
"lineHeight": "1.75rem"
},
"xl": {
"size": "1.25rem",
"lineHeight": "1.75rem"
},
"2xl": {
"size": "1.5rem",
"lineHeight": "2rem"
},
"3xl": {
"size": "1.875rem",
"lineHeight": "2.25rem"
},
"4xl": {
"size": "2.25rem",
"lineHeight": "2.5rem"
}
}
}
```