v1.0 — AEL Studio

AEL DesignSystem

A reusable component library built with the AEL design language — glassmorphism, #0074FF accents, and dark theme. Copy-paste ready for any project.

🧩12Components
🎨40+Variants
đŸ“Ļ0Dependencies
⚡1CSS File
BadgeTag
Browse Components
🧩 Components

Component Library

Live previews of all AEL Design System components

Primary Button

<button class="btn-primary">Primary</button>

Secondary Button

<button class="btn-secondary">Secondary</button>

Ghost Button

<button class="btn-ghost">Ghost</button>

Icon Button

<button class="btn-icon" aria-label="Search">...</button>

Text Input

<input type="text" class="input" placeholder="Enter text...">

Select

<select class="select"><option>Option</option></select>

Textarea

<textarea class="textarea" placeholder="Write..." rows="3"></textarea>

Glass Card

Card Title

Card content goes here with glass effect.

Hover Card

This card lifts on hover.

<div class="card glass"><div class="card-body"><h4>Title</h4><p>Content</p></div></div>

Badges

DefaultPrimarySuccessWarningDangerPremium
<span class="badge badge-primary">Primary</span>

Tags

ReactTypeScriptCSSNode.js
<span class="tag">React</span>

Spinner

<div class="spinner"></div>

Dots

<div class="dots"><span></span><span></span><span></span></div>

Skeleton

<div class="skeleton" style="width:200px;height:16px"></div>

Toggle Switch

<div class="toggle" role="switch" tabindex="0"><span></span></div>

Range Slider

<input type="range" class="range" min="0" max="100" value="50">

Checkbox & Radio

<label class="checkbox"><input type="checkbox"><span class="checkmark"></span>Label</label>

Navbar (reference)

This page uses the AEL Navbar — scroll up to see it
<div class="nav-tabs"><button class="nav-tab active">Tab</button></div>

Alerts

Info — This is an informational message
Success — Operation completed
Warning — Check your input
Error — Something went wrong
<div class="alert alert-success"><strong>Success</strong> — Message</div>
🎨 Colors

Color System

CSS custom properties for the AEL design language

Usage

:root {
  --primary: #0074FF;
  --primary-dark: #0052b3;
  --primary-light: #4d9bff;
  --gold: #ffd700;
  --success: #10b981;
  --bg-deep: #000;
  --bg-card: rgba(5,12,24,.7);
  --text-primary: #eef2ff;
  --text-secondary: #9ab3e6;
  --text-muted: #64748b;
}
🔤 Typography

Typography Scale

Font sizes, weights, and styles available

H1. Hero

56px / Bold / Gradient

H2. Section Title

36px / Bold / Gradient

H3. Card Title

24px / Bold / #eef2ff

H4. Component Title

18px / Bold / #eef2ff

Body. Standard paragraph text for reading content across components and sections. This is the default body size.

15px / Regular / #9ab3e6

Small. Secondary text, descriptions, and metadata across the UI.

13px / Regular / #9ab3e6
Mono. Code, stats, badges, technical info.11px / Mono / #64748b
Gradient Text — for hero titles and highlightsGradient / #0074FF → #4d9bff
đŸ“Ļ Code

Quick Start

Copy the complete CSS to use the AEL Design System

/* AEL Design System v1.0 — Paste this CSS into your project */
:root {
  --primary: #0074FF;  --primary-dark: #0052b3;
  --primary-light: #4d9bff;  --gold: #ffd700;
  --success: #10b981;  --bg-deep: #000;
  --bg-card: rgba(5,12,24,.7);  --text-primary: #eef2ff;
  --text-secondary: #9ab3e6;  --text-muted: #64748b;
  --font-mono: 'SF Mono','Fira Code',monospace;
  --font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
}
.glass { background: var(--bg-card); backdrop-filter: blur(20px) saturate(1.4); border: 1px solid rgba(0,116,255,.25); }
.btn-primary, .btn-secondary, .btn-ghost { padding: 10px 24px; border-radius: 40px; font-family: var(--font-mono); font-size: 12px; cursor: pointer; transition: all .2s; border: 1px solid var(--border-color); }
.btn-primary { background: var(--primary); color: #fff; border: none; }
.btn-primary:hover { box-shadow: 0 0 30px rgba(0,116,255,.25); transform: translateY(-1px); }
.btn-secondary { background: transparent; color: var(--text-primary); }
.btn-secondary:hover { border-color: var(--primary); }
.btn-ghost { background: transparent; color: var(--text-muted); border-color: transparent; }
.btn-ghost:hover { color: var(--text-primary); background: rgba(255,255,255,.05); }
.btn-icon { width: 38px; height: 38px; border-radius: 10px; border: 1px solid var(--border-color); background: transparent; color: var(--text-muted); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all .2s; }
.btn-icon:hover { border-color: var(--primary); color: var(--text-primary); }
.input { background: rgba(1,5,14,.7); border: 1px solid var(--border-color); color: var(--text-primary); padding: 10px 14px; border-radius: 8px; font-family: var(--font-sans); font-size: 13px; outline: none; width: 100%; transition: border-color .2s; }
.input:focus { border-color: var(--primary); }
.select { background: rgba(1,5,14,.7); border: 1px solid var(--border-color); color: var(--text-primary); padding: 10px 14px; border-radius: 8px; font-family: var(--font-mono); font-size: 12px; cursor: pointer; outline: none; }
.select:focus { border-color: var(--primary); }
.textarea { background: rgba(1,5,14,.7); border: 1px solid var(--border-color); color: var(--text-primary); padding: 10px 14px; border-radius: 8px; font-family: var(--font-sans); font-size: 13px; outline: none; width: 100%; resize: vertical; transition: border-color .2s; }
.textarea:focus { border-color: var(--primary); }
.card { padding: 20px; border-radius: 16px; }
.card-hover { transition: all .3s; }
.card-hover:hover { transform: translateY(-4px); border-color: var(--primary); }
.card-body h4 { font-size: 16px; font-weight: bold; color: var(--text-primary); margin-bottom: 8px; }
.card-body p { font-size: 13px; color: var(--text-secondary); line-height: 1.6; }
.badge { padding: 4px 12px; border-radius: 12px; font-family: var(--font-mono); font-size: 10px; background: rgba(255,255,255,.08); color: var(--text-muted); }
.badge-primary { background: rgba(0,116,255,.15); color: var(--primary-light); }
.badge-success { background: rgba(16,185,129,.15); color: var(--success); }
.badge-warning { background: rgba(255,215,0,.15); color: var(--gold); }
.badge-danger { background: rgba(239,68,68,.15); color: #ef4444; }
.badge-gold { background: rgba(255,215,0,.15); color: var(--gold); border-color: rgba(255,215,0,.3); }
.tag { padding: 3px 10px; border-radius: 12px; font-family: var(--font-mono); font-size: 10px; background: rgba(0,116,255,.1); color: var(--primary-light); }
.spinner { width: 24px; height: 24px; border: 2px solid var(--border-color); border-top-color: var(--primary); border-radius: 50%; animation: spin .6s linear infinite; }
.spinner-sm { width: 16px; height: 16px; border-width: 2px; }
.spinner-lg { width: 36px; height: 36px; border-width: 3px; }
@keyframes spin { to { transform: rotate(360deg); } }
.dots { display: flex; align-items: center; gap: 4px; }
.dots span { width: 8px; height: 8px; border-radius: 50%; background: var(--text-muted); animation: dot-bounce 1.4s infinite; }
.dots span:nth-child(2) { animation-delay: .2s; }
.dots span:nth-child(3) { animation-delay: .4s; }
@keyframes dot-bounce { 0%,60%,100% { transform: translateY(0); } 30% { transform: translateY(-6px); } }
.skeleton { background: linear-gradient(90deg, rgba(255,255,255,.06) 25%, rgba(255,255,255,.12) 50%, rgba(255,255,255,.06) 75%); background-size: 200% 100%; animation: shimmer 1.5s infinite; border-radius: 6px; }
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
.toggle { width: 44px; height: 24px; border-radius: 12px; background: rgba(255,255,255,.15); cursor: pointer; position: relative; transition: background .2s; }
.toggle.on { background: var(--primary); }
.toggle span { position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: transform .2s; }
.toggle.on span { transform: translateX(20px); }
.range { -webkit-appearance: none; appearance: none; width: 100%; height: 6px; border-radius: 3px; background: rgba(255,255,255,.1); outline: none; cursor: pointer; }
.range::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%; background: var(--primary); cursor: pointer; border: 2px solid #000; box-shadow: 0 0 10px rgba(0,116,255,.25); }
.checkbox, .radio { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: 13px; color: var(--text-secondary); }
.checkbox input, .radio input { display: none; }
.checkmark, .radiomark { width: 18px; height: 18px; border-radius: 4px; border: 2px solid var(--border-color); display: flex; align-items: center; justify-content: center; transition: all .2s; flex-shrink: 0; }
.radiomark { border-radius: 50%; }
.checkbox input:checked + .checkmark { background: var(--primary); border-color: var(--primary); }
.checkbox input:checked + .checkmark::after { content: ''; width: 6px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); margin-top: -2px; }
.radio input:checked + .radiomark { border-color: var(--primary); }
.radio input:checked + .radiomark::after { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--primary); }
.nav-tabs { display: flex; gap: 4px; }
.nav-tab { padding: 6px 14px; border-radius: 20px; border: none; background: transparent; color: var(--text-muted); font-family: var(--font-mono); font-size: 11px; cursor: pointer; transition: all .2s; }
.nav-tab:hover { color: var(--text-primary); background: rgba(0,116,255,.1); }
.nav-tab.active { color: var(--primary); background: rgba(0,116,255,.1); }
.alert { padding: 12px 16px; border-radius: 10px; font-size: 13px; color: var(--text-secondary); background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); }
.alert-success { background: rgba(16,185,129,.1); border-color: rgba(16,185,129,.2); color: #34d399; }
.alert-warning { background: rgba(255,215,0,.1); border-color: rgba(255,215,0,.2); color: #fbbf24; }
.alert-danger { background: rgba(239,68,68,.1); border-color: rgba(239,68,68,.2); color: #f87171; }
.text-gradient { background: linear-gradient(135deg, #0074FF, #4d9bff); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
<!DOCTYPE html>
<html lang="en" data-theme="dark">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>My AEL Project</title>
  <link rel="stylesheet" href="ael_design_system.css">
</head>
<body>
  <div class="container">
    <h1 class="text-gradient">Hello, AEL</h1>
    <button class="btn-primary">Get Started</button>
  </div>
</body>
</html>
/* Option 1: Download ael_design_system.css */
<link rel="stylesheet" href="ael_design_system.css">

/* Option 2: Copy the CSS variables into your project */
/* Option 3: Use the AEL CDN (coming soon) */

/* Required HTML structure:
   - Wrap content in .container for max-width
   - Use .glass for glassmorphism effects
   - Add data-theme="dark" to <html> for dark mode
*/
â„šī¸ About

About AEL Design System

A reusable component library by AEL Digital Studio

📋 Overview

AEL Design System is a zero-dependency CSS component library following the AEL design language — dark glassmorphism, #0074FF accents, and monospace typography. Ready to use in any web project.

⚡ Features

  • 12 components with 40+ variants
  • Zero JavaScript dependencies
  • CSS custom properties for theming
  • Dark theme optimized
  • Copy-paste ready code snippets
  • Consistent glassmorphism design

🛠 Tech Stack

  • HTML5 — Semantic structure
  • CSS3 — Custom properties, flexbox, grid, animations
  • JavaScript — Vanilla JS for interactivity (optional)

👤 Author

Ayman Elmasry
AEL Digital Studio

Version 1.0 — 2026

MIT License — Free for personal and commercial use