A developer-friendly starter theme used for creating commercial child themes for the Genesis Framework.
It uses Composer to pull in the Core component library which provides the PHP logic for the theme's configuration, and it uses Gulp WP Toolkit to automate mundane build tasks like compiling SCSS and minifying images.
Check out the live demo
- Features
- Requirements
- Installation
- Setup
- Usage
- Development
- Structure
- Contributing
- Authors
- Special Thanks
The Gotta Blast! aims to modernize, organize and enhance some aspects of Genesis child theme development. Take a look at what is waiting for you:
- Bourbon as a lightweight Sass toolkit
- Gulp for automating development build tasks
- Browsersync for synchronized browser testing
- Config-based, OOP modular architecture
- CLI setup script to automatically update information
- Yarn or NPM for managing Node dependencies
- Composer for managing PHP dependencies
- PSR-4 class autoloading
- Namespaced to avoid naming conflicts
Requirement | How to Check | How to Install |
---|---|---|
PHP >= 5.4 | php -v |
php.net |
WordPress >= 4.8 | Admin Footer |
wordpress.org |
Genesis >= 2.6 | Theme Page |
studiopress.com |
Composer >= 1.5.0 | composer --version |
getcomposer.org |
Node >= 9.10.1 | node -v |
nodejs.org |
NPM >= 5.6.0 | npm -v |
npm.js |
Yarn >= 0.2.x | yarn -v |
yarnpkg.com |
Gulp CLI >= 1.3.0 | gulp -v |
gulp.js |
Gulp = 3.9.1 | gulp -v |
gulp.js |
Install the latest development version of the Gotta Blast! using Composer from your WordPress themes directory (replace your-theme-name
below with the name of your theme):
composer create-project seothemes/gotta-blast your-theme-name dev-master && cd "$(\ls -1dt ./*/ | head -n 1)" && sh setup.sh
Install the latest development version of the Gotta Blast! using Composer from your WordPress themes directory (replace your-theme-name
below with the name of your theme):
composer create-project seothemes/gotta-blast your-theme-name dev-master
Navigate into the theme's root directory:
cd your-theme-name
Run the setup script to rename the theme, build the theme assets and kick-off BrowserSync:
sh setup.sh
The Gotta Blast! includes a powerful setup script which automates the process of updating theme details:
It replaces the following details with your own:
- Theme name
- Theme textdomain
- Theme author
- Theme author URL
- Theme development URL
- Theme namespace
- Theme version
The Gotta Blast! is intended to be used with Neutron Creative Inc Core. All changes to the child theme should be made via the theme configuration file. This can be used to change almost every aspect of the theme, including theme features, navigation menus, image sizes, widget areas and more. An example config file is included with this theme.
Components are only loaded when a config key is provided. They can be added or removed depending on the requirements of your project. For example, to remove the PluginActivation component, simply remove it's config key from the return statement in config/defaults.php
.
The app
directory is provided to house project-specific PHP files if additional functionality is required. It comes pre-configured with PSR-4 autoloading. Custom components can be created in the same way other Core components are, by first creating a class which extends the Component
class and then adding it's configuration to the theme's config file. An Example Component is included with the theme to get you started.
Project details such as theme name, author, version number etc should only ever be changed from the package.json
file. The Gulp build task reads this file and automatically places the relevant information to the correct locations throughout the theme.
Static assets are organized in the resources
directory. This folder contains theme scripts, styles, images, fonts, views and language translation files.
Please refer to the Gulp WP Toolkit Instructions for a complete list of available build tasks.
In addition to Gulp WP Toolkit's tasks, there is also a zip
task which can be used to generate an archive of your theme, including the required composer package files and none of the unnecessary files. The list of included files can be modified from the toolkit.extendConfig.src.zip
config in the Gulpfile.
your-theme-name/ # β Root directory
βββ app/ # β Theme PHP files
β βββ Example.php # β Example component
βββ config/ # β Config directory
β βββ config.php # β Theme settings
βββ resources/ # β Front-end assets
β βββ fonts/ # β Theme fonts
β βββ img/ # β Theme images
β βββ js/ # β Theme JavaScript
β βββ lang/ # β Translation files
β βββ scss/ # β Sass partials
β βββ views/ # β Theme templates
βββ node_modules/ # β Node.js packages
βββ vendor/ # β Composer packages
βββ composer.json # β Composer settings
βββ functions.php # β Composer autoloader
βββ front-page.php # β Front page template
βββ Gulpfile.js # β Gulp config
βββ package.json # β Node dependencies
βββ screenshot.png # β Theme screenshot
βββ setup.sh # β CLI setup script
βββ style.css # β Theme stylesheet
βββ woocommerce.css # β WooCommerce styles
Contributions are welcome from everyone. We have contributing guidelines to help you get started.
See also the list of contributors who participated in this project.
A shout out to anyone who's code was used in or provided inspiration to this project:
Craig Simpson, Christoph Herr, Gary Jones, Tim Jensen, Bill Erickson, Sridhar Katakam, Nathan Rice, Brian Gardner