A starter theme for the Genesis Framework with a modern development workflow
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Add .github directory Jul 20, 2018
app Update example class prefix Sep 8, 2018
config Add front page template and widget areas Oct 9, 2018
resources Bump version 3.3.3 Oct 9, 2018
.csscomb.json Clean up May 31, 2018
.editorconfig Move everything out of functions.php into correct folders in lib. Mar 3, 2017
.gitattributes Add .gitattributes file Jul 1, 2018
.gitignore Add generated stylesheets back to version control Oct 9, 2018
.jsbeautifyrc Add customizer data and jsbeautify config Feb 1, 2018
.jshintrc Clean up May 31, 2018
.stylelintignore 3.0.0 Apr 25, 2018
CHANGELOG.md Bump version 3.3.3 Oct 9, 2018
Gulpfile.js Remove hero image, update core package zip path Sep 8, 2018
LICENSE.md Switch from Child Theme Library to D2/Core Aug 2, 2018
README.md Add front page template and widget areas Oct 9, 2018
composer.json Add base styling, update readme and screenshot Sep 8, 2018
functions.php Update readme from d2 to seothemes Sep 8, 2018
package.json Bump version 3.3.3 Oct 9, 2018
phpcs.xml Switch back to original folder structure (assets and vendor) Jul 16, 2018
sample.xml Add demo data Oct 9, 2018
screenshot.png Add base styling, update readme and screenshot Sep 8, 2018
setup.sh Add front page template and widget areas Oct 9, 2018
style.css Add generated stylesheets back to version control Oct 9, 2018
style.css.map Add generated stylesheets back to version control Oct 9, 2018
stylelint.config.js Bump 3.3.1 Oct 4, 2018
widgets.wie Add demo data Oct 9, 2018
woocommerce.css Add generated stylesheets back to version control Oct 9, 2018
yarn-error.log Split reusable Sass into separate Node packages Aug 22, 2018
yarn.lock Update mqkit media query mixin version Oct 6, 2018

README.md

Genesis Starter Theme

WordPress License

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

Genesis Starter Theme screenshot

Table of Contents

Features

The Genesis Starter Theme aims to modernize, organize and enhance some aspects of Genesis child theme development. Take a look at what is waiting for you:

Requirements

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

Installation

One line command:

Install the latest development version of the Genesis Starter Theme using Composer from your WordPress themes directory (replace your-theme-name below with the name of your theme):

composer create-project seothemes/genesis-starter-theme your-theme-name dev-master && cd "$(\ls -1dt ./*/ | head -n 1)" && sh setup.sh

Individual commands:

Install the latest development version of the Genesis Starter Theme using Composer from your WordPress themes directory (replace your-theme-name below with the name of your theme):

composer create-project seothemes/genesis-starter-theme 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

Setup

The Genesis Starter Theme includes a powerful setup script which automates the process of updating theme details:

Genesis Starter Theme setup script

It replaces the following details with your own:

  • Theme name
  • Theme textdomain
  • Theme author
  • Theme author URL
  • Theme development URL
  • Theme namespace
  • Theme version

Usage

The Genesis Starter Theme is intended to be used with SEO Themes 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.

Development

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.

Structure

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

Contributing

Contributions are welcome from everyone. We have contributing guidelines to help you get started.

Authors

SEO Themes logo   D2 Themes logo

See also the list of contributors who participated in this project.

Special Thanks

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