About Alembic
Alembic is a starting point for Jekyll projects. Rather than starting from scratch, this boilerplate is designed to get rolling immediately. Install it, configure it, tweak it, push it.
Fork it Buy me a coffee ☕️ Tweet it Install Alembic ⚗️
Features
- Available as a theme gem and GitHub Pages theme
- Clear and elegant design that can be used out of the box or as solid starting point
- Tested in all major browsers, including IE and Edge
- Built in Service Worker so it can work offline and on slow connections
- Configurable colours and typography in a single settings file
- Extensive set of shortcodes to include various elements; such as buttons, icons, figure images and more
- Solid typographic framework from Sassline
- Configurable navigation via a single file
- Modular Jekyll components
- Post category support in the form of a single post index page grouped by category
- Built in live search using JavaScript
- Contact form built in using Formspree
- Designed with Siteleaf in mind
- Has 9 of the most popular networks as performant sharing buttons
- Has documentation
Examples
Here are a few examples of Alembic out in the wild being used in a variety of ways:
Installation
Quick setup
To give you a running start I’ve put together some starter kits that you can download, fork or even deploy immediately:
- ⚗️🍨 Vanilla Jekyll starter kit
- ⚗️🌲 Forestry starter kit
-
⚗️ GitHub Pages with remote theme kit
Download kit - ⚗️🚀 Stackbit starter kit
As a Jekyll theme
- Add
gem "alembic-jekyll-theme"
to yourGemfile
to add the theme as a dependancy - Run the command
bundle install
in the root of project to install the theme and its dependancies - Add
theme: alembic-jekyll-theme
to your_config.yml
file to set the site theme - Run
bundle exec jekyll serve
to build and serve your site - Done! Use the configuration documentation and the example
_config.yml
file to set things like the navigation, contact form and social sharing buttons
As a GitHub Pages remote theme
- Add
gem "jekyll-remote-theme"
to yourGemfile
to add the theme as a dependancy - Run the command
bundle install
in the root of project to install the jekyll remote theme gem as a dependancy - Add
jekyll-remote-theme
to the list ofplugins
in your_config.yml
file - Add
remote_theme: daviddarnes/alembic@main
to your_config.yml
file to set the site theme - Run
bundle exec jekyll serve
to build and serve your site - Done! Use the configuration documentation and the example
_config.yml
file to set things like the navigation, contact form and social sharing buttons
As a Boilerplate / Fork
(deprecated, not recommended)
- Fork the repo
- Replace the
Gemfile
with one stating all the gems used in your project - Delete the following unnecessary files/folders:
.github
,LICENSE
,screenshot.png
,CNAME
andalembic-jekyll-theme.gemspec
- Run the command
bundle install
in the root of project to install the jekyll remote theme gem as a dependancy - Run
bundle exec jekyll serve
to build and serve your site - Done! Use the configuration documentation and the example
_config.yml
file to set things like the navigation, contact form and social sharing buttons
Customising
When using Alembic as a theme means you can take advantage of the file overriding method. This allows you to overwrite any file in this theme with your own custom file, by matching the file name and path. The most common example of this would be if you want to add your own styles or change the core style settings.
To add your own styles copy the styles.scss
into your own project with the same file path (assets/styles.scss
). From there you can add your own styles, you can even optionally ignore the theme styles by removing the @import "alembic";
line.
If you’re looking to set your own colours and fonts you can overwrite them by matching the variable names from the _settings.scss
file in your own styles.scss
, make sure to state them before the @import "alembic";
line so they take effect. The settings are a mixture of custom variables and settings from Sassline - follow the link to find out how to configure the typographic settings.