CivicTheme is a component-based atomic design system and Drupal theme.
Resources:
- Official site
- Design system: Figma, Accessibility Compliance Assessment
- UI Kit: GitHub, Storybook
- Drupal theme: Monorepo, Admin module
- Documentation: Content authoring, Development, Repository
- Example sites: Default, Government, Higher Education, Corporate
- Case studies
Where to get support
Where to submit issues and PRs
Development of the entire CivicTheme ecosystem is managed in the GitHub civictheme organisation.
This allows to develop the Drupal theme and modules at the same place and use advanced CI configuration for testing.
The code from the monorepo is automatically published to Drupal.org with all commit and author information preserved.
For Drupal theme: submit issues to the Drupal theme issue queue and submit PRs to the GitHub Drupal monorepo
For UI Kit: submit issues to the UI Kit GitHub repository and submit PRs to the UI Kit GitHub repository
If you do not know which part the issues relates to - submit an issue to the Drupal theme issue queue and it will be moved to the appropriate location by the CivicTheme maintainers.
Installation
IMPORTANT! Drupal core has a known issue and a patch would need to be installed on your site before installing CivicTheme to allow the CivicTheme installation complete successfully. Note, this patch is not required for production.
Or, add this patch to your `composer.json`
"patches": {
"drupal/core": {
"Layout builder cannot recover on missing layout - https://www.drupal.org/project/drupal/issues/3204271#comment-15151776": "https://www.drupal.org/files/issues/2023-07-16/3204271-20-missing-layout-exception.patch"
}
}
Please do not submit issues if your installation finished with WSOD - this means that you are using CivicTheme that was not fully installed. Install a patch mentioned above and restart your installation from scratch.
- Make sure the core issue patch above has been applied *before* installing CivicTheme and then clear the cache
- Install theme code:
composer require drupal/civictheme - Enable required modules (Drupal allows themes to declare module dependencies, but does not yet allow those modules to be enabled automatically):
drush ev "require_once dirname(\Drupal::getContainer()->get('theme_handler')->rebuildThemeData()['civictheme']->getPathname()) . '/theme-settings.provision.inc'; civictheme_enable_modules();" - Clear caches in UI or with Drush:
drush cr - Enable the theme in UI or with Drush:
drush then civictheme
Sub-theme
- Create a sub-theme using provided script (do not skip this step if you want to receive the full benefits of the tooling provided with a sub-theme starter kit) :
php civictheme_create_subtheme.php <theme_machine_name> "Human theme name" "Human theme description" /path/to/theme_machine_name - Enable the theme in UI or with Drush:
drush theme:enable theme_machine_name - Compile front-end assets (NodeJS version >=18.14 is required):
nvm use npm ci npm run build
CivicTheme security
CivicTheme has opted into the Drupal Security Advisory system, ensuring that security issues affecting the theme can be responsibly reported, tracked, and communicated to users.
By participating in this program, we commit to following the Drupal Security Team’s processes for assessing, prioritising, and releasing security updates, helping maintain a secure environment for all users of the theme.
Reporting a vulnerability
If you discover a potential security vulnerability in CivicTheme, you should immediately report it to the Drupal Security Team. Click the link Report a security vulnerability here, or in the right side column.
In alignment with the Drupal Security Team policy, security issues should not be disclosed to anyone outside the Drupal Security Team and the CivicTheme team.
What to add in the report
First, read Reporting a security issue.
Additionally, in the ticket, be sure to include:
- A brief description of the issue
- The affected CivicTheme version(s)
- A repository or website where the issue can be observed
- Steps to reproduce the problem
- A comment to the Drupal Security Team: "please add all maintainers of CivicTheme to the security issue. All maintainers are active and up to date with the project."
After submitting the report, the Drupal Security Team will coordinate with CivicTheme maintainers to verify the vulnerability, determine affected versions, and prepare a security advisory and release if required.
Security release notifications
Notifications of security releases are made via the following channels:
- Drupal Security Advisories
- Drupal Slack channel
- Slack #civictheme-designsystem
- CivicTheme releases
- CivicTheme docs
CivicTheme security framework
To be informed of CivicTheme's security framework, go to CivicTheme security framework.
Credit
As of June 2025, Salsa Digital has contributed over 10,000 hours to CivicTheme!
The following people have contributed to CivicTheme as of June 2025:
- Akhil Bhandari (Akhil@Salsa)
- Alan Cole (alan.cole)
- Alan Rako
- Alex Skrypnyk (alex.skrypnyk)
- Amey Mudras (ameymudras)
- Amit Singh
- Anand Toshniwal (anand.toshniwal93)
- Awang Setyawan (awset)
- AntoineOsanz
- Chris Darke (ChrisDarke)
- Daniel Grynenko (danielgry)
- Danielle Sheffler (DSheffler)
- Deepali Jangam (DeepaliJ)
- Feb Dao (febdao)
- Fiona Morrison (fionamorrison23)
- Govind Malu (govind.maloo)
- Ivan Zugec (ivan zugec)
- Jacob Deutsch
- John Cloys (jcloys)
- Joshua Fernandes (joshua1234511)
- Kristen Pol
- Lokender Singh2
- Nathania S (nathania.s)
- Nick Georgiou (nickgeorgiou)
- Nicolas Haase (NicolasH)
- Phillipa Martin (PhillipaMartin)
- Richard Gaunt (RichardGaunt)
- Roman Barbun (Barbun)
- Satyajit Das (Satyajit1990)
- Shivan Jaikaran (xamount)
- sonamchaturvedi (sonamchaturvedi)
- Sonny Kieu (sonnykt)
- Steve Worley (steveworley)
- Suchi Garg (gargsuchi)
- Thomas Peterson
- Tina Calabria
Project information
220 sites report using this theme
- Created by salsadigital on , updated
Stable releases for this project are covered by the security advisory policy.
Look for the shield icon below.








