$ cat ./design-md/enterprise-saas/metadata.yaml
Enterprise SaaS
A high-trust, data-dense enterprise dashboard design system focused on clarity, hierarchy, and operational efficiency.
Author
Tags
enterprisesaasdashboardadmin-panelb2bdata-dense
Live Preview
Tokens: COLOR
Items: 23
primary
Hex: #2563EB
primary hover
Hex: #1D4ED8
primary dark
Hex: #1E40AF
primary light
Hex: #EFF6FF
bg
Hex: #FAFAFA
surface
Hex: #FFFFFF
surface secondary
Hex: #F5F5F5
border
Hex: #E5E7EB
border strong
Hex: #D1D5DB
text primary
Hex: #111827
text secondary
Hex: #4B5563
text muted
Hex: #9CA3AF
success
Hex: #059669
success light
Hex: #ECFDF5
warning
Hex: #D97706
warning light
Hex: #FFFBEB
error
Hex: #DC2626
error light
Hex: #FEF2F2
dark bg
Hex: #0F0F0F
dark surface
Hex: #1A1A1A
dark border
Hex: #2E2E2E
dark text primary
Hex: #F9FAFB
dark text secondary
Hex: #9CA3AF
Tokens: SPACING
Items: 14
space-1
4px
space-2
8px
space-3
12px
space-4
16px
space-5
20px
space-6
24px
space-8
32px
space-10
40px
space-12
48px
space-16
64px
gutter
24px
page-margin-desktop
32px
page-margin-mobile
16px
content-max
1280px
Tokens: ROUNDED
Items: 5
sm
4px
md
6px
lg
8px
xl
12px
full
9999px
Tokens: TYPOGRAPHY
Items: 8
display
The quick brown fox jumps over the lazy dog
Family: Inter
Size: 30px
Weight: 700
Letter Spacing: -0.5px
h1
The quick brown fox jumps over the lazy dog
Family: Inter
Size: 24px
Weight: 600
Letter Spacing: -0.3px
h2
The quick brown fox jumps over the lazy dog
Family: Inter
Size: 20px
Weight: 600
Letter Spacing: -0.2px
h3
The quick brown fox jumps over the lazy dog
Family: Inter
Size: 16px
Weight: 600
Letter Spacing: 0px
body
The quick brown fox jumps over the lazy dog
Family: Inter
Size: 14px
Weight: 400
Letter Spacing: 0px
small
The quick brown fox jumps over the lazy dog
Family: Inter
Size: 13px
Weight: 400
Letter Spacing: 0px
tiny
The quick brown fox jumps over the lazy dog
Family: Inter
Size: 12px
Weight: 500
Letter Spacing: 0.2px
mono
The quick brown fox jumps over the lazy dog
Family: JetBrains Mono
Size: 13px
Weight: 400
Letter Spacing: 0px
Tailwind v3 Config
{
"theme": {
"extend": {
"colors": {
"primary": "#2563eb",
"primary-hover": "#1d4ed8",
"primary-dark": "#1e40af",
"primary-light": "#eff6ff",
"bg": "#fafafa",
"surface": "#ffffff",
"surface-secondary": "#f5f5f5",
"border": "#e5e7eb",
"border-strong": "#d1d5db",
"text-primary": "#111827",
"text-secondary": "#4b5563",
"text-muted": "#9ca3af",
"success": "#059669",
"success-light": "#ecfdf5",
"warning": "#d97706",
"warning-light": "#fffbeb",
"error": "#dc2626",
"error-light": "#fef2f2",
"dark-bg": "#0f0f0f",
"dark-surface": "#1a1a1a",
"dark-border": "#2e2e2e",
"dark-text-primary": "#f9fafb",
"dark-text-secondary": "#9ca3af"
},
"fontFamily": {
"display": [
"Inter"
],
"h1": [
"Inter"
],
"h2": [
"Inter"
],
"h3": [
"Inter"
],
"body": [
"Inter"
],
"small": [
"Inter"
],
"tiny": [
"Inter"
],
"mono": [
"JetBrains Mono"
]
},
"fontSize": {
"display": [
"30px",
{
"letterSpacing": "-0.5px",
"fontWeight": "700"
}
],
"h1": [
"24px",
{
"letterSpacing": "-0.3px",
"fontWeight": "600"
}
],
"h2": [
"20px",
{
"letterSpacing": "-0.2px",
"fontWeight": "600"
}
],
"h3": [
"16px",
{
"letterSpacing": "0px",
"fontWeight": "600"
}
],
"body": [
"14px",
{
"letterSpacing": "0px",
"fontWeight": "400"
}
],
"small": [
"13px",
{
"letterSpacing": "0px",
"fontWeight": "400"
}
],
"tiny": [
"12px",
{
"letterSpacing": "0.2px",
"fontWeight": "500"
}
],
"mono": [
"13px",
{
"letterSpacing": "0px",
"fontWeight": "400"
}
]
},
"borderRadius": {
"sm": "4px",
"md": "6px",
"lg": "8px",
"xl": "12px",
"full": "9999px"
},
"spacing": {
"space-1": "4px",
"space-2": "8px",
"space-3": "12px",
"space-4": "16px",
"space-5": "20px",
"space-6": "24px",
"space-8": "32px",
"space-10": "40px",
"space-12": "48px",
"space-16": "64px",
"gutter": "24px",
"page-margin-desktop": "32px",
"page-margin-mobile": "16px",
"content-max": "1280px"
}
}
}
}
Tailwind v4 @theme
// No content available
DESIGN.md
---
version: alpha
name: Enterprise SaaS
description: Data-dense enterprise interface system focused on trust, clarity, and efficient workflows.
colors:
primary: "#2563EB"
primary-hover: "#1D4ED8"
primary-dark: "#1E40AF"
primary-light: "#EFF6FF"
bg: "#FAFAFA"
surface: "#FFFFFF"
surface-secondary: "#F5F5F5"
border: "#E5E7EB"
border-strong: "#D1D5DB"
text-primary: "#111827"
text-secondary: "#4B5563"
text-muted: "#9CA3AF"
success: "#059669"
success-light: "#ECFDF5"
warning: "#D97706"
warning-light: "#FFFBEB"
error: "#DC2626"
error-light: "#FEF2F2"
dark-bg: "#0F0F0F"
dark-surface: "#1A1A1A"
dark-border: "#2E2E2E"
dark-text-primary: "#F9FAFB"
dark-text-secondary: "#9CA3AF"
typography:
display:
fontFamily: Inter
fontSize: 30px
fontWeight: 700
lineHeight: 1.2
letterSpacing: -0.5px
h1:
fontFamily: Inter
fontSize: 24px
fontWeight: 600
lineHeight: 1.25
letterSpacing: -0.3px
h2:
fontFamily: Inter
fontSize: 20px
fontWeight: 600
lineHeight: 1.3
letterSpacing: -0.2px
h3:
fontFamily: Inter
fontSize: 16px
fontWeight: 600
lineHeight: 1.4
letterSpacing: 0px
body:
fontFamily: Inter
fontSize: 14px
fontWeight: 400
lineHeight: 1.6
letterSpacing: 0px
small:
fontFamily: Inter
fontSize: 13px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0px
tiny:
fontFamily: Inter
fontSize: 12px
fontWeight: 500
lineHeight: 1.4
letterSpacing: 0.2px
mono:
fontFamily: JetBrains Mono
fontSize: 13px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0px
rounded:
sm: 4px
md: 6px
lg: 8px
xl: 12px
full: 9999px
spacing:
space-1: 4px
space-2: 8px
space-3: 12px
space-4: 16px
space-5: 20px
space-6: 24px
space-8: 32px
space-10: 40px
space-12: 48px
space-16: 64px
gutter: 24px
page-margin-desktop: 32px
page-margin-mobile: 16px
content-max: 1280px
components:
button-primary:
backgroundColor: "{colors.primary}"
textColor: "#FFFFFF"
typography: "{typography.body}"
rounded: "{rounded.md}"
height: 36px
padding: 8px 16px
button-secondary:
backgroundColor: transparent
borderColor: "{colors.border-strong}"
textColor: "{colors.text-primary}"
typography: "{typography.body}"
rounded: "{rounded.md}"
height: 36px
padding: 8px 16px
input-field:
backgroundColor: "{colors.surface}"
borderColor: "{colors.border-strong}"
textColor: "{colors.text-primary}"
typography: "{typography.body}"
rounded: "{rounded.md}"
height: 36px
padding: 8px 12px
card-default:
backgroundColor: "{colors.surface}"
borderColor: "{colors.border}"
rounded: "{rounded.lg}"
padding: "{spacing.space-6}"
table-header:
backgroundColor: "{colors.surface-secondary}"
textColor: "{colors.text-muted}"
typography: "{typography.tiny}"
badge-status:
rounded: "{rounded.sm}"
typography: "{typography.tiny}"
padding: 2px 8px
modal-panel:
backgroundColor: "{colors.surface}"
rounded: "{rounded.xl}"
padding: "{spacing.space-6}"
---
## Brand & Style
This design system targets enterprise dashboards and workflow-heavy admin tools where users spend long sessions managing operations, analytics, and team processes.
The style is calm, precise, and high-trust: interfaces should feel reliable and professional rather than expressive. Information hierarchy is the primary design mechanism, and visual decoration is minimized so data remains the focal point.
## Colors
The palette uses neutral surfaces with a single blue interaction color and strict semantic states.
- Primary blue is reserved for actions, links, and active states.
- Neutral surfaces and border tones define structure and density without visual noise.
- Semantic colors are functional only: success, warning, and error must retain their meaning across all contexts.
- Badge and alert treatments pair `-light` backgrounds with their corresponding semantic foreground color.
- In dark mode, brand and semantic accents remain stable while backgrounds and text switch to dark-surface tokens.
## Typography
Typography is tuned for dense, scannable enterprise content.
- Base text is `14px` Inter with comfortable line height for long-form dashboard reading.
- Headings use tighter tracking and heavier weights to separate sections and key data points quickly.
- `12px` and `13px` sizes are reserved for metadata, badges, and helper labels.
- Monospace styling is used for IDs, codes, hashes, and other technical values in tables.
- Numeric interfaces should use tabular figures for aligned metrics.
## Layout & Spacing
Layout follows a 12-column desktop grid with a fixed sidebar pattern and strict spacing rhythm.
- Maximum content width is `1280px` with `24px` gutters.
- Page margins: `32px` on desktop and `16px` on mobile.
- Spacing tokens follow a 4px base scale; ad hoc spacing values are disallowed.
- Sections stack with larger scale tokens (`space-8` and above) to preserve scanability in data-heavy views.
- Responsive model: mobile single-column, tablet collapsed sidebar, desktop full sidebar with multi-column content.
## Elevation & Depth
This system is flat by default and uses elevation only when elements float above content.
- Cards and standard panels rely on borders, not shadows.
- Light shadows are used for hover states and floating layers such as dropdowns, toasts, and dialogs.
- Modal and overlay layers may use stronger depth, but shadow opacity remains restrained.
- In dark mode, elevation is communicated primarily through tonal contrast between surfaces rather than visible shadows.
## Shapes
Shape language is restrained and consistent.
- Buttons and form controls use `6px` radius.
- Cards and containers use `8px` radius.
- Modals use `12px` radius.
- Full rounding is limited to avatars and small pill-style badges.
## Components
### Buttons
Primary, secondary, ghost, destructive, and icon button variants are supported. Each view section should have only one primary call-to-action. Destructive actions require explicit confirmation.
### Inputs
Inputs use bordered, high-contrast fields with top-aligned labels, optional helper text, and replacement error messaging in the same slot. Focus and error states use distinct ring treatments tied to color tokens.
### Cards
Cards are structural containers for grouped information, not decorative wrappers. Nested cards are disallowed; use bordered internal sections when additional grouping is needed.
### Tables
Tables are core primitives with mandatory headers, sortable affordances, clear alignment rules (text left, numbers right), hover and selected states, and explicit empty/loading/error handling.
### Feedback Patterns
Badges, toasts, banners, modals, and empty states communicate status without ambiguity, pairing semantic color usage with clear textual labels and accessible interaction behavior.
## Do's and Don'ts
- Do maintain strict spacing token usage and consistent corner-radius mapping by component class.
- Do keep interactions accessible: clear focus states, keyboard support, and minimum touch targets.
- Do provide loading, empty, and error states for every data-driven surface.
- Do keep copy direct and instructional; favor concise, action-oriented labels.
- Don't use blue decoratively or overload views with multiple accent colors.
- Don't rely on color alone for status meaning; combine with labels or icons.
- Don't apply heavy shadows or decorative motion in core workflow surfaces.
- Don't hide labels in placeholders or center-align dense body/table content.