We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Your website does not need JavaScript - Amy Kapernick - NDC Oslo 2024
Discover how to build interactive web features using HTML and CSS instead of JavaScript. Learn modern techniques for accordions, form validation, themes, and more.
-
Many JavaScript functionalities can be replaced with pure HTML/CSS solutions:
-
Accordions using
details
/summary
elements -
Form validation using native HTML attributes like
required
andpattern
- Theme toggles using CSS custom properties and radio inputs
- Content targeting via URL hash values
-
Range sliders with
input type="range"
anddatalist
-
Accordions using
-
Modern CSS features reduce the need for JavaScript:
- Native CSS nesting eliminates preprocessor dependency
-
The
:has()
selector enables parent-child relationship queries - CSS Grid and Flexbox handle complex layouts
- CSS custom properties (variables) manage theming
-
Before adding JavaScript, consider:
- If HTML elements could provide the functionality
- Whether CSS animations could replace JS animations
- If the JavaScript actually improves user experience
- Whether existing JS code is still necessary
- If tracking scripts are truly needed
-
Common components can be built without JavaScript:
- Theme toggles using radio inputs and CSS
- Testimonial sliders using form inputs and CSS Grid
-
Accordion components with
details
/summary
- Form validation using HTML5 attributes
- Single page navigation using URL hash targeting
-
Browser support considerations:
- Most modern HTML form elements have broad support
- CSS Grid and Flexbox are well-supported
-
Newer features like
:has()
have growing support - Graceful degradation works for older browsers