Design System

Full Logo (Dark Background)

AppMake logo dark

/logo-dark.svg · mix-blend-mode: screen · Text: #EBEDF2

Full Logo (Light Background)

AppMake logo light

/logo-light.svg · mix-blend-mode: multiply · Text: #1E2028

Icon Only

AppMake icon dark

icon-dark.svg

AppMake icon light

icon-light.svg

AppMake favicon

favicon.svg (32px)

Logo Anatomy

The AppMake icon consists of four overlapping circles with blend modes:

#EC4899
#6366F1
#F59E0B
#EC4899 @ 68%

Dark variant uses mix-blend-mode: screen, light variant uses mix-blend-mode: multiply. Wordmark set in DM Sans, 48px, weight 500, letter-spacing -2.

Colors

CSS custom properties used throughout the app. Shown in light and dark mode.

Theme Colors (CSS Variables)

Background

--background

Foreground

--foreground

Primary

--primary

Secondary

--secondary

Muted

--muted

Accent

--accent

Destructive

--destructive

Border

--border

Card

--card

Popover

--popover

Input

--input

Ring

--ring

Chart Colors

Chart 1

--chart-1

Chart 2

--chart-2

Chart 3

--chart-3

Chart 4

--chart-4

Chart 5

--chart-5

Dashboard Colors

Deep Purple

#1a0533

Dark Navy

#0a1628

Hot Pink

#ff1493

Deep Pink

#c2185b

Typography

Custom font system: Inter Tight (primary), Inter (body), Founders Grotesk X Condensed (display), Caveat (handwriting), Geist Mono (code).

Font Families

Inter Tight — Primary / Default (font-sans)

The quick brown fox jumps over the lazy dog

Light 300

Regular 400

Medium 500

Semibold 600

Bold 700

Inter — Body text (font-body)

The quick brown fox jumps over the lazy dog

Light 300

Regular 400

Medium 500

Semibold 600

Bold 700

Founders Grotesk X Condensed — Display headlines (font-display)

The quick brown fox

Caveat — Handwriting accents (font-hand)

The quick brown fox jumps over the lazy dog

Regular 400

Semibold 600

Bold 700

Geist Mono — Code / monospace (font-mono)

The quick brown fox jumps over the lazy dog

Font Usage Guide

ClassFontCSS VariableUse Case
font-sansInter Tight--font-sansDefault UI, headings, nav, buttons
font-bodyInter--font-bodyLong-form body text, paragraphs
font-displayFounders Grotesk X Condensed--font-displayHero headlines, large display text (uppercase)
font-handCaveat--font-handHandwriting accents, annotations
font-monoGeist Mono--font-monoCode, file paths, terminal

Heading Sizes

Display — font-display uppercase (hero)

Display

6xl (60px)

Heading 6XL

5xl (48px)

Heading 5XL

4xl (36px)

Heading 4XL

3xl (30px)

Heading 3XL

2xl (24px)

Heading 2XL

xl (20px)

Heading XL

lg (18px)

Heading LG

base (16px)

Body text — base size

sm (14px)

Small text

Text Styles

Default foreground text (Inter Tight)

Muted foreground text

Body text in Inter (font-body)

Display text (font-display)

Handwritten accent (font-hand)

Inline code (font-mono)

Buttons

All button variants and sizes.

Variants

Sizes

Icon Buttons

With Icons

States

PropTypeDefaultDescription
variant"default" | "destructive" | "outline" | "secondary" | "ghost" | "link""default"Visual style of the button
size"default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg""default"Size of the button
asChildbooleanfalseMerge props onto child element instead of rendering a button

Inputs

Text inputs, textareas, and the dashboard glassmorphism chat input.

Standard Input

Textarea

Dashboard Chat Input (Glassmorphism)

border-white/15 · bg-white/5 · backdrop-blur-md

PropTypeDefaultDescription
typestring"text"Input type (text, password, email, etc.)
placeholderstringPlaceholder text
disabledbooleanfalseDisable the input

Cards

Standard shadcn Card and dashboard glassmorphism project card.

Standard Card

Card Title
Card description with supporting text.

This is the card content area. You can put any content here.

Dashboard Project Card (Glassmorphism)

Todo App

2h ago

Dashboard

2h ago

border-white/10 · bg-white/5 · backdrop-blur-sm

PropTypeDefaultDescription
CardHeadercomponentContains title, description, and optional action
CardTitlecomponentThe card heading
CardDescriptioncomponentSupporting text below the title
CardActioncomponentAction slot in the header, auto-positioned top-right
CardContentcomponentMain content area
CardFootercomponentFooter area with flex layout

Avatars

Avatar with image fallback, initials, sizes, badges, and groups.

Sizes

SM

sm

DF

default

LG

lg

With Image & Fallback

CNABJD

With Badge

ONPR

Avatar Group

ABC
+3
PropTypeDefaultDescription
size"default" | "sm" | "lg""default"Avatar size (6/8/10)
AvatarImagecomponentImage that auto-hides on error
AvatarFallbackcomponentShown while image loads or on error
AvatarBadgecomponentSmall status indicator dot
AvatarGroupcomponentOverlapping avatar stack

Tabs

Tab components with default and line variants.

Default Variant

Account settings content goes here.

Line Variant

Recently viewed projects.

Dashboard ProjectTabs

PropTypeDefaultDescription
variant (TabsList)"default" | "line""default"Visual style: pill background or underline indicator
orientation"horizontal" | "vertical""horizontal"Layout direction
defaultValuestringInitially active tab value

Standard Dropdown

Workspace Dropdown (Dashboard Style)

PropTypeDefaultDescription
align"start" | "center" | "end""center"Alignment relative to trigger
sideOffsetnumber4Distance from the trigger
variant (item)"default" | "destructive""default"Visual style of menu item
insetbooleanfalseAdd left padding for icon alignment

Dashboard Components

Custom components used in the main dashboard.

MeshGradientBackground

CSS fallback shown — WebGL version uses @paper-design/shaders-react

Colors: #1a0533, #0a1628, #ff1493, #c2185b · Speed: 0.3 · Bottom fade overlay for smooth transition

TypingHeading

Props: name (string) · 40ms typing interval · Blinking cursor pulses when complete

DashboardChatInput

Build a todo app with drag-and-drop...

Rotating placeholders · Auto-resize textarea (max 160px) · Enter to submit, Shift+Enter for newline

ProjectTabs

3 tabs: Recently viewed, My projects, Templates · Grid: 2 cols → 3 → 4 · Time-ago formatting

Animations

Keyframe animations defined in globals.css.

shimmer

animation: shimmer 2s infinite

fadeInUp

I fade in and up!

animation: fadeInUp 500ms ease-out

bounce

animation: bounce 1.2s infinite (staggered 0.15s)

slideIn

I slide in from left!

animation: slideIn 300ms ease-out

logoPulse

A

animation: logoPulse 2s ease-in-out infinite

gradient-x

animation: gradient-x 3s ease infinite

AnimationKeyframesUse Case
shimmertranslateX(-100% → 100%)Loading skeleton placeholders
gradient-xbackground-position 0% → 100% → 0%Animated gradient backgrounds
fadeInUpopacity 0→1, translateY(6px→0)Content entry animations
bouncetranslateY(0→-4px→0)Typing dots, attention indicators
slideIntranslateX(-100%→0)Mobile sidebar entrance
logoPulsescale(1→1.08→1), opacity(0.8→1→0.8)Logo / loading indicator