mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-18 17:16:46 +03:00
Three detection tiers: - file/dir (default): fast regex scan, zero dependencies - file + --deep: jsdom computed styles, resolves linked local stylesheets by inlining <link rel="stylesheet"> content before parsing - URL (https://...): auto-launches Puppeteer for full browser rendering, handles CDN stylesheets, JS-rendered content, everything New exports: detectAntiPatternsDeep(), detectAntiPatternsUrl() jsdom added as devDependency; puppeteer remains optional (npx cache). TDD: linked-stylesheet fixture demonstrates the gap — regex finds 0 border issues, --deep correctly catches side-tab and top-accent from the external CSS file. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
49 lines
1.8 KiB
HTML
49 lines
1.8 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-Patterns From Linked Stylesheet</title>
|
|
<link rel="stylesheet" href="external-styles.css">
|
|
<style>
|
|
body { font-family: system-ui, sans-serif; background: #f9fafb; padding: 2rem; }
|
|
h1 { font-size: 1.5rem; margin-bottom: 0.5rem; }
|
|
h2 { font-size: 1.125rem; margin: 2rem 0 0.75rem; color: #6b7280; }
|
|
p.intro { color: #6b7280; margin-bottom: 2rem; max-width: 36rem; }
|
|
.cards { display: grid; gap: 1rem; max-width: 28rem; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>Linked Stylesheet Anti-Patterns</h1>
|
|
<p class="intro">
|
|
These elements get their anti-pattern styles from an external CSS file.
|
|
Regex-only scanning misses these — only computed style analysis catches them.
|
|
</p>
|
|
|
|
<h2>Side-Tab (from external CSS)</h2>
|
|
<div class="cards">
|
|
<div class="external-side-tab">
|
|
<h3 style="font-weight: 600;">External side-tab class</h3>
|
|
<p style="font-size: 0.875rem; color: #6b7280;">border-left + border-radius from linked stylesheet.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<h2>Top Accent + Rounded (from external CSS)</h2>
|
|
<div class="cards">
|
|
<div class="external-top-accent">
|
|
<h3 style="font-weight: 600;">External top accent class</h3>
|
|
<p style="font-size: 0.875rem; color: #6b7280;">border-top + border-radius from linked stylesheet.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<h2>Clean Card (from external CSS)</h2>
|
|
<div class="cards">
|
|
<div class="external-clean">
|
|
<h3 style="font-weight: 600;">External clean card</h3>
|
|
<p style="font-size: 0.875rem; color: #6b7280;">Uniform 1px border — should NOT flag.</p>
|
|
</div>
|
|
</div>
|
|
<script src="../../../public/js/detect-antipatterns-browser.js"></script>
|
|
</body>
|
|
</html>
|