b5st – A Bootstrap 5 Starter Theme, for WordPress

Overview

b5st – A Bootstrap 5 Starter Theme, for WordPress

Version 1.1

https://github.com/SimonPadbury/b5st


b5st is a simple, Gutenberg-compatible WordPress starter theme loaded with Bootstrap 5 and Bootstrap Icons — using node-sass for preprocessing its SCSS into CSS.

Basic features

  • UNLICENCE (open source).

  • Simple, intuitive, clean code. Theme CSS and JS, functions and loops are organized into different folders.

  • A starter CSS theme – /theme/css/b5st.css, enqueued. (Note: do not put your styles in styles.css, because that is not enqueued.)

  • b5st.css is generated from SCSS using node-sass. The SCSS files are also included.

  • A starter JS script – theme/css/b5st.js – unrequired but present as a starter (and with a commented-out enqueue).

  • Dimox breadcrumbs (http://dimox.net/wordpress-breadcrumbs-without-a-plugin/). Inserted using an action hook.

  • Long read prose (paragraphs etc) in single posts has increased font size for wide viewports, using CSS clamp().

Dependencies

  • WordPress. 😎

  • Served from a CDN:

    • Bootstrap v5.0.0 CSS
    • Bootstrap v5.0.0 bundle JS
    • Bootstrap Icons v1.4.1
  • Optional (see “Preprocessing SCSS Files” below):

    • NodeJS
    • node-sass

Bootstrap Sass is not included. But you can follow the instructions at https://getbootstrap.com/docs/5.0/customize/sass/ to bring Bootstrap Sass into your project.

Bootstrap Integration

  • Bootstrap navbar with WordPress menu and search.

  • Bootstrap customized comments and feedback response form.

Gutenberg Compatibility

  • Gutenberg editor stylesheet – into which has been copy-pasted the typography styles from Bootstrap 5’s Reboot CSS plus a few extras.

  • b5st has a centered narrow single-column layout, so that it can make use of Gutenberg’s extra-wide and full width blocks. In the front-end CSS, these are handled by a variation on Andy Bell’s full bleed utility.

Child-Themes and b5st

I recommend you do not simply use b5st as-is, and then do all your designing in a child theme.

b5st is only a meant to be a place to start a WordPress/Bootstrap 5 project. It is easier and better to directly rebuild b5st to suit your design needs. Besides, future improvements to b5st may make it not compatible with your child theme -- so, you may not be able to “upgrade” your project to a newer version of b5st simply by swapping it out.

With that said, you can develop child themes based off your (b5st-based) project. After you have taken and made b5st your own, modifying its layouts, styles etc. to create your own theme, and then deployed it on a live website, then you can later make child themes from what will then be your (client’s) website theme. For example, for special occasions you can make a child themes with alternate colors and backgrounds, seasonal layout changes, etc.

To aid you at that point, b5st has the following child-theme friendly features:

  • Many functions are pluggable.

  • Theme hooks – paired before and after the navbar, post/page main, (optional sidebar) and footer. Parent theme hooks are able to recieve actions from a child theme.

  • Also, the navbar brand, navbar search form and sub-footer “bottomline” are inserted using pluggable hooks. So, a child theme can override these.

Preprocessing SCSS Files

In the theme/ folder there is a scss/ folder containing all the SCSS files that have been used to create the file theme/css/b5st.css.

You can (beautify and) edit b5st.css directly — or you can preprocess the SCSS files using whatever you prefer to use. A simple way is to do the following:

  1. Install b5st (this theme) into your WordPress (local) development environment.

  2. Download and install NodeJS, if you don’t have it already.

  3. In your terminal, cd into the b5st folder. Just do npm install so that node-sass gets installed as a dev dependancy (see the b5st package.json).

  4. You can then run node-sass in the terminal using npm run scss, and stop it using ctrl+C. node-sass will look for changes in SCSS files inside the b5st/theme/scss folder and output the CSS file(s) in the b5st/theme/css folder.

  5. Initially, only b5st/theme/css/b5st.css is enqueued in functions/enqueues.php (after the Bootstrap 5 enqueue). You can add more enqueues the same way.

  6. Your WordPress (local) development server likely has no live-refresh for when CSS files are modified in this way. So, manually do a browser refresh ↻ whenever you want to see your CSS changes.


See the LOG.md

You might also like...
Bootstrap CMS - PHP CMS powered by Laravel 5 and Sentry
Bootstrap CMS - PHP CMS powered by Laravel 5 and Sentry

Bootstrap CMS Bootstrap CMS was created by, and is maintained by Graham Campbell, and is a PHP CMS powered by Laravel 5.1 and Sentry. It utilises many

 Amila Laravel CMS - Free, open-source Simple Bootstrap Laravel CMS
Amila Laravel CMS - Free, open-source Simple Bootstrap Laravel CMS

Simple Bootstrap Laravel CMS. Support Laravel 8.x Can integrate into any existing Laravel project. Only add few database tables with prefixes, not affect your existing database tables. Support Laravel 7.x & Laravel 6.x & Laravel 5.x & MySql & PostgreSql - Amila Laravel CMS

A Simple and Lightweight WordPress Option Framework for Themes and Plugins
A Simple and Lightweight WordPress Option Framework for Themes and Plugins

A Simple and Lightweight WordPress Option Framework for Themes and Plugins. Built in Object Oriented Programming paradigm with high number of custom fields and tons of options. Allows you to bring custom admin, metabox, taxonomy and customize settings to all of your pages, posts and categories. It's highly modern and advanced framework.

Zero-Config plugin to disable FLoC in your WordPress Website.
Zero-Config plugin to disable FLoC in your WordPress Website.

Disable FLoC by WP Munich A simple zero-config plugin to opt-out of Google FLoC. This plugin is made with love and brought to you by the folks of WP M

Wordpress plugin to allow websites to sell and distribute NFTs through the Enjin platform

MyMeta Basket is the world's first plug-and-play Wordpress/Enjin/Ethereum integration that allows you to start selling blockchain assets through your website within minutes. All you need is Wordpress, MyMeta Basket, and an Enjin subscription.

酱茄企业官网小程序,酱茄专为中小企业开发的轻量级企业建站小程序(基于uni-app+wordpress),后台操作简单,维护方便,无需过多配置就能搭建一个企业小程序。
酱茄企业官网小程序,酱茄专为中小企业开发的轻量级企业建站小程序(基于uni-app+wordpress),后台操作简单,维护方便,无需过多配置就能搭建一个企业小程序。

一、小程序介绍 酱茄企业官网小程序,酱茄专为中小企业开发的轻量级企业建站小程序(基于uni-app + wordpress),后台操作简单,维护方便,无需过多配置就能搭建一个企业小程序。

Create WordPress themes with beautiful OOP code and the Twig Template Engine
Create WordPress themes with beautiful OOP code and the Twig Template Engine

Timber helps you create fully-customized WordPress themes faster with more sustainable code. With Timber, you write your HTML using the Twig Template Engine separate from your PHP files.

Wrapping all composer vendor packages inside your own namespace. Intended for WordPress plugins

Wrapping all composer vendor packages inside your own namespace. Intended for WordPress plugins.

Bedrock is a modern WordPress stack that helps you get started with the best development tools and project structure.
Bedrock is a modern WordPress stack that helps you get started with the best development tools and project structure.

WordPress boilerplate with modern development tools, easier configuration, and an improved folder structure

Comments
  • Array to string conversion error in navbar.php using PHP 8.0

    Array to string conversion error in navbar.php using PHP 8.0

    Full error message: "Warning: Array to string conversion in \app\public\wp-content\themes\theme-name\functions\navbar.php on line 44."

    This is only showing up on the site when we upgraded to PHP 8.0. Any ideas on how to fix this?

    Thanks!

    opened by shane-hoving-pc 3
  • Nav Walker adds duplicate class= attr to nav items

    Nav Walker adds duplicate class= attr to nav items

    First off, thanks for such a clean, well coded theme.. greatly apprecaited!

    Based on the feedback from W3C HTM Validator, I came across this error.

    To duplicate, create a menu with child pages.

    You will see that the child items have duplicate class attributes, such as: <li id="menu-item-39" class="menu-item menu-item-type-post_type menu-item-object-page nav-item nav-item-39"><a class="dropdown-item" href="http://dev.local/page/" class="nav-link">List of Languages</a></li>

    This appears to be created here: $attributes .= ( $args->walker->has_children ) ? ' class="nav-link dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"' : ' class="nav-link"'; $item_output = $args->before; $item_output .= ( $depth > 0 ) ? '<a class="dropdown-item"' . $attributes . '>' : '<a' . $attributes . '>';

    Where the child item inherits the attributes of the parent, but also adds another class attribute with the value of "dropdown-item".

    Suggested edit:

    Change line 44 of navbar.php from:

    $attributes .= ( $args->walker->has_children ) ? ' class="nav-link dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"' : ' class="nav-link"';

    To:

    $classes = ( $args->walker->has_children ) ? ' class="nav-link dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"' : ' class="nav-link"';

    AND Line 47 of navbar.php from:

    $item_output .= ( $depth > 0 ) ? '<a class="dropdown-item"' . $attributes . '>' : '<a' . $attributes . '>';

    To:

    $item_output .= ( $depth > 0 ) ? '<a class="dropdown-item"' . $attributes . '>' : '<a' . $attributes .' '. $classes . '>';

    opened by jessedmatlock 3
  • B5st + Woocommerce

    B5st + Woocommerce

    I`m trying to make this team support Woocommerce which should be super easy but after declaring support i get no images on the product site. It doesnt happen with b4st. Do you know what can be the reason?

    opened by geekabit 1
Owner
Simon Padbury
Simon Padbury
An example starter theme and block-type plugin that use @wordpress/scripts for JS & CSS

Brad’s Boilerplate This repo contains one folder that is an example theme, and another folder that is an example block-type plugin. Both folders use t

Brad Schiff 185 Dec 26, 2022
e107 Bootstrap CMS (Content Management System) v2 with PHP, MySQL, HTML5, jQuery and Twitter Bootstrap

e107 is a free and open-source content management system (CMS) which allows you to manage and publish your content online with ease. Developers can save time in building websites and powerful online applications. Users can avoid programming completely! Blogs, websites, intranets – e107 does it all.

e107 Content Management System 298 Dec 17, 2022
A minimal boilerplate theme for WordPress using TailwindCSS, with PostCSS and Laravel Mix.

A minimal boilerplate theme for WordPress using TailwindCSS, with PostCSS and Laravel Mix.

Pixel Devs 74 Nov 25, 2022
This is a white minimal wordpress theme

_s Hi. I'm a starter theme called _s, or underscores, if you like. I'm a theme meant for hacking so don't use me as a Parent Theme. Instead try turnin

Mahmud Hasan Imran 3 Oct 7, 2021
A WordPress theme.json generator from a PHP array

ItalyStrap Theme Json Generator WordPress Theme Json Generator the OOP way This is a WIP project and still experimental. The idea is to generate a fil

null 19 Sep 15, 2022
Basic Bedrock Theme for Concrete CMS

Basic Bedrock Theme Package for Concrete CMS v9 Basic Bedrock Theme Package for Concrete CMS v9 Concrete CMS Bedrock Documentation Description Persona

David 11 Nov 27, 2022
(Hard) Fork of WordPress Plugin Boilerplate, actively taking PRs and actively maintained. Following WordPress Coding Standards. With more features than the original.

Better WordPress Plugin Boilerplate This is a Hard Fork of the original WordPress Plugin Boilerplate. The Better WordPress Plugin Boilerplate actively

Beda Schmid 46 Dec 7, 2022
Multilingual PHP CMS built with Laravel and bootstrap

Lavalite This is an open source of Content Management System developed with Laravel framework. Documentation Visit Documentation section in the websit

LavaLite 2.6k Jan 4, 2023
YesWiki is a wiki system written in PHP, including extensions making collaboration more simple (databases, maps, easy editing, bootstrap themes,...).

YesWiki YesWiki is a Free Software under the AGPL licence, made for creating and managing your website, in a collaborative way. YesWiki allows any web

YesWiki 84 Dec 26, 2022
Simple Bootstrap Laravel CMS. Support Laravel 8.x Can integrate into any existing Laravel project.

Simple Bootstrap Laravel CMS. Support Laravel 8.x Can integrate into any existing Laravel project. Only add few database tables with prefixes, not affect your existing database tables. Support Laravel 7.x & Laravel 6.x & Laravel 5.x & MySql & PostgreSql - Amila Laravel CMS

Alex Zeng 96 Sep 6, 2022