Professional front-end framework to quick start ProcessWire theme development.
- OOCSS framework based on Inuitcss
- Based on SASS, Gulp, PostCSS
- Flexbox grid based on Bulma
- Ordered folder structure
- Livereload (through Gulp-connect)
- Media Queries mixin with sass-mq
To use Bits you'll need node, yarn, gulp (global) and sass.
You can download Bits and save it into your project’s sites/
directory.
- Download this repo with the "Download ZIP" folder on the right
- Unzip to desired local folder
- Open up the terminal
- Go to choosen folder
$ cd ~/sites/new-project/sites/
- Install dependencies
$ yarn install
- Open up the terminal
- Run Gulp
$ gulp
- Go to your localhost
Bits follows a specific folder structure, which you should follow as well in your own CSS directory:
/settings
: Global variables, site-wide settings, config switches, etc./tools
: Site-wide mixins and functions./generic
: Low-specificity, far-reaching rulesets (e.g. resets)./elements
: Unclassed HTML elements (e.g.a {}
,blockquote {}
,address {}
)./objects
: Objects, abstractions, and design patterns (e.g..o-layout {}
)./components
: Discrete, complete chunks of UI (e.g..c-carousel {}
). This is the one layer that inuitcss doesn’t provide code for, as this is completely your terrain./utilities
: High-specificity, very explicit selectors. Overrides and helper classes (e.g..u-hidden {}
).
Following this structure allows you to intersperse Bits’ code with your own, so that your main.scss
file might look something like this:
// SETTINGS
@import "settings/settings.config";
@import "../../../node_modules/inuitcss/settings/settings.core";
@import "settings/settings.global";
@import "settings/settings.colors";
// TOOLS
@import "../../../node_modules/inuitcss/tools/tools.font-size";
@import "../../../node_modules/inuitcss/tools/tools.clearfix";
@import "../../../node_modules/sass-mq/mq";
@import "tools/tools.aliases";
// GENERIC
@import "../../../node_modules/inuitcss/generic/generic.box-sizing";
@import "../../../node_modules/inuitcss/generic/generic.normalize";
@import "../../../node_modules/inuitcss/generic/generic.shared";
// ELEMENTS
@import "../../../node_modules/inuitcss/elements/elements.page";
@import "../../../node_modules/inuitcss/elements/elements.headings";
@import "elements/elements.links";
@import "elements/elements.quotes";
// OBJECTS
@import "../../../node_modules/inuitcss/objects/objects.layout";
@import "../../../node_modules/inuitcss/objects/objects.media";
@import "../../../node_modules/inuitcss/objects/objects.flag";
@import "../../../node_modules/inuitcss/objects/objects.list-bare";
@import "../../../node_modules/inuitcss/objects/objects.list-inline";
@import "../../../node_modules/inuitcss/objects/objects.box";
@import "../../../node_modules/inuitcss/objects/objects.block";
@import "../../../node_modules/inuitcss/objects/objects.tables";
// COMPONENTS
@import "components/components.buttons";
@import "components/components.page-head";
@import "components/components.page-foot";
@import "components/components.site-nav";
@import "components/components.ads";
@import "components/components.promo";
// UTILITIES
@import "../../../node_modules/inuitcss/utilities/utilities.widths";
@import "../../../node_modules/inuitcss/utilities/utilities.headings";
@import "../../../node_modules/inuitcss/utilities/utilities.spacing";
Bits uses autoprefixer to make (most) Flexbox features compatible with earlier browser versions. According to Can I use, Bits is compatible with:
- Chrome
- Edge
- Firefox
- Internet Explorer (10+)
- Opera
- Safari