Design System

Config-driven architecture — 6 themes, 5 landing templates, 33+ block variants, and Magic UI animations.

LaunchFst uses a config-driven design architecture: swap a single value in lib/config/site.ts and every page reflects the change automatically. No file hunting, no component editing.

Theme Presets

6 built-in color presets using OKLCH CSS variables:

PresetPrimary HueBest For
teal200SaaS, productivity, dev tools
blue250Enterprise, finance, trust
purple285Creative, AI, design tools
orange45Marketplaces, food, energy
green155Health, sustainability, finance
rose350Social, lifestyle, fashion

Switch theme with one line in lib/config/site.ts:

export const siteConfig = {
  theme: "purple", // "teal" | "blue" | "purple" | "orange" | "green" | "rose"
}

See Themes for the full CSS variables reference and how to create custom themes.


Landing Templates

5 top-level page templates. Set landingTemplate to switch:

TemplateValueStyle
ClassicclassicMost flexible. Uses all heroStyle, featuresLayout, etc. options.
SaaSsaasFull-featured: bento features, marquee testimonials, browser mockup, pricing, FAQ.
StartupstartupClean minimal: badge hero, trusted-by strip, numbered how-it-works, pricing.
DevTooldevtoolTerminal aesthetic: code tabs, stats bar, monospace font, Aurora headline.
AgencyagencyPortfolio focus: split hero, showcase grid, featured testimonial pull-quote.
design: { landingTemplate: "saas" }

Header Styles

5 header variants, all sticky with scroll-based blur/shadow effects:

StyleValueDescription
DefaultdefaultLogo left, nav links center, CTA buttons right
CenteredcenteredLogo centered, nav wraps around it
MinimalminimalLogo left, single CTA + hamburger on all screen sizes
FloatingfloatingDetached pill floating below the top edge
BorderedborderedFull-width enterprise header with bottom border

All headers include: sticky positioning, mobile hamburger sheet, dynamic theme toggle, nav link filtering by feature flags.


Hero Styles

4 hero section layouts (used by the classic template):

StyleValueDescription
CenteredcenteredHeadline + CTAs centered, screenshot mockup below
SplitsplitText + CTAs on left, Safari/browser mockup on right
VideovideoPlay button overlay with video modal
ProductproductFloating feature cards around a dashboard preview

Hero Backgrounds

6 animated background presets:

BackgroundValueDescription
GridgridSubtle CSS grid lines fading from center
DotsdotsLow-opacity dot pattern (DotPattern component)
Gradientgradient3 layered gradient color blurs
ParticlesparticlesAnimated floating particles (Particles component)
Animated Gridanimated-gridMoving grid squares (AnimatedGridPattern component)
Light Rayslight-raysRadial light rays (LightRays component)
design: { heroBackground: "particles" }

Hero Headline Styles

5 text animation options for the hero headline highlight:

StyleValueEffect
GradientgradientText gradient using primary colors
AuroraauroraAnimated color-shifting aurora effect (AuroraText)
TypingtypingTypewriter animation (TypingAnimation)
Word Rotateword-rotateCycles through headlineWords array (WordRotate)
PlainplainNo animation, standard text

Hero CTA Button Styles

5 button styles for the primary CTA:

StyleValueDescription
GlowglowButton with primary-color glow shadow (default)
ShimmershimmerMagic UI ShimmerButton with animated shimmer
OutlineoutlineBordered button that fills on hover
GradientgradientGradient background with drop shadow
PillpillPill shape with circular arrow indicator

CTA Section Styles

5 bottom-of-page CTA section variants:

StyleValueDescription
CenteredcenteredFull-width centered headline + button
SplitsplitText + checklist on left, stats card on right
BannerbannerPrimary-colored full-width banner
CardcardCentered card with gradient border glow
MinimalminimalSimple inline text + link

4 styles for highlighting the recommended pricing tier:

StyleValue
Border Beamborder-beam
Shineshine
Neonneon
Glowglow

Block Variants

33+ swappable section variants. See Blocks for the full list.

SectionOptions
Hero4 variants
Featuresgrid, asymmetric, bento, tabs
Testimonialsmarquee, carousel, grid, featured
CTAcentered, split, banner, card, minimal
Hero Backgroundgrid, dots, gradient, particles, animated-grid, light-rays
Dashboard Widgets9 chart + stat variants

Magic UI Components

The following Magic UI / animated components are available in components/ui/:

ComponentFileUsed For
ShimmerButtonshimmer-button.tsxCTA button variant
AnimatedGradientTextanimated-gradient-text.tsxHero badge
NumberTickernumber-ticker.tsxAnimated counters
BlurFadeblur-fade.tsxScroll reveal animation
BorderBeamborder-beam.tsxPopular pricing card border
Marqueemarquee.tsxLogo cloud, testimonials
AuroraTextaurora-text.tsxHero headline variant
Safarisafari.tsxBrowser frame mockup
WordRotateword-rotate.tsxHero rotating word
TypingAnimationtyping-animation.tsxHero typing animation
ShineBordershine-border.tsxPricing card highlight
NeonGradientCardneon-gradient-card.tsxPricing card highlight
PulsatingButtonpulsating-button.tsxCTA button variant
AnimatedListanimated-list.tsxFeature list animation
Meteorsmeteors.tsxBackground decoration
Particlesparticles.tsxHero background
AnimatedGridPatternanimated-grid-pattern.tsxHero background
LightRayslight-rays.tsxHero background
AnimatedThemeToggleranimated-theme-toggler.tsxView Transitions theme toggle
ScrollProgressscroll-progress.tsxReading progress bar

Typography

Two fonts, configured via CSS variables — never use hardcoded font names:

  • --font-headingPlus Jakarta Sans — headings, labels, card titles
  • --font-bodyDM Sans — body text, UI copy

Apply via Tailwind: font-heading and font-body utility classes.

Do not use Inter, Roboto, or Arial — these are explicitly excluded from the design system.


Theme Toggle

Two styles for the dark/light mode toggle:

  • animated — Smooth circular reveal using the View Transitions API (AnimatedThemeToggler). Animates from the click point outward.
  • simple — Standard Sun/Moon icon swap (instant, no animation).
design: { themeToggle: "simple" } // or "animated"

Full Design Config Reference

// lib/config/site.ts
design: {
  landingTemplate: "classic",     // "classic" | "saas" | "startup" | "devtool" | "agency"
  heroStyle: "centered",          // "centered" | "split" | "video" | "product"
  headerStyle: "default",         // "default" | "centered" | "minimal" | "floating" | "bordered"
  heroBackground: "particles",    // "grid" | "dots" | "gradient" | "particles" | "animated-grid" | "light-rays"
  heroHeadline: "gradient",       // "gradient" | "aurora" | "typing" | "word-rotate" | "plain"
  heroCta: "shimmer",             // "glow" | "shimmer" | "outline" | "gradient" | "pill"
  heroScreenshot: "safari",       // "safari" | "browser" | "none"
  logoCloud: "marquee",           // "marquee" | "static" | "none"
  featuresLayout: "bento",        // "grid" | "asymmetric" | "bento" | "tabs"
  pricingPopular: "border-beam",  // "border-beam" | "shine" | "neon" | "glow"
  testimonials: "marquee",        // "marquee" | "carousel" | "grid" | "featured"
  sectionReveal: "blur-fade",     // "blur-fade" | "fade-up" | "none"
  ctaStyle: "banner",             // "centered" | "split" | "banner" | "card" | "minimal"
  themeToggle: "simple",          // "animated" | "simple"
}

Demo Mode — Explore freely. Some actions are restricted. demo@launchfst.dev / demo1234

Get LaunchFst →