About this set
A pre-order style launch page for a physical product, with a hero and a row of feature teasers. The demo is a quiet air purifier: an eyebrow with the product name, a short headline, a paragraph with one concrete number, a waitlist form, and a social proof line with three avatar dots and the waitlist count. The product itself is an inline SVG render on a mint halo, so the page works before you have photography. Below the hero, three teaser cards are numbered 01 to 03: two reveal a feature with an icon, a title and one sentence, and the third is locked, with a dashed striped border and a padlock, saying when it will be revealed. Use it to build a waitlist in the weeks before orders open, and to give people a reason to come back. The hero is a 7 to 5 grid that stacks below 992 pixels, with the product moved above the text on small screens. The waitlist form is front end only: it validates the address and swaps in a confirmation message, and a script comment says where to connect a mailing-list provider.
What’s included
- Hero with waitlist form, social proof line and SVG product render
- Three numbered teaser cards, the last one locked until a reveal date
- Product image moves above the text on small screens
- Waitlist form with inline validation and a confirmation
- Bootstrap version built from the grid, .card and .badge
Accessibility
The product render is an SVG with role="img" and a description; icons and avatar dots are aria-hidden. Teasers are a list of cards with their own h2 headings. The email field has a hidden label, an aria-live error linked with aria-describedby and aria-invalid when wrong, and focus moves to the confirmation on success. Links, the field and the button show a 2px teal focus outline; transitions are removed under prefers-reduced-motion.
Customise it
Change --pl-accent, --pl-bg and --pl-line on .pl (plain CSS and Bootstrap) or the --color-pl-* theme colours in Tailwind. Replace the SVG with a product photo, and add or remove teaser cards; the row is a three-column grid (row-cols-lg-3 in Bootstrap).






