Two full-width registration layouts that put the form next to a panel explaining why people should sign up. Form with a benefits panel is a sign-up for a rota planning service: name, work email, business name, a team size select and a password, beside a dark teal panel that lists four free-plan features with tick icons and closes with a short pricing note. Form with an illustrated panel is a walking club membership form whose left panel is a sunset scene drawn entirely in CSS, a sky gradient, a sun and three hill layers cut with clip-path, with the club name and a one-line pitch set on the darkest hill. The form asks for name, email, an optional mobile number, a required membership type with prices in the select, and a calendar email checkbox. Use the benefits panel for trial sign-ups where the value has to be spelled out, and the illustrated panel when a picture carries the brand. Both stack into one column below 768 pixels, with the illustration shortened on top. There is no JavaScript: required, type and minlength do the checking, and :user-invalid turns a field’s border red only after someone has edited it or tried to submit.
What’s included
Seven-to-five column split that stacks on phones
Benefits panel with a feature checklist and pricing note
Illustrated panel drawn with gradients and clip-path, no image files
Styled native select with prices in the options
No JavaScript; :user-invalid marks fields after interaction
Accessibility
Every field has a visible label and an autocomplete value, including organization and tel, and required fields carry an asterisk explained in a written key. Hints such as the password length are linked with aria-describedby. The decorative hill shapes are aria-hidden, panel text stays above 4.5:1 on its background, and every control has a visible focus ring. Transitions switch off under prefers-reduced-motion.
Customise it
Set --sp-accent, --sp-accent-dark and --sp-ring on .sp (.sp--amber is the second palette) and change the panel background on .sp-panel. The hill colours and clip-path polygons live on .sp-hill--1 to --3. In Bootstrap the column split is .col-md-7 and .col-md-5 inside a .row.g-0; in Tailwind edit the grid-cols-[7fr_5fr] class and the [--sp-accent:…] properties.