jekyll-theme-console-bulma
Terminal-inspired Jekyll theme. Bulma-powered, retro-styled, hacker-approved.
Demo: retromatter.github.io/jekyll-theme-console-bulma
| Light | Dark |
|---|---|
![]() |
![]() |
| Hacker | Nord |
|---|---|
![]() |
![]() |
Installation
Add this line to your Jekyll site's Gemfile:
gem "jekyll-theme-console-bulma"
And set the theme in your _config.yml:
theme: jekyll-theme-console-bulma
Then run:
bundle install
Usage
Layouts
default.html— Base layout. All other layouts inherit from this.home.html— Landing page. Rendersindex.mdcontent followed by a post list.page.html— Standard page with title and content.post.html— Blog post with title, date, optional author, and optional Disqus comments.
Includes
head.html—<head>block. Loads Bulma CSS, theme styles, SEO tags, and favicon links.header.html— Site title and theme switcher dropdown.footer.html— Copyright year and attribution.disqus_comments.html— Disqus comment box (optional).google-analytics.html— Google Analytics (production only, optional).
Sass
_sass/jekyll-theme-console-bulma.scss— Entry point._sass/jekyll-theme-console-bulma/_variables.scss— CSS custom properties for all color themes._sass/jekyll-theme-console-bulma/_base.scss— Body, typography, links, selection._sass/jekyll-theme-console-bulma/_layout.scss— Container, header, footer, responsive breakpoint._sass/jekyll-theme-console-bulma/_components.scss— Bulma overrides, code blocks, site-title.
Assets
assets/main.scss— Compiled toassets/main.cssby Jekyll.assets/css/bulma.min.css— Local Bulma CSS (no CDN dependency).assets/js/theme-switcher.js— Theme switcher with localStorage persistence.assets/favicons/— Favicon set (SVG, ICO, PNG, apple-touch-icon, web app manifest).
Favicons
A favicon set is included and automatically linked in head.html. No configuration needed — it works out of the box.
The following files are shipped with the gem under assets/favicons/:
| File | Purpose |
|---|---|
favicon.svg |
Modern browsers (SVG icon) |
favicon.ico |
Legacy browser fallback |
favicon-96x96.png |
PNG fallback |
apple-touch-icon.png |
iOS home screen icon |
web-app-manifest-192x192.png |
Home screen / app icon (192px) |
web-app-manifest-512x512.png |
Home screen / app icon (512px) |
site.webmanifest |
Web app manifest (enables "Add to Home Screen") |
To replace the favicons, override any of the files above by placing your own versions in assets/favicons/ in your site root.
Tip: If you want browsers to auto-detect your favicon without relying on
<link>tags, also place afavicon.icoandfavicon.svgat your site root. This is not required — the theme links them explicitly — but some crawlers and browser toolbars look for them at the root.
Configuration
Add any of the following to your _config.yml:
# Site
title: Your Site Title
description: Your site description.
url: https://yoursite.com
# Theme switcher default (light, dark, hacker, nord)
# Users can change this via the dropdown — preference is saved in localStorage
# Disqus comments
disqus:
shortname: your_disqus_shortname
# Google Analytics (production only)
google_analytics: UA-NNNNNNNN-N
Color Themes
Four palettes are included out of the box, switchable via the dropdown in the header:
| Theme | Background | Accent |
|---|---|---|
| Light | #fff |
#000 |
| Dark | #000 |
#dbdbdb |
| Hacker | #000 |
#00ff00 |
| Nord | #2e3440 |
#d8dee9 |
To add a custom palette, override _sass/jekyll-theme-console-bulma/_variables.scss
in your site and add a new [data-theme="your-name"] block.
Customization
Any theme file can be overridden locally. Copy the file you want to change into the matching directory in your site root and edit it — Jekyll will use your version instead of the gem's.
# Example: override just the footer
cp $(bundle show jekyll-theme-console-bulma)/_includes/footer.html _includes/footer.html
Optional Extensions
These are not included in the gem — the theme stays intentionally minimal. If you want any of them, source the file separately and drop it into your site root.
| File | What it does | How to wire it up |
|---|---|---|
_layouts/compress.html |
Minifies HTML output at build time | Set layout: compress as the parent of your _layouts/default.html |
_includes/anchor_headings.html |
Adds # anchor links to every heading |
Replace {{ content }} in post.html with {%- include anchor_headings.html html=content -%} |
_includes/author.html |
Author bio card below post content | Add {%- include author.html -%} inside _layouts/post.html |
assets/js/search.min.js |
Client-side search (Lunr.js) | Also requires a generated search index and a search UI page |
Note on
compress.html: Use with caution — HTML minification can break whitespace inside<pre>and<code>blocks, which are central to this theme.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/retromatter/jekyll-theme-console-bulma.
This project is intended to be a safe, welcoming space for collaboration. Contributors are expected to adhere to the Contributor Covenant code of conduct.
License
The theme is available as open source under the terms of the MIT License.



