Screenshot of the front page of CivicTheme

CivicTheme is a component-based atomic design system and Drupal theme.

Resources:

Where to get support

Where to submit issues and PRs

Development of the entire CivicTheme ecosystem is managed in the GitHub civictheme organization.
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:

For UI Kit:

For documentation:

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

  1. Install theme code: composer require drupal/civictheme
  2. 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();"
  3. Enable the theme in UI or with Drush: drush then civictheme

Sub-theme

  1. 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
  2. Enable the theme in UI or with Drush: drush theme:enable theme_machine_name
  3. Compile front-end assets (NodeJS version >=18.14 is required): npm run build

Credit

As of February 2023, Salsa Digital has contributed over 6000 hours to CivicTheme!

The following people have contributed to CivicTheme as of February 2023:

Supporting organizations: 
Design, development, accessibility and ongoing maintenance

Project information

Releases