A reusable component library built with the AEL design language â glassmorphism, #0074FF accents, and dark theme. Copy-paste ready for any project.
Live previews of all AEL Design System components
<button class="btn-primary">Primary</button><button class="btn-secondary">Secondary</button><button class="btn-ghost">Ghost</button><button class="btn-icon" aria-label="Search">...</button><input type="text" class="input" placeholder="Enter text..."><select class="select"><option>Option</option></select><textarea class="textarea" placeholder="Write..." rows="3"></textarea>Card content goes here with glass effect.
This card lifts on hover.
<div class="card glass"><div class="card-body"><h4>Title</h4><p>Content</p></div></div><span class="badge badge-primary">Primary</span><span class="tag">React</span><div class="spinner"></div><div class="dots"><span></span><span></span><span></span></div><div class="skeleton" style="width:200px;height:16px"></div><div class="toggle" role="switch" tabindex="0"><span></span></div><input type="range" class="range" min="0" max="100" value="50"><label class="checkbox"><input type="checkbox"><span class="checkmark"></span>Label</label><div class="alert alert-success"><strong>Success</strong> â Message</div>CSS custom properties for the AEL design language
: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 sizes, weights, and styles available
56px / Bold / Gradient36px / Bold / Gradient24px / Bold / #eef2ff18px / Bold / #eef2ffBody. Standard paragraph text for reading content across components and sections. This is the default body size.
15px / Regular / #9ab3e6Small. Secondary text, descriptions, and metadata across the UI.
13px / Regular / #9ab3e611px / Mono / #64748bGradient / #0074FF â #4d9bffCopy 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
*/
A reusable component library by AEL Digital Studio
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.
Ayman Elmasry
AEL Digital Studio
Version 1.0 â 2026
MIT License â Free for personal and commercial use