HTML
Copy
<div><span class="mb-4 block text-[.72rem] tracking-[.12em] text-[#4b5563] uppercase">Radio-button carousel (no JavaScript)</span>
<section class="group/tour mx-auto max-w-[440px] rounded-3xl bg-white p-[22px] shadow-[0_18px_40px_rgba(17,24,39,.08)] has-[label:nth-child(2)_:checked]:[--i:1] has-[label:nth-child(3)_:checked]:[--i:2]" role="region" aria-roledescription="carousel" aria-label="Pennywise tour">
<div class="overflow-hidden rounded-[18px]">
<div class="flex translate-x-[calc(var(--i,0)*-100%)] transition-transform duration-450 ease-[cubic-bezier(.2,.7,.2,1)] motion-reduce:transition-none">
<div class="invisible shrink-0 basis-full transition-[visibility] delay-450 duration-0 group-has-[label:nth-child(1)_:checked]/tour:visible group-has-[label:nth-child(1)_:checked]/tour:delay-0" role="group" aria-roledescription="slide" aria-label="1 of 3">
<div class="h-[220px] rounded-[18px] [background:repeating-linear-gradient(to_bottom,#fff_0_10px,transparent_10px_22px)_50%_55%/46%_52%_no-repeat,linear-gradient(#0f766e,#0f766e)_50%_55%/56%_64%_no-repeat,radial-gradient(circle_at_80%_20%,#99f6e4_0_12%,transparent_12.5%),linear-gradient(135deg,#ccfbf1,#5eead4)]"></div><h3 class="mt-[22px] text-[1.35rem] font-bold tracking-[-.02em]">Track every expense</h3><p class="mt-2 leading-[1.6] text-[#4b5563]">Snap a receipt and Pennywise files it under the right category before you have put your wallet away.</p>
</div>
<div class="invisible shrink-0 basis-full transition-[visibility] delay-450 duration-0 group-has-[label:nth-child(2)_:checked]/tour:visible group-has-[label:nth-child(2)_:checked]/tour:delay-0" role="group" aria-roledescription="slide" aria-label="2 of 3">
<div class="h-[220px] rounded-[18px] [background:radial-gradient(circle_at_40%_50%,rgba(15,118,110,.9)_0_22%,transparent_22.5%),radial-gradient(circle_at_60%_50%,rgba(251,191,36,.9)_0_22%,transparent_22.5%),linear-gradient(135deg,#fef3c7,#fde68a)]"></div><h3 class="mt-[22px] text-[1.35rem] font-bold tracking-[-.02em]">Split bills in two taps</h3><p class="mt-2 leading-[1.6] text-[#4b5563]">Pick the people and the amount. Everyone gets a link and pays you back from their own banking app.</p>
</div>
<div class="invisible shrink-0 basis-full transition-[visibility] delay-450 duration-0 group-has-[label:nth-child(3)_:checked]/tour:visible group-has-[label:nth-child(3)_:checked]/tour:delay-0" role="group" aria-roledescription="slide" aria-label="3 of 3">
<div class="h-[220px] rounded-[18px] [background:radial-gradient(circle_at_50%_50%,#e0f2fe_0_16%,transparent_16.5%),radial-gradient(circle_at_50%_50%,transparent_0_32%,#e0f2fe_32.5%),conic-gradient(from_20deg_at_50%_50%,#0f766e_0_38%,#f59e0b_0_62%,#6366f1_0_80%,#e11d48_0_100%)]"></div><h3 class="mt-[22px] text-[1.35rem] font-bold tracking-[-.02em]">See where it goes</h3><p class="mt-2 leading-[1.6] text-[#4b5563]">A monthly ring shows groceries, rent and everything else at a glance, with no spreadsheets.</p>
</div>
</div>
</div>
<div class="mt-5 flex justify-center gap-0.5" role="radiogroup" aria-label="Choose a slide">
<label class="relative grid size-6 cursor-pointer place-items-center transition-[width] duration-300 has-checked:w-[38px] motion-reduce:transition-none"><input class="peer absolute inset-0 m-0 cursor-pointer opacity-0" type="radio" name="tour" aria-label="Slide 1: Track every expense" checked><span class="h-2.5 w-2.5 rounded-[5px] bg-[#6b7280] transition-[width,background-color] duration-300 peer-checked:w-7 peer-checked:bg-tour peer-focus-visible:outline-3 peer-focus-visible:outline-offset-3 peer-focus-visible:outline-tour motion-reduce:transition-none"></span></label>
<label class="relative grid size-6 cursor-pointer place-items-center transition-[width] duration-300 has-checked:w-[38px] motion-reduce:transition-none"><input class="peer absolute inset-0 m-0 cursor-pointer opacity-0" type="radio" name="tour" aria-label="Slide 2: Split bills in two taps"><span class="h-2.5 w-2.5 rounded-[5px] bg-[#6b7280] transition-[width,background-color] duration-300 peer-checked:w-7 peer-checked:bg-tour peer-focus-visible:outline-3 peer-focus-visible:outline-offset-3 peer-focus-visible:outline-tour motion-reduce:transition-none"></span></label>
<label class="relative grid size-6 cursor-pointer place-items-center transition-[width] duration-300 has-checked:w-[38px] motion-reduce:transition-none"><input class="peer absolute inset-0 m-0 cursor-pointer opacity-0" type="radio" name="tour" aria-label="Slide 3: See where it goes"><span class="h-2.5 w-2.5 rounded-[5px] bg-[#6b7280] transition-[width,background-color] duration-300 peer-checked:w-7 peer-checked:bg-tour peer-focus-visible:outline-3 peer-focus-visible:outline-offset-3 peer-focus-visible:outline-tour motion-reduce:transition-none"></span></label>
</div>
</section></div>
<div><span class="mb-4 block text-[.72rem] tracking-[.12em] text-[#4b5563] uppercase">Native scroll buttons and markers</span>
<section class="relative [--gap:14px] [--per:1.3] min-[761px]:[--gap:18px] min-[761px]:[--per:2.3] min-[1001px]:[--per:3]" role="region" aria-roledescription="carousel" aria-label="City posters">
<div class="flex snap-x snap-mandatory gap-(--gap) overflow-x-auto overscroll-x-contain pb-1.5" data-posters tabindex="0">
<div class="shrink-0 basis-[calc((100%-(var(--per)-1)*var(--gap))/var(--per))] snap-start overflow-hidden rounded-2xl bg-white shadow-[0_1px_2px_rgba(17,24,39,.06),0_10px_24px_rgba(17,24,39,.06)]" role="group" aria-roledescription="slide" aria-label="1 of 5">
<div class="aspect-[4/5] bg-[radial-gradient(circle_at_30%_32%,#ea580c_0_15%,transparent_15.5%),radial-gradient(120%_60%_at_80%_100%,#9a3412_0_50%,transparent_50.5%),linear-gradient(to_top,#0e7490_0_22%,transparent_22%),linear-gradient(#fde68a,#fdba74)]"></div>
<div class="flex items-baseline justify-between gap-2.5 px-4 pt-3.5 pb-4"><div><h3 class="text-[1.05rem] font-bold tracking-[-.01em]">Lisbon</h3><p class="text-[.88rem] text-[#4b5563]">Giclée print · A3</p></div><strong class="text-[.95rem]">$28</strong></div>
</div>
<div class="shrink-0 basis-[calc((100%-(var(--per)-1)*var(--gap))/var(--per))] snap-start overflow-hidden rounded-2xl bg-white shadow-[0_1px_2px_rgba(17,24,39,.06),0_10px_24px_rgba(17,24,39,.06)]" role="group" aria-roledescription="slide" aria-label="2 of 5">
<div class="aspect-[4/5] bg-[radial-gradient(circle_at_68%_34%,#e11d48_0_14%,transparent_14.5%),radial-gradient(90%_50%_at_15%_100%,#4c0519_0_55%,transparent_55.5%),radial-gradient(90%_45%_at_90%_100%,#881337_0_55%,transparent_55.5%),linear-gradient(#ffe4e6,#fbcfe8)]"></div>
<div class="flex items-baseline justify-between gap-2.5 px-4 pt-3.5 pb-4"><div><h3 class="text-[1.05rem] font-bold tracking-[-.01em]">Kyoto</h3><p class="text-[.88rem] text-[#4b5563]">Giclée print · A3</p></div><strong class="text-[.95rem]">$28</strong></div>
</div>
<div class="shrink-0 basis-[calc((100%-(var(--per)-1)*var(--gap))/var(--per))] snap-start overflow-hidden rounded-2xl bg-white shadow-[0_1px_2px_rgba(17,24,39,.06),0_10px_24px_rgba(17,24,39,.06)]" role="group" aria-roledescription="slide" aria-label="3 of 5">
<div class="aspect-[4/5] bg-[radial-gradient(70%_16%_at_40%_30%,rgba(52,211,153,.85),transparent_70%),radial-gradient(60%_12%_at_65%_40%,rgba(167,139,250,.7),transparent_70%),radial-gradient(120%_55%_at_50%_108%,#e2e8f0_0_45%,transparent_45.5%),linear-gradient(#0f172a,#1e3a8a)]"></div>
<div class="flex items-baseline justify-between gap-2.5 px-4 pt-3.5 pb-4"><div><h3 class="text-[1.05rem] font-bold tracking-[-.01em]">Reykjavík</h3><p class="text-[.88rem] text-[#4b5563]">Giclée print · A3</p></div><strong class="text-[.95rem]">$28</strong></div>
</div>
<div class="shrink-0 basis-[calc((100%-(var(--per)-1)*var(--gap))/var(--per))] snap-start overflow-hidden rounded-2xl bg-white shadow-[0_1px_2px_rgba(17,24,39,.06),0_10px_24px_rgba(17,24,39,.06)]" role="group" aria-roledescription="slide" aria-label="4 of 5">
<div class="aspect-[4/5] bg-[radial-gradient(circle_at_50%_38%,#dc2626_0_18%,transparent_18.5%),radial-gradient(110%_50%_at_0%_100%,#7c2d12_0_55%,transparent_55.5%),radial-gradient(110%_45%_at_100%_100%,#c2410c_0_55%,transparent_55.5%),linear-gradient(#fef3c7,#fcd34d)]"></div>
<div class="flex items-baseline justify-between gap-2.5 px-4 pt-3.5 pb-4"><div><h3 class="text-[1.05rem] font-bold tracking-[-.01em]">Oaxaca</h3><p class="text-[.88rem] text-[#4b5563]">Giclée print · A3</p></div><strong class="text-[.95rem]">$28</strong></div>
</div>
<div class="shrink-0 basis-[calc((100%-(var(--per)-1)*var(--gap))/var(--per))] snap-start overflow-hidden rounded-2xl bg-white shadow-[0_1px_2px_rgba(17,24,39,.06),0_10px_24px_rgba(17,24,39,.06)]" role="group" aria-roledescription="slide" aria-label="5 of 5">
<div class="aspect-[4/5] bg-[radial-gradient(circle_at_50%_42%,#1d4ed8_0_20%,transparent_20.5%),linear-gradient(to_top,#9a3412_0_30%,transparent_30%),linear-gradient(#ffedd5,#fb923c)]"></div>
<div class="flex items-baseline justify-between gap-2.5 px-4 pt-3.5 pb-4"><div><h3 class="text-[1.05rem] font-bold tracking-[-.01em]">Marrakech</h3><p class="text-[.88rem] text-[#4b5563]">Giclée print · A3</p></div><strong class="text-[.95rem]">$28</strong></div>
</div>
</div>
<p class="mt-2.5 text-center text-[.85rem] text-[#4b5563]" data-posters-hint>Scroll or swipe sideways for all five posters.</p>
</section></div>
<div><span class="mb-4 block text-[.72rem] tracking-[.12em] text-[#4b5563] uppercase">Scroll-driven coverflow</span>
<section class="rounded-3xl bg-[#111827] pt-[30px] pb-[26px] text-[#f9fafb]" role="region" aria-roledescription="carousel" aria-label="Staff picks">
<h2 class="px-7 text-[1.2rem] font-bold tracking-[-.01em]">Staff picks for October</h2><p class="px-7 pt-1 text-[.9rem] text-[#9ca3af]">Seven novels our booksellers could not put down</p>
<div class="mt-[22px] flex snap-x snap-mandatory gap-1.5 overflow-x-auto overscroll-x-contain px-[calc(50%-88px)] py-3.5 [perspective:900px] focus-visible:outline-3 focus-visible:-outline-offset-3 focus-visible:outline-[#f9fafb]" data-coverflow tabindex="0">
<div class="flex aspect-[2/3] w-44 shrink-0 snap-center flex-col justify-between rounded-l-md rounded-r-xl px-4 py-5 text-[#ccfbf1] shadow-[inset_6px_0_0_rgba(0,0,0,.18),0_18px_30px_rgba(0,0,0,.45)] [background:radial-gradient(circle_at_68%_64%,#5eead4_0_17%,transparent_17.5%),#0f766e]" role="group" aria-roledescription="slide" aria-label="1 of 7"><h3 class="font-[Georgia,'Times_New_Roman',serif] text-[1.35rem] leading-[1.1] font-semibold">The Salt Road</h3><p class="text-[.72rem] font-bold tracking-[.14em] uppercase">Mara Ellison</p></div>
<div class="flex aspect-[2/3] w-44 shrink-0 snap-center flex-col justify-between rounded-l-md rounded-r-xl px-4 py-5 text-[#e0e7ff] shadow-[inset_6px_0_0_rgba(0,0,0,.18),0_18px_30px_rgba(0,0,0,.45)] [background:radial-gradient(circle_at_30%_28%,#fde68a_0_9%,transparent_9.5%),#1e1b4b]" role="group" aria-roledescription="slide" aria-label="2 of 7"><h3 class="font-[Georgia,'Times_New_Roman',serif] text-[1.35rem] leading-[1.1] font-semibold">Small Hours</h3><p class="text-[.72rem] font-bold tracking-[.14em] uppercase">Idris Coleman</p></div>
<div class="flex aspect-[2/3] w-44 shrink-0 snap-center flex-col justify-between rounded-l-md rounded-r-xl px-4 py-5 text-[#0c4a6e] shadow-[inset_6px_0_0_rgba(0,0,0,.18),0_18px_30px_rgba(0,0,0,.45)] [background:repeating-linear-gradient(100deg,transparent_0_14px,rgba(12,74,110,.18)_14px_16px),#e0f2fe]" role="group" aria-roledescription="slide" aria-label="3 of 7"><h3 class="font-[Georgia,'Times_New_Roman',serif] text-[1.35rem] leading-[1.1] font-semibold">A Map of Rain</h3><p class="text-[.72rem] font-bold tracking-[.14em] uppercase">June Okafor</p></div>
<div class="flex aspect-[2/3] w-44 shrink-0 snap-center flex-col justify-between rounded-l-md rounded-r-xl px-4 py-5 text-[#78350f] shadow-[inset_6px_0_0_rgba(0,0,0,.18),0_18px_30px_rgba(0,0,0,.45)] [background:linear-gradient(135deg,transparent_45%,rgba(120,53,15,.2)_45%_55%,transparent_55%),#fef3c7] [scroll-initial-target:nearest]" role="group" aria-roledescription="slide" aria-label="4 of 7"><h3 class="font-[Georgia,'Times_New_Roman',serif] text-[1.35rem] leading-[1.1] font-semibold">Glasshouse</h3><p class="text-[.72rem] font-bold tracking-[.14em] uppercase">Theo Varga</p></div>
<div class="flex aspect-[2/3] w-44 shrink-0 snap-center flex-col justify-between rounded-l-md rounded-r-xl px-4 py-5 text-[#ffe4e6] shadow-[inset_6px_0_0_rgba(0,0,0,.18),0_18px_30px_rgba(0,0,0,.45)] [background:radial-gradient(circle_at_50%_70%,rgba(255,228,230,.25)_0_30%,transparent_30.5%),#881337]" role="group" aria-roledescription="slide" aria-label="5 of 7"><h3 class="font-[Georgia,'Times_New_Roman',serif] text-[1.35rem] leading-[1.1] font-semibold">The Quiet Year</h3><p class="text-[.72rem] font-bold tracking-[.14em] uppercase">Ines Duarte</p></div>
<div class="flex aspect-[2/3] w-44 shrink-0 snap-center flex-col justify-between rounded-l-md rounded-r-xl px-4 py-5 text-[#1c1917] shadow-[inset_6px_0_0_rgba(0,0,0,.18),0_18px_30px_rgba(0,0,0,.45)] [background:linear-gradient(to_top,#bae6fd_0_30%,transparent_30%),#fafaf9]" role="group" aria-roledescription="slide" aria-label="6 of 7"><h3 class="font-[Georgia,'Times_New_Roman',serif] text-[1.35rem] leading-[1.1] font-semibold">Paper Boats</h3><p class="text-[.72rem] font-bold tracking-[.14em] uppercase">Kenji Mori</p></div>
<div class="flex aspect-[2/3] w-44 shrink-0 snap-center flex-col justify-between rounded-l-md rounded-r-xl px-4 py-5 text-[#dcfce7] shadow-[inset_6px_0_0_rgba(0,0,0,.18),0_18px_30px_rgba(0,0,0,.45)] [background:radial-gradient(120%_40%_at_50%_100%,#22c55e_0_50%,transparent_50.5%),#14532d]" role="group" aria-roledescription="slide" aria-label="7 of 7"><h3 class="font-[Georgia,'Times_New_Roman',serif] text-[1.35rem] leading-[1.1] font-semibold">Low Tide</h3><p class="text-[.72rem] font-bold tracking-[.14em] uppercase">Ada Brennan</p></div>
</div>
</section></div>