This document provides a comprehensive guide to replicate the ProLevel Solutions design system on any website.
prolevel-ai-visibility/
├── src/
│ ├── assets/ # Static assets (logos, images)
│ │ └── logo/ # Brand logos
│ ├── components/ # React components
│ │ ├── ui/ # shadcn/ui base components + enhanced versions
│ │ ├── animations/ # Animation components
│ │ └── *.tsx # Page-specific components
│ ├── design-system/ # Design tokens and utilities
│ │ └── tokens.ts # Centralized design tokens
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utilities and helpers
│ ├── pages/ # Page components (React Router)
│ ├── App.tsx # Main app component with routes
│ ├── main.tsx # React entry point
│ └── index.css # Global styles and Tailwind directives
├── public/ # Public static files
│ └── lovable-uploads/ # Uploaded images and assets
├── tailwind.config.ts # Tailwind configuration
├── tsconfig.json # TypeScript configuration
└── vite.config.ts # Vite build configuration
// Primary Brand Colors
--primary: 0 100% 60% // Red (#FF3333)
--primary-foreground: 0 0% 100% // White text
// Gold/Amber Accents
--gold: 0 100% 60% // Gold accent
--gold-light: 0 100% 70% // Light gold
--gold-dark: 0 100% 50% // Dark gold
--gold-muted: 0 50% 50% // Muted gold
// Accessible Gold (AAA Compliance)
gold-accessible: hsl(0 100% 75%) // 7:1 contrast
gold-accessible-dark: hsl(0 100% 65%) // High contrast
// Semantic Colors
--background: 0 0% 0% // Pure black (#000000)
--foreground: 0 0% 100% // Pure white
--muted: 240 5% 26% // Dark gray
--muted-foreground: 240 5% 65% // Light gray text
--border: 240 6% 10% // Subtle borders// Red Brand Scale (50-900)
brand: {
50: '#fef2f2', 100: '#fee2e2', 200: '#fecaca',
300: '#fca5a5', 400: '#f87171', 500: '#ef4444',
600: '#dc2626', 700: '#b91c1c', 800: '#991b1b',
900: '#7f1d1d'
}
// Orange/Neutral Scale
brandOrange: {
50: '#fafafa', 100: '#f5f5f5', 200: '#e5e5e5',
300: '#d4d4d4', 400: '#a3a3a3', 500: '#737373',
600: '#525252', 700: '#404040', 800: '#262626',
900: '#000000'
}font-display: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif
font-sans: Inter, sans-serif// Headings
h1: text-3xl sm:text-4xl md:text-5xl lg:text-7xl // Main hero
h2: text-2xl sm:text-3xl md:text-4xl lg:text-5xl // Section titles
h3: text-xl sm:text-2xl md:text-3xl // Subsection titles
h4: text-lg sm:text-xl md:text-2xl // Card titles
// Body Text
base: text-sm md:text-base // Body text
large: text-base sm:text-lg md:text-xl // Large body
small: text-xs sm:text-sm // Small textlight: 300
normal: 400
medium: 500
semibold: 600
bold: 700
extrabold: 800spacing: {
0: '0px', 0.5: '2px', 1: '4px', 1.5: '6px',
2: '8px', 2.5: '10px', 3: '12px', 3.5: '14px',
4: '16px', 5: '20px', 6: '24px', 7: '28px',
8: '32px', 9: '36px', 10: '40px', 11: '44px',
12: '48px', 14: '56px', 16: '64px', 20: '80px',
24: '96px', 28: '112px', 32: '128px', 36: '144px',
40: '160px', 44: '176px', 48: '192px', 52: '208px',
56: '224px', 60: '240px', 64: '256px', 72: '288px',
80: '320px', 96: '384px'
}Mobile: px-4 (16px)
Tablet: px-6 (24px)
Desktop: px-8 (32px)
Large: px-12 (48px)Hero Section: pt-24 pb-16 md:py-32
Standard Section: py-12 md:py-16 lg:py-20
Tight Section: py-8 md:py-12elevation-1: '0 1px 2px 0 rgba(0, 0, 0, 0.05)' // Subtle lift
elevation-2: '0 4px 6px -1px rgba(0, 0, 0, 0.1)' // Standard card
elevation-3: '0 10px 15px -3px rgba(0, 0, 0, 0.1)' // Hovered card
elevation-4: '0 20px 25px -5px rgba(0, 0, 0, 0.1)' // Modal/dialog
elevation-5: '0 25px 50px -12px rgba(0, 0, 0, 0.25)' // Maximum depthglow-subtle: '0 0 20px hsl(0 100% 60% / 0.2)'
glow-moderate: '0 0 30px hsl(0 100% 60% / 0.3)'
glow-intense: '0 0 40px hsl(0 100% 60% / 0.4)'
glow-extreme: '0 0 60px hsl(0 100% 60% / 0.5)'focus-default: '0 0 0 2px hsl(var(--primary)), 0 0 0 4px hsl(var(--primary) / 0.3)'
focus-inset: 'inset 0 0 0 2px hsl(var(--primary))'
focus-large: '0 0 0 3px hsl(var(--primary)), 0 0 0 6px hsl(var(--primary) / 0.3)'Variants: default | gradient | outline | ghost | glow
Sizes: sm | md | lg | xl
Props: icon, iconPosition (left|right), fullWidth, loadingUsage:
<EnhancedButton variant="gradient" size="lg" icon={<Rocket />} iconPosition="right">
Get Started
</EnhancedButton>Variants: default | glass | gradient | elevated | bordered
Features: Hover effects, animations, backdrop blurUsage:
<EnhancedCard variant="glass">
<EnhancedCardHeader>
<EnhancedCardTitle>Title</EnhancedCardTitle>
</EnhancedCardHeader>
<EnhancedCardContent>Content</EnhancedCardContent>
</EnhancedCard>Props: label, value, icon, color, trend, suffix, prefix
Features: Animated numbers, trend indicatorsProps: badge, badgeIcon, title, description, align, gradientProps: columns (1-4), gap, features[]
Responsive: Stacks on mobile, grid on desktopProps: direction (up|down|left|right), delay, children
Triggers: On viewport intersectionFixed progress bar at top showing scroll percentageAnimated background gradient overlayProps: particleCount, speed, opacity
Features: Adaptive performance, mobile optimizationMinimum: 44px × 44px
Recommended: 48px × 48px
Large elements: 56px × 56px
Classes:
.touch-target: min-w-[44px] min-h-[44px]
.touch-target-lg: min-w-[48px] min-h-[48px]
.touch-target-xl: min-w-[56px] min-h-[56px]// Standard pattern
grid-cols-1 md:grid-cols-2 lg:grid-cols-3
// Common layouts
grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 // 4-column
grid-cols-2 lg:grid-cols-4 // Stats
grid-cols-1 md:grid-cols-2 // Two-columnClasses to add:
- break-words
- hyphens-auto
- line-clamp-{n}
- truncate// Mobile-first buttons
w-full sm:w-auto // Full width on mobile
min-h-[44px] md:min-h-[48px] // Touch-friendly height// Fades
fade-in: 0.4s ease-out
fade-in-up: 0.5s ease-out
fade-out: 0.5s ease-out
// Scales
scale-in: 0.3s ease-out
pulse-zoom: 2s ease-in-out infinite
// Slides
slide-in-up: 0.3s ease-out
// Marquee (logos, text)
marquee: 30s linear infinite
marquee-slow: 48s linear infinite
marquee-fast: 10s linear infinite
marquee-slower: 120s linear infinite
// Special effects
shimmer: 2s linear infinite
float: 6s ease-in-out infinite
pulse-glow: 3s ease-in-out infinite
particle-rise: var(--duration, 15s) ease-in-out infiniteease-smooth: cubic-bezier(0.4, 0, 0.2, 1)
ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55)
ease-elastic: cubic-bezier(0.68, -0.6, 0.32, 1.6).gradient-text: Linear gradient text effect
.gradient-text-shine: Animated gradient text
.gradient-gold: Gold gradient background
.gradient-gold-radial: Radial gold gradient.glass-card: backdrop-blur-md bg-white/5 border border-white/10
.glass-surface: backdrop-blur-lg bg-black/40.tap-feedback: Active scale down effect
.hover-lift: Hover translate up
.hover-glow: Hover glow effect
.touch-manipulation: Optimizes touch events.sr-only: Screen reader only content
.focus-visible: ring-2 ring-primary.safe-bottom: pb-safe
.pb-safe: padding-bottom: calc(0.5rem + env(safe-area-inset-bottom))
.pt-safe: padding-top: calc(0.5rem + env(safe-area-inset-top))<>
<SEOHead title="Page Title" description="..." url="..." />
<div className="min-h-screen flex flex-col bg-black relative">
<ScrollProgress />
<EnhancedParticles />
<AnimatedGradient />
<Navbar />
<main className="flex-1 relative z-10">
{/* Hero Section */}
<section className="pt-24 pb-16 md:py-32 px-4">
<div className="container mx-auto">
<SectionHeader
badge="Badge Text"
badgeIcon={<Icon />}
title="Main Title"
description="Description"
align="center"
gradient={true}
/>
</div>
</section>
{/* Content Sections */}
<ScrollReveal direction="up" delay={0.2}>
<section className="py-12 md:py-16 px-4">
{/* Section content */}
</section>
</ScrollReveal>
{/* CTA Section */}
<section className="py-16 px-4">
<div className="container mx-auto max-w-4xl text-center">
{/* Call to action */}
</div>
</section>
</main>
<Footer />
<MobileStickyFooter />
<MobileBottomNav />
</div>
</>max-w-screen-sm: 640px // Small content
max-w-screen-md: 768px // Medium content
max-w-4xl: 896px // Standard content
max-w-6xl: 1152px // Wide content
max-w-7xl: 1280px // Full-width sections// Stats Grid (4 columns)
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 md:gap-6">
// Feature Grid (3 columns)
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 md:gap-8">
// Two Column Layout
<div className="grid grid-cols-1 md:grid-cols-2 gap-8 md:gap-12">
// Masonry Grid (varied heights)
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 auto-rows-auto">Common Icons:
import {
Rocket, Target, Award, CheckCircle2, TrendingUp,
Sparkles, Eye, Cpu, Headphones, ShoppingCart,
Mail, Phone, MapPin, ExternalLink, ArrowRight,
Menu, X, Home, User, Settings, Search
} from "lucide-react";Icon Sizing:
Small: w-4 h-4 (16px)
Medium: w-5 h-5 (20px)
Large: w-6 h-6 (24px)
XLarge: w-8 h-8 (32px)
Hero: w-12 h-12 (48px)
// Responsive
w-4 h-4 sm:w-5 sm:h-5 md:w-6 md:h-6- Logo (left)
- Navigation links (center)
- CTA button (right)
- Sticky on scroll with backdrop blur
- Height: h-16 md:h-20
- Hamburger Menu: Full-screen drawer overlay
- MobileBottomNav: Sticky bottom navigation (< 768px)
- 4 primary navigation items
- 56px touch targets
- Active state indicators
- Safe area support
- 5-column grid on desktop → 2 columns tablet → 1 column mobile
- Newsletter signup
- Social media icons (48px touch targets)
- Back-to-top button
// Glass card with hover lift
className="glass-card hover:scale-105 hover:shadow-glow-moderate transition-all duration-300"
// Elevated card with glow
className="bg-black/40 border border-primary/20 hover:border-primary/40 hover:shadow-elevation-3"// Primary CTA
<EnhancedButton variant="gradient" size="xl" fullWidth>
// Secondary action
<EnhancedButton variant="outline" size="lg">
// Ghost action
<EnhancedButton variant="ghost" size="md">// Status badge
<Badge variant="default">Active</Badge>
// Category badge
<Badge variant="outline">Technology</Badge>
// Count badge
<Badge variant="secondary">12</Badge>// Lazy load heavy components
const AIVisibility = lazy(() => import("@/pages/AIVisibility"));
const Analytics = lazy(() => import("@/pages/Analytics"));// Lazy loading
<img loading="lazy" ... />
// Responsive images
<img
src="image.jpg"
srcSet="image-320w.jpg 320w, image-640w.jpg 640w"
sizes="(max-width: 640px) 100vw, 640px"
/>// Adaptive particle count
Mobile: 24 particles (20% of base)
Tablet: 60 particles (50% of base)
Desktop: 120 particles (100% of base)
// Respects prefers-reduced-motion<SEOHead
title="Page Title | ProLevel Solutions"
description="Page description (155-160 chars)"
url="https://prolevelsolutions.com/page"
keywords="keyword1, keyword2, keyword3"
ogImage="/lovable-uploads/og-image.jpg"
/><header> - Site header with navigation
<nav> - Navigation menus
<main> - Main content area
<article> - Self-contained content
<section> - Thematic groupings
<aside> - Sidebar content
<footer> - Site footer- All interactive elements have min 44px touch targets
- Focus states visible on all interactive elements
- ARIA labels on icon-only buttons
- Semantic HTML structure (header, nav, main, footer)
- Alt text on all images
- Form labels properly associated with inputs
- Color contrast ≥ 7:1 for AAA compliance
- Keyboard navigation works throughout
- Skip to content link
- Heading hierarchy (h1 → h2 → h3)
- Error messages announced to screen readers
- Loading states communicated
- Landmark regions defined (role attributes)
export default defineConfig({
plugins: [react()],
build: {
outDir: 'dist',
sourcemap: false,
minify: 'terser',
rollupOptions: {
output: {
manualChunks: {
vendor: ['react', 'react-dom', 'react-router-dom'],
ui: ['@radix-ui/react-accordion', '@radix-ui/react-dialog']
}
}
}
}
});content: [
"./pages/**/*.{ts,tsx}",
"./components/**/*.{ts,tsx}",
"./app/**/*.{ts,tsx}",
"./src/**/*.{ts,tsx}",
]"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-router-dom": "^6.27.0""tailwindcss": "^3.4.1",
"@radix-ui/react-*": "Latest",
"framer-motion": "^11.11.17",
"lucide-react": "^0.462.0",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
"tailwind-merge": "^2.5.4""react-hook-form": "^7.54.0",
"zod": "^3.23.8",
"@hookform/resolvers": "^3.9.1"- Install Dependencies
npm install- Copy Design System Files
tailwind.config.ts- Full configurationsrc/index.css- Global styles and utilitiessrc/design-system/tokens.ts- Design tokenssrc/components/ui/*- All UI components
- Copy Enhanced Components
src/components/ui/enhanced-button.tsxsrc/components/ui/enhanced-card.tsxsrc/components/ui/stats-card.tsxsrc/components/ui/section-header.tsxsrc/components/animations/*- All animation components
- Use Page Templates
- Copy structure from
src/pages/Index.tsxfor homepage - Use section patterns from other pages
- Maintain mobile-first responsive approach
- Apply Mobile Optimizations
- All grids:
grid-cols-1 md:grid-cols-{n} - All text: Responsive sizing
text-sm md:text-base - All buttons:
min-h-[44px]+w-full sm:w-auto - All spacing:
py-8 md:py-12patterns
<section className="pt-24 pb-16 md:py-32 px-4">
<div className="container mx-auto max-w-6xl text-center">
<SectionHeader
badge="Welcome"
badgeIcon={<Sparkles className="w-4 h-4" />}
title="Transform Your Business with AI"
description="Enterprise-grade AI solutions that deliver measurable results"
align="center"
gradient={true}
/>
<div className="flex flex-col sm:flex-row gap-4 justify-center mt-8">
<EnhancedButton variant="gradient" size="xl" icon={<Rocket />}>
Get Started
</EnhancedButton>
<EnhancedButton variant="outline" size="xl">
Learn More
</EnhancedButton>
</div>
</div>
</section><section className="py-12 md:py-16 px-4">
<div className="container mx-auto max-w-6xl">
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 md:gap-6">
<StatsCard
label="Projects Completed"
value={120}
icon={CheckCircle2}
color="text-green-500"
trend={{ value: 15, direction: "up", label: "this month" }}
/>
<StatsCard
label="Client Satisfaction"
value={100}
suffix="%"
icon={Award}
color="text-gold"
/>
</div>
</div>
</section><section className="py-16 px-4">
<div className="container mx-auto max-w-7xl">
<SectionHeader
badge="Features"
title="Why Choose Us"
description="Everything you need to succeed"
align="center"
/>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 md:gap-8 mt-12">
{features.map((feature, index) => (
<EnhancedCard key={index} variant="glass">
<EnhancedCardHeader>
<div className="flex items-center gap-4">
<div className="p-3 bg-primary/20 rounded-lg">
<feature.icon className="w-6 h-6 text-primary" />
</div>
<EnhancedCardTitle>{feature.title}</EnhancedCardTitle>
</div>
</EnhancedCardHeader>
<EnhancedCardContent>
<p className="text-sm md:text-base text-muted-foreground">
{feature.description}
</p>
</EnhancedCardContent>
</EnhancedCard>
))}
</div>
</div>
</section>- Minimum size: 120px width
- Clear space: Equal to height of logo
- Backgrounds: White or dark (black, dark gray)
- Color variations: Full color, white, black
- Professional: Enterprise-grade solutions
- Innovative: Cutting-edge AI technology
- Results-Driven: Measurable business impact
- Accessible: Easy to understand technical concepts
- Modern, clean, high-tech
- Dark backgrounds with vibrant accents
- Gradients and glows for emphasis
- Abstract tech patterns and particles
This documentation provides everything needed to replicate the ProLevel Solutions design system on any website. All components, patterns, and optimizations are production-ready and mobile-optimized.