DESIGN.md · Analysis

aaPanel

aapanel.com · 14 Jul 2026 · 47 colors · Inter

aaPanel

aaPanel is a powerful, open-source web hosting control panel for Linux servers. The design system emphasizes clarity, trust, and technical accessibility through a clean, modern interface with a distinctive green accent.

Colors

surface#ffffff
surface-dim#f8fafc
surface-bright#ffffff
surface-container-lowest#f4faf5
surface-container-low#f1f5f9
surface-container#e2e8f0
surface-container-high#cbd5e1
surface-container-highest#94a3b8
on-surface#0f172a
on-surface-variant#475569
inverse-surface#0f172a
inverse-on-surface#f1f5f9
outline#94a3b8
outline-variant#cbd5e1
surface-tint#20a53a
primary#20a53a
on-primary#ffffff
primary-container#f4faf5
on-primary-container#0f5620
inverse-primary#4ade80
secondary#1863dc
on-secondary#ffffff
secondary-container#dbeafe
on-secondary-container#0c2d5c
tertiary#f59e0b
on-tertiary#ffffff
tertiary-container#fef3c7
on-tertiary-container#78350f
error#dc2626
on-error#ffffff
error-container#fee2e2
on-error-container#7f1d1d
primary-fixed#c6f6d5
primary-fixed-dim#86efac
on-primary-fixed#0f5620
on-primary-fixed-variant#1a8a2f
secondary-fixed#dbeafe
secondary-fixed-dim#93c5fd
on-secondary-fixed#0c2d5c
on-secondary-fixed-variant#1e40af
tertiary-fixed#fef3c7
tertiary-fixed-dim#fcd34d
on-tertiary-fixed#78350f
on-tertiary-fixed-variant#b45309
background#ffffff
on-background#0f172a
surface-variant#e2e8f0

Typography

display
fontFamily: Inter · fontSize: 72px · fontWeight: 800 · lineHeight: 84px · letterSpacing: -0.04em
headline-lg
fontFamily: Inter · fontSize: 40px · fontWeight: 700 · lineHeight: 48px · letterSpacing: -0.02em
headline-md
fontFamily: Inter · fontSize: 28px · fontWeight: 700 · lineHeight: 36px · letterSpacing: -0.01em
title-lg
fontFamily: Inter · fontSize: 20px · fontWeight: 600 · lineHeight: 28px · letterSpacing: 0em
body-lg
fontFamily: Inter · fontSize: 18px · fontWeight: 400 · lineHeight: 28px · letterSpacing: 0em
body-md
fontFamily: Inter · fontSize: 16px · fontWeight: 400 · lineHeight: 24px · letterSpacing: 0em
label-md
fontFamily: Inter · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: Inter · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.02em

Design guidance

Overview

aaPanel is a technical infrastructure platform that democratizes server management through an intuitive, open-source control panel. The design system embraces **Technical Clarity**—a philosophy that prioritizes information hierarchy, scannable layouts, and purposeful use of color to guide users through complex server operations. The brand serves developers, system administrators, and hosting providers who demand both power and simplicity. The UI evokes confidence through clean typography (Inter at 72px for headlines, 16px for body), generous whitespace (24px gutters, 40px section spacing), and a signature green accent (#20a53a) that signals actionable elements and system health. Voice: direct, precise, and reassuring. Example: "Install aaPanel in one command. Manage 3,000,000+ servers worldwide."

Colors

The color system is built on a **light, neutral foundation** with a vibrant green accent that commands attention without overwhelming. Primary (#20a53a) is the brand's signature—used exclusively on CTAs ("Install for free" button), active navigation states, and success indicators. It conveys growth, reliability, and forward momentum. Secondary (#1863dc) provides a technical blue for informational elements, links, and secondary actions. Tertiary (#f59e0b) is reserved for warnings and cautionary states. The surface stack progresses from pure white (surface: #ffffff) through cool grays (surface-container: #e2e8f0, on-surface-variant: #475569) to support layering without visual noise. Error red (#dc2626) is used sparingly for destructive actions and critical alerts. All interactive elements us

Typography

The type system follows a **technical hierarchy** where Inter (a geometric sans-serif) is the sole typeface, ensuring consistency across all platforms. Display (72px, 800 weight, -0.04em tracking) anchors hero sections with maximum impact; Headline-lg (40px, 700 weight) breaks major sections; Headline-md (28px, 700 weight) introduces subsections. Body-lg (18px, 400 weight) is used for feature descriptions and marketing copy, while Body-md (16px, 400 weight) handles standard paragraph text. Label-md (14px, 600 weight, 0.01em tracking) is applied to buttons, form labels, and navigation items to ensure legibility at smaller sizes. All headline text uses -0.02em to -0.04em negative letter-spacing to tighten the visual presentation and convey technical precision. Small labels over busy backgrou

Layout

The layout system uses a **12-column grid** with a max-width of 1280px, ensuring content remains scannable on desktop while adapting fluidly to tablets. The spacing scale is semantic: 24px (md) is the standard gutter between sections, 40px (lg) separates major content blocks (hero to features, features to pricing), and 64px (xl) is reserved for page-level breaks. Containers are never full-width; they maintain 24px padding on either side on desktop, creating breathing room. The hero section uses a 2-column layout (text left, visual right) with the headline at 72px and supporting copy at 18px, stacked vertically with 24px between them. Feature cards are displayed in a 3-column grid on desktop, each card 340px wide with 24px gaps. Input fields and form elements use 40px height with 12px inter

Elevation & Depth

Depth is conveyed through **subtle, layered shadows** rather than bold contrast. The elevation system has three tiers: Level 1 (sm, 0 1px 2px rgba(0,0,0,0.06)) is applied to interactive elements like buttons and small cards to indicate they are clickable. Level 2 (md, 0 4px 12px rgba(0,0,0,0.08)) is used on larger cards and dropdowns to separate them from the background. Level 3 (lg, 0 15px 40px rgba(0,0,0,0.12)) is reserved for modals and floating panels (e.g., the AI Assistant float box at top: 180px, right: 20px). On hover, cards transition from sm to md shadow (200ms ease-in-out) to signal

Shapes

The shape philosophy is **Soft-Technical**: rounded corners are used purposefully to soften the interface without sacrificing clarity. Buttons and primary CTAs use 1rem (16px) border-radius, creating a friendly, approachable feel while maintaining a modern aesthetic. Input fields and form elements use 0.5rem (8px) border-radius for a tighter, more technical appearance. Cards and larger containers use 1.5rem (24px) border-radius to create visual breathing room and reduce the perception of density. Badges and status indicators use full (9999px) border-radius to create pill-shaped elements that a

Components

Action Elements Buttons are the primary mechanism for user intent. The primary button (button-primary) uses {colors.primary} (#20a53a) with white text, 16px 40px padding, and 1rem border-radius. On hover, the background darkens to #1a8a2f and a 0 0 5px rgba(32, 165, 58, 0.5) glow appears (transition: 200ms ease-in-out). The secondary button (button-secondary) has a transparent background with a 2px solid primary border; on hover, it fills with {colors.primary-container} (#f4faf5) while maintaining the border. Both buttons use {typography.label-md} (14px, 600 weight) for legibility and emphasis. The "Install for free" CTA on the hero uses button-primary with an icon (download arrow) to the left of the text, creating a strong visual anchor.

Containers & Surfaces Cards (card componen

Do's and Don'ts

**Do**

  • Do use the primary green (#20a53a) exclusively on CTAs and active states—it is the brand's signature and must remain distinctive.
  • Do maintain 24px gutters and 40px section spacing to ensure content remains scannable and not overwhelming.
  • Do apply the full 12-column grid with a 1280px max-width to keep layouts predictable and responsive.
  • Do use Inter at 72px (800 weight) for headlines and -0.04em letter-spacing to convey technical precision and confidence.
  • Do transition all interactive elements (buttons, cards, inputs) over 200ms with ease-in-out timing to signal responsiveness.
  • Do use {elevation.md} shadow (0 4px 12px rgba(0,0,0,0.08)) on hover to create subtle depth without visual noise.
  • Do apply 1px solid outline-variant borders on cards and inputs to create visual separation without harshness.

**Don't**

  • Don't use the primary green on non-interactive elements or backgrounds—it must remain reserved for actions and active states.
  • Don't apply shadows larger than {elevation.lg} (0 15px 40px rgba(0,0,0,0.12)) except on modals; excessive shadow creates visual clutter.
  • Don't use typefaces other than Inter; system fonts and serif fonts break the technical clarity of the brand.
  • Don't reduce padding below 12px on buttons or inputs; this compromises touch-friendliness and visual breathing room.
  • Don't use the error red (#dc2626) for non-critical elements; reserve it for destructive actions and genuine alerts.
  • Don't apply border-radius smaller than 0.25rem (4px) on any interactive element; it creates a harsh, dated appearance.
  • Don't mix elevation levels within a single section; maintain consistency so users understand the visual hierarchy.