Bulma Blade UI

Published: Feb 13, 2021 by C.S. Rhymes

I would like to introduce a new Laravel package I have been working on for a little while called Bulma Blade UI. It offers a set of reusable Blade components with the Bulma html structure and CSS classes, as well as basic authentication views for use with Laravel Fortify, ready to go with minimal setup.

Bulma Blade UI

A bit of personal history

I’ll admit it, it took me a long time to get my head around the benefits of using Blade components when they were introduced. I was so used to writing lots of html and using Blade includes when I needed to. If I didn’t write all of the html every time it felt like I was cheating and not being a true developer.

The syntax was also a bit strange to me, with the <x-component></x-component> style tags compared to the standard Blade style tags, such as @include().

Seeing is believing

But I recently saw how a co-worker had used components in their project and it made the view so much cleaner and readable by using components. Instead of massive chunks of repeating html, there was a single line for a component.

Before

<div class="field">
    <label class="label" for="username">Username</label>
    <div class="control">
        <input id="username" name="username" type="text" class="input " value="myusername">
    </div>
</div>

After

<x-bbui::input label="Username" name="username" value="myusername"></x-bbui::input>

I owe a big thank you to my colleague for this wake up call!

I could now see the potential for how components could drastically increase my productivity, by writing less, as well as making views much leaner and easier to read.

Bulma Blade UI

Tailwind is a massively popular frontend framework and there is an excellent component package called Blade UI Kit. I have nothing bad to say against Tailwind and I can see why so many developers love using it, but I personally prefer to use Bulma.

I searched for “Bulma Fortify” and found there were a few packages that offered authentication views for Bulma and Laravel, but there didn’t seem to be a package that contained reusable Bulma components. Initially I was just going to create form input components, but then I thought it would be useful to add some additional components too, such as cards, messages and notifications.

Once I had all of these components I then used them to build some Laravel authentication views in the package too.

Initial release

I have now released the Laravel package on GitHub as an alpha release. It has a set of unit tests and I have tested it myself in a new project but now I am looking for other developers to try out the package and give some feedback and raise any issues they have with the package.

If you are a developer that uses Bulma and Laravel then I would appreciate your feedback and let me know how it can be improved!

laravel components bulma

Share

Latest Posts

Building a VS Code Extension for Gutenberg blocks
Building a VS Code Extension for Gutenberg blocks

I have been tasked with building a new website using WordPress. The last time I used WordPress was a few years ago and involved using Advanced Custom Fields to build custom pages and layouts. Things have changed a lot over the years and now there is the built in Gutenberg editor, which uses blocks to create a custom layout and add content. The trouble was, there didn’t seem to be great support in Visual Studio Code for the blocks, as they use HTML comments.

Using Pest to test Laravel Livewire validation rules
Using Pest to test Laravel Livewire validation rules

Last year I wrote a post about testing Laravel Livewire validation rules with PHP Unit. This post uses the same techniques as that post, but shows how to transfer it to Pest instead of PHP Unit.

Mocking window.location in Jest
Mocking window.location in Jest

Recently I had to write some tests for a piece of JavaScript code that used window.location. This left me trying to figure out how to mock the window.location so that I could pass in dummy data and ensure that the data I got back was what was expected. Here was how I managed to solve the issue.

How NOT to make a website

How NOT to make a Website

By C.S. Rhymes

From £8.99

Nigel's Intranet Adventure

Nigel's Intranet Adventure

By C.S. Rhymes

From £2.69