UNPKG

rybitten

Version:

A color space conversion library for transforming between RGB and RYB colors.

2 lines (1 loc) 1.07 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./cubes.cjs"),i=t=>t*t*(3-2*t),a=(t,s,o)=>t+o*(s-t),g=(t,s,o,e,r,n)=>a(a(t,s,r),a(o,e,r),n),u=(t,s,o,e,r,n,b,p,l,c,k)=>a(g(t,s,o,e,l,c),g(r,n,b,p,l,c),k);function f(t,{cube:s=m.RYB_ITTEN,easingFn:o=i}={}){const e=o(t[0]),r=o(t[1]),n=o(t[2]),b=s.map(c=>c[0]),p=s.map(c=>c[1]),l=s.map(c=>c[2]);return[u(...b,e,r,n),u(...p,e,r,n),u(...l,e,r,n)]}function h(t){return(t%360+360)%360}function T(t){let[s,o,e]=t;s=h(s||0);let r=e+o*(e<.5?e:1-e),n=r-(r-e)*2*Math.abs(s/60%2-1),b;switch(Math.floor(s/60)){case 0:b=[r,n,2*e-r];break;case 1:b=[n,r,2*e-r];break;case 2:b=[2*e-r,r,n];break;case 3:b=[2*e-r,n,r];break;case 4:b=[n,2*e-r,r];break;case 5:b=[r,2*e-r,n];break;default:b=[2*e-r,2*e-r,2*e-r]}return b}function y(t,{cube:s=m.RYB_ITTEN,easingFn:o=i,invertLightness:e=!0}={}){const r=e?1-t[2]:t[2],n=T([t[0],t[1],r]);return f(n,{cube:s,easingFn:o})}exports.blerp=g;exports.easingSmoothstep=i;exports.hslToRgb=T;exports.lerp=a;exports.ryb2rgb=f;exports.rybHsl2rgb=y;exports.trilerp=u;