UNPKG

rybitten

Version:

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

2 lines (1 loc) 14.1 kB
(function(i,f){typeof exports=="object"&&typeof module<"u"?f(exports):typeof define=="function"&&define.amd?define(["exports"],f):(i=typeof globalThis<"u"?globalThis:i||self,f(i.rybitten={}))})(this,function(i){"use strict";const f=[[.9921568627450981,.9647058823529412,.9294117647058824],[.8901960784313725,.1411764705882353,.12941176470588237],[.9529411764705882,.9019607843137255,0],[.9411764705882353,.5568627450980392,.10980392156862745],[.08627450980392157,.6,.8549019607843137],[.47058823529411764,.13333333333333333,.6666666666666666],[0,.5568627450980392,.3568627450980392],[.11372549019607843,.10980392156862745,.10980392156862745]],N=[[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]],v=[[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]],O=[[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]],G=[[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]],U=[[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]],F=[[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]],q=[[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]],z=[[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]],W=[[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]],Q=[[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]],Z=[[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]],a5=[[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]],l5=[[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]],c5=[[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]],i5=[[.9765,.9647,.9255],[.9765,.4392,.4431],[.949,.9059,.4157],[.9373,.5961,.498],[.4431,.7098,.8],[.9098,.7961,.8],[.6275,.851,.4863],[.0863,.0745,.051]],r=new Map;r.set("itten",{title:"Chromatic Circle",author:"Johannes Itten",year:1961,reference:"farbkreis_extended.png",cube:f}),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:N}),r.set("itten-neutral",{title:"Nathan Gossett & Baoquan Chen",author:"Johannes Itten",year:1961,reference:"itten-ryb.pdf",cube:v}),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.png",cube:w}),r.set("schiffermueller",{title:"Versuch eines Farbensystems",author:"Ignaz Schiffermüller",year:1772,reference:"020_schiffermueller1.jpg",cube:O}),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:G}),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:U}),r.set("munsell",{title:"Munsell Color System",author:"Albert Henry Munsell",year:1905,reference:"munsell-atlas-11.jpg",cube:F}),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:q}),r.set("albers",{title:"Interaction of Color",author:"Josef Albers",year:1942,reference:"albers-color-harmony.jpg",cube:z}),r.set("lohse",{title:"Kunsthalle Bern Poster",author:"Richard Paul Lohse",year:1970,reference:"lohse.png",cube:W}),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:c5}),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:Q}),r.set("kindergarten1890",{title:"Kindergarten Workbook",author:"Milton Bradley",year:1890,reference:"kindergarten1890.jpg",cube:Z}),r.set("marvel-news",{title:"64 Color Chart on Newsprint",author:"Marvel Comics",year:1982,reference:"marvel-news.png",cube:e5}),r.set("arquitetura-decoracao",{title:"Sugestões. Arquitetura Decoração",author:"Unknown – Sao Paulo",year:1956,reference:"arquitetura-decoracao.png",cube:i5}),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:l5}),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:a5}),r.set("cmy",{title:"CMY Subtractive Primaries",author:"Jacob Christoph Le Blon",year:1725,reference:"",cube:[[1,1,1],[0,1,1],[1,1,0],[0,1,0],[1,0,1],[0,0,1],[1,0,0],[0,0,0]]}),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 B=e=>e*e*(3-2*e),R=(e,t,u)=>e+u*(t-e),M=(e,t,u,n,o,l)=>R(R(e,t,o),R(u,n,o),l),g=(e,t,u,n,o,l,y,d,h,s,c)=>R(M(e,t,u,n,h,s),M(o,l,y,d,h,s),c);function Y(e,{cube:t=f,easingFn:u=B}={}){const n=u(e[0]),o=u(e[1]),l=u(e[2]);return[g(t[0][0],t[1][0],t[2][0],t[3][0],t[4][0],t[5][0],t[6][0],t[7][0],n,o,l),g(t[0][1],t[1][1],t[2][1],t[3][1],t[4][1],t[5][1],t[6][1],t[7][1],n,o,l),g(t[0][2],t[1][2],t[2][2],t[3][2],t[4][2],t[5][2],t[6][2],t[7][2],n,o,l)]}function u5(e){return(e%360+360)%360}function E(e){let[t]=e;const[,u,n]=e;t=u5(t||0);const o=n+u*(n<.5?n:1-n),l=o-(o-n)*2*Math.abs(t/60%2-1);let y;switch(Math.floor(t/60)){case 0:y=[o,l,2*n-o];break;case 1:y=[l,o,2*n-o];break;case 2:y=[2*n-o,o,l];break;case 3:y=[2*n-o,l,o];break;case 4:y=[l,2*n-o,o];break;case 5:y=[o,2*n-o,l];break;default:y=[2*n-o,2*n-o,2*n-o]}return y}function S(e,{cube:t=f,easingFn:u=B,invertLightness:n=!0}={}){const o=n?1-e[2]:e[2],l=E([e[0],e[1],o]);return Y(l,{cube:t,easingFn:u})}const m="ryb",_="rybhsl",k=e=>({mode:m,cube:e}),H=e=>({mode:_,cube:e});function T(e){if(e.prototype._rybExtended)return;e.prototype._rybExtended=!0,e.prototype.RYB=m,e.prototype.RYBHSL=_,e.prototype.ryb=k,e.prototype.rybhsl=H;const t=e.prototype.colorMode,u=e.prototype.fill,n=e.prototype.stroke,o=e.prototype.background,l=e.prototype.color;function y(h,s){if(h._rybMode&&typeof s[0]=="number"){const c=h._rybMaxes??[255,255,255,255];let p,a,b,C;if(s.length===1)p=a=b=s[0]/c[0];else if(s.length===2)p=a=b=s[0]/c[0],C=s[1];else if(s.length>=3)p=s[0]/c[0],a=s[1]/c[1],b=s[2]/c[2],C=s[3];else return s;const L={cube:h._rybCube??f},A=h._rybMode===_?S([p*360,a,b],L):Y([p,a,b],L),P=[A[0],A[1],A[2]];if(C!==void 0){const h5=c[3]!==void 0?c[3]:c[0];P.push(C/h5)}return P}return s}e.prototype.colorMode=function(...h){const s=h[0];let c=s,p;if(s!==null&&typeof s=="object"&&"mode"in s){const a=s;c=a.mode,p=a.cube}if(c===m||c===_){this._rybMode=c,this._rybCube=p;const a=h.slice(1);if(a.length===0)this._rybMaxes=c===_?[360,100,100,1]:[255,255,255,255];else if(a.length===1){const b=a[0];this._rybMaxes=[b,b,b,b]}else this._rybMaxes=[a[0],a[1],a[2],a[3]!==void 0?a[3]:a[0]];return t.apply(this,["rgb",1])}return this._rybMode=!1,delete this._rybMaxes,delete this._rybCube,t.apply(this,h)};const d=h=>function(...s){if(this._rybMode){const c=y(this,s),p=this._rybMode,a=this._rybMaxes,b=this._rybCube;this._rybMode=!1;try{return h.apply(this,c)}finally{this._rybMode=p,this._rybMaxes=a,this._rybCube=b}}return h.apply(this,s)};e.prototype.fill=d(u),e.prototype.stroke=d(n),e.prototype.background=d(o),e.prototype.color=d(l)}typeof p5<"u"&&(T(p5),p5.prototype.registerMethod("init",function(){T(this.constructor)})),i.RYB=m,i.RYBHSL=_,i.blerp=M,i.easingSmoothstep=B,i.extendP5=T,i.hslToRgb=E,i.lerp=R,i.ryb=k,i.ryb2rgb=Y,i.rybHsl2rgb=S,i.rybhsl=H,i.trilerp=g,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});