← Back to the glossary

Web design · Development · SEO

Bulma

Bulma explained: CSS components and their limits | scinet

Editorially reviewed ·

Clear definition

Bulma is a CSS framework with ready-made styling patterns for websites. It includes buttons, forms, cards, navigation and a column system. By using its intended HTML structures and classes, you get a visual foundation.

That can make getting started easier. You do not have to design every small detail from scratch. One distinction matters, though: Bulma handles CSS. Its package contains no JavaScript. Your project needs to add the behaviour that opens a menu or a dialog. This entry covers Bulma 1.

How you work with Bulma

A button can use the class button. Adding is-primary selects its primary colour variant. Instead of composing every spacing and border rule separately, you start with a prepared component and its modifiers.

You can include a compiled Bulma stylesheet or add the package to your development workflow. Getting started does not necessarily require a custom Sass build. That extra step becomes relevant when you want to assemble selected parts or use Sass configuration.

At a glance

Bulma: CSS: Buttons, forms and layouts receive styling.. Your project: behaviour: Open menus, manage focus and process input.
Styling is prepared. Behaviour is added separately. Both responsibilities matter in the final interface. Bulma includes no JavaScript.Open infographic in full size

An example from a small website

Imagine a consulting website with three services. Bulma can provide the column layout and styling for the service cards. On narrow screens, the cards should stack sensibly. You still need to test the real copy to see whether wrapping and spacing work.

A mobile navigation may be added later. Styling its icon is straightforward. Making the menu appear when that icon is activated requires additional behaviour. I would account for those details in the project estimate before a seemingly small CSS change becomes a larger job.

Customizing without scattered values

Bulma 1 uses CSS variables. Many values can therefore be overridden in the browser, including values for individual components. Sass remains another customization option when generating the stylesheet.

For a brand colour, I would first decide where it should be used. A coloured button and a text link have different readability and contrast requirements. Do more than copy a colour from your logo: check the actual combination of text, background and interaction state.

What remains your responsibility for interaction

The modal documentation shows how classes can make a dialog visible and includes JavaScript examples. A visible panel is not yet a fully tested interface. Keyboard operation, clear labelling and a sensible focus sequence matter too.

My assessment: Bulma is interesting when you want prepared styling while choosing interaction deliberately yourself. Bootstrap also bundles JavaScript plugins; Tailwind places more emphasis on small utility classes. The right division of work depends on your team and the interface you need.

Related reading: Tailwind CSS · Sass / SCSS · CSS Custom Properties · Bootstrap 6 Alpha compared.

Practical code example

HTML

A contact link styled as a Bulma button

Original example after including the Bulma stylesheet. Navigation to a contact page remains a semantic link and needs no JavaScript.

<a class="button is-primary" href="/en/kontakt/">
  Let’s talk about your project
</a>

Sources and further reading

  1. Documentation Overview of Bulma Bulma · Checked
  2. Documentation Installation Bulma · Checked
  3. Documentation CSS Variables Bulma · Checked
  4. Documentation Modal Bulma · Checked
  5. Documentation Responsiveness Bulma · Checked

Frequently asked questions

In principle, yes, for example in a custom theme. Integrate the styles deliberately and check for conflicts with existing theme or plugin rules. Bulma itself is not a WordPress theme.

No. The actual content, HTML structure, contrast and interactions need accessible implementation and testing. The framework alone cannot guarantee that.