Sage Starter is a starter theme based on Roots Sage theme version 8.6, which references HTML5 Boilerplate, Gulp, and Bower that will help you make better websites.
- Homepage: https://github.com/asuh/sage-starter/
- Source: https://github.com/roots/sage
- Documentation: https://roots.io/sage/docs/
- Twitter: @asuh
Prerequisite | How to check | How to install |
---|---|---|
Node.js >= 6.9.x | node -v |
nodejs.org |
gulp-cli >= 2.0.0 | gulp -v |
npm install -g gulp-cli |
Bower >= 1.3.12 | bower -v |
npm install -g bower |
Optional | ||
PHP >= 7.x.x | php -v |
php.net |
PHP is optional, but use the latest PHP version that's available.
For more installation notes, refer to the Install gulp and Bower section in this document.
- gulp build script that compiles both Sass and Less, checks for JavaScript errors, optimizes images, and concatenates and minifies files
- BrowserSync for keeping multiple browsers and devices synchronized while testing, along with injecting updated CSS and JS into your browser while you're developing
- Bower for front-end package management
- asset-builder for the JSON file based asset pipeline
- ARIA roles and microformats
Clone the git repo - git clone https://github.com/asuh/sage-starter.git
and then rename the directory to the name of your theme or website.
Sage Starter uses gulp as its build system and Bower to manage front-end packages.
Bower is outdated and not recommended since the mid-2010s, but will remain in this starter project for the time being.
Building this project requires node.js. For best results, update to the latest version of npm: npm i -g npm@latest
. I personally recommend using NVM.
From the command line:
- Install gulp-cli and Bower globally with
npm i -g gulp bower
- Navigate to the theme directory, then run
npm i
- Run
bower install
You now have all the necessary dependencies to run the build process.
gulp
— Compile and optimize the files in your assets directorygulp watch
— Compile assets when file changes are madegulp --production
— Compile assets for production (no source maps).
To use BrowserSync during gulp watch
you need to update devUrl
at the bottom of assets/manifest.json
to reflect your local development hostname.
For example, if your local development URL is http://project-name.test
you would update the file to read:
...
"config": {
"devUrl": "http://project-name.test"
}
...
If your local development URL looks like http://localhost:8888/project-name/
you would update the file to read:
...
"config": {
"devUrl": "http://localhost:8888/project-name/"
}
...
Sage Starter has built-in SVG support! The preferred method for using SVG as implemented is an SVG sprite.
Make sure each SVG has an ID.
<svg xmlns="http://www.w3.org/2000/svg">
<symbol id="twitter" viewBox="0 0 64 64">
<title>Twitter</title>
<path etc.../>
</symbol>
</svg>
Save any SVG files you want to use into /assets/images/sprite
and the build process will combine all of those images into /assets/images/sprite/sprite.svg
.
To use in markup, apply the ID to an SVG's Use element.
<svg role="img" title="Twitter">
<use xlink:href="map.svg#twitter"/>
</svg>
Check out SVG For Everybody for IE and <=Edge 12 support of SVG sprites.
Sage theme's original documentation is available at https://docs.roots.io/sage/8.x/installation/. These instructions aren't consistent with Sage Starter but provide historical context for installation and running Gulp.
Contributions are welcome and encouraged from everyone!