Last week I typed a stat card's number onto a blue section background and watched it disappear. Same blue on blue. Invisible. Twenty years of building websites and I still made the exact mistake every content editor makes on week one.
The difference is what happened next. Instead of fixing that one page, the theme refused the mistake. Pick a color that fails contrast on that background, and the theme quietly swaps in one that passes. The page stays readable no matter what anyone clicks.
That's the idea behind Jarvis, a component-based Drupal theme built for Canvas and Layout Builder. Here's what it does and why I built it this way.
One source of truth for markup
Most Drupal themes drift. A template here, a preprocess function there, the same card markup copied into three places. Six months later, changing a button means an archaeology dig.
Jarvis uses Single Directory Components, Drupal's built-in way to package a component's template, styles, and settings in one folder. Sixteen components cover the usual page anatomy: hero, cards, call to action, stats, people, video, maps, rich text, and one, two, and three column layouts. Define a card once and it renders identically everywhere, whether it lands through the Canvas visual editor or Layout Builder (more components to come).
Bootstrap 5 handles layout and spacing underneath, themed through CSS variables. Change your brand colors and fonts in one settings screen, not a dozen override files.
Accessibility that's enforced, not suggested
Most themes treat accessibility as a checklist for launch week. Jarvis treats it as a guardrail that's always on. This matters if you serve a city, a school, or anyone else who answers to ADA requirements, and it matters more now that lawsuits routinely start with an automated scan.
Here's what the theme does on its own:
- Live contrast checks in the color settings. Pick a footer color that fails WCAG contrast and a badge tells you the ratio, shows pass or fail for small and large text, and offers a one-click fix. Save anyway and you get a warning, because low contrast should be a decision, not an accident.
- Overlays that tune themselves. Put white text over a photo and the theme samples the image, finds the brightest patch the text might cross, and darkens the overlay until the text passes 4.5:1. Editors see a live pass/fail badge while they drag the opacity slider.
- Color picks that can't go wrong. Every text color option is checked against the background behind it. A pick that would fail falls back to a safe color automatically. The blue-on-blue stat card literally cannot happen.
- Keyboard and screen reader support built into the menus. Dropdowns announce their state, open with Enter, close with Escape, and show a visible focus ring on any background. Animations shut off for visitors who ask their device to reduce motion.
- An editorial checker included. The install ships with Editoria11y, which flags missing alt text, skipped headings, and vague link text right on the page before an editor hits publish. It even ships a starter accessibility statement page, since the absence of one is the most common opening line in an ADA complaint.
None of this requires the site builder to know what WCAG stands for. The right choice is the easy choice.
Installed as a recipe, not a scavenger hunt
Jarvis ships as a Drupal recipe. One apply gets you the theme, the content types, the media setup, curated demo content, and sensible defaults. No twenty-step setup document, no hunting for the right combination of modules. The AI module stack installs unconfigured, so you add your own API keys and nothing sensitive ever ships in the codebase.
Fonts are handled the same practical way: pick any Google font in the settings, and the theme downloads and self-hosts it. Your visitors never make a request to Google, which keeps the privacy folks and the performance folks happy at the same time.
Who this is for
If you build sites for municipalities, nonprofits, or small organizations, Jarvis gives you a starting point where the compliance work is already load-bearing. If you're a site builder who wants a modern component workflow without writing custom code, the Canvas integration gives you drag-and-drop pages that stay on brand.
And if you're an editor, the theme mostly stays out of your way. It just won't let you publish something people can't read.
That's the whole philosophy. Good defaults, one source of truth, and guardrails instead of guidelines. The theme does the remembering so you can do the building.
If you're interested in having an ADA compliant website that is robust, flexible and easy to use - talk to us!