Bare Bones

A flex-based grid coupled with neat UI components for developing responsive projects

What Is It?

Bare Bones is a medium-sized CSS file packing quite the punch. It can help you build robust and responsive sites that look beautiful on any device. Bare Bones is built on three core principles:

Sturdy flex grid

Using CSS's flex property gives you the ability of a flex item to alter its dimensions to consume the space around it. No more float-based layouts!

Responsive down to mobile

Targeting the unpredictability of screen sizes, the row and column structure is a fully responsive layout, looking perfect on all devices.

Lovely UI component kit

Providing basic interface elements that have a modern look and feel, save development time, offer plenty of options, and fit nicely within all devices.

Container Size Options

Bare Bones gives your three container options for a greater degree of customization and to suit your project's layout needs. The default container is .flex-wrap which provides a standard responsive feel. There is a thinner option of .flex-wrap-narrow for a layout encumbering far less screen realestate and may be ideal for websites with simpler and minimalist content structures such as a blog. The last option is .flex-row-full which is a container always set to 95% of the viewport which provides a full width layout in any situation.


Give it a shot

  • .flex-wrap
  • .flex-wrap-full
  • .flex-wrap-narrow

The Grid

100%
50%
50%
33%
33%
33%
25%
25%
25%
25%
20%
20%
20%
20%
20%
10%
10%
10%
10%
10%
10%
10%
10%
10%
10%
60%
40%
66%
33%
70%
30%
75%
25%
80%
20%
90%
10%
33%
Offset 33%
20%
Offset 20%
Offset 20%
40%
Offset 20%
50%
Offset 30%
Offset 25%
Offset 25%
Offset 10%
Offset 10%

UI Components

Buttons

Button classes can be applied to <input>, <a>, and <button>.

Every button requires the flex-btn class to work. After that, get creative with the available variety classes for a nice finishing touch.

Primary class options:
flex-btn-full
flex-btn-full-sm
flex-btn-(a size)
btn-frame
btn-round
btn-rounder
btn-flat
bdr-heavy

Color options: every button type uses the bg-(a color) class for a background color. The exception is btn-frame which requires a border color using bdr-(a border color).
default, grey, blue, darkblue, green, yellow, red, black

Button Markup


 	    			
 	    			<!-- Standard button -->
 	    			
 	    				<input type="submit" class="flex-btn bg-default"/>
 	    			

 	    			
 	    			<!-- Button colors -->
 	    			
 	    				<input type="submit" class="flex-btn bg-black"/>
 	    			
 	    			
 	    				<input type="submit" class="flex-btn bg-blue"/>
 	    			

 	    			
 	    			<!-- Round buttons -->
 	    			
 	    				<input type="submit" class="flex-btn btn-round bg-yellow"/>
 	    			
 	    			
 	    				<input type="submit" class="flex-btn btn-round bg-green"/>
 	    			

 	    			
 	    			<!-- flat buttons -->
 	    			
 	    				<input type="submit" class="flex-btn btn-flat bg-darkblue"/>
 	    			
 	    			
 	    				<input type="submit" class="flex-btn btn-flat bg-red"/>
 	    			

					
 	    			<!-- Border only buttons -->
 	    			
 	    				<input type="submit" class="flex-btn btn-round btn-frame bdr-grey"/>
 	    			
 	    			
 	    				<input type="submit" class="flex-btn btn-round btn-frame bdr-yellow bdr-heavy"/>
 	    			

 	    			
 	    			<!-- Button sizes -->
 	    			
 	    				<input type="submit" class="flex-btn-xs bg-grey"/>
 	    			
 	    			
 	    				<input type="submit" class="flex-btn-sm bg-darkblue"/>
 	    			
 	    			
 	    				<input type="submit" class="flex-btn-lrg bg-green"/>
 	    			
 	    			
 	    				<input type="submit" class="flex-btn-xl bg-yellow"/>
 	    			

					
 	    			<!-- Full width buttons-->
 	    			
 	    				<input type="submit" class="flex-btn-full bg-green"/>
 	    			
 	    			
 	    				<input type="submit" class="flex-btn-full-sm bg-red"/>
 	    			

					
 	    			<!-- Button variations -->
 	    			
 	    				<input type="submit" class="flex-btn-sm btn-flat bg-red"/>
 	    			
 	    			
 	    				<input type="submit" class="flex-btn-lrg btn-round btn-frame bdr-yellow"/>
 	    			
 	    			
 	    				<input type="submit" class="flex-btn-xl btn-flat btn-frame bdr-blue"/>
 	    			

 	    		

Forms

For the <form> tag, simply apply the flex-form class.

Form class options:
form-fill

For <input>, <select>, and <textarea> you'll need to apply the flex-input class. In addition, <textarea> required the ta-default class.

For <radio> and <checkbox> you'll need to apply either the radio or checbox class.

Fill out the form

Getting Started

Bare Bones is so light-weight and quick to implement into any new or existing website. All you need is a parent wrapper class (see options below), one or more child rows, and within the rows, any number of columns that equate to 100. Each column class is prefixed with a "flex-c-" abbreviated for flex column and finally concatenated with its percent-based width.

Here is what a basic set up looks like.

code sample

Media Queries

Bare Bones uses a grand total of three media queries to construct the scalable grid. This sets up an ideal situation for a reliable and consistent website that scales effortlessly from desktop down to mobile. Bare Bones targets media queries using a min width specifier and only modifies that parent flex-wrap class. So while the main container is adjusting to the viewport, the percent-based columns respond wonderfully to their parent.

License & Log

Bare Bones (currently v1.0) is currently available for use on GitHub. The whole framework is free to use under the open-source MIT license. I'm very excited about the possibilities with CSS flex and would love to have a small community of contributors to Bare Bones!

Download