UNPKG

matercolors

Version:

A tiny, zero-dependency libary for building harmonious material palettes for any color.

3 lines (2 loc) 20.8 kB
const e=[50,100,200,300,400,500,600,700,800,900,"A100","A200","A400","A700"],n={threshold:128,showContrastText:!1};function t(e){const n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return n?{r:parseInt(n[1],16),g:parseInt(n[2],16),b:parseInt(n[3],16)}:{}}function w(e){return{red:e.r/255,green:e.g/255,blue:e.b/255,alpha:1}}function a(e){const n=e.toString(16);return 1===n.length?"0"+n:n}function s(e,n,t){return`#${a(e)}${a(n)}${a(t)}`}function r({r:e,g:n,b:t},w){return(Math.round(299*e)+Math.round(587*n)+Math.round(114*t))/1e3>=w?"black":"white"}function i(e,n){const w=t(e);let a=w.r/255,s=w.g/255,r=w.b/255;const i=Math.max(a,s,r),o=Math.min(a,s,r);let h,l;const c=(i+o)/2;if(i===o)h=0,l=0;else{const e=i-o;l=c>.5?e/(2-i-o):e/(i+o),i===a&&s>=r?h=1.0472*(s-r)/e:i===a&&s<r?h=1.0472*(s-r)/e+6.2832:i===s?h=1.0472*(r-a)/e+2.0944:i===r&&(h=1.0472*(a-s)/e+4.1888)}if(h=h/6.2832*360+0,h+=n,h>360&&(h-=360),h/=360,0===l)a=c,s=c,r=c;else{const e=function(e,n,t){let w=t;return w<0&&(w+=1),w>1&&(w-=1),w<1/6?e+6*(n-e)*w:w<.5?n:w<2/3?e+(n-e)*(2/3-w)*6:e},n=c<.5?c*(1+l):c+l-c*l,t=2*c-n;a=e(t,n,h+1/3),s=e(t,n,h),r=e(t,n,h-1/3)}return a=Math.round(255*a),s=Math.round(255*s),r=Math.round(255*r),"#"+(r|s<<8|a<<16|16777216).toString(16).substring(1)}function o(e,n,t){if(Number.isNaN(e)||e<0||e>n)throw new RangeError(`${e} for ${t} is not between 0 and ${n}`)}function h(e){return e<=.04045?e/12.92:((e+.055)/1.055)**2.4}function l(e){return e>(6/29)**3?e**(1/3):1/(3*(6/29)**2)*e+4/29}function c(e,n,t){return Math.min(Math.max(e,n),t)}function F(e){return e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055}function u(e){return e>6/29?e**3:3*(6/29)**2*(e-4/29)}function M(e,n){if(Math.abs(e)<1e-4&&Math.abs(n)<1e-4)return 0;const t=180*Math.atan2(e,n)/Math.PI;return t>=0?t:t+360}class d{constructor(e,n,t,w){const a=void 0===w?1:w;this.red=e,this.green=n,this.blue=t,this.alpha=a,o(e,1,"red"),o(n,1,"green"),o(t,1,"blue"),o(a,1,"alpha")}}class g{constructor(e,n,t,w){const a=void 0===w?1:w;this.g=e,this.T=n,this.hue=t,this.alpha=a,o(e,Number.MAX_VALUE,"lightness"),o(n,Number.MAX_VALUE,"chroma"),o(t,360,"hue"),o(a,1,"alpha")}}function f(e){return new g(e.g,Math.sqrt(e.A**2+e.B**2),(180*Math.atan2(e.B,e.A)/Math.PI+360)%360,e.alpha)}class m{constructor(e,n,t,w){const a=void 0===w?1:w;this.g=e,this.A=n,this.B=t,this.alpha=a,o(e,Number.MAX_VALUE,"lightness"),o(a,1,"alpha")}}function A(e){const n=h(e.red),t=h(e.green),w=h(e.blue),a=.2126729*n+.7151522*t+.072175*w;return new m(116*l(a)-16,500*(l((.4124564*n+.3575761*t+.1804375*w)/.95047)-l(a)),200*(l(a)-l((.0193339*n+.119192*t+.9503041*w)/1.08883)),e.alpha)}const p=[[new A(w(t("#FF8A80"))),new A(w(t("#FF5252"))),new A(w(t("#FF1744"))),new A(w(t("#D50000")))],[new A(w(t("#FF80AB"))),new A(w(t("#FF4081"))),new A(w(t("#F50057"))),new A(w(t("#C51162")))],[new A(w(t("#EA80FC"))),new A(w(t("#E040FB"))),new A(w(t("#D500F9"))),new A(w(t("#AA00FF")))],[new A(w(t("#B388FF"))),new A(w(t("#7C4DFF"))),new A(w(t("#651FFF"))),new A(w(t("#6200EA")))],[new A(w(t("#8C9EFF"))),new A(w(t("#536DFE"))),new A(w(t("#3D5AFE"))),new A(w(t("#304FFE")))],[new A(w(t("#82B1FF"))),new A(w(t("#448AFF"))),new A(w(t("#2979FF"))),new A(w(t("#2962FF")))],[new A(w(t("#80D8FF"))),new A(w(t("#40C4FF"))),new A(w(t("#00B0FF"))),new A(w(t("#0091EA")))],[new A(w(t("#84FFFF"))),new A(w(t("#18FFFF"))),new A(w(t("#00E5FF"))),new A(w(t("#00B8D4")))],[new A(w(t("#A7FFEB"))),new A(w(t("#64FFDA"))),new A(w(t("#1DE9B6"))),new A(w(t("#00BFA5")))],[new A(w(t("#B9F6CA"))),new A(w(t("#69F0AE"))),new A(w(t("#00E676"))),new A(w(t("#00C853")))],[new A(w(t("#CCFF90"))),new A(w(t("#B2FF59"))),new A(w(t("#76FF03"))),new A(w(t("#64DD17")))],[new A(w(t("#F4FF81"))),new A(w(t("#EEFF41"))),new A(w(t("#C6FF00"))),new A(w(t("#AEEA00")))],[new A(w(t("#FFFF8D"))),new A(w(t("#FFFF00"))),new A(w(t("#FFEA00"))),new A(w(t("#FFD600")))],[new A(w(t("#FFE57F"))),new A(w(t("#FFD740"))),new A(w(t("#FFC400"))),new A(w(t("#FFAB00")))],[new A(w(t("#FFD180"))),new A(w(t("#FFAB40"))),new A(w(t("#FF9100"))),new A(w(t("#FF6D00")))],[new A(w(t("#FF9E80"))),new A(w(t("#FF6E40"))),new A(w(t("#FF3D00"))),new A(w(t("#DD2C00")))]],T=[[new m(94.67497003305085,7.266715066863771,1.000743882272359),new m(86.7897416761699,18.370736761658012,4.23637133971424),new m(72.0939162832561,31.7948058298117,13.2972443996896),new m(61.79353370051851,44.129498163764545,20.721477326799608),new m(57.194195398949574,59.6450006197361,34.999830012940194),new m(55.603951071861374,66.01287384845483,47.67169313982772),new m(51.66348502954747,64.7487785020625,43.244876694855286),new m(47.09455666350969,62.29836039074277,40.67775424698388),new m(43.77122063388739,60.28633509183384,40.31444686692952),new m(39.555187078007386,58.703681355389975,41.66495027798629)],[new m(92.68053776327665,9.515385232804263,-.8994072969754852),new m(81.86756643628922,25.05688089723257,-1.9475235115390621),new m(70.90987389545768,42.21705257720526,-1.095154624057959),new m(61.08140805216186,58.871233307587204,2.1008764804626434),new m(54.97970219986448,68.56530938366889,7.327430728560569),new m(50.872250340749176,74.60459195925529,15.353576256896073),new m(47.27738650144558,70.77855776427805,11.70434273264508),new m(42.58424189486517,65.5411953138309,7.595596439803797),new m(37.977492407254836,60.74362621842075,2.9847124951453474),new m(29.699290034849604,51.90485023721311,-4.830186634107636)],[new m(92.4362655169016,7.542927467702299,-6.039842848605881),new m(81.07399776904751,19.563870217805036,-15.719625491986044),new m(68.71394717711831,33.79992812490556,-26.49539972339321),new m(56.596161226236305,47.5856631835152,-36.480816605410915),new m(48.002791217624434,57.30866443934879,-43.2561127152548),new m(40.66211534692161,64.01910773818436,-48.05930162591041),new m(37.690702208992185,61.13762767732481,-49.384803274243026),new m(33.56291870731981,57.637381239254104,-51.39557249855828),new m(29.865391314234515,54.29737439901333,-52.6601973712463),new m(23.16724235420436,48.51764437280498,-55.16267949015293)],[new m(92.49103426017201,4.712320025752947,-6.532868071709763),new m(81.24668319505597,11.50642734909485,-16.666600637245367),new m(68.61488216554629,20.395329051982824,-28.522018851715416),new m(55.60369793053023,30.933537768905005,-41.16439122358484),new m(45.834566190969426,39.28806272235674,-50.523322052772635),new m(36.608620229358664,47.29686002828143,-59.111766586186846),new m(34.189791237562616,46.60426065139123,-59.53961627676729),new m(30.52713367338361,46.01498224754519,-60.19975052509064),new m(27.44585524877222,44.96180431854785,-60.46395810756433),new m(21.98627670328218,44.29296076245473,-60.93653655172098)],[new m(92.86314411983918,1.5318147061061937,-6.025243528950552),new m(81.8348073705298,4.460934955458907,-15.873561009736136),new m(69.7796913795672,7.9043652558912765,-26.3170846346932),new m(57.48786519938736,12.681019504822533,-37.23202012914528),new m(47.74592578811101,18.520799302452374,-46.47540679000397),new m(38.334403614455404,25.57700668170812,-55.28224153299287),new m(35.15116453901552,26.231812080381168,-54.53700978785404),new m(31.080429988007957,27.07394930110124,-53.97505274579958),new m(27.026672080454922,28.165266427558983,-53.28987325482218),new m(19.751201587921678,30.60784576895101,-52.13866519297474)],[new m(94.70682457348717,-2.835484735987326,-6.978044694792707),new m(86.8839842970016,-5.16908728759552,-17.88561192754956),new m(79.0451532401558,-6.817753527015746,-28.968537490432176),new m(71.15083697242613,-5.994763756850707,-39.72549451158927),new m(65.48106058907833,-2.735745792537936,-48.15471238926561),new m(60.43009440850862,2.079928897321559,-55.10935847069616),new m(55.62267676922188,4.998684384486918,-55.02164729429915),new m(49.27006645904875,8.470398370314381,-54.494796838457546),new m(43.16828856394358,11.968483076143844,-53.972567377977974),new m(32.17757793894193,18.96054990229354,-53.45146365049088)],[new m(95.35713467762652,-4.797149155388203,-6.550002550504308),new m(88.27942649540043,-10.836006614583892,-16.359361821940375),new m(81.10009044900976,-15.323054522981716,-26.419121191320947),new m(74.44713958259777,-16.664432625362547,-35.19702686900037),new m(69.87836465637318,-14.291515332054693,-41.827430329755174),new m(65.68851259178913,-9.612635721963692,-47.34091616039191),new m(60.88357994308973,-7.252819027184943,-46.67753731595634),new m(54.26166495426166,-3.8141836897908066,-45.97939475762498),new m(48.10661895072673,-1.378998784464347,-44.34466750206778),new m(36.34401147057282,5.067812404713545,-43.11786257561915)],[new m(95.69295154599753,-6.898716127301141,-3.994284229654421),new m(89.52842524059004,-16.412398289601725,-9.260466069266693),new m(83.32031214655748,-24.83036840728098,-14.568673583304603),new m(77.35338313752958,-30.201708572215104,-18.92358284721101),new m(73.45322093857781,-31.88590390189383,-21.130459992513686),new m(69.97638465064783,-30.679850324547953,-23.186685661136707),new m(64.44491716553777,-29.08337434584457,-21.154935769156214),new m(56.99816432961103,-27.31081477279451,-17.86988815767443),new m(49.75464182255671,-25.335383503694242,-15.024722591662787),new m(36.52725894264432,-22.129641744194515,-9.176159146894303)],[new m(94.18453941589918,-6.08351703428972,-1.5488916051161983),new m(85.68177077414457,-15.333179440298606,-2.8519825761476048),new m(76.85067847190405,-24.844059173189713,-3.8750785132192656),new m(68.02762242570138,-32.566861154120716,-4.015231084407134),new m(61.667257304525464,-36.06752603289354,-3.4734046401753815),new m(55.67310397390196,-36.66069960626328,-2.125617915169653),new m(51.059149495197715,-34.65019160301408,-1.3910484300432513),new m(45.269081019218405,-32.13244775422941,-.4526371852697775),new m(39.36899076059384,-29.25264468583161,-.03562564673170732),new m(28.58363043701477,-24.585465516136413,1.8037402162492389)],[new m(95.30530183565223,-6.430415645739263,4.292950594459599),new m(88.49014579152143,-15.23147744952702,10.848261177683138),new m(81.22616870575376,-24.993886168551583,18.144696803330884),new m(74.30361721558802,-35.56088696067356,26.781515251907727),new m(69.0430995277442,-42.61556126595995,33.17109563126665),new m(63.977421814072926,-48.54292673319982,39.73241526342939),new m(58.777960853461366,-46.1153692478013,37.838910745225576),new m(52.41108688974904,-43.21761792485762,35.62250659009424),new m(46.2813873076426,-40.25816227675361,33.32343229338761),new m(34.685655305814514,-34.75343878510312,28.866739034359767)],[new m(96.70518169355954,-4.929987845095463,6.397084523168894),new m(91.66416061199438,-12.057032041945693,16.054604579275143),new m(86.2244395865449,-19.613646834080622,26.384906423454236),new m(80.83404879636919,-27.080171840756893,37.378493742021334),new m(76.79543725108964,-32.76659719736752,45.912190572444445),new m(72.90025297028019,-37.549139223927384,53.51959496103027),new m(67.21532310272079,-36.56304870773486,50.49629051268894),new m(59.91051142210195,-35.77011466063357,46.56465847976187),new m(52.51015841084511,-34.47903440699235,42.20723868724268),new m(39.41191983353878,-32.80460974352642,35.255490585630014)],[new m(97.99506057883428,-4.059632482741494,9.355797602381521),new m(94.80926235976536,-9.237091467352855,23.230650064824985),new m(91.85205843526167,-15.053917327011114,38.86115182206598),new m(88.75812142080242,-19.542900400164097,53.71785675783709),new m(86.27404180729515,-22.173992891121596,63.978639065232514),new m(84.20566835376492,-24.270643520989342,72.79624067033038),new m(78.27915100603997,-21.181850056402496,68.82763412297965),new m(70.82385811892824,-17.788148932525672,64.00327817988128),new m(62.936867012868035,-13.697412111684903,58.513000509287835),new m(49.498610881452535,-6.485230564384715,49.67432722833751)],[new m(98.93885129752759,-3.0098470288543178,10.765736833790008),new m(97.22689784824074,-6.174599368734491,26.22932417355146),new m(95.58092947828766,-8.907132848473886,43.56297291446567),new m(94.09009515702486,-10.509628942710735,60.20019514231188),new m(93.06546746683087,-11.008558476013008,71.76500826005477),new m(92.12975017760128,-10.830023094868302,80.9090559640089),new m(87.12188349168609,-2.3764300099239355,78.14868195373407),new m(80.96200442419905,8.849333792729064,75.05050700092679),new m(75.00342770718086,20.340173566879283,72.24841925958934),new m(65.48207757431567,39.647064970476094,68.34872841768654)],[new m(97.5642392074337,-1.445525639405032,11.881254316297674),new m(93.67057953749456,-1.8693096862072434,30.02888670415651),new m(89.94571492804107,-1.0224503814769692,49.649542361642276),new m(86.71009164153801,1.0496066396428194,68.77377342409739),new m(83.78773993319211,5.248231820098425,78.92920457852716),new m(81.52191382080228,9.403655370707199,82.69257112982746),new m(78.17240973804697,16.628512886531887,81.09358318806208),new m(73.80899654381052,26.53614315250874,78.21754052181723),new m(70.1134511665764,35.3007623359744,75.87510992138593),new m(63.86460405565717,50.94648214505959,72.17815682124423)],[new m(96.30459517801387,.923151172282477,10.598439446083074),new m(90.68320082865087,4.103774964681062,26.485793721916128),new m(85.00055287186233,9.047181758866651,44.51407622580792),new m(79.42428495742953,16.452610724439875,62.08721739074201),new m(75.47792699289774,23.395742928451867,72.64347611236501),new m(72.04246561548388,30.681921012382098,77.08579298904603),new m(68.94724338946975,35.22014778433863,74.88425044595111),new m(64.83017495535229,40.91200730099703,71.9596053545428),new m(60.8534207471871,46.41483590510681,69.18061963415211),new m(54.77571742962287,55.282751019360035,65.10193403547922)],[new m(93.69219844671957,5.763979334358293,3.1700162796469034),new m(86.04629434276428,15.750843803958192,14.828476927090994),new m(77.54010042938336,27.90113842540043,25.99645229289065),new m(69.74095456707857,41.14487377552256,39.443320178900024),new m(64.37085344539341,51.890379620443575,50.81312471046415),new m(60.06780837277435,61.65258736118817,61.54771829165221),new m(57.28707915232363,60.3250664308812,60.07341536376447),new m(53.810052616293845,58.36760943780162,58.19586806694884),new m(50.301352405105874,56.40104898089937,55.924141992404344),new m(43.86477994548343,52.970887703910726,52.30067989225532)],[new m(93.29864888069987,.9915456090475727,1.442353076378411),new m(82.80884359004081,3.116221903342209,3.3523059451463055),new m(70.95493047668185,5.469742193344784,5.449009494553492),new m(58.712934619103066,7.990991075363385,8.352488495367627),new m(49.150208552875895,10.570984981000397,10.831440151197924),new m(39.63200151837749,13.138881961627241,13.531574711511885),new m(35.600996682015754,12.40352847757295,12.10432183902449),new m(30.084271265759952,11.317148149878081,10.547484304296217),new m(24.555014696416578,10.816613316782464,8.506555306791984),new m(18.35055226514404,10.225725550338765,7.058582769882571)],[new m(98.27202740980219,-16418393644634932e-21,6567357457853973e-21),new m(96.53749336548567,-1616917905122861e-20,6467671598286984e-21),new m(94.0978378987781,-1581865383126768e-20,6327461532507073e-21),new m(89.17728373493613,-1511167768697419e-20,6044671074789676e-21),new m(76.61119902231323,-1330620591488696e-20,5322482343750323e-21),new m(65.11424774127516,-11654345155598378e-21,4661738062239351e-21),new m(49.238989620828065,-9373417431124409e-21,37493669724497636e-22),new m(41.14266843804848,-8210152946386273e-21,32840611896567395e-22),new m(27.974857206003705,-6318226192236764e-21,25272904768947058e-22),new m(12.740011331302725,-4129311698131133e-21,16517246792524531e-22)],[new m(94.27665212516236,-.637571046109342,-1.313515378996688),new m(85.77788001492097,-2.2777811084512822,-3.0177758416151557),new m(76.12296325015231,-3.401502988883809,-5.16867892977908),new m(66.16340108908365,-4.819627183079045,-7.520697631614404),new m(58.35752478513645,-5.7195089100892105,-9.165988916613488),new m(50.70748082202715,-6.837992965799455,-10.956055112409357),new m(44.85917867647632,-6.411990559239578,-9.74511982878765),new m(36.92458930566504,-5.319878610845596,-8.341943474561553),new m(29.115334784637618,-4.168907828645069,-6.8629962199973304),new m(19.958338450799914,-3.3116721453186617,-5.4486142104736786)]],b=[2.048875457,5.124792061,8.751659557,12.07628774,13.91449542,15.92738893,15.46585818,15.09779227,15.13738673,15.09818372],E=[1.762442714,4.213532634,7.395827458,11.07174158,13.89634504,16.37591477,16.27071136,16.54160806,17.35916727,19.88410864];function B(e,n,t){const w=void 0===n?t?p:T:n;let a=w[0],s=-1;if(!w.length||!w[0].length)throw Error("Invalid golden palettes");for(let n=Infinity,t=0;t<w.length;t+=1)for(let r=0;r<w[t].length&&n>0;r+=1){let i=w[t][r];const o=(i.g+e.g)/2;let h=Math.sqrt(i.A**2+i.B**2),l=Math.sqrt(e.A**2+e.B**2),c=(h+l)/2;c=.5*(1-Math.sqrt(c**7/(c**7+25**7)));let F=i.A*(1+c),u=e.A*(1+c),d=Math.sqrt(F**2+i.B**2),g=Math.sqrt(u**2+e.B**2);c=g-d;const f=(d+g)/2;F=M(i.B,F),u=M(e.B,u),d=2*Math.sqrt(d*g)*Math.sin((Math.abs(h)<1e-4||Math.abs(l)<1e-4?0:Math.abs(u-F)<=180?u-F:u<=F?u-F+360:u-F-360)/2*Math.PI/180),h=Math.abs(h)<1e-4||Math.abs(l)<1e-4?0:Math.abs(u-F)<=180?(F+u)/2:F+u<360?(F+u+360)/2:(F+u-360)/2,l=1+.045*f,g=1+.015*f*(1-.17*Math.cos((h-30)*Math.PI/180)+.24*Math.cos(2*h*Math.PI/180)+.32*Math.cos((3*h+6)*Math.PI/180)-.2*Math.cos((4*h-63)*Math.PI/180)),i=Math.sqrt(((e.g-i.g)/(1+.015*(o-50)**2/Math.sqrt(20+(o-50)**2)))**2+(c/(1*l))**2+(d/(1*g))**2+c/(1*l)*Math.sqrt(f**7/(f**7+25**7))*Math.sin(60*Math.exp(-(((h-275)/25)**2))*Math.PI/180)*-2*(d/(1*g))),i<n&&(n=i,a=w[t],s=r)}return{fd:a,ed:s}}export default class{constructor(e,t){this.palette={},this.color=e,this.options=t?Object.assign(n,t):n,this.complementary=()=>i(this.color,180),this.firstAnalogous=()=>i(this.color,-30),this.secondAnalogous=()=>i(this.color,30),this.firstTriadic=()=>i(this.color,60),this.secondTriadic=()=>i(this.color,120),this.palette.primary=this.makePalette("primary",!0),this.palette.complementary=this.makePalette("complementary",!0),this.palette.analogous={},this.palette.analogous.primary=this.makePalette("firstAnalogous",!0),this.palette.analogous.secondary=this.makePalette("secondAnalogous",!0),this.palette.triadic={},this.palette.triadic.primary=this.makePalette("firstTriadic",!0),this.palette.triadic.secondary=this.makePalette("secondTriadic",!0)}makePalette(n,a=!1){const i={};let o,h;if("primary"===n)h="",o=t(this.color);else if("complementary"===n)h="C",o=t(this.complementary());else if("firstAnalogous"===n)h="A1",o=t(this.firstAnalogous());else if("secondAnalogous"===n)h="A2",o=t(this.secondAnalogous());else{if("analogous"===n){const e={};return e.primary=this.makePalette("firstAnalogous",!0),e.secondary=this.makePalette("secondAnalogous",!0),e}if("firstTriadic"===n)h="T1",o=t(this.firstTriadic());else if("secondTriadic"===n)h="T2",o=t(this.secondTriadic());else if("triadic"===n){const e={};return e.primary=this.makePalette("firstTriadic",!0),e.secondary=this.makePalette("secondTriadic",!0),e}}const l=function(e){let n;n=void 0===n?T:n;const t=A(e);let w=B(t,n);n=w.fd,w=w.ed;const a=n[w],s=f(a),r=f(t),i=f(n[5]).T<30,o=s.g-r.g,h=s.T-r.T,l=s.hue-r.hue,M=b[w],p=E[w];let P=100;return n.map((n,t)=>{let w=n,s=t;if(w===a)return P=Math.max(r.g-1.7,0),e;w=f(w);let A=w.g-b[s]/M*o;A=Math.min(A,P),s=new g(c(A,0,100),Math.max(0,i?w.T-h:w.T-h*Math.min(E[s]/p,1.25)),(w.hue-l+360)%360),P=Math.max(s.g-1.7,0),w=s.hue*Math.PI/180,s=new m(s.g,s.T*Math.cos(w),s.T*Math.sin(w),s.alpha);let T=(s.g+16)/116;return w=.95047*u(T+s.A/500),A=1*u(T),T=1.08883*u(T-s.B/200),new d(c(F(3.2404542*w+-1.5371385*A+-.4985314*T),0,1),c(F(-.969266*w+1.8760108*A+.041556*T),0,1),c(F(.0556434*w+-.2040259*A+1.0572252*T),0,1),s.alpha)})}(w(o)).map(e=>s(Math.round(255*e.red),Math.round(255*e.green),Math.round(255*e.blue))),M=function(e){let n;n=void 0===n?p:n;const t=A(e);let w=B(t,n);n=w.fd,w=w.ed;const a=n[w],s=f(a),r=f(t),i=f(n[2]).T<30,o=s.g-r.g,h=s.T-r.T,l=s.hue-r.hue,M=b[w],T=E[w];let P=100;return n.map((n,t)=>{let w=n,s=t;if(w===a)return P=Math.max(r.g-1.7,0),e;w=f(w);let A=w.g-b[s]/M*o;A=Math.min(A,P),s=new g(c(A,0,100),Math.max(0,i?w.T-h:w.T-h*Math.min(E[s]/T,1.25)),(w.hue-l+360)%360),P=Math.max(s.g-1.7,0),w=s.hue*Math.PI/180,s=new m(s.g,s.T*Math.cos(w),s.T*Math.sin(w),s.alpha);let p=(s.g+16)/116;return w=.95047*u(p+s.A/500),A=1*u(p),p=1.08883*u(p-s.B/200),new d(c(F(3.2404542*w+-1.5371385*A+-.4985314*p),0,1),c(F(-.969266*w+1.8760108*A+.041556*p),0,1),c(F(.0556434*w+-.2040259*A+1.0572252*p),0,1),s.alpha)})}(w(o)).map(e=>s(Math.round(255*e.red),Math.round(255*e.green),Math.round(255*e.blue)));l.push(...M);for(let n=0;n<e.length;n+=1){const w=h+e[n];let s={};if(this.options.showContrastText){const e=r(t(l[n]),this.options.threshold);!0===a&&(this[w]={},this[w].hex=l[n],this[w].contrastText=e),s.hex=l[n],s.contrastText=e}else!0===a&&(this[w]=l[n]),s=l[n];i[e[n]]=s}return i}} //# sourceMappingURL=index.modern.js.map