Bolt prompt for a feature grid section
This prompt makes Bolt scaffold the feature grid as two files — copy in a data file, layout in a component — so tuning benefit lines never risks the markup. Six equal cells, a testable so-you-can copy formula, one icon treatment, and an explicit ban on bento spans. Style, palette, typography, and motion arrive from the customizer blocks.
Last updated
Scaffold a feature grid section for the {{product}} landing page in this Bolt project as two files: src/data/features.ts exporting an array of six {icon, title, benefit} objects, and src/components/FeatureGrid.tsx that maps over it. Import it into the page right after the hero. Keeping copy in a data file means editing text never risks the layout, and the instant preview reflows as you tune each line.
Layout contract — a grid, not a bento:
- All six cells identical in span and height, three columns at desktop, no featured card, no mixed tile sizes. A bento trades uniformity for emphasis; this section presents six capabilities as equally load-bearing, scannable in two sweeps.
- Equal height must survive uneven copy: grid-stretched cards, no fixed pixel heights.
Filling the data file — the benefit formula: for each of six features of {{product}}, write a title (3 words max, the capability) and a benefit (12 words max, the payoff for {{audience}}). Test every benefit by prefixing "so you can" — if the sentence doesn't parse, it's a description, rewrite it. The words "seamless", "powerful", and "robust" are banned.
Icon discipline: import all six icons from one set in a single statement; render at one size with one treatment — tinted chip or plain glyph, chosen once. If no sensible icon exists, use a neutral geometric mark over a mismatched literal one.
Above the grid: an eyebrow, a headline promising the summed outcome, and a one-sentence subhead. Below it, a centered link labeled "{{cta}}" — the section's only interactive element besides card hovers.
Hover: one effect on the card root, reversible in under 200ms.
Visual direction:
{{style}}
Palette: {{palette}}
Typography: {{type}}
Motion: {{motion}}
Rhythm and breakpoints:
- Section vertical padding around 6rem; 3.5rem header to grid; 1.5rem gap; 1.5rem card padding.
- Below 1024px: two columns. Below 640px: one column, header block still within the section's first screen.
Check in the preview: six equal-height cells at all three breakpoints, every benefit passes the "so you can" test, icons uniform in size and treatment, exactly one hover effect present, and the data file compiles with no unused imports.Customize it
Runs in your browser. Nothing you type here is sent anywhere.
Scaffold a feature grid section for the a project management SaaS landing page in this Bolt project as two files: src/data/features.ts exporting an array of six {icon, title, benefit} objects, and src/components/FeatureGrid.tsx that maps over it. Import it into the page right after the hero. Keeping copy in a data file means editing text never risks the layout, and the instant preview reflows as you tune each line.
Layout contract — a grid, not a bento:
- All six cells identical in span and height, three columns at desktop, no featured card, no mixed tile sizes. A bento trades uniformity for emphasis; this section presents six capabilities as equally load-bearing, scannable in two sweeps.
- Equal height must survive uneven copy: grid-stretched cards, no fixed pixel heights.
Filling the data file — the benefit formula: for each of six features of a project management SaaS, write a title (3 words max, the capability) and a benefit (12 words max, the payoff for engineering managers at startups). Test every benefit by prefixing "so you can" — if the sentence doesn't parse, it's a description, rewrite it. The words "seamless", "powerful", and "robust" are banned.
Icon discipline: import all six icons from one set in a single statement; render at one size with one treatment — tinted chip or plain glyph, chosen once. If no sensible icon exists, use a neutral geometric mark over a mismatched literal one.
Above the grid: an eyebrow, a headline promising the summed outcome, and a one-sentence subhead. Below it, a centered link labeled "start a free trial" — the section's only interactive element besides card hovers.
Hover: one effect on the card root, reversible in under 200ms.
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.
Rhythm and breakpoints:
- Section vertical padding around 6rem; 3.5rem header to grid; 1.5rem gap; 1.5rem card padding.
- Below 1024px: two columns. Below 640px: one column, header block still within the section's first screen.
Check in the preview: six equal-height cells at all three breakpoints, every benefit passes the "so you can" test, icons uniform in size and treatment, exactly one hover effect present, and the data file compiles with no unused imports.Same task in other tools
Questions about this prompt
Why split the copy into src/data/features.ts?
Because in Bolt you iterate by editing and watching the preview: with copy in a data file you can rewrite all six benefit lines in one place and see the grid reflow instantly, without touching JSX. It also makes the so-you-can test easy — read the file top to bottom and prefix each line.
Bolt gave me a bento with one big featured card. How do I get back to a grid?
Say "make every cell span one column, remove the featured card, equal height via stretched grid items". The drift is common because bento is the trendier pattern; the layout-contract paragraph exists precisely so you can quote it back at the tool.
How does this section combine with the full Bolt landing-page prompt?
Run the landing-page prompt first, then paste this one in the same project — it slots after the hero, and keeping your dropdown picks identical means both share one visual system. If a features section already exists, tell Bolt to replace it with this spec rather than adding a second.
Don't have Bolt yet? This link may be an affiliate link; it never changes what you pay.
Try BoltPart of the Bolt landing-page cluster — start from the main Bolt landing page prompt.