Giter Site home page Giter Site logo

sass-planifolia's Introduction

Sass-Planifolia - Vanilla Sass helper functions

This is a collection of vanilla Sass helper functions, mostly centered around colors. It currently consists of only two modules:

  • contrast for WCAG compatible color contrast functions
  • color for color functions with supper for different color spaces, e.g. CIELAB, CIELUV, or HSLuv

These modules can be imported individually. The only define mixins and variables. They will not output any CSS. This means that importing them does not add a single byte to your CSS.

See the full documentation for more details.

Quick start

npm install sass-planifolia

Import it in your Sass files:

@use "node_modules/sass-planifolia/sass/contrast";
@use "node_modules/sass-planifolia/sass/color";

.test {
    background-color: red;

    // pick between two colors (default: black and white) to get good contrast
    color: contrast.color(red);

    // mix orange with black or white to get good contrast to red
    border-color: contrast.stretch(red, orange);

    // mix red with black in a perceptually uniform color space
    box-shadow: 0 0 1em color.shade(red, 0.5, 'lab');
}

What is not included?

  • Vendor prefixes, polyfills or browser hacks. There are plenty of librariers for that.
  • pt/px/em/rem conversion. That is (a) not possible and (b) not helpful. Each unit has its specific use case. Learn to use the right units directly!

Similar libraries

  • CSS Color Moudle Level 4 and CSS Color Module Level 5 are W3C Working Drafts (as of 2022-04-28) that would add similar features to CSS itself.
  • PostCSS and Parcel both implement some of the functionality of CSS Color Module Level 4/5.
  • oddbird/blend is yet another Sass library that implements similar features. The main difference is that the contrast function do not take transparency into account.

sass-planifolia's People

Contributors

asppsa avatar c2d7fa avatar xi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

sass-planifolia's Issues

rad value conversion

@xi thanks for sharing your fast compiling math functions โ€“ very impressive results :-)
To speed up and simplify to-rad-value โ€“ consider using native fixed unit conversion:

//  convert to rad and strip unit 
@function rad-value($x){ 
    @return (0rad + $x)/1rad; 
}

.x {
    num : rad-value(4.71239);    
    rad : rad-value(4.71239rad);    
    deg : rad-value(270deg);
    turn: rad-value(.75turn);
    grad: rad-value(300grad); 
}
.x {
  num:  4.71239;
  rad:  4.71239;
  deg:  4.71239;
  turn: 4.71239;
  grad: 4.71239;
}

Add $contrast as third parameter of contrast-color() function.

Add $contrast as third parameter of contrast-color() function.
If both colors meet the contrast requirements, $color1 will be used.

Example:

  $color: #6170c2;
  background-color: $color;
  color: contrast-color($color, white, black, 4.5); 
  // contrast($color, white) => 4.56;
  // contrast($color, black) => 4.6

Result CSS:

  background-color: #6170c2;
  color: white; 

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.