A CSS split-screen layout divides the page into two full-bleed regions side by side. These 22 hand-coded layouts are ready-to-ship splits for landing-page heroes, sign-in flows, before/after compares, and dual-narrative pages — copy the markup, swap your content, and ship.
22 unique splits21 Pure CSS1 CSS + JS100% copy-paste readyPublished
01 / 22
Editorial Restaurant
Pure CSS
Editorial restaurant menu — cream paper, olive-green typography, burgundy accents.
A split-screen layout divides the page into two (or more) full-bleed regions side by side. Common uses: hero + visual, image + text storytelling, sign-in + brand, before/after compare, two-product reveal. Unlike sidebar layouts (which are persistent page chrome), split-screens are usually a single full-height section that drives one moment of the page.
Should the split be exactly 50/50?
Not always. 50/50 is the default for compare layouts (before/after, two-product reveal). 60/40 emphasizes one side as the hero and the other as supporting content. 70/30 works well when one side is a featured project and the other is metadata or an index. Pick based on which side is the subject and which is the support.
How do I make a split-screen layout responsive?
Every demo here uses CSS grid (e.g. <code>grid-template-columns: 50% 50%</code>) and switches to a single column under 720px via <code>@media (max-width: 720px)</code>. The layout stacks vertically on mobile with the visual side first, then the text side. Watch out for fixed widths or absolute-positioned overlays — those break the stack; relative + flex/grid is more forgiving.
Can I animate the split ratio?
Yes. Use CSS transitions on <code>grid-template-columns</code> with named percentages (<code>30% 70%</code> ↔ <code>50% 50%</code>) — that's how the Music App Toggle and Two Seasons demos shift live. Pure CSS via <code>:has(:checked)</code> on a hidden checkbox or radio input. No JavaScript needed.
What's the difference between a split-screen and a sidebar layout?
A sidebar is persistent page chrome — it stays visible across all pages of the app, contains navigation, and the main content scrolls beside it. A split-screen is a single full-height section that's typically used once per page (hero, sign-in, comparison) and doesn't persist as the user navigates. They use similar CSS techniques (grid, flex, clip-path) but serve completely different jobs. If you need to tell a story across a sequence of moments instead of contrasting two at once, look at the [CSS timeline layouts](/layouts/css-timelines/).