mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-14 23:26:39 +03:00
The skill sync wipes .claude/skills/ and re-copies from dist, deleting the generated browser script. Moved build-browser-detector.js to run AFTER the sync. Dev server's /js/* route now falls through to .claude/skills/critique/scripts/ for built artifacts. All fixture HTML references use /js/detect-antipatterns-browser.js (clean URL). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
321 lines
7.5 KiB
HTML
321 lines
7.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Anti-Pattern: Lazy "Cool" Design</title>
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
<style>
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
font-family: 'Inter', sans-serif;
|
|
min-height: 100vh;
|
|
background: #0a0a0a;
|
|
padding: 40px;
|
|
}
|
|
|
|
.container {
|
|
max-width: 960px;
|
|
width: 100%;
|
|
margin: 0 auto;
|
|
background: linear-gradient(135deg, #0f0f23 0%, #0a0a1a 100%);
|
|
border-radius: 24px;
|
|
padding: 48px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* Glow orbs in background */
|
|
.glow-orb {
|
|
position: absolute;
|
|
border-radius: 50%;
|
|
filter: blur(100px);
|
|
opacity: 0.4;
|
|
}
|
|
|
|
.glow-1 {
|
|
width: 400px;
|
|
height: 400px;
|
|
background: #00ffff;
|
|
top: -100px;
|
|
right: -100px;
|
|
}
|
|
|
|
.glow-2 {
|
|
width: 300px;
|
|
height: 300px;
|
|
background: #ff00ff;
|
|
bottom: -50px;
|
|
left: -50px;
|
|
}
|
|
|
|
/* Content */
|
|
.content {
|
|
position: relative;
|
|
z-index: 1;
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
/* Nav with glassmorphism */
|
|
nav {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 48px;
|
|
background: rgba(255, 255, 255, 0.05);
|
|
backdrop-filter: blur(20px);
|
|
-webkit-backdrop-filter: blur(20px);
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
border-radius: 16px;
|
|
padding: 16px 24px;
|
|
}
|
|
|
|
.logo {
|
|
font-family: 'JetBrains Mono', monospace;
|
|
font-size: 20px;
|
|
font-weight: 700;
|
|
color: #00ffff;
|
|
text-shadow: 0 0 20px rgba(0, 255, 255, 0.5);
|
|
}
|
|
|
|
.nav-links {
|
|
display: flex;
|
|
gap: 24px;
|
|
}
|
|
|
|
.nav-links a {
|
|
font-family: 'JetBrains Mono', monospace;
|
|
color: rgba(255, 255, 255, 0.6);
|
|
text-decoration: none;
|
|
font-size: 13px;
|
|
text-transform: uppercase;
|
|
letter-spacing: 1px;
|
|
}
|
|
|
|
.nav-cta {
|
|
background: linear-gradient(135deg, #00ffff, #00ccff) !important;
|
|
color: #000 !important;
|
|
padding: 10px 20px;
|
|
border-radius: 8px;
|
|
font-weight: 600;
|
|
box-shadow: 0 0 30px rgba(0, 255, 255, 0.4);
|
|
}
|
|
|
|
/* Hero with neon */
|
|
.hero {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
text-align: center;
|
|
padding: 0 60px;
|
|
}
|
|
|
|
.hero-badge {
|
|
font-family: 'JetBrains Mono', monospace;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
background: rgba(0, 255, 255, 0.1);
|
|
border: 1px solid rgba(0, 255, 255, 0.3);
|
|
padding: 8px 16px;
|
|
border-radius: 999px;
|
|
font-size: 12px;
|
|
margin: 0 auto 24px;
|
|
color: #00ffff;
|
|
text-transform: uppercase;
|
|
letter-spacing: 2px;
|
|
}
|
|
|
|
h1 {
|
|
font-size: 56px;
|
|
font-weight: 800;
|
|
line-height: 1.1;
|
|
margin-bottom: 24px;
|
|
color: #ffffff;
|
|
text-shadow: 0 0 40px rgba(0, 255, 255, 0.3);
|
|
}
|
|
|
|
h1 span {
|
|
color: #00ffff;
|
|
text-shadow: 0 0 30px rgba(0, 255, 255, 0.8);
|
|
}
|
|
|
|
.subtitle {
|
|
font-family: 'JetBrains Mono', monospace;
|
|
font-size: 16px;
|
|
color: rgba(255, 255, 255, 0.5);
|
|
max-width: 500px;
|
|
margin: 0 auto 40px;
|
|
line-height: 1.7;
|
|
}
|
|
|
|
.cta-group {
|
|
display: flex;
|
|
gap: 16px;
|
|
justify-content: center;
|
|
}
|
|
|
|
.btn-primary {
|
|
font-family: 'JetBrains Mono', monospace;
|
|
background: linear-gradient(135deg, #00ffff 0%, #00ccff 100%);
|
|
color: #000;
|
|
padding: 16px 32px;
|
|
border-radius: 12px;
|
|
font-weight: 600;
|
|
font-size: 14px;
|
|
border: none;
|
|
cursor: pointer;
|
|
box-shadow: 0 0 40px rgba(0, 255, 255, 0.5);
|
|
text-transform: uppercase;
|
|
letter-spacing: 1px;
|
|
}
|
|
|
|
.btn-secondary {
|
|
font-family: 'JetBrains Mono', monospace;
|
|
background: rgba(255, 255, 255, 0.05);
|
|
backdrop-filter: blur(10px);
|
|
border: 1px solid rgba(0, 255, 255, 0.3);
|
|
color: #00ffff;
|
|
padding: 16px 32px;
|
|
border-radius: 12px;
|
|
font-weight: 600;
|
|
font-size: 14px;
|
|
cursor: pointer;
|
|
text-transform: uppercase;
|
|
letter-spacing: 1px;
|
|
}
|
|
|
|
/* Glass cards */
|
|
.cards {
|
|
display: flex;
|
|
gap: 20px;
|
|
margin-top: 48px;
|
|
}
|
|
|
|
.glass-card {
|
|
flex: 1;
|
|
background: rgba(255, 255, 255, 0.03);
|
|
backdrop-filter: blur(20px);
|
|
-webkit-backdrop-filter: blur(20px);
|
|
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
border-radius: 16px;
|
|
padding: 24px;
|
|
text-align: center;
|
|
}
|
|
|
|
.glass-card-icon {
|
|
font-size: 28px;
|
|
margin-bottom: 12px;
|
|
filter: drop-shadow(0 0 10px rgba(0, 255, 255, 0.5));
|
|
}
|
|
|
|
.glass-card h3 {
|
|
font-family: 'JetBrains Mono', monospace;
|
|
font-size: 14px;
|
|
color: #00ffff;
|
|
margin-bottom: 8px;
|
|
text-transform: uppercase;
|
|
letter-spacing: 1px;
|
|
}
|
|
|
|
.glass-card p {
|
|
font-size: 13px;
|
|
color: rgba(255, 255, 255, 0.4);
|
|
line-height: 1.5;
|
|
}
|
|
|
|
/* Terminal-style element */
|
|
.terminal {
|
|
position: absolute;
|
|
top: 48px;
|
|
right: 48px;
|
|
background: rgba(0, 0, 0, 0.6);
|
|
border: 1px solid rgba(0, 255, 255, 0.2);
|
|
border-radius: 8px;
|
|
padding: 12px 16px;
|
|
font-family: 'JetBrains Mono', monospace;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.terminal-header {
|
|
color: rgba(255, 255, 255, 0.4);
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.terminal-line {
|
|
color: #00ffff;
|
|
}
|
|
|
|
.terminal-line::before {
|
|
content: '> ';
|
|
color: #ff00ff;
|
|
}
|
|
|
|
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<div class="glow-orb glow-1"></div>
|
|
<div class="glow-orb glow-2"></div>
|
|
|
|
<div class="terminal">
|
|
<div class="terminal-header">~/hacker-vibes</div>
|
|
<div class="terminal-line">npm run look-cool</div>
|
|
</div>
|
|
|
|
<div class="content">
|
|
<nav>
|
|
<div class="logo"><CYBER/></div>
|
|
<div class="nav-links">
|
|
<a href="#">Features</a>
|
|
<a href="#">Docs</a>
|
|
<a href="#">Pricing</a>
|
|
<a href="#" class="nav-cta">Launch</a>
|
|
</div>
|
|
</nav>
|
|
|
|
<div class="hero">
|
|
<span class="hero-badge">// Now in Beta</span>
|
|
<h1>Build the Future<br>with <span>Cyber Tech</span></h1>
|
|
<p class="subtitle">const future = await buildWithAI(); // Neon glow makes everything 10x more futuristic</p>
|
|
<div class="cta-group">
|
|
<button class="btn-primary">Initialize_</button>
|
|
<button class="btn-secondary">View_Code</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="cards">
|
|
<div class="glass-card">
|
|
<div class="glass-card-icon">⚡</div>
|
|
<h3>Lightning</h3>
|
|
<p>Blazing fast with quantum acceleration</p>
|
|
</div>
|
|
<div class="glass-card">
|
|
<div class="glass-card-icon">🔮</div>
|
|
<h3>AI Powered</h3>
|
|
<p>Neural networks do the heavy lifting</p>
|
|
</div>
|
|
<div class="glass-card">
|
|
<div class="glass-card-icon">🌐</div>
|
|
<h3>Web3 Ready</h3>
|
|
<p>Decentralized by default</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<script src="/js/detect-antipatterns-browser.js"></script>
|
|
</body>
|
|
</html>
|