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