Skip to content

🎨 Bullframe CSS is a lightweight Sass (SCSS) framework for building fast, responsive, and accessible UIs β€” semantic, themeable, and classless-friendly, with solid cross-browser support. ⭐️ Star to support my work!

License

Notifications You must be signed in to change notification settings

marcop135/bullframe.css

Bullframe CSS v5.x

NPM version Last commit MIT License

Bullframe CSS logo

https://github.com/marcop135/bullframe.css


What is Bullframe CSS?

Bullframe CSS is a lightweight Sass (SCSS) framework for building fast, responsive, and accessible UIs β€” semantic, themeable, and classless-friendly, with solid cross-browser support.

Perfect for landing pages, marketing sites, micro-sites, blogs, docs, product listings, and more.

Simply add it, start building, and stay in control.


Best Features

  • Responsive layout and style normalization out of the box
  • Cross-browser form elements
  • JavaScript framework-agnostic
  • Sass-based architecture with BEM methodology
  • Responsive typography
  • Dark mode and theming support
  • RTL (right-to-left) support
  • Vite-friendly
  • Works well with classless setups

What's Included

bullframe.css/
β”œβ”€β”€ dist/
β”‚   └── css/
β”‚       β”œβ”€β”€ bullframe-classless.css
β”‚       β”œβ”€β”€ bullframe-classless.min.css
β”‚       β”œβ”€β”€ ...
β”‚       β”œβ”€β”€ bullframe-dark.css
β”‚       β”œβ”€β”€ bullframe-dark.min.css
β”‚       β”œβ”€β”€ ...
β”‚       β”œβ”€β”€ bullframe-utilities.css
β”‚       β”œβ”€β”€ bullframe-utilities.min.css
β”‚       β”œβ”€β”€ ...
β”‚       β”œβ”€β”€ bullframe.css
β”‚       β”œβ”€β”€ bullframe.min.css
β”‚       β”œβ”€β”€ ...
β”‚       β”œβ”€β”€ bullframe-classless.css.map
β”‚       β”œβ”€β”€ bullframe.min.css.map
β”‚       β”œβ”€β”€ ...
β”œβ”€β”€ src/scss/
β”‚   β”œβ”€β”€ forms/
β”‚   β”œβ”€β”€ miscellaneous/
β”‚   β”œβ”€β”€ mixins/
β”‚   β”œβ”€β”€ typography/
β”‚   β”œβ”€β”€ utilities/
β”‚   β”œβ”€β”€ variables/
β”‚   β”œβ”€β”€ bullframe-classless.scss
β”‚   β”œβ”€β”€ bullframe-dark.scss
β”‚   β”œβ”€β”€ bullframe-utilities.scss
β”‚   β”œβ”€β”€ bullframe-system-default.scss
β”‚   β”œβ”€β”€ bullframe.scss
β”‚   └── ...
β”œβ”€β”€ vite.config.js
β”œβ”€β”€ index.html
└── ...

Live Demo & Examples

  • πŸ‘‰ One-page demo: a complete showcase of styled HTML elements, form controls, lists, tables, media, and the responsive grid system β€” ideal for quick cross-browser testing and exploration
  • πŸ§ͺ CodePen collection: live examples of utilities, components, and prototypes β€” great for quick testing, remixing, and sharing ideas.

Getting Started

CDN

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bullframe.css@5">

HTML Starter Template

Open HTML
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Bullframe CSS v5.x HTML Starter Template</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bullframe.css@5/dist/css/bullframe.min.css">
  </head>
  <body>
    <div class="bf-container">
      <!-- Add your site or application content here -->
      <p>Hello World! This is a Bullframe CSS v5.x HTML starter template.</p>
    </div>
  </body>
</html>

HTML Classless Starter Template

Note

What does "classless" mean? No utility classes or extra markup needed. Just write semantic HTML and get clean, normalized styles.

Open HTML
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Bullframe CSS 5.x Classless Starter Template</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bullframe.css@5/dist/css/bullframe-classless.min.css">

    <!-- Optional: center page content by default -->
    <style>
      body {
        margin-left: auto;
        margin-right: auto;
        padding: 1.5rem;
        max-width: 80rem;
      }
    </style>
  </head>
  <body>
    <div class="bf-container">
      <!-- Add your site or application content here -->
      <p>Hello World! This is a Bullframe CSS v5.x HTML classless starter template.</p>
    </div>
  </body>
</html>

npm

Make sure you have Node.js installed. Then run:

npm install bullframe.css

Download

Download the latest release


Customization

Theming

Bullframe provides three builds for theming:

  1. bullframe.css β€” light theme
  2. bullframe-dark.css β€” dark theme
  3. bullframe-system-default.css β€” theme based on user system preference (prefers-color-scheme)

Light Theme CDN (Default)

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bullframe.css@5/dist/css/bullframe.min.css">

Dark Theme CDN

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bullframe.css@5/dist/css/bullframe-dark.min.css">

System-default Theme CDN

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bullframe.css@5/dist/css/bullframe-system-default.min.css">

Customise and Rebuild All Styles

After installing Bullframe CSS via npm, you can use Vite.js to rebuild the framework as you prefer, adding your custom Sass variables and styles:

# Build production-ready site/app
npm run build

# Preview production build locally
npm run preview

Utilities

Bullframe CSS offers a set of utility classes for fine-grained control over your layout, spacing, typography, and more. Explore each category below for detailed reference.

Grid system

Open utilities
Variable Value
$bf-breakpoint-xs 0
$bf-breakpoint-sm 576px
$bf-breakpoint-md 768px
$bf-breakpoint-lg 992px
$bf-breakpoint-xl 1200px
$bf-breakpoint-xxl 1400px
Utility class Description
.bf-container Sets a centered block container with a max-width of 1140px, and a custom padding
.bf-container--fluid Sets a fluid centered block container with a custom padding
.bf-container--break-xs Collapses all the columns when the viewport is 575px and below
.bf-container--break-md Collapses all the columns when the viewport is 767px and below
.bf-container--break-lg Collapses all the columns when the viewport is 991px and below
.bf-row Sets a block container with a custom negative margin
.bf-col-1 Sets a floated container with a custom padding and a width of 8.3333%
.bf-col-2 Sets a floated container with a custom padding and a width of 16.666666666666664%
.bf-col-3 Sets a floated container with a custom padding and a width of 25%
.bf-col-4 Sets a floated container with a custom padding and a width of 33.33333333333333%
.bf-col-5 Sets a floated container with a custom padding and a width of 41.66666666666667%
.bf-col-6 Sets a floated container with a custom padding and a width of 50%
.bf-col-7 Sets a floated container with a custom padding and a width of 58.333333333333336%
.bf-col-8 Sets a floated container with a custom padding and a width of 66.66666666666666%
.bf-col-9 Sets a floated container with a custom padding and a width of 75%
.bf-col-10 Sets a floated container with a custom padding and a width of 83.33333333333334%
.bf-col-11 Sets a floated container with a custom padding and a width of 91.66666666666666%
.bf-col-12 Sets a floated container with a custom padding and a width of 100%
.no-gutters Set margin-left, margin-right, padding-left and padding-right to 0 β€” to be applied to row and column containers

Layout

Open utilities
Utility class Description
.bf-clearfix Clears the float, read more
.bf-hide Sets the display to none
.bf-hidden Sets the display to none and the visibility to hidden
.bf-text-hide Hides a text (AKA CSS image replacement) using a font hack and a combination o properties
.bf-sr-only Shows a text only if screen reader
.bf-sr-only.focusable Shows a text only if screen reader and focused
.bf-invisible Sets the visibility to hidden
.bf-visible Sets the visibility to visible
.bf-display-block Sets the display to block
.bf-display-block-center Sets the display to block, the left/right margins to auto and text-align to center
.bf-display-inline Sets the display to inline
.bf-display-inline-block Sets the display to inline-block
.bf-display-flex Sets the display to flex
.bf-display-inline-flex Sets the display to inline-flex
.bf-display-flex--justify-start Sets justify-content to flex-start
.bf-display-flex--justify-end Sets justify-content to flex-end
.bf-display-flex--justify-center Sets justify-content to center
.bf-display-flex--wrap Sets flex-wrap to wrap
.bf-display-flex--nowrap Sets flex-wrap to nowrap
.bf-float-left Sets the float to left
.bf-float-right Sets the float to right
.bf-position-fixed Sets the position to fixed
.bf-align-center-unknown Sets the position to relative
.bf-align-center-unknown--item Centers an element with unknown height and width to a relative positioned parent, IE10+, read more
.bf-align-center-flex Centers all elements with known height and width to a flexbox container, IE10+, read more
.bf-width-25 Sets the width to 25%
.bf-width-33 Sets the width to 33.33333333333333%
.bf-width-50 Sets the width to 50%
.bf-width-75 Sets the width to 75%
.bf-width-100 Sets the width to 100%
.bf-width-auto Sets the width to auto
.bf-z-index-1 Set z-index to 1
.bf-z-index-2 Set z-index to 2
.bf-z-index-3 Set z-index to 3
.bf-z-index-4 Set z-index to 4
.bf-z-index-5 Set z-index to 5
.bf-z-index-6 Set z-index to 6
.bf-z-index-7 Set z-index to 7
.bf-z-index-8 Set z-index to 8
.bf-z-index-9 Set z-index to 9
.bf-z-index-10 Set z-index to 10
.bf-z-index-20 Set z-index to 20
.bf-z-index-30 Set z-index to 30
.bf-z-index-40 Set z-index to 40
.bf-z-index-50 Set z-index to 50
.bf-z-index-60 Set z-index to 60
.bf-z-index-70 Set z-index to 70
.bf-z-index-80 Set z-index to 80
.bf-z-index-90 Set z-index to 90
.bf-z-index-100 Set z-index to 100
.bf-z-index-200 Set z-index to 200
.bf-z-index-300 Set z-index to 300

Spacing

Open utilities
Utility class Description
.bf-m-0 Sets the margin to 0
.bf-m-t-0 Sets the margin-top to 0
.bf-m-t-1 Sets the margin-top to a custom medium spacing value ($bf-spacing-md-rem)
.bf-m-t-2 Sets the margin-top to a custom large spacing value ($bf-spacing-lg-rem)
.bf-m-t-3 Sets the margin-top to a custom extra large spacing value ($bf-spacing-xl-rem)
.bf-m-t-4 Sets the margin-top to a custom extra extra large spacing value ($bf-spacing-xxl-rem)
.bf-m-b-0 Sets the margin-bottom to 0
.bf-m-b-1 Sets the margin-bottom to a custom value that matches the grid system gutter
.bf-m-b-2 Sets the margin-bottom to a custom value
.bf-m-b-3 Sets the margin-bottom to a custom value
.bf-m-b-4 Sets the margin-bottom to a custom value
.bf-m-l-0 Sets the margin-left to 0
.bf-m-r-0 Sets the margin-right to 0
.bf-p-0 Sets the padding to 0
.bf-p-t-0 Sets the padding-top to 0
.bf-p-b-0 Sets the padding-bottom to 0
.bf-p-l-0 Sets the padding-left to 0
.bf-p-r-0 Sets the padding-right to 0
.bf-p-t-1 Sets the padding-top to a custom value that matches the grid system gutter
.bf-p-t-2 Sets the padding-top to a custom value
.bf-p-t-3 Sets the padding-top to a custom value
.bf-p-t-4 Sets the padding-top to a custom value
.bf-p-t-1 Sets the padding-bottom to a custom value that matches the grid system gutter
.bf-p-b-2 Sets the padding-bottom to a custom value
.bf-p-b-3 Sets the padding-bottom to a custom value
.bf-p-b-4 Sets the padding-bottom to a custom value

Texts

Open utilities
Utility class Description
.bf-t-transform-uppercase Sets transform to a uppercase (AKA capitalizes a text)
.bf-t-transform-none Sets transform to a none
.bf-t-left Sets text-align to a left
.bf-t-center Sets text-align to a center
.bf-t-right Sets text-align to a right
.bf-t-shadow Sets a basic text shadow
.bf-t-italic Sets font-style to a italic
.bf-t-style-normal Sets font-style to a normal
.bf-t-weight-300 Sets font-weight to 300 (AKA light)
.bf-t-weight-400 Sets font-weight to 400 (AKA normal)
.bf-t-weight-500 Sets font-weight to 500 (AKA medium)
.bf-t-weight-600 Sets font-weight to 600 (AKA semi-bold)
.bf-t-weight-700 Sets font-weight to 700 (AKA bold)
.bf-t-weight-800 Sets font-weight to 800 (AKA black)
.bf-text-break Sets word-wrap to a break-word, applied by default to the body
.bf-t-truncate Truncates a very long text and replaces the missing text with an ellipsis
.bf-t-truncate--multiline-2 Truncates a long doubled line text and replaces the missing text with an ellipsis (no IE)
.bf-t-truncate--multiline-3 Truncates a long tripled line text and replaces the missing text with an ellipsis (no IE)
.bf-no-select Blocks user text selection
.bf-font-sans-serif Sets font-family to a sans-serif, and a combination of cross-browser system UI sans-serif font families
.bf-font-serif Sets font-family to a serif, and a combination of cross-browser system UI serif font families
.bf-font-monospace Sets font-family to a monospace, a combination of widely supported monospaced font families
.bf-h1 Matches the font styling of a h1
.bf-h2 Matches the font styling of a h2
.bf-h3 Matches the font styling of a h3
.bf-h4 Matches the font styling of a h4
.bf-h5 Matches the font styling of a h5
.bf-h6 Matches the font styling of a h6
.bf-lead Sets font-size to 125%
.bf-responsive-typography Scales font-size from a minimum of 1.6rem (AKA 16px) to a maximum of 1.9rem using calc and some CSS custom properties

Lists

Open utilities
Utility class Description
.bf-list-unstyled Removes margins, paddings and li list styles from ul, ol and dd elements

Tables

Utility class Description
.bf-table Sets a border and custom paddings and margins to a table
.bf-table-responsive Adds responsiveness to a table container
.bf-table--zebra Increases a table readability adding horizontal zebra stripes
.bf-table-responsive--zebra Increases a responsive table readability adding horizontal zebra stripes

Embeds

Open utilities
Utility class Description
.bf-embed-responsive Adds responsiveness to an iframe, embed, object, video or general purpouse element (e.g. youtube embed)
.bf-embed-responsive--4-3 Sets a 4:3 ratio responsiveness to an iframe, embed, object, video or general purpouse element container (e.g. youtube embed)
.bf-embed-responsive--item A general purpouse element element that behaves like a video

Buttons

Open utilities
Utility class Description
.bf-btn Creates a standard gray-looking button (e.g. <a class="bf-btn" href="...">...</a>)
.bf-btn--primary Creates a primary blue-looking button

Form states

Open utilities
Utility class Description
.bf-focused Sets a blue-looking focused ring and shadow around an input, textarea or select
.bf-disabled Sets opacity to 0.5, and resets a combinations of properties to the default value if is disabled
.bf-invalid Sets a red-looking focused ring and shadow around an invalid input, textarea or select

Reduced motion

Open utilities
Utility class Description
.bf-reduced-motion Adds a combinations of properties and values to an element (e.g. the body) removing all motion-based animations if preferred by the user, read more

Browser compatibility

Desktop browsers

  • Latest two stable versions: Firefox, Chrome, Edge, Safari, Opera

Mobile browsers

  • Latest two stable versions: Firefox, Chrome, Edge, Mobile Safari, Opera

You can check the .browserslistrc file.


Contributing

Please read the contribution guidelines.

Changelog

Changelog

Author

Marco Pontili

License

This project is licensed under the MIT License.

About

🎨 Bullframe CSS is a lightweight Sass (SCSS) framework for building fast, responsive, and accessible UIs β€” semantic, themeable, and classless-friendly, with solid cross-browser support. ⭐️ Star to support my work!

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors 2

  •  
  •