GitXplorerGitXplorer
j

buldy

public
18 stars
0 forks
1 issues

Commits

List of commits on branch main.
Unverified
6a3036d39a26bf954f083c0009b07d1cce749dbc

refactor: heading comment

jjohannschopplich committed 3 years ago
Unverified
3e122112517e3a33d56e46b3ec54611356338930

refactor: reset styles

jjohannschopplich committed 3 years ago
Unverified
b71640390eea3ec74f2932116423dce3a39e3006

chore: format with Prettier

jjohannschopplich committed 3 years ago
Unverified
b9a45379d8e947978f97492f0d99cee4149000ff

fix: compatibility with latest Sass version

jjohannschopplich committed 3 years ago
Unverified
9f9d3fea5ff94f8fb3e551e588f07b4b8ea5b430

fix: no need for Safari viewport fallback

jjohannschopplich committed 3 years ago
Unverified
7fcea991060cfdf1e5c3e72c32bd9903518c87da

chore: update .gitignore

jjohannschopplich committed 3 years ago

README

The README file for this repository.

Logo of Buldy framework

Buldy

Modern CSS framework distilled from the best of larger frameworks


Buldy

Key Features

Built using the tastiest flavours of larger frameworks this minimal CSS framework is a suitable companion and starter point for small web projects as well as big design systems.

  • 🏸  Everything you need to create a solid project
  • πŸ“–  Typography system where all font sizes are intertwined
  • πŸ“οΈ  Powerful responsive spacing system using multipliers of a unit value
  • πŸ—  Easily editable and extendable CSS custom properties
  • 🍱  A handful of elements, components & utilities
  • 🎯  No preprocessor necessary β€” just plug'n'play
  • βœ…  Good Semantics

Introduction

Buldy is a CSS framework. As such, the sole output is a single CSS file: buldy.css

You can use that file out of the box and adapt it to your needs by changing the corresponding colors, typography, spacing and much more CSS custom properties.

Folder Structure β€” What's Included?

Some notes about the folder structure with some additional comments on important files.

Expand folder tree
buldy/scss/
|
|   # Core functions and mixin configuration
β”œβ”€β”€ abstracts/
|   |
|   |   # Breakpoint viewport sizes and functions for responsiveness
|   β”œβ”€β”€ _breakpoints.scss
|   |
|   |   # Functions like fluid type to elegantly scale type and space w/o breakpoints
|   β”œβ”€β”€ _functions.scss
|   |
|   |   # Sass mixins for various components
|   └── _mixins.scss
|
|   # Main stem of the framework
β”œβ”€β”€ base/
|   |
|   |   # Tiny CSS reset that covers the basics, may also be used standalone
|   |   # Built on top of Bootstrap's # [`reboot.scss`](https://github.com/twbs/bootstrap/blob/main/scss/_reboot.scss), Jeremy Thomas' (creator of Bulma) [`minireset.sass`](https://github.com/jgthms/minireset.css/blob/master/minireset.css)
|   |   # and Jonathan Neal's [`sanitize.css`](https://github.com/csstools/sanitize.css/blob/master/sanitize.css)
|   β”œβ”€β”€ resets.scss
|   |
|   |   # Custom properties Fluid type and space scales, semantic color definitions, themes and more
|   β”œβ”€β”€ variables.scss
|   |
|   |   # Scoped theme containers via `[data-theme]` 
|   β”œβ”€β”€ themes.scss
|   |
|   |   # Extends standalone resets with further generic opiniated styles
|   β”œβ”€β”€ generic.scss
|   |
|   |   # Support for `:focus-visible`
|   └── accessibility.scss
|
|   # Design the structure of your webpage with these CSS classes
β”œβ”€β”€ layout/
|   |
|   |   # Simple way to build responsive columns with Flexbox
|   β”œβ”€β”€ columns.scss
|   |
|   |   # Simple container to center content horizontally
|   β”œβ”€β”€ container.scss
|   |
|   |   # Sass port of the [Raster Grid System](https://rsms.me/raster/) by Rasmus Andersson
|   β”œβ”€β”€ raster.scss
|   |
|   |   # Simple container to divide your page into sections 
|   β”œβ”€β”€ section.scss
|   |
|   |   # Let elements flow vertically or horizontally
|   └── stack.scss
|
|   # Essential interface elements that only require a single CSS class
β”œβ”€β”€ components/
|   |
|   |   # Container for fixed or auto-growing responsive embeds
|   β”œβ”€β”€ aspect-ratio.scss
|   |
|   |   # A colored box to contain other elements
|   β”œβ”€β”€ box.scss
|   |
|   |   # Buttons in different colors, sizes, and states
|   β”œβ”€β”€ button.scss
|   |
|   |   # Handle WYSIWYG generated content, where only HTML tags are available
|   β”œβ”€β”€ content.scss
|   |
|   |   # Basic indispensable form controls
|   β”œβ”€β”€ form.scss
|   |
|   |   # Classic modal overlay
|   β”œβ”€β”€ modal.scss
|   |
|   |   # Simple headings to add depth to your page
|   └── title.scss
|
|   # Modular helper classes to handle common layout tasks
β”œβ”€β”€ helpers/
|   |
|   |   # Adds bottom gap to other `.block` elements
|   β”œβ”€β”€ block.scss
|   |
|   |   # Essentials
|   β”œβ”€β”€ miscellaneous.scss
|   |
|   |   # Hide content visually but make it available for screen readers
|   β”œβ”€β”€ screen-reader.scss
|   |
|   |   # Make any element clickable by stretching”a nested link
|   └── stretched-link.scss
|
|   # For faster mobile-friendly and responsive development
|   # Includes utility classes for showing, hiding, aligning, sizing and spacing content
β”œβ”€β”€ utilities/
|   |
|   |   # Runner to create all utility classes from `utilities.scss`
|   β”œβ”€β”€ _api.scss
|   |
|   |   # The utility generator function
|   β”œβ”€β”€ _generator.scss
|   |
|   |   # Editable list to generate utilities programmatically
|   └── utilities.scss
|
|   # Main entry point
└── buldy.scss

How Did We Get Here

Well, yet another framework which seeks to be used? Yes. I used Bulma and Bootstrap heavily over the years – Bulma's class naming syntax was a breeze to work with, although I preferred Bootstraps grid breakpoints. I often found myself removing unwanted stuff from every big framework I worked with (Bulma came as close as it can probably get to be the perfect allrounder).

One influental dev once said that every programmer should develop his own framework. I guess he's right as this is my try. I wanted to use a framework which only includes the essentials a project needs. Everything else should be added per project. Thoroughly searching the interweb didn't brought me closer to what I wished to find.

Then Codyhouse came along and presented the world with a series of articles and shortly after published their own framework. The use of CSS custom properties for a framework blew my mind. Which is pretty common nowadays, even Bootstrap 5 adapts them. But again, some design choices incorporated into the framework weren't my taste. So I used their great ideas and created my own framework.

Improvements and suggestions are always welcome.

Browsers Support

All of the latest and greatest browsers. Including Safari.

Credits

Big shoutout to @CodyHouse and @jgthms for their inspiring frameworks.

License

Code released under the MIT License.