Simple basic Components to extends in your own art
Crispy gives you a Structure to orientate
Use helper to save up time and coding less
This Boilerplate has more simpler approach, it can be used as a base for Websites, Webapps and also Frameworks. Of Course there a so many Framework and Boilerplates.
But the most are trying to hard adding styles that are most time will be overwritten to make it work for you. This causes a loss in Performance and more Fighting with the Framework and the Documentation.
The Components are quite simple and not fancy, the have all fundamental styles to so the can be used.
The Helpers have Styles for single Elements and spend it saving for each element to invent a single class.
The Coding Style of this Framework is BEM, but also here a more simpler idea of it. BEM is a good and helpfull Coding Style, if you not overthinking it. It helps to create smaller compontents that you can reuse. Important for that, make them really small. More Information about BEM.
This Site is also a Example to use the Boilerplate. You can find all Styles for this site in "/src/scss/example". You see also that there is a "templates" Directory. The Idea in BEM was always create all in Components. That is not always Practical.
Sometimes, the more Bigger Picture, on a Single Site or in App the Stylings that are so special that the belong only there, and are to big for a templates. For this use the "templates" Directory.
npm install crispy-boilerplate
<abbr title=""></abbr>
Glossier viral occupy mixtape pok pok cornhole, vape affogato hella knausgaard thundercats
<blockquote></blockquote>
Hoodie kickstarter four loko, pinterest hashtag chambray glossier. Pug before they sold out etsy listicle. Deep v bespoke tacos polaroid, squid flexitarian crucifix messenger bag.
<p></p>
Glossier viral occupy mixtape pok pok.
<ul>
<li>item 1</li>
<li>item 2
<ul>
<li>child item 1</li>
<li>child item 2</li>
</ul>
</li>
</ul>
<ol>
<li>item 1</li>
<li>item 2</li>
</ol>
<dl>
<dt>defined title 1</dt>
<dd>defined item 1</dd>
</dl>
<button class="button"></button>
<button class="button button--wide"></button>
<nav class="group">
<ul class="group__section">
<li class="group__item">first item</li>
<li class="group__item">second item</li>
<li class="group__item">third item</li>
</ul>
</nav>
<nav class="group group--horizontal">
<ul class="group__section group__section--separate">
<li class="group__item">first item</li>
<li class="group__item">second item</li>
<li class="group__item">third item</li>
</ul>
</nav>
<h2></h2>
<h2 class="h3"></h2>
$crispy__heading__font-sizes: (
'h1': 40px,
'h2': 36px,
'h3': 32px,
'h4': 28px,
'h5': 24px,
'h6': 20px
) !default;
<div class="hero hero--bottom" style="height: 300px; background-image: url('https://picsum.photos/1024')"></div>
<svg class="icon icon--small" alt="beaker" viewBox="0 0 100 100">
<use xlink:href="/svg/icons.svg#beaker" />
</svg>
<svg class="icon" alt="beaker" viewBox="0 0 100 100">
<use xlink:href="/svg/icons.svg#beaker" />
</svg>
<svg class="icon icon--large" alt="beaker" viewBox="0 0 100 100">
<use xlink:href="/svg/icons.svg#beaker" />
</svg>
<svg class="icon icon--danger" alt="alert" viewBox="0 0 100 100">
<use xlink:href="/svg/icons.svg#alert" />
</svg>
<div class="modal modal--bottom width-100">
<div class="panel">
<div class="panel__inner">
Lorem Ipsum
</div>
</div>
</div>
<div class="panel">
<div class="panel__inner">
Lorem Ipsum
</div>
</div>
<table class="table table--striped">
<thead>
<tr>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
</tr>
</tbody>
</table>
name | age |
---|---|
Mr. Brown | 43 |
Mr. Magenta | 32 |
Mr. White | 45 |
toEm(5px);
toEm(10px 10px 0 0);
toRem(10px 10px 0 0);
Returns em and rem, accepts px and unitless values.
toEm(10px);
Returns value without unit.
<div class="text-left"></div> <div class="text-center"></div> <div class="text-right"></div> <div class="text-justify"></div> <div class="float-left"></div> <div class="float-center"></div> <div class="float-none"></div> <div class="center"></div> <div class="clearfix"></div>
margin-top and -bottom from $crispy__margin as px.
<div class="panel margin-bottom-0x">margin-bottom-0x</div> <div class="margin-bottom-1x">margin-bottom-1x</div> <div class="margin-bottom-2x">margin-bottom-2x</div> <div class="margin-bottom-3x">margin-bottom-3x</div>
<img class="img-responsive" src="https://picsum.photos/400" />
<figure>
<img class="img-responsive" src="https://picsum.photos/400" />
<figcaption class="text-center">Lorem Ipsum</figcaption>
</figure>
<div class="video-responsive" style="height: 280px;">
<iframe src="https://giphy.com/embed/13XW2MJE0XCoM0" width="480" height="361"></iframe>
</div>
<div class="panel width-25">width-25</div>
<div class="width-50">width-50</div>
<div class="width-75">width-75</div>
<div class="width-100">width-100</div>
<div class="text-left"></div> <div class="text-center"></div> <div class="text-right"></div> <div class="text-justify"></div> <div class="text-italic"></div> <div class="text-normal"></div> <div class="text-bold"></div> <div class="text-uppercase"></div> <div class="text-lowercase"></div> <div class="text-small"></div> <div class="text-crossed"></div>
Also it will be create classes $crispy__font-sizes
These @mixins were used with the Breakpoints from the Reflex Grid.
<div class="sm">sm</div>
<div class="md">md</div>
<div class="md-only">md-only</div>
<div class="lg-only">lg-only</div>
.sm, .md, .md-only, .lg-only {
display: none;
}
.sm {
@include crispy__media-sm() {
display: block;
}
}
.md {
@include crispy__media-md() {
display: block;
}
}
.md-only {
@include crispy__media-md-only() {
display: block;
}
}
.lg-only {
@include crispy__media-lg-only() {
display: block;
}
}
The Reflex Grid is from Lee Jordan. I have build a few helper for media-queries. Reflex Grid is lightweight, simple and uses a flexbox grid with cross browser support, an inline-block fallback.
Documentation: http://reflexgrid.com/docs/
Github: https://github.com/leejordan/reflex