feat: hero CTA polish + sitemap index for docs - #46
Conversation
- drop opacity-55 dim on the `source` CTA so it matches its siblings at rest - replace letter-spacing jiggle on a.underline-brutal hover with a whisper-green underline + brighter arrow nudge — no layout reflow - rework brutal-rise: 28px translate, 850ms expo-out, restaggered cascade Co-Authored-By: Claude <noreply@anthropic.com>
- replace the single-URL urlset with a sitemap index at /sitemap.xml that points at /sitemap-pages.xml (marketing) and the Mintlify-served https://docs.decdn.org/sitemap.xml so docs URLs are discoverable from the marketing-site sitemap as docs grow - new route handlers use force-static + GET to emit static XML under output: "export"; robots.txt already points at /sitemap.xml so no change needed there Cross-host sitemap entries require both hosts to be verified in Google Search Console for the index references to be honored. Co-Authored-By: Claude <noreply@anthropic.com>
Deploying website with
|
| Latest commit: |
3ce619d
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://f3753642.website-70y.pages.dev |
| Branch Preview URL: | https://feat-hero-polish-sitemap-ind.website-70y.pages.dev |
There was a problem hiding this comment.
Pull request overview
Polishes the hero CTA styling/hover + entrance animation, and restructures sitemap generation to support a cross-host docs sitemap via a sitemap index (marketing site + Mintlify docs).
Changes:
- Remove opacity-dimming from the Hero “source” CTA to match the other CTAs.
- Update shared
.underline-brutalhover behavior and tune thebrutal-riseentrance animation + stagger timings. - Replace
app/sitemap.tswith static-export-friendly route handlers:/sitemap.xml(index) and/sitemap-pages.xml(marketing URLs), including a reference tohttps://docs.decdn.org/sitemap.xml.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| components/site/Hero.tsx | Removes the “source” CTA opacity treatment so it renders at full ink like its siblings. |
| app/globals.css | Adjusts hero entrance animation + stagger delays; updates shared underline/arrow hover behavior. |
| app/sitemap.xml/route.ts | Adds a sitemap index that points to marketing sitemap + docs host sitemap. |
| app/sitemap-pages.xml/route.ts | Adds a marketing-only sitemap URL set (currently homepage). |
| app/sitemap.ts | Removes the prior Next metadata sitemap handler in favor of explicit XML routes. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Code Review
This pull request refines the hero section's animations and link hover effects while restructuring the sitemap into an index that includes external documentation. Feedback was provided to synchronize the color transition of the arrow icon with its movement to ensure a more consistent and polished visual experience.
The hover state on .underline-brutal .arrow flips color to whisper-green but the arrow's transition rule only covered `transform`, so the color snapped while the translateX animated. Extend the rule to cover `color` on the same 260ms expoOut curve. Flagged in PR #46 review (Copilot, Gemini). Co-Authored-By: Claude <noreply@anthropic.com>
Drop WHAT/process narration on the two sitemap route handlers per
AGENTS.md ("default to no comments; only add when WHY is non-obvious"):
- sitemap.xml/route.ts: keep only the cross-host Search Console caveat
- sitemap-pages.xml/route.ts: drop the maintenance comment entirely
The force-static headers stay — they capture a real Next 16 export
constraint that's not inferrable from the code.
Flagged in PR #46 review.
Co-Authored-By: Claude <noreply@anthropic.com>
* feat(hero): polish CTAs and rework page-load animation (#45) - drop opacity-55 dim on the `source` CTA so it matches its siblings at rest - replace letter-spacing jiggle on a.underline-brutal hover with a whisper-green underline + brighter arrow nudge — no layout reflow - rework brutal-rise: 28px translate, 850ms expo-out, restaggered cascade Co-Authored-By: Claude <noreply@anthropic.com> * feat(sitemap): emit sitemap index referencing docs.decdn.org (#38) - replace the single-URL urlset with a sitemap index at /sitemap.xml that points at /sitemap-pages.xml (marketing) and the Mintlify-served https://docs.decdn.org/sitemap.xml so docs URLs are discoverable from the marketing-site sitemap as docs grow - new route handlers use force-static + GET to emit static XML under output: "export"; robots.txt already points at /sitemap.xml so no change needed there Cross-host sitemap entries require both hosts to be verified in Google Search Console for the index references to be honored. Co-Authored-By: Claude <noreply@anthropic.com> * fix(hero): transition arrow color in sync with the nudge The hover state on .underline-brutal .arrow flips color to whisper-green but the arrow's transition rule only covered `transform`, so the color snapped while the translateX animated. Extend the rule to cover `color` on the same 260ms expoOut curve. Flagged in PR #46 review (Copilot, Gemini). Co-Authored-By: Claude <noreply@anthropic.com> * chore(sitemap): trim redundant header comments Drop WHAT/process narration on the two sitemap route handlers per AGENTS.md ("default to no comments; only add when WHY is non-obvious"): - sitemap.xml/route.ts: keep only the cross-host Search Console caveat - sitemap-pages.xml/route.ts: drop the maintenance comment entirely The force-static headers stay — they capture a real Next 16 export constraint that's not inferrable from the code. Flagged in PR #46 review. Co-Authored-By: Claude <noreply@anthropic.com> * feat(seo): add Service + FAQPage JSON-LD and tighten Organization schema Add Service schema (CDN, provider → Organization, areaServed: Worldwide); omit offers since per-MB USDC pricing isn't a clean ISO-4217 Offer. Add FAQPage sourced from a new FAQ_ITEMS export in components/site/Faq.tsx, so rendered DOM and structured data share one source of truth. Tighten Organization.description to describe the entity, not the product (was the marketing tagline shared with WebSite). Switch Organization.logo from icon.svg to /d_logo.png — Google's structured-data spec lists JPG/PNG/GIF only. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * refactor(faq): extract FAQ_ITEMS into lib/faq.ts Decouples the root layout's JSON-LD generation from the FAQ UI module so app/layout.tsx no longer transitively imports Frame/SectionHeader/FaqItem just to read the data. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Ant Somers <antsomers@gmail.com>
Summary
sourceCTA renders solid ink (dropopacity-55 hover:opacity-100) so it sits flush withread the litepaperandrun a node. Closes hero: "source" CTA — drop opacity dimming and rework animations #45.a.underline-brutalhover swaps the letter-spacing jiggle (which reflowed adjacent text) for avar(--whisper)underline + brighter arrow nudge — no width shift, brand accent picked up.brutal-risepage-load cascade reworked: 28px translate, 850ms expo-out, restaggered to0 / 80 / 200 / 320 / 460 / 600ms so each line lands distinctly./sitemap.xmlreferencing a marketing-only/sitemap-pages.xmland the Mintlify-servedhttps://docs.decdn.org/sitemap.xml. Picked option 1 from the issue (sitemap index) over option 2 (inline) because docs already publish their own sitemap and the index pattern auto-tracks new MDX without edits here. Closes Add docs.decdn.org URLs to sitemap #38.Test plan
pnpm build— static export succeeds;out/sitemap.xmlis a well-formed<sitemapindex>,out/sitemap-pages.xmlis a<urlset>with the homepage.pnpm lint— clean.sourceCTA at parity with siblings; hover treatment feels clean (no width jiggle, whisper accent visible).prefers-reduced-motionblock still suppresses.rise(no change needed).decdn.organddocs.decdn.orgin Google Search Console so cross-host sitemap-index entries are honored.🤖 Generated with Claude Code