BoilerPrompt
Cursor

Cursor prompt for a footer section

Written for Cursor working inside a repo that already has a landing page: the footer arrives as one new component plus a one-line import, links checked against routes that exist, zero new dependencies. The whole change stays reviewable in git diff. Style, palette, typography, and motion come from the customizer, so it matches your existing sections.

Last updated

Prompt
Add a production-quality footer to the existing landing page for {{product}} in this repo. Before writing code, read the page file and two existing section components to learn the conventions — container width, spacing scale, export style — and match them exactly. Create the footer as a new component beside the other sections (components/sections/Footer.tsx if that is the pattern), then apply a minimal diff to the page: one import, one render after the last section. Do not modify any other section, do not touch global styles, and reuse the existing container wrapper rather than introducing a new max-width.

Anatomy of the section:
- Row 1: newsletter capture with a promise line derived from {{product}} — name the actual thing {{audience}} gets by subscribing. Style the submit as the codebase's secondary button variant; the primary variant stays reserved for "{{cta}}", which appears once more here as a small text link under the form for bottom-of-page converts.
- Row 2: 3-4 link columns whose contents come from the product's real site map — read the routes or pages directory and link only to routes that exist, grouped under plain headings.
- Row 3: legal line (copyright, privacy, terms) plus social icons from whatever icon library the repo already depends on — add no new dependency.
- Optional, behind row 3: the product name at display scale, clipped by the section's overflow hidden, at very low contrast.

Visual direction:
{{style}}

Palette: {{palette}}
Typography: {{type}}
Motion: {{motion}}

Spacing and responsive:
- Use the spacing scale already in the codebase: top padding equal to the largest section gap on the page, interior gaps one and two steps down.
- Mobile: columns drop to 2-up, the form stacks, the legal row wraps — confirm nothing overlaps the section above at 375px wide.

After applying the diff, verify: git diff shows only the new footer file plus the import and render lines, every footer link resolves to an existing route, no dependency was added, the section above the footer renders exactly as before, and the clipped wordmark introduces no horizontal scroll.

Customize it

Runs in your browser. Nothing you type here is sent anywhere.

Your customized prompt
Add a production-quality footer to the existing landing page for a project management SaaS in this repo. Before writing code, read the page file and two existing section components to learn the conventions — container width, spacing scale, export style — and match them exactly. Create the footer as a new component beside the other sections (components/sections/Footer.tsx if that is the pattern), then apply a minimal diff to the page: one import, one render after the last section. Do not modify any other section, do not touch global styles, and reuse the existing container wrapper rather than introducing a new max-width.

Anatomy of the section:
- Row 1: newsletter capture with a promise line derived from a project management SaaS — name the actual thing engineering managers at startups gets by subscribing. Style the submit as the codebase's secondary button variant; the primary variant stays reserved for "start a free trial", which appears once more here as a small text link under the form for bottom-of-page converts.
- Row 2: 3-4 link columns whose contents come from the product's real site map — read the routes or pages directory and link only to routes that exist, grouped under plain headings.
- Row 3: legal line (copyright, privacy, terms) plus social icons from whatever icon library the repo already depends on — add no new dependency.
- Optional, behind row 3: the product name at display scale, clipped by the section's overflow hidden, at very low contrast.

Visual direction:
Minimal dark style. Near-black canvas (#0A0A0B) with one elevated surface tone (#141416) for cards — never more than two surface steps. Hairline borders (1px, white at 8% opacity) instead of shadows; if a shadow is unavoidable use 0 1px 2px rgba(0,0,0,0.4) and nothing softer. Text in exactly three steps: white at 92% for headings, 60% for body, 40% for captions. Generous negative space — section padding at least 120px on desktop, 64px on mobile. The accent color appears only on interactive elements and one hero highlight, nowhere else.

Palette: a strict neutral ramp (white, #F5F5F5, #E5E5E5, #737373, #171717) carries the entire interface; pick one accent and use it only for primary CTAs, active states, and a single hero highlight. If the accent appears more than five times per viewport it stops being an accent. Keep semantic colors (success, error) desaturated so the accent stays in charge.
Typography: one geometric sans (a Futura/Poppins-class face) at three weights maximum (400/500/700). Scale: 64-88px hero, 32px section heads, 18px lede, 16px body, 13px caps labels with 0.08em tracking. Tight headline leading (1.05-1.1), relaxed body (1.6). Let the geometry carry the personality — no italics; weight and size do all hierarchy.
Motion: none. Zero scroll animations, zero entrance effects — the page is fully composed the instant it paints. Spend the motion budget on input feedback instead: 120-150ms ease-out color and transform transitions on hover and press states only. Hold this constraint absolutely; it is a statement, not an omission.

Spacing and responsive:
- Use the spacing scale already in the codebase: top padding equal to the largest section gap on the page, interior gaps one and two steps down.
- Mobile: columns drop to 2-up, the form stacks, the legal row wraps — confirm nothing overlaps the section above at 375px wide.

After applying the diff, verify: git diff shows only the new footer file plus the import and render lines, every footer link resolves to an existing route, no dependency was added, the section above the footer renders exactly as before, and the clipped wordmark introduces no horizontal scroll.

Same task in other tools

Questions about this prompt

How do I keep Cursor from restyling the sections above the footer?

The prompt constrains the diff explicitly: one new file, one import, one render line. If the agent proposes edits elsewhere, reject those hunks in the review pane — Cursor applies changes per-file, so you can accept the footer and discard the rest. Run git diff before committing as the final gate.

My repo uses CSS modules, not Tailwind — will this still work?

Yes. The prompt tells Cursor to read two existing section components first and copy their conventions, so it should emit whatever styling approach it finds there. If it drifts into Tailwind anyway, reply "match the styling system used in <file>" and name a real component.

Why derive the link columns from my routes directory?

A footer full of links to pages that never shipped is the fastest way to make a site feel abandoned. Cursor can actually read your pages/ or app/ directory, so the prompt uses that access: existing routes get grouped into columns, and anything missing is left out rather than 404ing.

Part of the Cursor landing-page cluster — start from the main Cursor landing page prompt.

Related prompts