Solo Utilities extends the Solo theme with per-context colour schemes, per-node content width, and a migration tool for block title visibility. Its headline feature — Colour Scheme Rules — lets you switch Solo's entire palette based on the same visibility conditions you already use on blocks. It supports Drupal 10, 11 and 12.
Colour Scheme Rules — the feature worth installing for
Solo ships 51 predefined colour schemes, and by default a site picks one. Solo Utilities removes that limitation: you define rules, and each rule applies a different scheme when its conditions match.
A Colour Scheme Rule is a configuration entity with a label, a weight, an enabled flag, a target scheme, a set of conditions and a conjunction. Rules are evaluated in weight order, and the first match wins.
The conditions are Drupal's own
The rule system uses Drupal's standard condition plugins through the context system, which means the conditions available to a rule are the same ones you already use for block visibility:
- Request path — apply a scheme to a section of the site
- Content type — a different palette for a content type
- User role — one scheme for anonymous visitors, another for editors
- Language — a palette per language
- Anything else that provides a condition plugin, including from contributed modules
Conditions combine with an AND or OR conjunction, so a rule can be as narrow as "this path and this role" or as broad as "any of these content types".
What that lets you build
- A documentation section in a calm palette and a marketing section in a bold one, on one site.
- A seasonal palette switched on by a path or a date-based condition, without touching theme settings.
- A distinct palette for authenticated users so editors always know which environment they are in.
- A per-language palette on a multilingual site.
None of this requires a sub-theme, a custom module, or a line of CSS.
Per-node content width
Solo Utilities adds a Node Width configuration entity, which lets content width be set per node rather than only globally in theme settings. A long-form article can run narrow for readability while a landing page runs full-bleed, on the same site, with no template override.
Block title visibility migration
The module includes a BlockTitleVisibilityMigrator service. Drupal's handling of hidden block titles has changed across versions, and hiding a block title in the wrong way removes it from the accessibility tree as well as from the screen — which costs you a heading that screen readers and search engines both use. The migrator moves existing blocks onto the correct approach.
If you want the background on why that matters, I wrote about it in why hidden block titles still affect SEO and accessibility.
Requirements
| Requirement | Value |
|---|---|
| Drupal core | ^10 || ^11 || ^12 |
| Theme | Designed for Solo — the colour scheme rules target Solo's predefined schemes |
| Package | Solo Suite |
Installation
composer require drupal/solo_utilities
drush en solo_utilities -y
drush cr
Colour Scheme Rules are administered under site configuration, and creating a rule requires the administer site configuration permission.
Common questions
Do I need Solo to use this?
The colour scheme rules target Solo's predefined schemes, so Solo is the intended pairing. The module is part of the Solo Suite and is built for it.
What happens if two rules match?
Rules carry a weight and are evaluated in order, so the lighter rule wins. Order your rules from most specific to most general.
Can I combine conditions?
Yes. Each rule has a conjunction setting, so its conditions combine with AND or with OR.
Does it work on Drupal 12?
Yes — ^10 || ^11 || ^12.
Related projects
- Solo — the theme these utilities extend.
- Solo Copy Blocks — duplicate configured blocks instead of rebuilding them.
- Paragraphs Bundles — 39 paragraph components for building pages.
Need help with Drupal theming?
Solo Utilities is free and GPL-licensed. If you want a site built on Solo, a custom palette system, or help upgrading a theme to Drupal 11 or 12, see my Drupal services or what a Drupal themer does — or get in touch.