Generates a complete Astro 5 landing page with Tailwind CSS v4 from copywriting content. Triggers when the user asks to build a landing page, create the HTML/CSS for a landing page, generate an Astro site from copy, or implement a landing page design. Expects structured copywriting input matching the writing-landing-page-copy output format.
Generates a production-ready Astro 5 + Tailwind CSS v4 landing page from structured copywriting content.
Copy this checklist and track progress:
Build Progress:
- [ ] Phase 1: Copywriting input validated
- [ ] Phase 2: Project scaffolded (astro config, package.json, tailwind)
- [ ] Phase 3: Base layout and global styles created
- [ ] Phase 4: Navbar and Footer components created
- [ ] Phase 5: Section components generated from copy
- [ ] Phase 6: Index page assembled
- [ ] Phase 7: Build verified
Check that structured copywriting content exists. It should contain sections with this format:
## [Section Name]
> **Psychology**: [principle]
### Headline
### Subheadline / Supporting
### Body
### CTA (if applicable)
If no copywriting exists yet, suggest running the writing-landing-page-copy skill first.
Confirm with the user:
#3b00ff), font (default: Inter), site URL, organization nameGenerate the Astro 5 project. Follow the setup in project-setup.md exactly.
Create these files:
package.json - Astro 5, Tailwind v4, Node adapter, sitemapastro.config.mjs - SSR mode with Node adapter + Tailwind vite plugintsconfig.json - Strict mode with @/ path aliassrc/styles/global.css - Tailwind v4 imports + theme variablesRun bun install after scaffolding.
Create src/layouts/Base.astro with:
<slot /> for page contentFollow the design system defined in design-system.md for all color tokens, typography, spacing, and effect classes.
Create src/components/Navbar.astro:
Create src/components/Footer.astro:
For each section in the copywriting input, generate a corresponding .astro component. Follow the component patterns in components.md for structure, props, and Tailwind classes.
Map copywriting sections to components:
| Copy Section | Component | Key Pattern |
|---|---|---|
| Hero | Hero.astro | Glow background, gradient text, primary CTA button |
| Trust Bar | TrustBar.astro | Monochrome logo row, "Trusted by X" context |
| Loss Aversion | PainPoints.astro | 3 pain cards with icons, dark bg, empathetic tone |
| Benefits | Benefits.astro | Rule-of-3 cards with icons, hover lift |
| Process | Process.astro | 3 numbered steps, light bg, time estimates |
| Features | Features.astro | 6-8 feature grid, icon + name + description |
| Pricing | Pricing.astro | 2-3 tier cards, highlighted recommended, feature checklist |
| Testimonials | Testimonials.astro | Quote cards with attribution, avatar placeholder |
| FAQ | FAQ.astro | Native <details> accordion, chevron rotation |
| Final CTA | FinalCTA.astro | Repeat hero CTA, glow background, secondary link |
Each component:
md: for desktop)Create src/pages/index.astro that imports and composes all section components in order:
---
import Base from "@/layouts/Base.astro"
import Navbar from "@/components/Navbar.astro"
import Hero from "@/components/Hero.astro"
// ... remaining sections
import Footer from "@/components/Footer.astro"
---
<Base title="...">
<Navbar />
<main>
<Hero />
<!-- sections in copywriting order -->
</main>
<Footer />
</Base>
Pass copywriting content as props or inline it directly in the component files.
Run:
bun run build
Fix any TypeScript or Tailwind errors. Verify the output renders correctly.
Copywriting Hero input:
## Hero
> **Psychology**: Self-Interest (WIIFM) + Social Proof
### Headline
Ship 3x faster without breaking production
### Subheadline / Supporting
The CI/CD platform built for teams that move fast. Set up in 5 minutes, not 5 sprints.
### CTA
Start building free | No credit card required
Generated Hero.astro output:
---
interface Props {
title?: string
highlightedText?: string
subtitle?: string
ctaText?: string
ctaHref?: string
ctaMicrocopy?: string
}
const {
title = "Ship 3x faster",
highlightedText = "without breaking production.",
subtitle = "The CI/CD platform built for teams that move fast.\nSet up in 5 minutes, not 5 sprints.",
ctaText = "Start building free",
ctaHref = "#pricing",
ctaMicrocopy = "No credit card required",
} = Astro.props
---
<section class="relative overflow-hidden pt-32 pb-24">
<div class="hero-glow absolute top-0 left-1/4"></div>
<div class="hero-glow absolute top-0 right-1/4"></div>
<div class="max-w-4xl mx-auto px-6 text-center relative z-10">
<h1 class="text-5xl md:text-6xl lg:text-7xl font-extrabold tracking-tight mb-6">
{title}<br />
<span class="gradient-text">{highlightedText}</span>
</h1>
<p class="text-xl text-slate-300 mb-10 max-w-2xl mx-auto whitespace-pre-line">
{subtitle}
</p>
<a href={ctaHref}
class="group inline-flex items-center gap-2 bg-linear-to-r from-primary to-primary-light hover:from-primary-dark hover:to-primary text-white text-lg px-8 py-4 rounded-full btn-glow font-semibold transition-all">
{ctaText}
<svg class="w-5 h-5 group-hover:translate-x-1 transition-transform" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6" />
</svg>
</a>
<p class="text-sm text-slate-400 mt-4">{ctaMicrocopy}</p>
</div>
</section>
npx skills add agentic-dev3o/building-landing-page下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer