[ { "antipattern": "oversized-h1", "name": "Oversized hero headline", "description": "A full-sentence headline set at display size ends up dominating the viewport, leaving no room for anything else above the fold. A punchy one- or two-word headline at that size is fine — the problem is a long headline blown up too large. Set long headlines smaller, or tighten the copy.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de", "line": 0, "snippet": "72px h1, 84 chars, 48vh \"Steuererstattung aus Deutschland sichernKompetente Beratung \"" }, { "antipattern": "gpt-thin-border-wide-shadow", "name": "Hairline border with wide shadow", "description": "A hairline border paired with a wide, diffuse shadow is a recurring generated-UI signature. Commit to one — a defined edge or a soft elevation — rather than both at once.", "severity": "advisory", "category": "slop", "file": "http://localhost:3000/de", "line": 0, "snippet": "1px border + 50px shadow blur", "advisory": true }, { "antipattern": "nested-cards", "name": "Nested cards", "description": "Cards inside cards create visual noise and excessive depth. Flatten the hierarchy — use spacing, typography, and dividers instead of nesting containers.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de", "line": 0, "snippet": "Card inside card" }, { "antipattern": "nested-cards", "name": "Nested cards", "description": "Cards inside cards create visual noise and excessive depth. Flatten the hierarchy — use spacing, typography, and dividers instead of nesting containers.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de", "line": 0, "snippet": "Card inside card" }, { "antipattern": "line-length", "name": "Line length too long", "description": "Text lines wider than ~80 characters are hard to read. The eye loses its place tracking back to the start of the next line. Add a max-width (65ch to 75ch) to text containers.", "severity": "warning", "category": "quality", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "~86 chars/line (aim for <80)" }, { "antipattern": "line-length", "name": "Line length too long", "description": "Text lines wider than ~80 characters are hard to read. The eye loses its place tracking back to the start of the next line. Add a max-width (65ch to 75ch) to text containers.", "severity": "warning", "category": "quality", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "~85 chars/line (aim for <80)" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "ai-color-palette", "name": "AI color palette", "description": "Purple/violet gradients and cyan-on-dark are the most recognizable tells of AI-generated UIs. Choose a distinctive, intentional palette.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "Cyan neon text on dark background" }, { "antipattern": "line-length", "name": "Line length too long", "description": "Text lines wider than ~80 characters are hard to read. The eye loses its place tracking back to the start of the next line. Add a max-width (65ch to 75ch) to text containers.", "severity": "warning", "category": "quality", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "~86 chars/line (aim for <80)" }, { "antipattern": "line-length", "name": "Line length too long", "description": "Text lines wider than ~80 characters are hard to read. The eye loses its place tracking back to the start of the next line. Add a max-width (65ch to 75ch) to text containers.", "severity": "warning", "category": "quality", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "~86 chars/line (aim for <80)" }, { "antipattern": "edge-flush-cards", "name": "Cards flush against the scroller edge", "description": "Cards inside a horizontal scroller or tab panel sit flush against the container edge at rest while keeping a gutter on the other side, so their edges and rounded corners get cut off. Usually the panel is sized wider than its clip box. Keep a consistent inset on both sides.", "severity": "warning", "category": "quality", "file": "http://localhost:3000/de/leistungen", "line": 0, "snippet": "1 card flush against the right edge of body.font-sans.antialiased.bg-background.text-foreground.min-h-screen.flex.flex-col at rest (3px gap, e.g. a.flex.h-14.w-14.items-center.justify-center.rounded-full.bg-[#25D366].text-[#1C1B1A].shadow-lg.transition-transform.hover:scale-105.hover:bg-[#20bd5a].focus:outline-none.focus:ring-4.focus:ring-[#25D366]/50)" }, { "antipattern": "nested-cards", "name": "Nested cards", "description": "Cards inside cards create visual noise and excessive depth. Flatten the hierarchy — use spacing, typography, and dividers instead of nesting containers.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/terminvereinbarung", "line": 0, "snippet": "Card inside card" }, { "antipattern": "edge-flush-cards", "name": "Cards flush against the scroller edge", "description": "Cards inside a horizontal scroller or tab panel sit flush against the container edge at rest while keeping a gutter on the other side, so their edges and rounded corners get cut off. Usually the panel is sized wider than its clip box. Keep a consistent inset on both sides.", "severity": "warning", "category": "quality", "file": "http://localhost:3000/de/terminvereinbarung", "line": 0, "snippet": "1 card flush against the right edge of body.font-sans.antialiased.bg-background.text-foreground.min-h-screen.flex.flex-col at rest (3px gap, e.g. a.flex.h-14.w-14.items-center.justify-center.rounded-full.bg-[#25D366].text-[#1C1B1A].shadow-lg.transition-transform.hover:scale-105.hover:bg-[#20bd5a].focus:outline-none.focus:ring-4.focus:ring-[#25D366]/50)" }, { "antipattern": "line-length", "name": "Line length too long", "description": "Text lines wider than ~80 characters are hard to read. The eye loses its place tracking back to the start of the next line. Add a max-width (65ch to 75ch) to text containers.", "severity": "warning", "category": "quality", "file": "http://localhost:3000/de/uber-uns", "line": 0, "snippet": "~85 chars/line (aim for <80)" }, { "antipattern": "nested-cards", "name": "Nested cards", "description": "Cards inside cards create visual noise and excessive depth. Flatten the hierarchy — use spacing, typography, and dividers instead of nesting containers.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/uber-uns", "line": 0, "snippet": "Card inside card" }, { "antipattern": "nested-cards", "name": "Nested cards", "description": "Cards inside cards create visual noise and excessive depth. Flatten the hierarchy — use spacing, typography, and dividers instead of nesting containers.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/uber-uns", "line": 0, "snippet": "Card inside card" }, { "antipattern": "nested-cards", "name": "Nested cards", "description": "Cards inside cards create visual noise and excessive depth. Flatten the hierarchy — use spacing, typography, and dividers instead of nesting containers.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/uber-uns", "line": 0, "snippet": "Card inside card" }, { "antipattern": "nested-cards", "name": "Nested cards", "description": "Cards inside cards create visual noise and excessive depth. Flatten the hierarchy — use spacing, typography, and dividers instead of nesting containers.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/uber-uns", "line": 0, "snippet": "Card inside card" }, { "antipattern": "nested-cards", "name": "Nested cards", "description": "Cards inside cards create visual noise and excessive depth. Flatten the hierarchy — use spacing, typography, and dividers instead of nesting containers.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/uber-uns", "line": 0, "snippet": "Card inside card" }, { "antipattern": "nested-cards", "name": "Nested cards", "description": "Cards inside cards create visual noise and excessive depth. Flatten the hierarchy — use spacing, typography, and dividers instead of nesting containers.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/uber-uns", "line": 0, "snippet": "Card inside card" }, { "antipattern": "nested-cards", "name": "Nested cards", "description": "Cards inside cards create visual noise and excessive depth. Flatten the hierarchy — use spacing, typography, and dividers instead of nesting containers.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/uber-uns", "line": 0, "snippet": "Card inside card" }, { "antipattern": "nested-cards", "name": "Nested cards", "description": "Cards inside cards create visual noise and excessive depth. Flatten the hierarchy — use spacing, typography, and dividers instead of nesting containers.", "severity": "warning", "category": "slop", "file": "http://localhost:3000/de/uber-uns", "line": 0, "snippet": "Card inside card" }, { "antipattern": "edge-flush-cards", "name": "Cards flush against the scroller edge", "description": "Cards inside a horizontal scroller or tab panel sit flush against the container edge at rest while keeping a gutter on the other side, so their edges and rounded corners get cut off. Usually the panel is sized wider than its clip box. Keep a consistent inset on both sides.", "severity": "warning", "category": "quality", "file": "http://localhost:3000/de/uber-uns", "line": 0, "snippet": "1 card flush against the right edge of body.font-sans.antialiased.bg-background.text-foreground.min-h-screen.flex.flex-col at rest (3px gap, e.g. a.flex.h-14.w-14.items-center.justify-center.rounded-full.bg-[#25D366].text-[#1C1B1A].shadow-lg.transition-transform.hover:scale-105.hover:bg-[#20bd5a].focus:outline-none.focus:ring-4.focus:ring-[#25D366]/50)" } ]