Creating Your Own Theme
After building and installing the project with the Varbase Project template, use the Drupal Generate Theme using the Vartheme starterkit command.
Before that have a look at:
Understanding The Vartheme Starterkit ThemeInstall Needed Tools Command
Utilize the command provided in the following link to automatically configure all necessary Node.js or theme processing requirements:
Command to Install Needed Theming ToolsInstall Needed Tools Manually
Please refer to the following link for a comprehensive set of instructions or an external resource to guide you through the setup process:
Manually Install Needed Theming ToolsCreate new Vartheme BS5 Cloned Generated Theme
How to use the Vartheme BS5 Starterkit
To generate a new theme from Vartheme BS5 using the starterkit/theme-generation
script, run the following from Drupal's installation root:
cd PROJECT_DIR_NAME/docroot
Run the following Drupal Generate Theme script:
php core/scripts/drupal generate-theme new_theme_name --starterkit vartheme_bs5 --path themes/custom
Additionally, you can create the theme's human-readable name and it description with two optional arguments:
php core/scripts/drupal generate-theme new_theme_name \
--starterkit vartheme_bs5 \
--path themes/custom \
--name "New Theme Name" \
--description "Custom theme generated from Vartheme BS5 theme"
This script will copy over all the files from the Vartheme BS5 theme, and replace instances of Vartheme BS5's machine name and label with the strings you provide.
After Installing the New Custom Theme
Uninstall Vartheme BS5 after creating a new theme
At this point the new generated theme will not need the Vartheme BS5 to be installed.
Copy All Varbase Components to the New Custom Theme
cd PATH_TO_THE_PROJECT/docroot
cp -r modules/contrib/varbase_components/components themes/custom/PROJECT_THEME/components
Add replaces:
to all copied Varbase Components within all .component.yml
files.
Follow up with the following link
Customize a Varbase Single Directory Components (SDC) In a Custom ThemeCustomizing CSS
The new theme should look and function identically to Vartheme BS5 out of the box, but the styles could be changed to suit the project's needs. Vartheme BS5's styles are written using Bootstrap 5, SASS
, PostCSS
, which is installed and configured Varbase, and allows CSS
authors to write modern CSS
while still supporting browsers that have not fully implemented the newest methodologies.
Customizing Bootstrap's JavaScripts
Issue #3423178: Moved all Bootstrap
~5.3.0
JavaScript libraries to Single Directory Components (SDC) in Varbase ComponentsIssue #3423174: Added Bootstrap ~5.3.0 JavaScript libraries in Varbase Components and only attache them with needed SDC components
As part of the generate-theme
command, the necessary package.json
dependencies and scripts files are copied over for the project. Simply install the dependencies and then run yarn theme:init
once, and then either the yarn theme:full-build
command to compile the assets once or the yarn theme:watch
command to re-compile the assets every time a .scss
file is changed.
Install the Dependencies for Needed Packages
yarn install
Recommended to use Yarn, Please do not use npm install
you may run into issue while installing
the list of packages in the package.json was optimized for better use with Yarn
Initialize the Theme Once
yarn theme:init
The theme:init
script alias will trigger the execution of webpack --progress --config webpack.config.init.js
. This command is responsible for copying the specified files and folders from the webpack.config.init.js
configuration file to their respective locations.
Additionally, any additional external libraries from the node_modules
folder can be managed by copying them to a designated target libraries folder.
It is essential to include comprehensive "install once" or "configure once" options that can be utilized by new development team members when they join the project for custom theme development or theming. This approach ensures a smooth onboarding process and facilitates seamless setup for new team members.
Compile Once
With webpack, project can compile may type of files and integrate with more nodejs processing tools.
Compile all
Use the following alias script command to compile all SCSS, JS, or SVG icons.
yarn theme:full-build
Compile SDC Components Only
In case of working on a custom SDC component, an alias script command can help with the.
yarn components:build
The components:build
script alias will trigger the execution of webpack --progress --config webpack.config.components.js
. This command is responsible only for compiling custom SDC components in the them. The webpack.config.components.js file has the list of entry, and output for compiled css/js/svg script to the right public path.
Have a look at the following link for more info:
Customize a Varbase Single Directory Components (SDC) In a Custom ThemeCompile Custom Theme Styling Only
In case of working on small custom theme styling, which no need to compile components. The following alias script command can help compile in a quick way.
yarn theme:build
Watching and Syncing
Use to only while working to auto compile custom theme styling
yarn theme:watch
theme:watch
is targeted for the theme only, but it can be customized in custom theme
Reporting Starterkit Bugs
Should you encounter a bug while generating a new theme, please create a new issue
Additional Information
Starterkit is for generating new themes that include reasonably un-opinionated templates and styles that eliminate much of the the initial work required to create a theme.
Starterkit is the recommended approach for creating new themes. For more information, consult the Starterkit documentation on Drupal.org.
Cloning a Project
On the state of working in a team in a project, the created theme could be don by other member of the team.
When the theme get committed by git for example, the node_modules
folder will not be committed. As it is listed in the .gitignore
file.
After cloning a project with a Vartheme cloned generated theme.
Run the following commands to get all development tools
cd PROJECT_DIR_NAME/docroot/themes/custom/THEME_NAME
yarn install
yarn theme:init
yarn theme:full-build
Last updated