Bulma vs Primer

When it comes to building modern, responsive websites, CSS frameworks are invaluable tools for web developers. They provide pre-written CSS classes that can be used to style HTML elements quickly and consistently across projects. Among the many options available, Bulma and Primer have emerged as popular choices for different reasons. In this article, we will compare these two frameworks in-depth, examining their features, ease of use, community support, and more, to help you decide which might be the best fit for your next project.

What is Bulma?

Bulma is an open-source, modern CSS framework based on Flexbox. It offers a clean and minimalistic approach to styling web pages and is known for its simple syntax and easy-to-understand documentation. Bulma is modular, which means you can import only the components you need, making it a lightweight choice for many developers.

Key Features of Bulma

  • Flexbox-based: Bulma utilizes Flexbox for building flexible and responsive layouts.
  • Responsive: The framework has a mobile-first approach and includes responsive modifiers to adjust elements for different devices.
  • Modular: Import only the components you need, keeping your CSS file size down.
  • Readability: Bulma’s syntax is easy to read and remember, which speeds up the development process.

Bulma Documentation and Installation

To get started with Bulma, you can visit their documentation page. Installation is straightforward and can be done via npm:

npm install bulma

Or by including it directly from a CDN:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.3/css/bulma.min.css">

What is Primer?

Primer is the CSS framework developed by GitHub for its own use before being made available to the public. It is designed to be highly scalable and functional, reflecting GitHub’s design language. Primer is built on top of a robust design system and is ideal for creating complex web applications with a design that’s familiar to many users.

Key Features of Primer

  • GitHub’s Design Philosophy: Primer reflects the design principles and aesthetics used by GitHub.
  • Scalable and Functional: It is built with scalability in mind, perfect for large projects.
  • Component-based: Primer includes a vast range of components that can be used out of the box.
  • Well-documented: The framework comes with comprehensive documentation to help developers get started.

Primer Documentation and Installation

Primer’s documentation is extensive and provides a good starting point for new users. To install Primer, you can use npm:

npm install --save primer

Alternatively, you can include it in your project via a CDN:

<link rel="stylesheet" href="https://unpkg.com/primer/build/build.css">

Popular Third-Party Addons or Libraries

Bulma Addons

  • Bulma Extensions: A collection of extensions that add additional components to Bulma.
  • Buefy: A Vue.js UI component library that integrates with Bulma for a more complete UI toolkit.

Primer Addons

  • Octicons: GitHub’s icon set that is designed to complement Primer.
  • Primer Components: A React component library that works seamlessly with the Primer design system.

Detailed Code Samples

Let’s take a look at how both frameworks handle a few common web design elements.

Bulma Code Sample: Navbar

<nav class="navbar" role="navigation" aria-label="main navigation">
  <div class="navbar-brand">
    <a class="navbar-item" href="https://bulma.io">
      <img src="https://bulma.io/images/bulma-logo.png" width="112" height="28">

    <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
      <span aria-hidden="true"></span>
      <span aria-hidden="true"></span>
      <span aria-hidden="true"></span>

  <div id="navbarBasicExample" class="navbar-menu">
    <div class="navbar-start">
      <a class="navbar-item">
      <!-- Other navbar items -->

Primer Code Sample: Navigation

<nav class="UnderlineNav" aria-label="Foo bar">
  <div class="UnderlineNav-body">
    <a href="#url" class="UnderlineNav-item selected" aria-current="page">Item 1</a>
    <a href="#url" class="UnderlineNav-item">Item 2</a>
    <a href="#url" class="UnderlineNav-item">Item 3</a>
    <!-- Other navigation items -->

These code samples give a glimpse into the syntax and structure used by each framework. Bulma’s classes tend to be more descriptive, while Primer’s classes are more semantic. Both frameworks offer a way to create a navigation bar, but the styling and default behavior may differ.

This concludes the first half of our comprehensive comparison of Bulma and Primer. We’ve introduced both frameworks, explored their key features, and provided some initial code samples. In the next half, we will dive deeper into customization options, community and support, performance considerations, and real-world applications of each framework. Stay tuned for a more detailed analysis to help you make an informed decision for your next project.

Both Bulma and Primer offer customization options to tailor the frameworks to your specific needs.

Bulma Customization

Bulma is built with Sass, which means you can easily customize the framework by modifying Sass variables. You can change colors, fonts, breakpoints, and more to match your brand or design requirements. Here’s an example of how to customize Bulma’s primary color:

// Import Bulma's core
@import 'bulma/sass/utilities/_all';

// Set your brand colors
$primary: #ffdd57;
$info: #8ed1fc;

// Import the rest of Bulma
@import 'bulma/bulma';

By compiling this Sass code, you will have a Bulma build that uses your own color scheme.

Primer Customization

Primer also uses Sass for its styling and can be customized in a similar way. You can override default variables before importing the Primer CSS to customize the framework:

// Override Primer's default variables
$blue: #0366d6;
$gray-900: #1b1f23;

// Import Primer CSS
@import 'primer/index.scss';

This will apply your custom colors across all Primer components that use these variables.

The community and support around a CSS framework can significantly impact its usability and longevity.

Bulma Community

Bulma has a strong and active community. There are many third-party extensions and plugins available, and the community regularly contributes to the framework’s development. You can find support through:

  • Official Bulma Forum: Where you can ask questions and receive answers from other Bulma users.
  • GitHub Issues: For reporting bugs or requesting new features.
  • Gitter Chat: A chat room where you can discuss Bulma with other developers.

Primer Community

As a framework developed by GitHub, Primer benefits from being used in a high-traffic, large-scale environment. However, its community is not as large as Bulma’s. Support options include:

  • GitHub Repository: Where you can open issues or contribute to the framework.
  • Twitter: The Primer team is active on Twitter and often engages with the community.

Performance is an important aspect of choosing a CSS framework, as it can affect the speed of your website.

Bulma Performance

Bulma’s modular nature allows you to include only the components you need, which can help keep your CSS file size small. This modularity can lead to better performance, especially for smaller websites.

Primer Performance

Primer is designed for scalability and performance, particularly in complex web applications like GitHub. It is optimized for performance, but its file size might be larger than Bulma’s if you include the entire framework.

Seeing how each framework is used in real-world applications can provide insight into their strengths and versatility.

Bulma in Action

Bulma is used by thousands of developers and has been implemented in websites of all sizes. It’s particularly favored by developers who appreciate its readability and ease of use.

Primer in Action

Primer is battle-tested on GitHub, which speaks volumes about its robustness and scalability. It’s an excellent choice for enterprise-level applications and for developers who want a design that’s consistent with GitHub’s UI.

Bulma and Primer are two powerful CSS frameworks with different strengths. Bulma offers simplicity and modularity, making it a great choice for developers who value a lightweight and readable framework. Primer, on the other hand, is built for scale and is deeply integrated with GitHub’s design philosophy, making it ideal for larger, more complex projects.

When choosing between Bulma and Primer, consider the size and complexity of your project, your familiarity with the frameworks, and the design philosophy that resonates with your brand. Regardless of your choice, both frameworks provide a solid foundation for building responsive and attractive web applications.

More Bulma Comparisons


What do you think?