Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
1 contributor

Users who have contributed to this file

344 lines (246 sloc) 10.7 KB

bulma-clean-theme

Gem Version

This is a clean and simple Jekyll Theme built with the Bulma framework, providing a modern looking site to start with.

Contents

Installation

Add this line to your Jekyll site's Gemfile:

gem "bulma-clean-theme"

And add this line to your Jekyll site's _config.yml:

theme: bulma-clean-theme

And then execute:

$ bundle

Or install it yourself as:

$ gem install bulma-clean-theme

Usage

Pages

Create your pages as individual markdown files and use the layout: page for normal pages. Set the pages title and subtitle in the frontmatter and it will appear in the hero.

New in 0.2 Heros can now display a background image if you provide a hero_image: /path/to/image.jpg setting in your page frontmatter, or in the defaults in your sites _config.yml

You can also set the height of the hero by providing a bulma hero height class in your frontmatter, such as hero_height: is-fullwidth. If you do not provide this, it will revert to is-medium

Posts

If you want posts, create a _posts directory to store your posts as per normal Jekyll usage, with the layout: post. Next create a blog directory with an index.html file that has layout: blog

New in 0.2 It will now display an image in the blog page if you set image: /path/to/image.jpg in your post's or page's frontmatter, or in the defaults in your sites _config.yml

You can also set the height of the hero by providing a bulma hero height class in your frontmatter, such as hero_height: is-fullwidth. If you do not provide this, it will revert to is-medium

Navigation

For the top navigation, create a navigation.yml file in _data directory with the following format with the pages you want to include in the top navigation. You can now also add items to a dropdown menu.

- name: Page 1
  link: /page-1/
- name: Blog
  link: /blog/
  dropdown: 
    - name: Page 2
      link: /page-2/

For the current page to have an active class, ensure the link: format matches your permalink format. The above example will work with permalink: pretty setting in your _config.yml

Colours and Styles

To overwrite the primary theme colour, set a sass variable in assets/css/app.scss before importing main

---
---
$primary: #333333;
// Import Main CSS file from theme
@import "main";

You can overwrite any of the Bulma initial variables in this way as long as they are declared before the @import "main"'

Sidebar Visibility

New in 0.2

If you want to show the sidebar with latest posts then set show_sidebar: true in the pages frontmatter, or in the defaults in your sites _config.yml

Menubar

New in 0.3

The menubar gets its content from a data file in your site's _data directory. Simply set the name of your data file in the page's menubar setting in the frontmatter.

show_sidebar: false
menubar: example_menu

You will probably want to disable the show_sidebar otherwise there will be little room for the page content.

Creating a menubar data file

Create a data file in the _data directory and use the following format (if using yml)

- label: Example Menu
  items:
    - name: Home
      link: /
    - name: Pages
      link: #
      items:
        - name: Page With Sidebar 
          link: /page-1/
        - name: Page Without Sidebar
          link: /page-2/
        - name: Page With Menubar
          link: /page-3/
    - name: Blog
      link: /blog/

For the current page to have an active class, ensure the link: format matches your permalink format. The above example will work with permalink: pretty setting in your _config.yml

Multiple menus

You may make multiple menus in the same file, separated by the label

- label: Menu Label
  items:
    - name: Example item
      link: /example-item/
- label: Second Menu Label
  items:
    - name: Parent Item
      link: /parent-item/
      items:
        - name: Sublink 
          link: /sublink/
        - name: Sublink 2
          link: /sublink2/
- label: Third Menu Label
  items:
    - name: Another example item
      link: /another-example-item/

Tabs

New in 0.4

The tabs gets its content from a data file in your site's _data directory. Simply set the name of your data file in the page's menubar setting in the frontmatter.

title: Page with tabs
subtitle: Demo page with tabs
layout: page
show_sidebar: false
menubar: example_menu
tabs: example_tabs

Tabs can be used in conjunction with menubar and/or sidebar if you wish.

Creating a tabs data file

Create a data file in the _data directory and use the following format (if using yml)

alignment: is-left
style: is-boxed
size: is-large
items:
  - name: Tabs
    link: /page-4/
    icon: fa-smile-wink
  - name: Sidebar
    link: /page-1/
    icon: fa-square
  - name: No Sidebar
    link: /page-2/
    icon: fa-ellipsis-v
  - name: Menubar
    link: /page-3/
    icon: fa-bars

Settings

You can control the alignment, style and size of the tabs by using the relevant Bulma tabs classes.

Active Tab Highlighting

It will automatically mark the active tab based on the current page.

Icons

You can add icons to your tab by passing in the Font Awesome icon class.

If you don't wish to show icons then simply omit the option from your yaml file.

Google Analytics

New in 0.2

To enable Google Analytics add google_analytics: UA-xxxxxxxx to your _config.yml replacing the UA-xxxxxxxx with your Google Analytics property

Footer

New in 0.4.1

To add some footer links, create a yaml file in the _data directory using the following format

- name: Blog
  link: /blog/
- name: About
  link: /about/
- name: Privacy Policy
  link: /privacy-policy/

Then add the name of your yaml file (without the .yml extension) into the footer_menu setting in the _config.yml

footer_menu: example_footer_menu

Products

New in 0.5

Now you can add simple product pages to your site using collections.

Product pages

Start by creating a _products directory to hold your product pages and create a new page for each product, such as product1.md. In the front matter for this page you can set the standard settings, such as your title, subtitle, description (for meta-description), hero_image, as well as the additional product settings such as price, product_code, image, features and rating.

---
title: Product 1 Name
subtitle: Product 1 tagline here
description: This is a product description
hero_image: /img/hero-img.jpg
product_code: ABC124
layout: product
image: https://via.placeholder.com/640x480
price: £1.99 + VAT
features:
    - label: Great addition to any home
      icon: fa-location-arrow
    - label: Comes in a range of styles
      icon: fa-grin-stars
    - label: Available in multiple sizes
      icon: fa-fighter-jet
rating: 3
---

The text you write for the page content will be displayed as the product description.

Next, add the following to your _config.yml to use collections to process the product pages and output them as individual pages.

collections:
  products: 
    output: true
    layout: product
    image: https://via.placeholder.com/800x600
    show_sidebar: false

You can also set default product page values here if you like, such as the layout or image.

Product Reviews

To add reviews to your product page, create a reviews directory in the _data directory and add a yml file with the name of the product_code from the product page, for example _data/reviews/ABC124.yml. Create the reviews using the following format:

- name: Mr E Xample
  rating: 4
  title: Great product, highly recommended
  date: 01/01/2019
  avatar: https://bulma.io/images/placeholders/128x128.png
  description: >
    The product worked really well. I would recommend this to most people to use. Delivery was quick and reasonable. 
    Would recommend this to my friends. 
- name: Mrs R E View
  rating: 5
  title: Nice, really liked this
  date: 02/02/2019
  description: >
    The product worked exactly as described. 

If you don't want to display an avatar image then a default user icon will be displayed. If you don't want to display a rating then omit it from the yml.

Product Category Page

To create a page listing your products you will need to create a product category page. Create a page, for example products.md, with the layout: product-category in the frontmatter. You can set the sort order of the products using sort: title to sort by the title, or by any setting in your product pages, such as price, rating or any custom frontmatter tags you wish to set.

---
title: Products
subtitle: Check out our range of products
layout: product-category
show_sidebar: false
sort: title
---

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/chrisrhymes/bulma-clean-theme. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

Development

To set up your environment to develop this theme, run bundle install.

Your theme is setup just like a normal Jekyll site! To test your theme, run bundle exec jekyll serve and open your browser at http://localhost:4000. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.

License

The theme is available as open source under the terms of the MIT License.

You can’t perform that action at this time.