CSS Utilities
Utilities allow you to quickly apply single CSS properties to an element directly within your HTML markup without having to write any code in a separate CSS file. Contrary to other CSS frameworks which use the class attribute, Bonsai CSS is unique in that it applies utilities through CSS variables and the style attribute. This has a number of distinct improvements over class based utilities.
- Use of all values - With class based utlities you can only assign a set number of values pre defined by the framework. Bonsai CSS does not have this restraint. Any valid value for the CSS property can be applied.
- Filesize - One of the biggest drawbacks to date with utility complete CSS frameworks is their large filesize. The developent version of Tailwind for example, minified is a rather large 1599.8kb. Bonsai CSS with the same feature set comes in at less than 50kb.
What about responsive
Bonsai utilities are perfect for developing fully responsive interfaces. Each utility can be applied conditionally to a screensize allowing you total responsive control.
To apply a utility to a certain screensize simply append the utility shorthand with a ‘-’ followed by the screen size. Utilities use a mobile-first approach so if you append with for example -md
, that utility will be applied to the medium screensize and up.
In the following example background is red by default and blue on large screen devices.
<div style="--bg:red; --bg-lg:blue"><div>
Property |
Shorthand |
Media Queries |
MDN Reference |
align-content |
--ac |
yes |
|
align-items |
--ai |
yes |
|
align-self |
--as |
yes |
|
all |
--all |
no |
|
background |
--bg |
yes |
|
background-attachment |
--bga |
yes |
|
background-color |
--bgc |
yes |
|
background-image |
--bgi |
yes |
|
background-position |
--bgp |
yes |
|
background-repeat |
--bgr |
yes |
|
background-size |
--bgs |
yes |
|
border |
--b |
yes |
|
border-bottom |
--bb |
yes |
|
border-color |
--bc |
yes |
|
border-bottom-left-radius |
--bblr |
yes |
|
border-bottom-right-radius |
--bbrr |
yes |
|
border-color |
--bc |
yes |
|
border-left |
--bl |
yes |
|
border-radius |
--radius |
yes |
|
border-right |
--br |
yes |
|
border-style |
--bs |
yes |
|
border-top |
--bt |
yes |
|
border-width |
--bw |
yes |
|
bottom |
--bottom |
yes |
|
box-shadow |
--shadow |
yes |
|
box-sizing |
--bxs |
no |
|
clear |
--cr |
yes |
|
color |
--c |
yes |
|
column-count |
--cc |
yes |
|
column-fill |
--cf |
yes |
|
column-gap |
--cg |
yes |
|
column-rule |
--cr |
yes |
|
column-span |
--cs |
yes |
|
content |
--ct |
no |
|
cursor |
--cur |
no |
|
direction |
--dir |
no |
|
display |
--d |
yes |
|
filter |
--fr |
no |
|
flex |
--fx |
yes |
|
flex-basis |
--fb |
yes |
|
flex-direction |
--fd |
yes |
|
flex-grow |
--fg |
yes |
|
flex-shrink |
--fs |
yes |
|
flex-wrap |
--fw |
yes |
|
float |
--ft |
yes |
|
font-family |
--ff |
no |
|
font-size |
--size |
yes |
|
font-style |
--fs |
no |
|
font-weight |
--weight |
no |
|
grid-auto-columns |
--gac |
yes |
|
grid-auto-rows |
--gar |
yes |
|
grid-column |
--gc |
yes |
|
grid-gap |
--gg |
yes |
|
grid-row |
--gr |
yes |
|
grid-template-columns |
--gtc |
yes |
|
grid-template-rows |
--gtr |
yes |
|
height |
--h |
yes |
|
justify-content |
--jc |
yes |
|
left |
--left |
yes |
|
letter-spacing |
--ls |
yes |
|
line-height |
--lh |
yes |
|
list-style |
--lis |
no |
|
list-style-position |
--lisp |
no |
|
list-style-type |
--list |
no |
|
margin |
--m |
yes |
|
margin-bottom |
--mb |
yes |
|
margin-left |
--ml |
yes |
|
margin-right |
--mr |
yes |
|
margin-top |
--mt |
yes |
|
max-height |
--maxh |
yes |
|
max-width |
--maxw |
yes |
|
min-height |
--minh |
yes |
|
min-width |
--minw |
yes |
|
object-fit |
--objf |
yes |
|
object-position |
--objp |
yes |
|
opacity |
--op |
yes |
|
order |
--o |
yes |
|
outline |
--oe |
no |
|
overflow |
--of |
no |
|
overflow-x |
--ofx |
no |
|
overflow-y |
--ofy |
no |
|
padding |
--p |
yes |
|
padding-bottom |
--pb |
yes |
|
padding-left |
--pl |
yes |
|
padding-right |
--pr |
yes |
|
padding-top |
--pt |
yes |
|
pointer-events |
--pe |
no |
|
position |
--pos |
yes |
|
right |
--right |
yes |
|
scroll-behavior |
--sb |
no |
|
text-align |
--ta |
yes |
|
text-decoration |
--td |
no |
|
text-shadow |
--ts |
no |
|
text-transform |
--tt |
no |
|
top |
--top |
yes |
|
transform |
--t |
yes |
|
transform-origin |
--ta |
yes |
|
transform-style |
--ts |
yes |
|
transition |
--tn |
yes |
|
transition-delay |
--td |
yes |
|
transition-duration |
--tnd |
yes |
|
transition-property |
--tp |
yes |
|
transition-timing-function |
--ttf |
yes |
|
user-select |
--us |
no |
|
vertical-align |
--va |
no |
|
visibility |
--v |
yes |
|
white-space |
--ws |
yes |
|
width |
--w |
yes |
|
word-break |
--wb |
yes |
|
writing-mode |
--wm |
yes |
|
z-index |
--z |
yes |
|