Every component is shipped as a separate bower package. It is totally up to you which components you want to include with full control on the size of your project.
Almost everything in Row Low is configurable. You have full control on namespaces, column layouts, breakpoints and aspect ratios to name a few.
Keeping things clear, Row Low was built following the approach of BEM-Syntax. This self explanatory naming scheme makes working with Row Low simple and future proof.
Giving you a quick start into Row Low, kickstarter is the perfect an initial setup for your project with all Row Low components. Row Low works perfectly with Normalize.css and therefore it is additionally included into kickstarter.
Working with Row Low's Kickstarter requires a small and easy to use technology stack and at least some knowledge in how to use it.
bower
packages
$ bower install
node
packages
$ npm install
gulp
to build your project
$ npm install --global gulp
$ gulp
dist
|`- assets
| `- css
| | `- styles.min.js
| `- fonts
| `- img
| `- js
| `- plugins.min.js
| `- scripts.min.js
| `- vendor.min.js
|`- index.html
|
src
|`- assets
| `- fonts
| `- img
| `- js
| | `- plugins
| | `- scripts
| | | `- main.js
| | `- plugins.js
| | `- scripts.js
| | `- vendor.js
| `- sass
| `- generic
| `- specific
| `- settings.scss
| `- styles.scss
|`- index.html
|
bower.js
|
gulpfile.js
|
package.js
gulp
is used to build everything that is located in the src
directory and move it to dist
.
You don't have to follow the rules on how to split up your javascript and scss files. If you change this, please don't forget to edit your gulpfile
.
The grid module of Row Low is probably one of the most powerful and complex modules in this framework. Basically it helps you build nice responsive grid layouts, but additionally it provides you tools to shift and offset columns plus to add the right gutter to your grid.
The grid is strongly connected with the breakpoints you've configured in the rowlow.utils.breakpoints
module. Not only the name of your breakpoints, but also the total number of breakpoitns an their value will affect your responsive grid.
Additionally Row Low gives you the possibility to not just use one grid layout at a time, you are able to run a 10-column-based layout in parallel to a 12-column-based layout if your project requires this.
But please be careful. With every breakpoint and column-layout you add, you multiply the CSS selectors that will be generated by this module.
bower install --save rowlow.layout.responsive-grid
$rowlow-grid-namespace: ""; // Specific module namespace
$rowlow-grid-columns: 12; // List of columns for your layout
$rowlow-grid-gutter: 20; // The gutter width
.{rowlow-grid-namespace}column--{breakpoint-name}--{column}of{total-columns}
<div class="row">
<div class="column--m--6of12 column--l--4of12">
</div>
<div class="column--m--6of12 column--l--4of12">
</div>
</div>
.{rowlow-grid-namespace}column-offset--{breakpoint-name}--{column}of{total-columns}
<div class="row">
<div class="column--m--4of12 column-offset--m--4of12"></div>
</div>
.{rowlow-grid-namespace}column-push--{breakpoint-name}--{column}of{total-columns}
.{rowlow-grid-namespace}column-pull--{breakpoint-name}--{column}of{total-columns}
<div class="row">
<div class="column--m--4of12 column-push--m--4of12"></div>
<div class="column--m--4of12 column-pull--m--4of12"></div>
<div class="column--m--4of12"></div>
</div>
.gutter--{breakpoint-name}--{gutter-multiplier}
.gutter-top--{breakpoint-name}--{gutter-multiplier}
.gutter-right--{breakpoint-name}--{gutter-multiplier}
.gutter-bottom--{breakpoint-name}--{gutter-multiplier}
.gutter-left--{breakpoint-name}--{gutter-multiplier}
.gutter-vertical--{breakpoint-name}--{gutter-multiplier}
.gutter-horizontal--{breakpoint-name}--{gutter-multiplier}
<div class="row">
<div class="column--m--6of12">
<div class="gutter--s--2 gutter--m--1"></div>
</div>
<div class="column--m--6of12">
<div class="gutter-top--s--2 gutter-top--m--1"></div>
</div>
<div class="column--m--6of12">
<div class="gutter-right--s--2 gutter-right--m--1"></div>
</div>
<div class="column--m--6of12">
<div class="gutter-bottom--s--2 gutter-bottom--m--1"></div>
</div>
<div class="column--m--6of12">
<div class="gutter-left--s--2 gutter-left--m--1"></div>
</div>
<div class="column--m--6of12">
<div class="gutter-vertical--s--2 gutter-vertical--m--1"></div>
</div>
<div class="column--m--6of12">
<div class="gutter-horizontal--s--2 gutter-horizontal--m--1"></div>
</div>
</div>
This module adds CSS selectors in order to align block or inline-block elements in HTML
bower install --save rowlow.layout.horizontal-align
$rowlow-horizontal-align-namespace // Specific module namespace
/* Set modules namespace (optional) */
$rowlow-horizontal-align-namespace: "namespace-";
@import "bower_components/rowlow.layout.horizontal-align/main.scss"
.{rowlow-horizontal-align-namespace}horizontal-align--{breakpoint}--{left, center, right}
<div class="horizontal-align--s--center horizontal-align--m--left"></div>
This module can eaily be used to create overlays or layerstacks in HTML.
bower install --save rowlow.layout.layer-group
$rowlow-layer-group-namespace // Specific module namespace
/* Set modules namespace (optional) */
$rowlow-layer-group-namespace: "namespace-";
@import "bower_components/rowlow.layout.layer-group/main.scss"
<div class="layer-group">
<img src="http://placehold.it/840x560" alt=""/>
<div class="layer">[...]</div>
<div class="layer">[...]</div>
[...]
</div>
A module for creating DOM container with a defined aspect ratio. Preconfigured ratios are 1by1, 4by3, 16by9 and 21by9, but can be extended upon your needs.
bower install --save rowlow.layout.ratio-container
rowlow-ratio-container-namespace // Specific module namespace
rowlow-ratios // List of ratios
/* Set modules namespace (optional) */
$rowlow-ratio-container-namespace: "namespace-";
/* Overwrite ratio list (optional) */
$rowlow-ratios: (
(1,1),
(4,3),
(16,9),
(21,9)
)
@import "bower_components/rowlow.layout.ratio-container/main.scss"
<div class="ratio-container--s--21by9 ratio-container--l--16by9"></div>
This module adds functionality to vertical align not just inline or table elements. A vertical align wrapper in combinations with the rowlow.layout.layer-group
module helps you to vertically align things with an unknown height.
You can take control of the vertical alignment for any responsive breakpoint separately.
bower install --save rowlow.layout.vertical-align
$rowlow-vertical-align-namespace // Specific module namespace
/* Set modules namespace (optional) */
$rowlow-vertical-align-namespace: "namespace-";
@import "bower_components/rowlow.layout.vertical-align/main.scss"
.{rowlow-vertical-align-namespace}vertical-align--{breakpoint}--{top, middle, bottom}
.{rowlow-vertical-align-namespace}vertical-align-helper
<table>
<tr>
<td class="vertical-align--s--top"></td>
<td class="vertical-align--s--middle"></td>
<td class="vertical-align--s--bottom"></td>
</tr>
</table>
<div class="vertical-align-helper" style="height: 200px">
<div class="vertical-align--s--middle">
[...]
</div>
</div>
Top | Middle | Bottom |
A module for displaying responsive images
bower install --save rowlow.media.image
rowlow-image-namespace // Specific module namespace
<img src="" alt="" class="responsive"/>
A easing module with loads of easing functions for Row Low framework
bower install --save rowlow.motion.easing
rowlow-ease() // Returns the easing function by a given name
a:hover{
transition: all .1s rowlow-ease("in-out-quad") .2s;
}
linear
ease
in
out
in-out
in-sine
out-sine
in-out-sine
in-quad
out-quad
in-out-quad
in-cubic
out-cubic
in-out-cubic
in-quart
out-quart
in-out-quart
in-quint
out-quint
in-out-quint
in-expo
out-expo
in-out-expo
in-circ
out-circ
in-out-circ
in-back"
out-back
in-out-back
Row Low default settings hold important generic settings that can be overwritten depending on your needs.
$rowlow-namespace
Row Low's mixins, variables and functions are prefixed with rowlow-
per se. Generated CSS selectors however, are not prefixed by default. In order to change this behavior, you can define a generic namespace that will be prefixed to any CSS selector using $rowlow-namespace
. Additionally, every Row Low module that is generating CSS selectors will have a additional variable to set a specific namespace. By default this specific namespace is equal to the generic namespace. Please look up the module's documentation for more details.
$rowlow-namespace: "rowlow-";
A font-face wrapper to quickly define custom fonts for Row Low framework
bower install --save rowlow.type.font-face
/**
* $font-name Name of the font-family
* $class-name The name of the class that will be generated
**/
rowlow-font-face($font-name, $class-name, $file, $fallback: sans-serif, $weight: normal, $style: normal)
/* Set modules namespace (optional) */
$rowlow-font-face-namespace: "namespace-";
@import "bower_components/rowlow.type.font-face/main.scss"
@include rowlow-font-face('Futura Medium', 'futura-medium', '../fonts/futura-medium/futura-medium');
/* preferred method */
h1{
@extend .font-face--futura-medium;
}
/* alternate method */
h1{
font-family: "Futura Medium", sans-serif
}
<h1 class="font-face--futura-medium">This is Futura</h1>
This text util helps you to fully control text aligns amog all responsive breakpoints.
bower install --save rowlow.type.text-align
$rowlow-text-align-namespace // Specific module namespace
/* Set modules namespace (optional) */
$rowlow-text-align-namespace: "namespace-";
@import "bower_components/rowlow.type.text-align/main.scss"
{rowlow-text-align-namespace}text-align--{breakpoint-name}--{left, right, center, justify}
<p class="text-align--s--center text-align--m--right"></p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veniam asperiores eligendi soluta maiores officia, sequi, tempore ipsa. Sint, exercitationem, perferendis. Temporibus id eius natus sapiente quas cum rem nihil distinctio.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veniam asperiores eligendi soluta maiores officia, sequi, tempore ipsa. Sint, exercitationem, perferendis. Temporibus id eius natus sapiente quas cum rem nihil distinctio.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veniam asperiores eligendi soluta maiores officia, sequi, tempore ipsa. Sint, exercitationem, perferendis. Temporibus id eius natus sapiente quas cum rem nihil distinctio.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veniam asperiores eligendi soluta maiores officia, sequi, tempore ipsa. Sint, exercitationem, perferendis. Temporibus id eius natus sapiente quas cum rem nihil distinctio.
A little util to take control over text transforms via CSS selectors
bower install --save rowlow.type.text-transform
$rowlow-text-transform-namespace // Specific module namespace
/* Set modules namespace (optional) */
$rowlow-text-transform-namespace: "namespace-";
@import "bower_components/rowlow.type.text-transform/main.scss"
<h1 class="text-transform--uppercase"></h1>
<h1 class="text-transform--lowercase"></h1>
<h1 class="text-transform--none"></h1>
A text util to take control over text decorations via CSS selectors
bower install --save rowlow.type.text-decoration
$rowlow-text-decoration-namespace // Specific module namespace
/* Set modules namespace (optional) */
$rowlow-text-decoration-namespace: "namespace-";
@import "bower_components/rowlow.type.text-decoration/main.scss"
<h1 class="text-decoration--underline"></h1>
<h1 class="text-decoration--overline"></h1>
<h1 class="text-decoration--line-through"></h1>
<h1 class="text-decoration--none"></h1>
A little util to take control over text spacing via CSS selectors
bower install --save rowlow.type.text-spacing
$rowlow-text-spacing-namespace // Specific module namespace
/* Set modules namespace (optional) */
$rowlow-text-spacing-namespace: "namespace-";
@import "bower_components/rowlow.type.text-spacing/main.scss"
<h1 class="text-spacing--subtitled"></h1>
<h1 class="text-transform--line-collapse"></h1>
Defining a map of breakpoint names and value pairs, this module generates will help you maintain responsive breakpoints for your project. By default, this module will give you breakpoints at 1px, 768px, 992px and 1200px.
bower install --save rowlow.utils.breakpoints
$rowlow-breakpoints: (
"s": 1,
"m": 768,
"l": 992,
"xl": 1200
);
rowlow-breakpoint() // Returns a breakpoint value by a given name
rowlow-breakpoint-min() // Returns the breakpoint's min value by a given name
rowlow-breakpoint-max() // Returns the breakpoint's max value by a given name
/* Overwrite breakpoint map (optional) */
$rowlow-breakpoints: (
"s": 1,
"m": 992,
"l": 1200,
"xl": 1400,
"xxl": 1600
);
@import "bower_components/rowlow.utils.breakpoints/main.scss"
@media (min-width: rowlow-breakpoint-min("s") + px) {
}
@media (min-width: rowlow-breakpoint-min("m") + px) {
}
@media (min-width: rowlow-breakpoint-min("l") + px) {
}
@media (min-width: rowlow-breakpoint-min("xl") + px) {
}
A clearfix helper for Row Low framework. Clearfixes help you to clear floats in your layout.
$rowlow-clearfix-namespace //Specific module namespace
rowlow-clearfix // Add clearfix specification
/* Set module namespace (optional) */
$rowlow-clearfix-namespace: "namespace-";
@import "bower_components/rowlow.utils.clearfix/main.scss"
.some-element{
@include rowlow-clearfix;
}
.some-element{
@extend .clearfix;
}
<div class="clearfix"></div>
Defining a map of color name and color code pairs, this module generates css selectors for each background, border and text colors.
bower install --save rowlow.utils.colors
$rowlow-colors-namespace // Specific module namespace
$rowlow-colors // Map of colors
$rowlow-color()
/* Set modules namespace (optional) */
$rowlow-colors-namespace: "namespace-";
/* Define color map */
$rowlow-colors: (
"white": #ffffff,
"black": #000000,
"grey": #cccccc
);
@import "bower_components/rowlow.utils.colors/main.scss"
/* Get color code using a function */
body{
background-color: rowlow-color("grey");
}
<!-- Setting a background color via selector -->
<body class="background-color--grey"></body>
<!-- Setting a text color via selector -->
<h1 class="text-color--grey"></h1>
<!-- Setting a border color via selector -->
<h1 class="border-color--grey"></h1>
Take full control of the visibility of elements among all repsonisve breakpoints.
bower install --save rowlow.utils.visibility
$rowlow-visibility-namespace // Specific module namespace
/* Set modules namespace (optional) */
$rowlow-visibility-namespace: "namespace-";
@import "bower_components/rowlow.utils.visibility/main.scss"
{rowlow-visibility-namespace}visible--{breakpoint-name}
{rowlow-visibility-namespace}hidden--{breakpoint-name}
<div class="hidden--s"></div>
<div class="visible--m visible--l"></div>