[landing-fixes] Audit fixes: structure, themes, colors, a11y - #24
Conversation
Structure (shared shell — all variants):
- Add a Problem section (dark) using the approved POSITIONING.md sentence as
the turn ("Most AI agents act on what the AI thinks is true… Knowcap agents
act only on what a human said is true"). Honest failure-mode, no vapor.
- Add an Integrations band surfacing MCP (live) / Odoo (live) / Jira·Asana·
ClickUp (roadmap) — was buried in an eyebrow + FAQ.
- Re-add the 3 real customer testimonials (social proof) — removed in cleanup.
- Reorder: hero → problem → signature → process → integrations → security →
results → testimonials → FAQ → close. Security raised above results.
- Two-column hero (text + framed product shot side-by-side ≥980px) — kills the
~37% empty right side; stacks below 980px.
- Hero trust strip ("Built by an Odoo partner · MCP-native · full audit trail")
on B and D. Honest pricing note on the close CTA.
Color / theme (from the contrast + brand-equity audit):
- Lock the accent to verified-GREEN across all 4 themes (was blue on
operator-dark, oxblood on library — both broke "green = verified" and oxblood
collided with the product's own red=risk/unverified semantic). Dark sections
use a bright verified-green (--t-accent-bright #4ade80, 9-11:1 on the dark
heroes) so contrast holds; same hue keeps one identity.
- Kill mono BODY + mono TITLE on operator-dark and operator-light (was
JetBrains Mono for all prose — the "costume-technical" AI-slop tell). Now
Space Grotesk display + Inter body; mono kept for labels/stats only.
- Fix sub-AA text: hero sub/bullets raised to ~.66-.85 alpha (were .35-.5,
failing 2.4-4.5:1) → now 5-8:1 in every theme; library muted #7E6E59→#675844
(was 4.18, now 5.8); operator card-muted bumped to clear 4.5:1.
- Fix the baseline switcher-dot bug (advertised #1a1a1a/grey for a green theme).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
📝 WalkthroughWalkthroughThis PR extends the landing page marketing narrative by introducing three new impeccable sections (Problem, Integrations, Testimonials), integrating them into the themed shell with expanded CSS styling, updating the theme color palette, and adding trust blocks to hero component variants. ChangesLanding Page Marketing Sections
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@app/components/impeccable/kit.tsx`:
- Line 585: The paragraph uses class "ve-close-note" which is being overridden
by the more specific ".ve-close p" selector; rename the class in
app/components/impeccable/kit.tsx (change "ve-close-note" to a unique name such
as "ve-close__note") and update the corresponding CSS rule in themed-shell.tsx
(replace or add the ".ve-close__note" rule where the current ".ve-close-note"
rule is defined around the noted spot) so the intended small mono fine-print
styling applies and no longer conflicts with ".ve-close p".
In `@app/components/impeccable/themed-shell.tsx`:
- Line 69: The CSS selector list in themed-shell.tsx mixes dark-scoped and
unscoped rules so .ve-seal and .ve-docid .ve-mono are unintentionally using
--t-accent-bright everywhere; update the selector so those two are scoped under
.ve-dark (e.g. change ".ve-docid .ve-mono" and ".ve-seal" to ".ve-dark .ve-docid
.ve-mono" and ".ve-dark .ve-seal") so only the dark theme uses --t-accent-bright
(this prevents bright green from affecting the light-card exhibit rendered by
version-b.tsx / OdooDemo).
- Line 117: The rule for .ve-close-note is being overridden by .ve-close p due
to lower specificity; update the selector to increase specificity (for example
change it to .ve-close .ve-close-note) and keep the same declarations
(font-family, font-size, letter-spacing, color, margin) so the note renders as
the intended small mono fine-print instead of inheriting .ve-close p styles.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 2b85d264-d35e-4b59-92fe-2729eed8d616
📒 Files selected for processing (5)
app/components/impeccable/kit.tsxapp/components/impeccable/themed-shell.tsxapp/components/theme-switcher.tsxapp/components/version-b.tsxapp/components/version-d.tsx
| <a className="ve-btn ve-btn--primary" href={`${APP_URL}/register`}>Get Started Free <Arrow /></a> | ||
| <Link className="ve-btn ve-btn--ghost" href="/book">Book a Demo</Link> | ||
| </div> | ||
| <p className="ve-close-note">Free to start. Partner pricing on a quick call.</p> |
There was a problem hiding this comment.
ve-close-note styling is overridden — see root cause in themed-shell.tsx.
This <p> also matches .ve-close p (more specific), so its intended small mono fine-print styling won't apply. Root cause and fix are flagged on the .ve-close-note rule in themed-shell.tsx (Line 117).
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@app/components/impeccable/kit.tsx` at line 585, The paragraph uses class
"ve-close-note" which is being overridden by the more specific ".ve-close p"
selector; rename the class in app/components/impeccable/kit.tsx (change
"ve-close-note" to a unique name such as "ve-close__note") and update the
corresponding CSS rule in themed-shell.tsx (replace or add the ".ve-close__note"
rule where the current ".ve-close-note" rule is defined around the noted spot)
so the intended small mono fine-print styling applies and no longer conflicts
with ".ve-close p".
| stays the brand constant across themes). */ | ||
| .ve-dark .ve-mark{color:var(--t-accent-bright);background-image:linear-gradient(color-mix(in srgb,var(--t-accent-bright) 26%,transparent),color-mix(in srgb,var(--t-accent-bright) 26%,transparent))} | ||
| .ve-dark .ve-mark--ink{color:var(--t-accent-bright);background-image:linear-gradient(color-mix(in srgb,var(--t-accent-bright) 22%,transparent),color-mix(in srgb,var(--t-accent-bright) 22%,transparent))} | ||
| .ve-dark .ve-step-no,.ve-dark .ve-step .ve-step-tag,.ve-docid .ve-mono,.ve-seal,.ve-dark .ve-faq .ve-q-sign{color:var(--t-accent-bright)} |
There was a problem hiding this comment.
Scope .ve-seal (and .ve-docid .ve-mono) under .ve-dark.
This list mixes dark-scoped and unscoped selectors. .ve-seal is unscoped, so it overrides the base --t-accent rule (Line 57) with the bright green --t-accent-bright everywhere — including the on-paper exhibit seal (version-b.tsx OdooDemo, Line 96), where bright green on a light card likely fails the contrast targets this PR is tightening.
🛡️ Proposed fix
-.ve-dark .ve-step-no,.ve-dark .ve-step .ve-step-tag,.ve-docid .ve-mono,.ve-seal,.ve-dark .ve-faq .ve-q-sign{color:var(--t-accent-bright)}
+.ve-dark .ve-step-no,.ve-dark .ve-step .ve-step-tag,.ve-dark .ve-docid .ve-mono,.ve-dark .ve-seal,.ve-dark .ve-faq .ve-q-sign{color:var(--t-accent-bright)}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| .ve-dark .ve-step-no,.ve-dark .ve-step .ve-step-tag,.ve-docid .ve-mono,.ve-seal,.ve-dark .ve-faq .ve-q-sign{color:var(--t-accent-bright)} | |
| .ve-dark .ve-step-no,.ve-dark .ve-step .ve-step-tag,.ve-dark .ve-docid .ve-mono,.ve-dark .ve-seal,.ve-dark .ve-faq .ve-q-sign{color:var(--t-accent-bright)} |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@app/components/impeccable/themed-shell.tsx` at line 69, The CSS selector list
in themed-shell.tsx mixes dark-scoped and unscoped rules so .ve-seal and
.ve-docid .ve-mono are unintentionally using --t-accent-bright everywhere;
update the selector so those two are scoped under .ve-dark (e.g. change
".ve-docid .ve-mono" and ".ve-seal" to ".ve-dark .ve-docid .ve-mono" and
".ve-dark .ve-seal") so only the dark theme uses --t-accent-bright (this
prevents bright green from affecting the light-card exhibit rendered by
version-b.tsx / OdooDemo).
| .ve-quote-org{font-family:var(--t-fmono);font-size:.7rem;letter-spacing:.06em;color:var(--t-ink-prose-dim)} | ||
|
|
||
| /* Close section pricing note */ | ||
| .ve-close-note{margin:22px auto 0;font-family:var(--t-fmono);font-size:.72rem;letter-spacing:.04em;color:var(--t-ink-prose-dim)} |
There was a problem hiding this comment.
.ve-close-note is too weak to override .ve-close p.
.ve-close p (kit, specificity 0,1,1) outranks .ve-close-note (0,1,0), so the note keeps the large body font-size and margin:0 auto 38px instead of the intended small mono fine-print. Raise specificity.
🐛 Proposed fix
-.ve-close-note{margin:22px auto 0;font-family:var(--t-fmono);font-size:.72rem;letter-spacing:.04em;color:var(--t-ink-prose-dim)}
+.ve-close .ve-close-note{margin:22px auto 0;font-family:var(--t-fmono);font-size:.72rem;letter-spacing:.04em;color:var(--t-ink-prose-dim)}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| .ve-close-note{margin:22px auto 0;font-family:var(--t-fmono);font-size:.72rem;letter-spacing:.04em;color:var(--t-ink-prose-dim)} | |
| .ve-close .ve-close-note{margin:22px auto 0;font-family:var(--t-fmono);font-size:.72rem;letter-spacing:.04em;color:var(--t-ink-prose-dim)} |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@app/components/impeccable/themed-shell.tsx` at line 117, The rule for
.ve-close-note is being overridden by .ve-close p due to lower specificity;
update the selector to increase specificity (for example change it to .ve-close
.ve-close-note) and keep the same declarations (font-family, font-size,
letter-spacing, color, margin) so the note renders as the intended small mono
fine-print instead of inheriting .ve-close p styles.
Applies the sub-agent audit findings across structure, color, and accessibility. All four themes keep the switcher; the fixes make it coherent instead of removing it.
Structure (shared shell → affects A/B/C/D)
Color / theme
Accessibility (computed WCAG)
NOT done (deliberate, your call)
Test plan
/a /b /c /d— cycle all 4 themes; accent is green everywhere, no mono paragraphs, hero is two-column on desktop.🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Style