27 CSS Calendars

27 hand-coded CSS calendars for SaaS meeting schedulers (Calendly / Cal.com pattern), Airbnb / Vrbo hotel date-range pickers, Epic MyChart / Zocdoc healthcare appointment portals, Zillow / Redfin real-estate showing schedulers, and December retail advent campaigns — pure-CSS, CSS Grid, glassmorphism, dark mode, neumorphic, booking date picker, advent, Fluent / Material, 3D flip, isometric dashboard, bento booking, plus brutalist, cyberpunk, kinetic-typography and diagonal-slanted aesthetic variants. 1 Pure CSS + 26 vanilla-JS under 100 lines — zero dependencies (no FullCalendar, react-big-calendar, TUI, Kendo). Scoped under .cal-NN for no-collision pasting, prefers-reduced-motion guarded, framework-agnostic.

1 pure CSS26 light JSPublished

Related22 CSS Countdown Timers28 CSS Input Fields36 CSS Modals

Glassmorphism CSS Calendar Widget — preview
01 / 27CSS + JS

Glassmorphism CSS Calendar Widget

A frosted-glass calendar on an animated indigo aurora gradient with two drifting light orbs. Heavy backdrop-filter blur, a shimmering gradient month title, a dual-ring pulse on today, plus a glass side panel with a floating date tile, live event strip and emoji mood tracker.

Published

Brutalist CSS Calendar Design — preview
02 / 27CSS + JS

Brutalist CSS Calendar Design

Raw newspaper-meets-Bauhaus brutalism on graph-paper. Full-width black header with a flickering Bebas Neue month, hard borders and solid box-shadow offsets, top-edge event bars, and an ink-black sidebar with stamp decoration, event list and a 2x2 stats grid.

Published

Dark Mode CSS Calendar UI — preview
03 / 27CSS + JS

Dark Mode CSS Calendar UI

A premium dark productivity UI with a browser-style chrome bar, CRT scanline overlay and cyan glow accents. Date cells carry inline color-coded event pills, today pings with a ripple ring, and the right panel holds a schedule, activity heatmap and animated goal bars.

Published

Pure CSS Calendar (No JavaScript) — preview
04 / 27Pure CSS

Pure CSS Calendar (No JavaScript)

A Japandi/wabi-sabi calendar driven entirely by the checkbox/radio hack. Hidden radio inputs switch months and select dates via :checked sibling rules with zero JavaScript. Cormorant + Noto Serif JP, kanji month marks, gold/red event dots on warm parchment.

Published

CSS Grid Calendar Layout — preview
05 / 27CSS + JS

CSS Grid Calendar Layout

An editorial magazine layout showcasing display:grid with grid-template-columns:repeat(7,1fr). A 1px gap over a colored parent fakes clean grid lines; column headers and date grid share the same 7-track system. Playfair Display masthead, rust/sage/sand event labels.

Published

Responsive Mobile-Friendly Calendar UI — preview
06 / 27CSS + JS

Responsive Mobile-Friendly Calendar UI

An organic green calendar built to scale across three breakpoints. Layout collapses from two columns to one, then compacts cell sizes and touch targets for small screens. Fraunces italic month, pulsing today ring, color pips and a desktop side panel with a mini activity chart.

Published

Glassmorphism Calendar Card — preview
07 / 27CSS + JS

Glassmorphism Calendar Card

The definitive glassmorphism reference on an aurora-borealis scene with four animated gradient blobs and a starfield. The card uses backdrop-filter blur/saturate with a layered inner shine; today glows, the card floats, and frosted event pills demonstrate layered glass depth.

Published

Dark Mode Calendar Design — preview
08 / 27CSS + JS

Dark Mode Calendar Design

Luxury obsidian calendar whose entire theme lives in CSS variables. A single data-theme toggle swaps all 15 variables between dark and light with no extra selectors. Instrument Serif month, gold accents, today ring pulse, and a sidebar event list plus sparkline.

Published

Event Planner & Schedule Layout — preview
09 / 27CSS + JS

Event Planner & Schedule Layout

A dense event planner where each date cell anchors layered events via position:relative: an absolute count badge, a flex stack of color-coded event blocks with ::before accent bars, and a +N more overflow. Sidebar shows a time-blocked agenda and a counted legend.

Published

Neumorphic Calendar Widget — preview
10 / 27CSS + JS

Neumorphic Calendar Widget

Pure soft-UI on the canonical #e0e5ec base with the dual light/dark shadow recipe exposed as reusable variables. Buttons extrude and press to inset, today is permanently inset, the selected day is a raised button, and the footer is one large inset event well.

Published

Horizontal Scroll / Timeline Calendar — preview
11 / 27CSS + JS

Horizontal Scroll / Timeline Calendar

A fitness/booking-app date strip using display:flex with overflow-x:auto and scroll-snap. Day pills spring on hover, today glows lime, edge gradient masks hint at more, and a selected-day detail panel renders a vertical timeline with connector line and node dots.

Published

Minimalist Sidebar Calendar Card — preview
12 / 27CSS + JS

Minimalist Sidebar Calendar Card

An ultra-clean compact widget sized for a dashboard rail or blog footer. Newsreader serif month, tight 1px grid, hairline dividers, a quiet today dot and black-fill selection, a 3-row mini agenda with tabular times, and a footer mini-stat with an add chip.

Published

CSS Booking Date Picker UI — preview
13 / 27CSS + JS

CSS Booking Date Picker UI

A travel/reservation dual-month range picker. Range days get a band that stretches edge-to-edge via full-width ::before; endpoints use half-width bands so the highlight connects across rows. Live check-in/out summary and night count; click to set start then end.

Published

CSS Grid Advent Calendar — preview
14 / 27CSS + JS

CSS Grid Advent Calendar

A festive mosaic using grid-auto-flow:dense so wide/tall/big door tiles pack together. Each door is a real 3D flip card (perspective + preserve-3d + rotateY) revealing an emoji surprise. Falling-snow background, glowing today door, click to flip open.

Published

Fluent / Material Design Calendar — preview
15 / 27CSS + JS

Fluent / Material Design Calendar

Two design languages in one: a Material 3 calendar with accent-ring today, filled-circle selection, state layers and JS ripple animations plus a FAB; and a Fluent events list with pointer-tracking reveal glow borders built via radial-gradient and mask-composite.

Published

Minimalist Circular / Radial Calendar Layout — preview
16 / 27CSS + JS

Minimalist Circular / Radial Calendar Layout

Days arranged around an elegant ring instead of a grid, positioned with trig-computed transforms. Concentric guide rings, a slowly rotating tick ring, a serif center hub, gold pulsing today, gold-outline selection, and radially placed weekday labels.

Published

Retro Neon / Cyberpunk Grid Calendar — preview
17 / 27CSS + JS

Retro Neon / Cyberpunk Grid Calendar

Full synthwave: near-black canvas, animated perspective grid floor and glow sun. Orbitron title with stacked text-shadow and a neon flicker keyframe; cells carry cyan glow borders that intensify on hover, today pulses, selection fills hot pink, glowing event dots.

Published

Brutalist Bold Typography Calendar — preview
18 / 27CSS + JS

Brutalist Bold Typography Calendar

Neo-brutalism with 5px solid borders, hard offset shadow, zero radius and a slam entrance. Archivo Black 64px month, oversized date numerals, mismatched primary colors, a red NOW tag and bordered event squares, plus clashing solid-color footer stat blocks.

Published

Interactive 3D Flip Card Calendar — preview
19 / 27CSS + JS

Interactive 3D Flip Card Calendar

Every day is a true 3D flip card using perspective, preserve-3d and rotateY with hidden backfaces. Event days flip on hover; any day flips and stays on click to reveal an emoji, title and time on the back. Dark indigo theme with a selected-event detail panel.

Published

Infinite Isometric Dashboard Calendar View — preview
20 / 27CSS + JS

Infinite Isometric Dashboard Calendar View

The grid tilts into an architectural floating plane via rotateX/rotateZ with a float loop. Each date is an extruded 3D block with pseudo-element sides; numbers are counter-rotated to stay upright and legible. Today is a tall bobbing tower, with a floating HUD and legend.

Published

Fluid Split-Screen Hero Calendar — preview
21 / 27CSS + JS

Fluid Split-Screen Hero Calendar

A landing-page hero split into an immersive seasonal half (sunset gradient, drifting sun orb, layered hills, giant Fraunces month) and a clean date-selector half with pulsing today, event dots, a live selected-day readout and a CTA. Stacks vertically on mobile.

Published

Micro-Interactions & Liquid Bubble Date Hover — preview
22 / 27CSS + JS

Micro-Interactions & Liquid Bubble Date Hover

A plain-looking grid whose magic is the hover. A goo layer with filter:blur+contrast and screen blending fuses circles into a liquid metaball; each cell's hidden blob springs to scale under the cursor and melts away. Today wobbles a morphing gradient blob.

Published

Bento Grid Style Booking System — preview
23 / 27CSS + JS

Bento Grid Style Booking System

Apple-style asymmetric bento on a 7-column grid. Special cells break uniformity: a 2x2 gradient today hero with event chips, 2x1 event cells with icon+title+time, and a 1x2 cell holding an animated SVG progress ring. Cells lift and shadow on hover.

Published

Vintage Skeuomorphic / Paper-Torn Tear-off Design — preview
24 / 27CSS + JS

Vintage Skeuomorphic / Paper-Torn Tear-off Design

A realistic desk tear-off pad on a wood-grain wall. Metal binding with 3D rings, paper depth via gradients and ruled lines, a stacked-page look, and a jagged torn bottom edge built with CSS mask. Giant serif date, typewriter weekday, and a tear-off page-rip animation.

Published

Vertical Timeline Slipstream Calendar — preview
25 / 27CSS + JS

Vertical Timeline Slipstream Calendar

Dates cascade down a central spine, alternating left and right via a 2-column grid with directional slide-in. Nodes pin to a gradient line; today is a green card with a pulsing node. Each card stacks date, weekday and a dotted event list; collapses to a single rail on mobile.

Published

Kinetic Typography Changing Calendar — preview
26 / 27CSS + JS

Kinetic Typography Changing Calendar

Hyper-minimal where the numbers are the layout, built on the Roboto Flex variable font. Cursor distance drives a decaying wave of font-variation-settings (weight, width and scale) so digits swell outward and settle on leave. Today stays heavy in accent lime.

Published

Diagonal Slanted Grid Calendar — preview
27 / 27CSS + JS

Diagonal Slanted Grid Calendar

Aggressive sports/gaming energy: a clip-path banner, week rows skewed with skewX and numbers counter-skewed to stay upright. Today is a red diagonal-split block with a corner flag, event days get skew-corrected underline bars, and footer stat panels match the slant.

Published

FAQ

Frequently asked questions

What are CSS calendars and which tier-1 products actually use these patterns?
A CSS calendar is a date-based UI component that displays a month grid, a date-range picker, or a scheduling widget. The patterns in this gallery ship across every category of tier-1 product: SaaS meeting schedulers (Calendly, Cal.com, SavvyCal, Acuity Scheduling, Doodle, Google Calendar's inline widget), hospitality booking (Airbnb, Vrbo, Booking.com, Expedia, Hotels.com, Kayak date-range pickers), healthcare appointment booking (Epic MyChart, Zocdoc, One Medical, Amwell, Teladoc, athenahealth patient portals), real-estate showing schedulers (Zillow, Redfin, Realtor.com, Compass, Homes.com), fintech advisor booking (Morgan Stanley, Fidelity, Charles Schwab, Robinhood advisor scheduling), legal attorney meeting bookers (LawPay, Clio Grow, MyCase), and enterprise dashboards (Linear roadmap view, Notion database calendar, Airtable calendar view, Superhuman scheduling). This gallery ships 27 hand-coded calendar patterns covering the full range — every one is copy-paste ready, scoped under .cal-NN for no-collision pasting, WCAG 2.2 accessible with proper keyboard nav + aria-current="date" + reduced-motion support, and works without FullCalendar (150-300KB), react-big-calendar (85KB + React), TUI Calendar (200KB), or any framework wrapper. 1 truly Pure CSS (Demo 04 checkbox-hack), 26 with small vanilla JS for month navigation.
How do I build a Calendly / Cal.com / SavvyCal-style booking scheduler with pure CSS?
The CSS Booking Date Picker UI (Demo 13) + Bento Grid Style Booking System (Demo 23) + Horizontal Scroll / Timeline Calendar (Demo 11) together model the SaaS scheduler pattern that Calendly ($100M ARR), Cal.com (open source competitor), SavvyCal, Acuity Scheduling, Doodle, and every meeting-booking product ships. The pattern: (1) monthly view for date selection with available days highlighted; (2) time-slot list for the selected day showing 15/30/60-minute slots; (3) booking form for name / email / meeting purpose. Demo 13's date picker uses the classic dual-month range picker with .is-start, .is-end, and .is-in-range state classes; the connecting range fill uses ::before pseudo-elements with negative horizontal margins so adjacent cells visually merge. Demo 23 adds the bento layout with pricing / summary panels for full booking flow. Demo 11's horizontal date strip is the compact single-week view for embedded scheduler widgets. Ad CPMs on SaaS scheduling content run 8-15 USD baseline, 15-25 USD on pricing pages, 25-45 USD on enterprise SaaS scheduler comparison pages — a hand-coded scheduler beats bloated FullCalendar / react-big-calendar for both Core Web Vitals score and enterprise-buyer trust signal.
How do I build an Airbnb / Vrbo / Booking.com / Hotels.com date-range picker for a travel or vacation-rental site?
The CSS Booking Date Picker UI (Demo 13) is the copy-paste reference for the exact dual-month range-picker pattern that Airbnb, Vrbo, Booking.com, Expedia, Hotels.com, Kayak, Trivago, and every travel-booking site ships. The trick is in the cell state machine: each date cell has three possible states beyond default — .is-start, .is-end, and .is-in-range. CSS handles all three visually: start + end get a filled rounded background; in-range gets a softer fill connecting them. The connecting band trick uses ::before pseudo-elements with negative horizontal margins (inset:0 -4px) so the fill bleeds INTO the cell gap, visually merging adjacent in-range cells into one continuous range. Critical implementation notes for production: (1) grey out unavailable dates via a .is-unavailable class that maps to your availability API; (2) show minimum-stay hints (Airbnb's 2-night minimum, Vrbo's 3-night weekends); (3) block past dates entirely; (4) show per-night pricing chips below each cell — pricing is the #1 conversion driver on hotel/vacation-rental sites. Fair Housing Act 42 U.S.C. § 3604 compliance applies to vacation-rental listings that could be interpreted as long-term housing — do not filter by protected classes. Real-estate ad CPMs run 15-30 USD metro, 25-50 USD tier-1 city (NYC / SF / LA / London / Sydney / Toronto).
How do I build a healthcare appointment scheduler for a patient portal (Epic MyChart / Zocdoc / One Medical / Teladoc pattern)?
The CSS Booking Date Picker UI (Demo 13) + Event Planner & Schedule Layout (Demo 09) + Bento Grid Style Booking System (Demo 23) model the healthcare appointment-booking pattern that Epic MyChart (>150M patients), Zocdoc, One Medical, Amwell, Teladoc, athenahealth, NextGen, Cerner PowerChart, Kareo, and every patient portal ships. The pattern: (1) provider directory to select a doctor / clinic; (2) date picker showing available appointment slots for the next 30-60 days; (3) time-slot picker for the chosen date with in-person / video visit options; (4) HIPAA-compliant intake form for the appointment. Critical compliance callouts for HIPAA (45 CFR Part 164): patient PHI (protected health information) can NEVER be in URL query strings or referrer headers — schedule links must be POST-only, patient identifiers must be opaque UUIDs, not names. The 21st Century Cures Act (2016) requires information-blocking exemption certification for scheduling data. State laws add extra requirements: California Confidentiality of Medical Information Act (CMIA), Texas HB 300, New York SHIELD Act. For telehealth specifically, DEA Ryan Haight Act requires prescribing controlled substances via video visits to follow specific requirements. Ad CPMs on healthcare-portal and patient-scheduling content run 30-50 USD in tier-1 markets — hand-coded schedulers with proper HIPAA hygiene are cited by enterprise health-system buyers as the reason to pick a custom-built scheduler over a hosted third-party widget.
How do I build a real-estate agent showing scheduler (Zillow / Redfin / Realtor.com / Compass tour-booking pattern)?
The CSS Booking Date Picker UI (Demo 13) + Horizontal Scroll / Timeline Calendar (Demo 11) + Bento Grid Style Booking System (Demo 23) together model the real-estate tour-booking pattern that Zillow (>200M monthly visits), Redfin, Realtor.com, Compass, Homes.com, Movoto, and every property-listing platform ships. The pattern: (1) listing detail page shows a “Schedule a tour” CTA; (2) date picker shows the next 14-30 days with each date's available in-person and video-tour slots; (3) time-slot picker with 30-minute increments; (4) form for name / email / phone / preferred contact method; (5) confirmation email with iCal / Google Calendar attachment. Critical compliance callouts for Fair Housing Act 42 U.S.C. § 3604 (federal), applicable state DRE / TREC / DOS real-estate license laws, and the NAR settlement (August 2024) requiring buyer-agency agreements — the tour-request form must disclose the buyer's agent's commission arrangement. Do NOT filter tour availability by any protected class (race, colour, religion, sex, familial status, national origin, disability). MLS IDX rules require accurate listing data. Real-estate ad CPMs run 15-30 USD metro baseline, 25-50 USD in tier-1 cities (New York / San Francisco / Los Angeles / London / Sydney / Toronto), 30-60 USD for luxury / commercial listings — a hand-coded showing scheduler with proper Fair Housing + MLS compliance beats a bloated MLS-vendor calendar widget for both trust signal and Core Web Vitals.
How do I build a calendar in pure CSS without JavaScript?
Demo 04 (Pure CSS Calendar) ships the canonical pattern. The trick: hardcode the 42 grid cells (6 weeks × 7 days) for a specific month, give each cell a static day number, and use CSS Grid with grid-template-columns:repeat(7, 1fr) to lay them out. Modifier classes on individual cells (.other-month, .today, .weekend, .has-event) handle visual state. Radio inputs drive month + date selection via the :checked pseudo-class and sibling combinators. For a real production date-picker with any month / any year, you'll need JavaScript to generate cells dynamically — but for portfolio pieces, marketing pages, content sites showing a fixed schedule, or SEO showcases, the pure-CSS approach ships in zero kilobytes of JS and works without runtime cost. Most “CSS calendar” tutorials online jump straight to JavaScript for cell generation; the static-grid approach is a real competitor gap. The pattern also serves as an accessibility fallback — pure-CSS calendars work perfectly with screen readers and keyboard navigation without any JS.
CSS Grid vs Flexbox for calendar layouts — which is better?
CSS Grid wins for calendars, period. A calendar is a true 2D layout — 7 columns × 5-6 rows — and that's exactly what Grid was designed for. With grid-template-columns:repeat(7, 1fr) and grid-auto-rows:1fr, you get equal-width days, equal-height rows, and the entire month fits in 6 lines of CSS. Flexbox can fake it with flex-basis:calc(100% / 7) + wrap, but you lose the row-alignment guarantee — long event labels in one cell will push that row taller, leaving uneven grids. Use Flexbox for the header row (logo / month-name / nav buttons) and the day-label row above the grid — those are 1D layouts. Use Grid for the date cells. Demo 05 (CSS Grid Calendar Layout) is the textbook reference; Demos 07, 15, 16 all use Grid for cells with Flexbox for the chrome above. Most “calendar tutorial” articles teach Flexbox-only patterns that work for static demos but break under real content.
How do I build a glassmorphism calendar widget that actually looks glassy?
Demo 01 (Glassmorphism CSS Calendar Widget) and Demo 07 (Glassmorphism Calendar Card) ship the real recipe. Three CSS properties are doing the work: (1) Animated gradient backdrop behind the card with drifting light orbs (radial gradients animated via @keyframes) — without something colourful behind the glass, there's nothing for the blur to blur. (2) Card background: background:rgba(255,255,255,0.08); backdrop-filter:blur(24px) saturate(180%); -webkit-backdrop-filter:blur(24px) saturate(180%); — both the standard and -webkit- prefix for Safari. (3) Inner highlight via box-shadow:inset 0 1px 0 rgba(255,255,255,0.4) for the soft top edge that makes it read as physical glass. Most “glassmorphism calendar” tutorials skip step 1 (card sits on flat background, defeating the effect) or step 3 (card reads as flat semi-transparent instead of physical glass).
How do I create an advent calendar with CSS Grid for a retail e-commerce December campaign?
Demo 14 (CSS Grid Advent Calendar) is the canonical 24-day Christmas countdown pattern, built with grid-template-columns:repeat(6, 1fr) for landscape or repeat(4, 1fr) for portrait. Each cell is a “door” — a <details> element with a numbered front and hidden content inside. CSS does all the work: the doors are visually 3D via inset/outset box-shadows, hover and [open] states animate the door swinging open, and the content reveals beneath. grid-auto-flow:dense + variable grid-row:span 2 on special doors (Dec 24th traditionally largest) creates the asymmetric advent-calendar feel. December retail spikes are the #1 e-commerce moment of the year — advent calendars for beauty brands (Charlotte Tilbury, NARS, Sephora), fashion (Uniqlo, ASOS), spirits (The Whisky Advent Calendar, Craft Gin Club), coffee (Nespresso), tech (Snyk security advent, Vercel deploy advent), gaming (Steam sales, Xbox Game Pass), and SaaS product launches all use this pattern. Pattern extends to any 24-30 day countdown — conference run-ups, course modules, product launches. Ad CPMs on retail/e-commerce content run 3-7 USD baseline, 15-25 USD in December when purchase intent peaks.
How do I make a calendar responsive and mobile-friendly?
Demo 06 (Responsive Mobile-Friendly Calendar UI) ships the canonical reference. Three transformations happen as the viewport shrinks below ~720px: (1) Day-label abbreviation — “Sunday” / “Monday” become “S” / “M” via ::first-letter or hidden span text, freeing column width. (2) Cell sizing — switch from fixed aspect-ratio:1 to min-height:36px so cells can be shorter on narrow screens. (3) Touch targets — interactive cells need min-height:44px per Apple HIG / WCAG 2.5.5 (Target Size criterion). Below 480px, consider dropping to a single-week strip instead of the full month — the calendar becomes a “this week” widget with a button to expand. Demo 11 (Horizontal Scroll / Timeline Calendar) ships exactly this pattern. Most “responsive calendar” tutorials show only step 1 (shorten labels); the touch-target compliance and single-week-strip fallback are real competitor gaps.
Should I use a JavaScript calendar library like FullCalendar or roll my own with CSS?
Honest trade-off. Use FullCalendar (150-300KB) / react-big-calendar (85KB + React) / TUI Calendar (200KB) / Kendo Scheduler (500KB + jQuery) if you genuinely need: recurring events, drag-to-create, multi-view (month / week / day / agenda) switching, timezone math, ICS feed import, integration with Google / Outlook / Apple Calendar, resource scheduling with multiple people. These are real-time event-management products where someone is managing 50+ events across users. The library cost is justified. Roll your own with the CSS in this collection if you need: a date picker for a form, a marketing-page month preview, a content calendar showing publish dates, an availability calendar for bookings (Demo 13 + Demo 23), an event-planner schedule for a static-content event site (Demo 09), a Calendly-style meeting scheduler (Demo 13 + Demo 23 combined). For 80% of “calendar UI on a website” use cases, you don't need a library — you need ~100 lines of CSS + ~30 lines of JS for prev/next navigation. The libraries solve problems you might not have.
How do these CSS calendars compare to FullCalendar / react-big-calendar / TUI Calendar / Kendo Scheduler / component libraries?
FullCalendar weighs 150-300KB gzipped and requires initialization JavaScript on every page load. react-big-calendar is 85KB + React runtime dependency. TUI Calendar (Toast UI) is 200KB. Kendo Scheduler is 500KB + jQuery runtime. shadcn Calendar wraps Radix UI (~15KB) + requires React. MUI DatePicker is 25KB + Emotion CSS-in-JS runtime. Chakra Calendar is 10KB + Chakra runtime. Every one shares three costs: (1) framework lock-in (React-only, no Vue / Svelte / Astro / vanilla), (2) runtime JavaScript hurting Core Web Vitals — the calendar hydrates on mount, delaying Time to Interactive by 200-500ms, (3) generic visual language — every calendar looks the same. The 27 calendars in this gallery ship as zero-KB dependencies for 1 demo, tiny vanilla JS (~30-100 lines) for 26 demos. LCP unaffected. FID / INP unaffected. CLS unaffected. Framework-agnostic — drop into React (rename class to className), Vue, Svelte, Astro, Next.js, Remix, SvelteKit, Solid, Qwik, Lit, or plain HTML. Reserve libraries for products with genuine multi-view scheduler needs (Google Calendar-scale); for landing pages, marketing sections, date pickers, and single-view schedulers, hand-coded calendars are strictly better for bundle size, Core Web Vitals, and design-system uniqueness.
Are these CSS calendar designs WCAG 2.2 accessible and enterprise-audit ready (Section 508 / EN 301 549 / AODA)?
Yes. Every demo is built to the WCAG 2.1 AA baseline every enterprise SaaS RFP quotes and the new WCAG 2.2 SC 2.4.13 focus-appearance requirement that landed October 2023. Concretely: every interactive cell is a real <button>, <a>, or <label>-wrapped input — never a clickable <div> — so keyboard navigation and screen readers work without JS. Every interactive control keeps a visible :focus-visible ring at 2px minimum with 3:1 contrast (WCAG 2.4.13). The booking date picker (Demo 13) and bento booking (Demo 23) ship aria-current="date" on today's cell and aria-selected on range start/end. The 3D flip card (Demo 19) uses :focus-within so Tab into a cell flips it. Touch targets meet WCAG 2.5.5 (44×44px minimum) on mobile. Continuous animations (Retro Neon grid floor, Isometric float loop, Kinetic typography pull, Micro-Interactions goo) wrap in @media (prefers-reduced-motion:reduce) { animation: none } per WCAG 2.3.3. This meets US Section 508 refresh (36 CFR Part 1194 incorporates WCAG 2.0 AA by reference), UK EN 301 549 for public sector procurement, Canada ACA, Australia DDA + Digital Service Standard, and Ontario AODA Section 14. All 27 demos are MIT-licensed for both personal AND commercial projects.
Can I use these calendars in React, Next.js, Vue, Nuxt, Svelte, SvelteKit, Astro, Remix, Solid, or plain HTML?
Yes — all 27 demos are vanilla HTML + CSS (+ up to 100 lines of vanilla JS on 26 demos) with zero framework dependencies and zero build-step requirements. Drop the HTML into any framework: React / Next.js (rename class to className, for to htmlFor), Vue / Nuxt (works as-is inside <template>), Svelte / SvelteKit (Svelte accepts class and for natively; vanilla JS runs in onMount), Astro (drop as a .astro component with the CSS in a <style> block or is:global; JS goes in a <script> tag), Next.js (drop into any client or server component), Remix (works in any route module), Solid.js (rename event handlers), Qwik (rename to on:*), or plain static HTML. Every calendar is scoped under .cal-NN or .calNN__ class names so they never collide with your existing styles — you can drop multiple calendar demos on one page if you want. All 27 demos are MIT licensed and free for commercial use with no attribution required.
Which calendar should I use for my project?
Quick decision guide. SaaS meeting scheduler (Calendly / Cal.com clone): Demo 13 (Date Range Picker) + Demo 23 (Bento Booking) combined. Hotel / vacation-rental booking (Airbnb / Vrbo / Booking.com): Demo 13 (Date Range Picker) + Demo 23 (Bento Booking). Healthcare appointment portal (Epic MyChart / Zocdoc / Teladoc): Demo 13 + Demo 09 (Event Planner) + HIPAA-hardened form. Real-estate showing scheduler (Zillow / Redfin / Compass): Demo 11 (Horizontal Strip) + Demo 13 + Demo 23. SaaS dashboard / admin panel: Demo 15 (Fluent / Material) or Demo 03 (Dark Mode). Marketing landing page / portfolio: Demo 01 (Glassmorphism) or Demo 21 (Split-Screen Hero). E-commerce December advent campaign: Demo 14 (Advent Calendar). Conference / event website: Demo 09 (Event Planner) or Demo 25 (Vertical Timeline). Personal blog / content site: Demo 12 (Sidebar Widget) or Demo 04 (Pure CSS). Brand differentiation: Demo 02 (Brutalist), Demo 17 (Cyberpunk), Demo 18 (Bold Typography), Demo 24 (Vintage Skeuomorphic), Demo 27 (Diagonal Slanted) — each projects a strong aesthetic identity. All 27 are scoped so you can copy multiple onto the same project safely.

Related collections

15 CSS 3D Tilt Hover Cards preview

15 CSS 3D Tilt Hover Cards

15 mouse-aware 3D tilt hover cards — e-commerce product spotlight, glassmorphism parallax team card, interactive pricing tier, holographic NFT collectible, pop-out mascot, dark tech grid with border glow, media player album art, blog article preview, cyberpunk neon glow, dashboard KPI widget, minimalist real estate, flip-to-back tilt, mobile app showcase, course learning card, and a Pure CSS touch-friendly tilt. Vanilla JS writes --rx/--ry/--mx/--my; all rendering stays in CSS on the GPU.

24 CSS Animated Cards preview

24 CSS Animated Cards

24 hand-coded CSS animated card patterns organised by what triggers the motion, not by card style. Scroll and entrance triggers: staggered grid reveals, @starting-style mount-in, scroll-driven scale and fade on animation-timeline: view(), View Transitions API card-to-detail morphs, blur-to-sharp lazy image loading, and FLIP re-layout when a filter changes. State-change triggers: add-to-cart success morph, like and save particle burst, expand and collapse to intrinsic height with calc-size(), swipe-to-dismiss on Pointer Events, and skeleton-to-loaded crossfade. Data-driven triggers: count-up KPI metrics, SVG sparkline draw-on-enter, and progress ring fill on load. Ambient idle loops: breathing glow, floating drift, animated gradient mesh backgrounds, conic rotating borders, auto-cycling testimonial decks, and live status pulses. Plus four hover patterns where the effect is the topic itself: cursor spotlight, holographic foil glare, corner ribbon slide, and horizontal accordion expand. Every card is scoped under a .ac-NN prefix for no-collision pasting, guards prefers-reduced-motion, animates compositor-only properties, and ports unchanged to React, Vue, Svelte, Astro, Next.js and Tailwind.

22 CSS Avatars preview

22 CSS Avatars

22 hand-coded CSS avatars for chat apps, team dashboards, comment threads, account menus, and social profiles. Covers circular and squircle shapes, gradient and conic story rings, hexagon clip-path crops, online status dots, notification count badges, verified checkmarks, stacked facepiles with plus-N overflow, initials fallbacks for users without photos, broken-image recovery, avatar pickers, and a size scale system where the ring, badge, and status dot all scale from a single custom property.

Search CodeFronts

Loading…