Buttons

The main button

Used for primary click actions like "submit" in a form.

<a href="#" class="btn">
  The button
</a>
The button

The secondary button

Used for secondary actions like "cancel" in a form.

<a href="#" class="btn-secondary">
  The Secondary Button
</a>
The Secondary Button

The diap button

The main button on dark backgrounds

<a href="#" class="btn-diap">
  The Diap Button
</a>
The Diap Button

The secondary diap button

The secondary button on dark backgrounds

<a href="#" class="btn-secondary-diap">
  The Alt Button
</a>
The Alt Button

Button groups

Buttons placed inline need to be spaced and usually the is some extra margin before and/or after the group of button. The .buttons class does this.

<div class="buttons">
  <button class="btn">Primary button</button>
  <button class="btn-secondary">Secondary button</button>
</div>

Buttons in a group get some top/bottom margin.

(also: check here that <a> tag buttons and <button> buttons look similar)

<a> tag buttons

Real <button>

Reprovinci Frontend Toolkit 🚀

The scaffolding we work with. It contains a responsive 24 column grid, setups for colors, typography, spacings and some prototyping classes. It is not a full fledged css framework. It only contains some layout classes. It's the start of your own creativity 🎨

Typography

The typography is based on a scaling font size with a min and max size. By setting the variables $font-size-min and $font-size-max the html font will be the min font until breakpoint-md and the gradualy scale up to max size. This is done with clamp: clamp(#{$font-size-min}, #{$font-size-scaling}, #{$font-size-max}). Try scaling up and down this browser viewport and see the result.

Text styles

There 2 text stylings. UI text is the default. Used for text outside dedicated body copy. When needed, body copy placed inside a .text class can be styled differently from the UI type. By default they are the same.

Some text in the UI

Intro text is available with the class .intro. Lorem ipsum dolor sit amet. Sapiente molestias modi ratione aliquam unde, commodi corporis hic vitae sint.

Lorem ipsum dolor, sit amet consectetur adipisicing elit. Sapiente molestias modi ratione aliquam unde, commodi corporis hic vitae sint mollitia numquam eos. Veritatis blanditiis obcaecati, maiores perferendis quasi exercitationem aliquam.

Some text as body copy

Intro text is available with the class .intro. Lorem ipsum dolor sit amet. Sapiente molestias modi ratione aliquam unde, commodi corporis hic vitae sint.

Lorem ipsum dolor, sit amet consectetur adipisicing elit. Sapiente molestias modi ratione aliquam unde, commodi corporis hic vitae sint mollitia numquam eos. Veritatis blanditiis obcaecati, maiores perferendis quasi exercitationem aliquam.

H1Lorem ipsum dolor sit amet

H2Lorem ipsum dolor sit amet

H3Lorem ipsum dolor sit amet

H4Lorem ipsum dolor sit amet

H5Lorem ipsum dolor sit amet
H6Lorem ipsum dolor sit amet

H1Lorem ipsum dolor sit amet

H2Lorem ipsum dolor sit amet

H3Lorem ipsum dolor sit amet

H4Lorem ipsum dolor sit amet

H5Lorem ipsum dolor sit amet
H6Lorem ipsum dolor sit amet

SCSS Variables

// type settings
$font-family-base: sans-serif !default;
$font-size-base: 18px !default; // px
$font-size-min: round(($font-size-base * 0.777)) !default; // px
$font-size-max: $font-size-base !default; // px

// font size variations
$font-size-sm: .85rem !default;
$font-size-md: 1rem !default;
$font-size-lg: 1.2rem !default;

// line-height
$line-height-base: 1.65 !default;
$line-height-condensed: 1.2 !default;

// headings
// ratio base works out of the box, but change to your needs
$headings-font: $font-family-base !default;
$headings-font-weight: bold !default;
$headings-line-height: $line-height-condensed !default;
$headings__small-size: $font-size-sm !default;
$headings__small-color: $color-primary !default;

// heading sizes can be regular rem sizes
// these defaults are are a ratio based on the line-height
$h1-size: $font-size-md * $line-height-base * $line-height-base !default;
$h2-size: $font-size-md * $line-height-base !default;
$h3-size: $font-size-md * (1 + (($line-height-base - 1) / 2)) !default;
$h4-size: $font-size-md !default;
$h5-size: $font-size-md !default;
$h6-size: $font-size-md !default;
        

Colors

Defined Grayscales

$color-black

$color-gray-extra-dark

$color-gray-dark

$color-gray

$color-gray-light

$color-gray-extra-light

$color-white

Defined colors

$color-blue

$color-green

Applied colors

$color-primary

$color-secondary

$color-loud

$color-soft

'font': $font-color, 'font-light': $font-color-light, 'font-dark': $font-color-dark, 'body': $body-bg

Font colors

The default font color is stored in $color-font and as class available as .color-font

When text is overlayed on images it's sometimes useful to be able to specifically apply dark or light font. $color-font-dark and $color-font-light are the variables for this. These are available as classes .color-font-dark and .color-font-light

The default font color

Lorem, ipsum dolor, sit amet consectetur adipisicing elit. Assumenda debitis eligendi repudiandae quisquam, quis ut alias optio molestiae non tempore.

The light font on dark backgrounds

Lorem ipsum dolor sit amet, consectetur, adipisicing elit. Praesentium, voluptatum, fuga. Molestias cum, molestiae officia, iure ipsa .

The dark font on light backgrounds

Lorem ipsum dolor sit amet consectetur adipisicing elit. Expedita architecto vel tempora rem ratione, asperiores consequatur, optio, perferendis fugit et eo.

Grid

A 24 column grid. Well, actually 24 + 4 outer columns: one for site padding and one to flex

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
212
22
23
24
25
26
27
28
.grid__container@include grid-pos(1,24)
.grid__container--sm@include grid-pos(2,22)
.grid__container--xs@include grid-pos(3,20)
.grid__extended@include grid-abspos(2,26)
.grid__full@include grid-abspos(1,28)
.grid__left@include grid-pos(1,12)
.grid__right@include grid-pos(13,12)
.grid__left-extended@include grid-abspos(2,13)
.grid__right-extended@include grid-pos(13,13)
.grid__left-full@include grid-abspos(1,14)
.grid__right-full@include grid-pos(13,14)

For quickly applying a container without a .grid as wrapper the .container class is supplied.

.container

Grid columns

The variable $grid-columns defines the amount of columns in the grid center. 24 is the default. Override it when needed.

Grid mixin

The grid is based on a mixin. If you need an alternative grid count on some places you can use the mixin:

// @mixin grid($grid-columns, $grid-padding, $grid-spacer)
.grid-with-12-columns {
  @include grid(12);
}
        

Buttons

The main button

Used for primary click actions like "submit" in a form.

<a href="#" class="btn">
  The button
</a>
The button

The secondary button

Used for secondary actions like "cancel" in a form.

<a href="#" class="btn-secondary">
  The Secondary Button
</a>
The Secondary Button

The diap button

The main button on dark backgrounds

<a href="#" class="btn-diap">
  The Diap Button
</a>
The Diap Button

The secondary diap button

The secondary button on dark backgrounds

<a href="#" class="btn-secondary-diap">
  The Alt Button
</a>
The Alt Button

Button groups

Buttons placed inline need to be spaced and usually the is some extra margin before and/or after the group of button. The .buttons class does this.

<div class="buttons">
  <button class="btn">Primary button</button>
  <button class="btn-secondary">Secondary button</button>
</div>

Buttons in a group get some top/bottom margin.

(also: check here that <a> tag buttons and <button> buttons look similar)

<a> tag buttons

Real <button>

Box

Colored boxes to place attention on content. Boxes have some padding and coloring.

Default boxes are .box--soft for content that needs just a bit of attention and .box--loud for content that needs a lot of attention.

Soft box

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Dicta autem facilis optio voluptatum ab aut molestiae sint non. Quasi non nostrum in dolores eum rerum explicabo totam rem minus asperiores.

Loud box

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Dicta autem facilis optio voluptatum ab aut molestiae sint non. Quasi non nostrum in dolores eum rerum explicabo totam rem minus asperiores.

Literal box classes

Soft and loud are more flexible to style but for quick markup the literal classes .box--primary and .box--secondary are available.

Primary colored box

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Dicta autem facilis optio voluptatum ab aut molestiae sint non. Quasi non nostrum in dolores eum rerum explicabo totam rem minus asperiores.

Secondary colored box

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Dicta autem facilis optio voluptatum ab aut molestiae sint non. Quasi non nostrum in dolores eum rerum explicabo totam rem minus asperiores.

Box mixin

If you need more box colors create them with the mixin:

// @mixin box($bgcolor, $color) {
.black-box {
  @include box(black, hotpink);
}
        

Spacing

The heights of these blocks represent the different spaces:

$space-1

$space-2

$space-3

$space-4

$space-5

The margin between these blocks represent the different spaces:

$space-1

$space-2

$space-3

$space-4

$space-5

SVG mixin

Place icons before/after/in elements. Common usage example:

Common usage

a.mylink { @include svg--after('arrow-right', 1em, .5em) }

places the image arrow-right.svg in the background of an inline-block element after the a.mylink

svg--before(img, width height) places the icon inline before the element

svg--abs(img, width, height) places it in an absolute positioned after the element.

svg(img, width height) places the icon in the background of the element itself

The icon source

The icon source can either be a base64 encoded string or an icon name. Some default icons are defined in _variables/

The root folder the icons is by default ../images but can be set with the variable $svg__root: '../images';

svg--before($rocket, 1.5em, 1.5em)

An icon before this text

svg--after($rocket, 1.5em, 1.5em)

An icon after this text

svg--abs($rocket, 1.5em, 1.5em)

An icon abs positioned

svg($rocket, 2em, 2em)

Replace text

svg--after

svg--abs

svg($rocket, 2em, 2em)