WordPress starter theme with a modern development workflow
Built with 🌯 at [Hex Digital](https://www.hexdigital.com)
Bloom is an open source project and completely free to use.
However, we highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address in our website footer. We publish all received postcards on our virtual postcard wall.
Bloom wouldn't be possible without the fantastic work by Roots, so please consider supporting them with a sponsorship.
Bloom is an opinionated, productivity-driven WordPress starter theme with a modern development workflow.
We recommend using Bloom if you're looking to spend less time building the same functionality for each project.
Any and all features can be disabled if you prefer, so even if you disagree with some of our opinions, it may still be a good fit for you.
- Environment variables, powered by env and dotenv.
- Improved CSS objects and extra utilities, from CaptainCSS.
- Image Lazy Loading, powered by Vanilla LazyLoad.
Note that some functionality relies on our functionality plugin, Sprout. This should be added to your mu-plugins
.
If any functionality is enabled that relies on Sprout, and Sprout is not found, you'll see an error in the WordPress dashboard.
See the Sage repository for more features from the underlying framework.
Make sure all dependencies have been installed before moving on:
Clone the repo into the themes
directory of your WordPress installation.
themes/your-theme-name/ # → Root of your Sage based theme
├── app/ # → Theme PHP
│ ├── View/ # → View models
│ ├── Providers/ # → Service providers
│ ├── admin.php # → Theme customizer setup
│ ├── filters.php # → Theme filters
│ ├── helpers.php # → Helper functions
│ └── setup.php # → Theme setup
├── bootstrap/ # → Acorn bootstrap
│ ├── cache/ # → Acorn cache location (never edit)
│ └── app.php # → Acorn application bootloader
├── config/ # → Config files
│ ├── app.php # → Application configuration
│ ├── assets.php # → Asset configuration
│ ├── filesystems.php # → Filesystems configuration
│ ├── logging.php # → Logging configuration
│ └── view.php # → View configuration
├── composer.json # → Autoloading for `app/` files
├── composer.lock # → Composer lock file (never edit)
├── public/ # → Built theme assets (never edit)
├── functions.php # → Theme bootloader
├── index.php # → Theme template wrapper
├── node_modules/ # → Node.js packages (never edit)
├── package.json # → Node.js dependencies and scripts
├── resources/ # → Theme assets and templates
│ ├── fonts/ # → Theme fonts
│ ├── images/ # → Theme images
│ ├── scripts/ # → Theme javascript
│ ├── styles/ # → Theme stylesheets
│ └── views/ # → Theme templates
│ ├── components/ # → Component templates
│ ├── form/ # → Form templates
│ ├── layouts/ # → Base templates
│ └── partials/ # → Partial templates
├── screenshot.png # → Theme screenshot for WP admin
├── storage/ # → Storage location for cache (never edit)
├── style.css # → Theme meta information
├── vendor/ # → Composer packages (never edit)
└── webpack.mix.js # → Laravel Mix configuration
Edit files in /config
for theme configuration.
Edit app/setup.php
to enable or disable theme features, setup navigation menus, post thumbnail sizes, and sidebars.
- Run
composer install
from the theme directory to install php dependencies - Run
yarn
from the theme directory to install front end dependencies - Copy
.env.example
to.env
, and update with your local dev URL for browsersync
yarn start
— Compile assets when file changes are made, start Browsersync sessionyarn hot
— Same asstart
with hot module reloadingyarn build
— Compile and optimize the files in your assets directoryyarn build:production
— Compile assets for production
The upstream
branch tracks Sage 10.
The easiest way to update this theme is to pull in the latest changes from Sage
into the upstream
branch, then create a PR from upstream
to main
.
This will highlight all Sage changes, as well as any conflicts to solve.
Please see the Sage documentation for the underlying theme.
Documentation for Bloom is in the works.
Contributions are welcome from everyone.