Skip to content

Bespoke fun landing layout + funnier shared theme#4

Closed
btravers wants to merge 1 commit into
mainfrom
feat/vitepress-monorepo
Closed

Bespoke fun landing layout + funnier shared theme#4
btravers wants to merge 1 commit into
mainfrom
feat/vitepress-monorepo

Conversation

@btravers

Copy link
Copy Markdown
Contributor

Replace the plain VitePress home with the bespoke Claude Design landing, ported as a full-page VitePress layout (apps/website Landing.vue, index.md layout:false):

  • custom sticky header, floating beetroot + glow hero, philosophy cards, package cards with SVG project logos, click-to-copy install commands (toast), live GitHub stars, CTA banner and footer.

Push the same playfulness into @btravstack/theme so the docs sites match: home-hero beetroot glow + floating logo, lifting feature cards, springy brand buttons, rounder/pinker code. Verified on standard VitePress chrome in light and dark.

Replace the plain VitePress home with the bespoke Claude Design landing,
ported as a full-page VitePress layout (apps/website Landing.vue,
index.md layout:false):
- custom sticky header, floating beetroot + glow hero, philosophy cards,
  package cards with SVG project logos, click-to-copy install commands
  (toast), live GitHub stars, CTA banner and footer.

Push the same playfulness into @btravstack/theme so the docs sites match:
home-hero beetroot glow + floating logo, lifting feature cards, springy
brand buttons, rounder/pinker code. Verified on standard VitePress chrome
in light and dark.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 27, 2026 15:37
@btravers btravers closed this Jun 27, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR replaces the website’s default VitePress home page with a bespoke full-page Landing.vue layout and updates the shared @btravstack/theme styling to add playful, brand-forward flourishes that carry across the docs sites.

Changes:

  • Swap apps/website/index.md from layout: home frontmatter to a custom layout (layout: false) that renders <Landing />.
  • Add a new bespoke landing page component (Landing.vue) featuring sticky header, hero glow/logo, philosophy + project cards, click-to-copy install commands, and live GitHub stars.
  • Extend the shared VitePress theme CSS to add home-hero glow + floating logo animation, lifted feature cards, springy brand buttons, and rounder code styling.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.

File Description
packages/theme/src/style.css Adds shared “playful” visual treatments for VitePress home/feature/button/code styling.
apps/website/index.md Replaces the default VitePress home layout with a custom component-based landing.
apps/website/.vitepress/theme/Landing.vue Introduces the bespoke full-page landing experience (hero, cards, copy-to-clipboard, stars, footer).
apps/website/.vitepress/theme/index.ts Registers the Landing component via enhanceApp while extending @btravstack/theme.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

/* ── Playful flourishes — shared across every btravstack site ───── */

/* Home hero: a soft beetroot glow + a gently floating logo */
.VPHome { position: relative; overflow-x: clip; }
@@ -0,0 +1,341 @@
<script setup lang="ts">
import { onMounted, reactive, ref } from "vue";
<div v-for="p in projects" :key="p.name" class="pcard btv-pcard">
<div class="btv-pcard-top">
<div class="btv-pcard-id">
<img :src="p.logo" width="46" height="46" :alt="`${p.name} logo`" class="btv-logo" />
Comment on lines +55 to +75
let timer: ReturnType<typeof setTimeout> | undefined;

function copy(text: string) {
if (navigator.clipboard?.writeText) navigator.clipboard.writeText(text).catch(() => {});
copied.value = text;
clearTimeout(timer);
timer = setTimeout(() => (copied.value = null), 1600);
}

function formatStars(n: number) {
return n >= 1000 ? `${(n / 1000).toFixed(n >= 10000 ? 0 : 1).replace(/\.0$/, "")}k` : String(n);
}

onMounted(() => {
for (const p of projects) {
fetch(`https://api.github.com/repos/${p.repoFull}`, { headers: { Accept: "application/vnd.github+json" } })
.then((r) => (r.ok ? r.json() : Promise.reject(r.status)))
.then((d) => { if (typeof d.stargazers_count === "number") stars[p.repoFull] = d.stargazers_count; })
.catch(() => {});
}
});
Comment on lines +220 to +234
.btv {
min-height: 100vh;
background: radial-gradient(1100px 560px at 50% -120px, var(--bg-grad), var(--bg) 62%);
color: var(--text);
font-family: var(--sans);
}
.btv-pink { color: var(--accent); }

/* Header */
.btv-head {
position: sticky; top: 0; z-index: 50;
backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
background: rgba(21, 16, 28, 0.66);
border-bottom: 1px solid var(--border);
}
@btravers btravers deleted the feat/vitepress-monorepo branch June 27, 2026 23:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants