# Principles

The overarching principle of CUBE CSS is simplicity. There’s a lot of benefits to letting the right tools do their job without any intervention.

The browser is hinted, rather micro-managed to do what it knows best in the context that it finds itself in.

# Progressive Enhancement

Has the user got an old browser? That’s not a problem with CUBE CSS because Progressive Enhancement is its core.

By creating a minimum viable experience (opens new window), we account for very old browsers by default. Then, using CSS’ forgiving features—which give it so much power—we extend on that minimum viable experience with the most modern capabilities, such as flexbox and grid, with no fear that they won’t be supported.

Without polyfills and hacks, we produce much less CSS by using the progressive core of the CUBE CSS methodology.

# Abstraction only when necessary

This core simplicity also calls for a reduction in abstraction. By using CSS for what it is good for, we assign most of the style rules at a higher level, which are supported by composition styles, utilities, then finally, blocks and exceptions.

CUBE CSS has a very flat, inclusive structure which makes it predictable and as easy as possible to pick up, if you’re new to it.

# Any technology will do

Whether you like to author your CSS with Sass (opens new window), Less (opens new window), PostCSS (opens new window), or even CSS-in-JS (opens new window): the principles and methodology of CUBE CSS remain.

CUBE CSS is completely tool agnostic because it is more of a thinking and organisational methodology, rather than a tooling methodology. As long as the output is CSS, it’s all good.