UNPKG

rybitten

Version:

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

2 lines (1 loc) 13.5 kB
(function(i,y){typeof exports=="object"&&typeof module<"u"?y(exports):typeof define=="function"&&define.amd?define(["exports"],y):(i=typeof globalThis<"u"?globalThis:i||self,y(i.rybitten={}))})(this,function(i){"use strict";const y=[[.9921568627450981,.9647058823529412,.9294117647058824],[.8901960784313725,.1411764705882353,.12941176470588237],[.9529411764705882,.9019607843137255,0],[.9411764705882353,.5568627450980392,.10980392156862745],[.08627450980392157,.6,.8549019607843137],[.47058823529411764,.13333333333333333,.6666666666666666],[0,.5568627450980392,.3568627450980392],[.11372549019607843,.10980392156862745,.10980392156862745]],v=[[253/255,246/255,237/255],[247/255,45/255,41/255],[253/255,203/255,0/255],[250/255,102/255,13/255],[17/255,97/255,170/255],[101/255,57/255,138/255],[70/255,139/255,73/255],[29/255,28/255,28/255]],N=[[1,1,1],[1,0,0],[1,1,0],[1,.5,0],[.163,.373,.6],[.5,0,.5],[0,.66,.2],[.2,.094,0]],I=[[245/255,238/255,226/255],[170/255,14/255,1/255],[224/255,178/255,0/255],[217/255,104/255,5/255],[18/255,107/255,145/255],[103/255,15/255,128/255],[88/255,133/255,30/255],[44/255,37/255,30/255]],j=[[254/255,250/255,226/255],[237/255,55/255,58/255],[255/255,233/255,111/255],[250/255,102/255,13/255],[33/255,112/255,163/255],[238/255,131/255,154/255],[59/255,155/255,83/255],[24/255,10/255,1/255]],w=[[255/255,255/255,255/255],[218/255,105/255,104/255],[255/255,244/255,122/255],[232/255,154/255,113/255],[73/255,138/255,186/255],[97/255,96/255,178/255],[144/255,191/255,140/255],[8/255,8/255,8/255]],G=[[240/255,234/255,214/255],[204/255,50/255,53/255],[253/255,222/255,20/255],[230/255,152/255,92/255],[1/255,88/255,140/255],[107/255,51/255,111/255],[51/255,138/255,92/255],[55/255,39/255,23/255]],J=[[249/255,232/255,209/255],[216/255,43/255,59/255],[231/255,175/255,2/255],[224/255,89/255,31/255],[92/255,123/255,145/255],[77/255,58/255,78/255],[107/255,129/255,53/255],[14/255,8/255,7/255]],O=[[241/255,236/255,213/255],[235/255,66/255,35/255],[253/255,236/255,1/255],[254/255,130/255,39/255],[3/255,7/255,171/255],[74/255,50/255,86/255],[55/255,131/255,74/255],[2/255,1/255,0/255]],x=[[238/255,232/255,206/255],[222/255,62/255,29/255],[247/255,225/255,7/255],[254/255,130/255,39/255],[4/255,6/255,139/255],[74/255,50/255,86/255],[56/255,131/255,75/255],[2/255,1/255,0/255]],F=[[239/255,235/255,225/255],[182/255,53/255,55/255],[253/255,203/255,0/255],[222/255,69/255,20/255],[95/255,157/255,191/255],[83/255,70/255,98/255],[58/255,90/255,66/255],[8/255,9/255,13/255]],U=[[228/255,218/255,197/255],[181/255,65/255,60/255],[229/255,193/255,81/255],[220/255,137/255,61/255],[59/255,143/255,171/255],[121/255,97/255,134/255],[13/255,170/255,114/255],[46/255,44/255,38/255]],K=[[206/255,205/255,209/255],[181/255,38/255,54/255],[221/255,187/255,23/255],[208/255,120/255,37/255],[10/255,71/255,129/255],[101/255,36/255,66/255],[75/255,129/255,131/255],[26/255,30/255,47/255]],V=[[237/255,213/255,177/255],[167/255,33/255,28/255],[245/255,181/255,18/255],[204/255,93/255,46/255],[71/255,122/255,141/255],[99/255,79/255,93/255],[109/255,143/255,118/255],[44/255,44/255,37/255]],z=[[240/255,236/255,235/255],[247/255,65/255,51/255],[243/255,187/255,6/255],[251/255,130/255,2/255],[37/255,71/255,169/255],[176/255,121/255,177/255],[2/255,117/255,111/255],[41/255,42/255,45/255]],W=[[231/255,235/255,237/255],[229/255,30/255,38/255],[255/255,198/255,12/255],[245/255,119/255,34/255],[17/255,97/255,170/255],[139/255,47/255,146/255],[1/255,167/255,98/255],[0/255,0/255,1/255]],q=[[236/255,237/255,241/255],[200/255,75/255,49/255],[235/255,207/255,13/255],[228/255,168/255,21/255],[39/255,108/255,176/255],[188/255,57/255,104/255],[122/255,176/255,62/255],[4/255,4/255,4/255]],D=[[241/255,236/255,230/255],[185/255,34/255,17/255],[231/255,200/255,52/255],[232/255,90/255,26/255],[26/255,70/255,79/255],[82/255,15/255,47/255],[67/255,111/255,33/255],[29/255,28/255,28/255]],Z=[[215/255,208/255,180/255],[202/255,0/255,17/255],[220/255,170/255,0/255],[229/255,76/255,32/255],[0/255,126/255,157/255],[137/255,37/255,79/255],[0/255,110/255,60/255],[31/255,27/255,28/255]],Q=[[236/255,231/255,213/255],[188/255,32/255,43/255],[233/255,201/255,0/255],[197/255,72/255,30/255],[50/255,42/255,115/255],[116/255,48/255,101/255],[69/255,118/255,61/255],[56/255,44/255,42/255]],X=[[209/255,194/255,173/255],[159/255,36/255,31/255],[231/255,191/255,6/255],[231/255,155/255,7/255],[75/255,90/255,200/255],[121/255,100/255,188/255],[115/255,179/255,63/255],[52/255,49/255,40/255]],$=[[250/255,248/255,244/255],[255/255,41/255,37/255],[251/255,223/255,47/255],[253/255,151/255,35/255],[31/255,106/255,184/255],[159/255,68/255,150/255],[80/255,180/255,122/255],[36/255,38/255,39/255]],e5=[[233/255,199/255,173/255],[214/255,76/255,127/255],[238/255,204/255,124/255],[230/255,174/255,115/255],[86/255,141/255,146/255],[118/255,83/255,97/255],[196/255,192/255,118/255],[60/255,52/255,40/255]],t5=[[255/255,244/255,216/255],[248/255,80/255,46/255],[255/255,213/255,44/255],[254/255,129/255,5/255],[0/255,124/255,197/255],[132/255,77/255,139/255],[120/255,160/255,66/255],[2/255,4/255,6/255]],r5=[[254/255,249/255,246/255],[248/255,20/255,35/255],[237/255,199/255,8/255],[254/255,128/255,11/255],[48/255,140/255,206/255],[182/255,40/255,94/255],[135/255,187/255,26/255],[29/255,27/255,28/255]],o5=[[226/255,216/255,205/255],[224/255,43/255,39/255],[251/255,204/255,38/255],[255/255,138/255,4/255],[82/255,103/255,202/255],[199/255,112/255,253/255],[104/255,182/255,90/255],[22/255,19/255,11/255]],n5=[[221/255,219/255,211/255],[196/255,82/255,69/255],[196/255,167/255,80/255],[200/255,123/255,70/255],[74/255,104/255,167/255],[94/255,89/255,161/255],[86/255,139/255,70/255],[38/255,38/255,38/255]],s5=[[237/255,235/255,236/255],[242/255,146/255,109/255],[245/255,234/255,143/255],[247/255,194/255,115/255],[89/255,118/255,212/255],[237/255,191/255,243/255],[153/255,201/255,113/255],[50/255,63/255,66/255]],l5=[[255/255,251/255,230/255],[238/255,86/255,46/255],[249/255,213/255,50/255],[252/255,132/255,4/255],[43/255,103/255,175/255],[246/255,137/255,163/255],[171/255,205/255,94/255],[5/255,5/255,5/255]],c5=[[246/255,248/255,244/255],[248/255,20/255,40/255],[255/255,198/255,8/255],[248/255,140/255,18/255],[8/255,41/255,148/255],[152/255,56/255,142/255],[8/255,156/255,49/255],[12/255,17/255,15/255]],a5=[[238/255,221/255,177/255],[211/255,24/255,34/255],[248/255,211/255,36/255],[242/255,116/255,30/255],[51/255,114/255,143/255],[104/255,73/255,78/255],[90/255,127/255,42/255],[13/255,17/255,19/255]],r=new Map;r.set("itten",{title:"Chromatic Circle",author:"Johannes Itten",year:1961,reference:"farbkreis_extended.png",cube:y}),r.set("itten-normalized",{title:"Chromatic Circle (Paper-white)",author:"Johannes Itten",year:1961,reference:"Johannes-Itten-The-chromatic-circle-some-exercises-on-the-contrast-of-pure-colors.webp",cube:v}),r.set("itten-neutral",{title:"Nathan Gossett & Baoquan Chen",author:"Johannes Itten",year:1961,reference:"itten-ryb.pdf",cube:N}),r.set("bezold",{title:"Farbentafel",author:"Wilhelm von Bezold",year:1874,reference:"Bezold_Farbentafel_1874.jpg",cube:I}),r.set("boutet",{title:"Twelve-color color circles ",author:"Claude Boutet",year:1708,reference:"Boutet_1708_color_circles.jpg",cube:j}),r.set("hett",{title:"RGV Color Wheel",author:"J. A. H. Hett",year:1908,reference:"RGV_color_wheel_1908",cube:w}),r.set("schiffermueller",{title:"Versuch eines Farbensystems",author:"Ignaz Schiffermüller",year:1772,reference:"020_schiffermueller1.jpg",cube:G}),r.set("harris",{title:"The Natural System of Colours",author:"Moses Harris",year:1766,reference:"Moses_Harris_The_Natural_System_of_Colours.jpg",cube:J}),r.set("harrisc82",{title:"The Natural System of Colours",author:"Moses Harris / C82",year:1766,reference:"harrisc82.png",cube:O}),r.set("harrisc82alt",{title:"The Natural System of Colours",author:"Moses Harris / C82",year:1766,reference:"harrisc82alt.png",cube:x}),r.set("goethe",{title:"Farbenkreis",author:"Johann Wolfgang von Goethe",year:1809,reference:"Goethe_Farbenkreis_zur_Symbolisierung_des_menschlichen_Geistes-_und_Seelenlebens_1809.jpg",cube:F}),r.set("munsell",{title:"Munsell Color System",author:"Albert Henry Munsell",year:1905,reference:"munsell-atlas-11.jpg",cube:U}),r.set("munsell-alt",{title:"A Grammar of Color",author:"Cleland, T. M. & Albert Henry Munsell",year:1921,reference:"munsell-alt.jpg",cube:K}),r.set("hayter",{title:"New Practical Treatise on the Three Primitive Colours",author:"Charles Hayter",year:1826,reference:"Color_diagram_Charles_Hayter.jpg",cube:V}),r.set("bormann",{title:"Gouache tint study for Josef Alber's Preliminary Course",author:"Heinrich-Siegfried Bormann",year:1931,reference:"bormann.png",cube:z}),r.set("albers",{title:"Interaction of Color",author:"Josef Albers",year:1942,reference:"albers-color-harmony.jpg",cube:W}),r.set("lohse",{title:"Kunsthalle Bern Poster",author:"Richard Paul Lohse",year:1970,reference:"lohse.png",cube:q}),r.set("chevreul",{title:"Cercle chromatique",author:"Michel Eugène Chevreul",year:1839,reference:"Cercle_chromatique_Chevreul_2.jpg",cube:D}),r.set("runge",{title:"Farbenkugel",author:"Philipp Otto Runge",year:1810,reference:"farbenkugel.png",cube:a5}),r.set("maycock",{title:"Scale of Normal Colors and their Hues",author:"Mark M. Maycock",year:1895,reference:"maycock.png",cube:X}),r.set("colorprinter",{title:"The Color Printer",author:"John Earhart",year:1892,reference:"colorprinter.png",cube:$}),r.set("japschool",{title:"Japanese Textbook",author:"Japanese School",year:1930,reference:"japschool.png",cube:Z}),r.set("kindergarten1890",{title:"Kindergarten Workbook",author:"Milton Bradley",year:1890,reference:"kindergarten1890.jpg",cube:Q}),r.set("marvel-news",{title:"64 Color Chart on Newsprint",author:"Marvel Comics",year:1982,reference:"marvel-news.png",cube:e5}),r.set("apple90s",{title:"Macintosh Reference Manual",author:"Apple",year:1990,reference:"apple90s.png",cube:t5}),r.set("apple80s",{title:"HyperCard User Manual",author:"Apple",year:1989,reference:"apple80s.png",cube:r5}),r.set("clayton",{title:"Intrinsic Value Plate",author:"Greg Clayton",year:2017,reference:"A260P03_IntrinsicValue1.gif",cube:c5}),r.set("pixelart",{title:"Pixel Art",author:"Tofu",year:2024,reference:"pixelart.png",cube:o5}),r.set("ippsketch",{title:"Imposter Syndrome",author:"Ippsketch",year:2021,reference:"ippsketch.png",cube:n5}),r.set("ryan",{title:"Compositions Palette",author:"Ryan",year:2024,reference:"ryan.png",cube:s5}),r.set("ten",{title:"Ten",author:"Roni Kaufman",year:2022,reference:"ten.png",cube:l5}),r.set("rgb",{title:"Inverted RGB",author:"James Clerk Maxwell",year:1860,reference:"rgb-cube.png",cube:[[1,1,1],[1,0,0],[0,1,0],[1,1,0],[0,0,1],[1,0,1],[0,1,1],[0,0,0]]});const g=e=>e*e*(3-2*e),d=(e,c,u)=>e+u*(c-e),Y=(e,c,u,n,o,a)=>d(d(e,c,o),d(u,n,o),a),m=(e,c,u,n,o,a,h,p,l,t,s)=>d(Y(e,c,u,n,l,t),Y(o,a,h,p,l,t),s);function T(e,{cube:c=y,easingFn:u=g}={}){const n=u(e[0]),o=u(e[1]),a=u(e[2]),h=c.map(t=>t[0]),p=c.map(t=>t[1]),l=c.map(t=>t[2]);return[m(...h,n,o,a),m(...p,n,o,a),m(...l,n,o,a)]}function i5(e){return(e%360+360)%360}function E(e){let[c]=e;const[,u,n]=e;c=i5(c||0);const o=n+u*(n<.5?n:1-n),a=o-(o-n)*2*Math.abs(c/60%2-1);let h;switch(Math.floor(c/60)){case 0:h=[o,a,2*n-o];break;case 1:h=[a,o,2*n-o];break;case 2:h=[2*n-o,o,a];break;case 3:h=[2*n-o,a,o];break;case 4:h=[a,2*n-o,o];break;case 5:h=[o,2*n-o,a];break;default:h=[2*n-o,2*n-o,2*n-o]}return h}function S(e,{cube:c=y,easingFn:u=g,invertLightness:n=!0}={}){const o=n?1-e[2]:e[2],a=E([e[0],e[1],o]);return T(a,{cube:c,easingFn:u})}const B="ryb",R="rybhsl",k=e=>({mode:B,cube:e}),H=e=>({mode:R,cube:e});function A(e){if(e.prototype._rybExtended)return;e.prototype._rybExtended=!0,e.prototype.RYB=B,e.prototype.RYBHSL=R,e.prototype.ryb=k,e.prototype.rybhsl=H;const c=e.prototype.colorMode,u=e.prototype.fill,n=e.prototype.stroke,o=e.prototype.background,a=e.prototype.color;function h(l,t){if(l._rybMode&&typeof t[0]=="number"){const s=l._rybMaxes||[255,255,255,255];let b,f,_,M;if(t.length===1)b=t[0]/s[0],f=t[0]/s[0],_=t[0]/s[0];else if(t.length===2)b=t[0]/s[0],f=t[0]/s[0],_=t[0]/s[0],M=t[1];else if(t.length>=3)b=t[0]/s[0],f=t[1]/s[1],_=t[2]/s[2],M=t[3];else return t;let C;const L=l._rybCube?{cube:l._rybCube}:{cube:y};l._rybMode===R?C=S([b*360,f,_],L):C=T([b,f,_],L);const P=[C[0],C[1],C[2]];if(M!==void 0){const u5=s[3]!==void 0?s[3]:s[0];P.push(M/u5)}return P}return t}e.prototype.colorMode=function(l,...t){let s=l,b;return typeof l=="object"&&l!==null&&l.mode&&(s=l.mode,b=l.cube),s===B||s===R?(this._rybMode=s,this._rybCube=b,t.length===0?(this._rybMaxes=[255,255,255,255],s===R&&(this._rybMaxes=[360,100,100,1])):t.length===1?this._rybMaxes=[t[0],t[0],t[0],t[0]]:this._rybMaxes=[t[0],t[1],t[2],t[3]!==void 0?t[3]:t[0]],c.apply(this,["rgb",1])):(this._rybMode=!1,delete this._rybMaxes,delete this._rybCube,c.apply(this,[l,...t]))};const p=l=>function(...t){if(this._rybMode){const s=h(this,t),b=this._rybMode,f=this._rybMaxes,_=this._rybCube;this._rybMode=!1;try{return l.apply(this,s)}finally{this._rybMode=b,this._rybMaxes=f,this._rybCube=_}}return l.apply(this,t)};e.prototype.fill=p(u),e.prototype.stroke=p(n),e.prototype.background=p(o),e.prototype.color=p(a)}typeof p5<"u"&&(A(p5),p5.prototype.registerMethod("init",function(){A(this.constructor)})),i.RYB=B,i.RYBHSL=R,i.blerp=Y,i.easingSmoothstep=g,i.extendP5=A,i.hslToRgb=E,i.lerp=d,i.ryb=k,i.ryb2rgb=T,i.rybHsl2rgb=S,i.rybhsl=H,i.trilerp=m,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});