Stack component
About
This sets the vertical spacing of child components.
Usage
Most vf-core
components come without any margin spacing to avoid adding margins where not needed. Instead vertical spacing is controlled by vf-stack
.
Where vertical spacing is required withing a component, the vf-stack
class name to existing containers (like vf-hero
) or containers you create yourself in your codebase.
Variants
We use CSS custom properties to control this vertical rhythm. For browsers that do not support CSS custom properties (IE 11) we provide a default value of 1rem
so that child components get some spacing. This value is overridden by browsers that understand CSS custom properties.
variant name | description |
---|---|
200 | gives the vertical rhythm equal spacing of .5rem
|
400 | gives the vertical rhythm equal spacing of 1rem
|
500 | gives the vertical rhythm equal spacing of 1.25rem
|
600 | gives the vertical rhythm equal spacing of 1.5rem
|
800 | gives the vertical rhythm equal spacing of 2rem
|
1200 | gives the vertical rhythm equal spacing of 3rem
|
1600 | gives the vertical rhythm equal spacing of 4rem
|
Even though the vf-stack
layout has a default spacing design token applied as a CSS custom property fallback it is good practice in the system to declare the vf-stack
spacing class name in your projects.
<div class="vf-stack">...</div>
<div class="vf-stack vf-stack--400">...</div>
As we are using CSS custom properties we can also use a custom value by creating the custom property --vf-stack-margin--custom
either in your stylesheet, or in your HTML.
<div class="vf-stack vf-stack--custom" style="--vf-stack-margin--custom: 3em;">
<div class="vf-box vf-box--normal vf-box-theme--primary">...</div>
<div class="vf-box vf-box--normal vf-box-theme--primary">...</div>
<div class="vf-box vf-box--normal vf-box-theme--primary">...</div>
</div>
Install
This repository is distributed with [npm][https://www.npmjs.com/]. After [installing npm][https://www.npmjs.com/get-npm] and yarn, you can install vf-stack
with this command.
$ yarn add --dev @visual-framework/vf-stack
Sass/CSS
If your component uses Sass:
The source files included are written in Sass (scss
) You can simply point your sass include-path
at your node_modules
directory and import it like this.
@import "@visual-framework/vf-stack/index.scss";
Make sure you import Sass requirements along with the modules. You can use a project boilerplate or the vf-sass-starter