fix: resolve contact form placeholders, restore process block layout, and fix testimonials carousel scroll logic
This commit is contained in:
@@ -0,0 +1,403 @@
|
||||
[
|
||||
{
|
||||
"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)"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user