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/summaryelements - 
Form validation using native HTML attributes like 
requiredandpattern - 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