bummzack / fab-unit

A Sass function that helps you to define a perfectly responsive value without any effort

Home Page:https://www.npmjs.com/package/fab-unit

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FabUnit πŸͺ„

FabUnit is a Sass function that helps you to define a perfectly responsive value without any effort. It takes a minimum and an optimum value, spits out a calculation to your css property, considering the screen width, aspect ratio and the specified anchor points. No media queries, no break points, no design jumps. A formula that controls and synchronises your whole project.

fab-unit(12, 16); πŸͺ„

↓ Features
↓ Install
↓ Use
↓ Options
↓ Links

 

πŸ’š Features

  • takes min and opt value
  • 4 customisable anchor points
  • improved tablet view (stretch opt screen)
  • auto max size, depending on the last anchor point (wrapper)
  • considers aspect ratio
size
|                                     β—‹ β€’ β€’ β€’
|                               β€’     |
|                 β—‹ β€’ β€’ β€’ β—‰           |
|           β€’     |       |           |
| β€’ β€’ β—‰           |       |           |
|     |           |       |           |
|     |     β‰ˆ     |       |     β‰ˆ     |
β– ---min---fluid---opt---opt---fluid---max----- screen
          m=auto               m=1
      |            |      |           |
      Mobile              Desktop     Wrapper
      Design              Design      (optional)

β†’ FabUnit Visualiser

 

πŸ“€ Install

npm i fab-unit
@import "fab-unit";

html {
  font-size: calc(100% * (#{strip-units($fab-rem-base)} / 16)); // px to rem
}

 

πŸš€ Use

body {
    font-size: fab-unit(16, 22); // min, opt
}

β†’ Example CodeSandbox

 

🍬 Options

Variable Description Default
$fab-screen-min anchor point mobile 375
$fab-screen-opt-start anchor point desktop (from …) 1024
$fab-screen-opt-end anchor point desktop (… to) 1440
$fab-screen-max anchor point max layout wrapper 1800*
$fab-aspect-ratio aspect ratio factor (improvement for wider screens) math.div(16, 9)

* set to false if no max wrapper is needed (elastic upwards)

β†’ FabUnit Visualiser

 

Overwrite default values globally

$fab-screen-min: 300;
$fab-screen-opt-start: 768;
$fab-screen-opt-end: 1024;
$fab-screen-max: 2000;
$fab-aspect-ratio: math.div(3, 2);

body {
    font-size: fab-unit(16, 22); // min, opt
}

h1 {
  font-size: fab-unit(36, 60);
  margin-block: fab-unit(10, 16);
}

.wrapper {
  max-width: rem($fab-screen-max);
  margin-inline: auto;
}

β†’ Example CodeSandbox

 

Set custom arguments locally (exceptionally)

.thing {
    /* min, opt, custom anchor points, aspect ratio πŸͺ„ */
    height: fab-unit(16, 22, 300, 768, 1024, 2000, math.div(4, 3));
}

 

πŸ”₯ Links

β†’ FabUnit Visualiser
β†’ Example CodeSandbox
β†’ Article Smashing Magazine

About

A Sass function that helps you to define a perfectly responsive value without any effort

https://www.npmjs.com/package/fab-unit

License:MIT License


Languages

Language:SCSS 100.0%