UNPKG

@bobthered/tailwindcss-palette-generator

Version:

Quickly generate tailwindcss color palettes from a base color or colors.

1 lines 1.8 kB
var e=({hex:e,preserve:s,shades:n})=>{const t=(e=>{const s=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e)||[];try{let e=parseInt(s[1],16),n=parseInt(s[2],16),t=parseInt(s[3],16);e/=255,n/=255,t/=255;const r=Math.max(e,n,t),a=Math.min(e,n,t);let o,h=0,i=(r+a)/2;if(r==a)h=o=0;else{const s=r-a;switch(o=i>.5?s/(2-r-a):s/(r+a),r){case e:h=(n-t)/s+(n<t?6:0);break;case n:h=(t-e)/s+2;break;case t:h=(e-n)/s+4}h/=6}const c={h:0,s:0,l:0};return c.h=Math.round(360*h),c.s=Math.round(100*o),c.l=Math.round(100*i),c}catch(s){return console.log(e),{h:0,s:0,l:0}}})(e),r={},a=n.reduce(((e,{name:n,lightness:a})=>{const{h:o,s:h,l:i}=t,c=(({h:e,s:s,l:n})=>{n/=100;const t=s*Math.min(n,1-n)/100,r=s=>{const r=(s+e/30)%12,a=n-t*Math.max(Math.min(r-3,9-r,1),-1);return Math.round(255*a).toString(16).padStart(2,"0")};return`#${r(0)}${r(8)}${r(4)}`})({h:o,s:h,l:a});return e[n]=c,s&&(r[n]=Math.abs(i-a)),e}),{});if(s){const[s]=Object.keys(r).sort(((e,s)=>r[e]-r[s]));a[s]=e}return a},s=s=>{"string"==typeof s&&(s={colors:[s]}),"object"==typeof s&&Array.isArray(s)&&(s={colors:s}),s=Object.assign({colors:[],names:["primary","secondary","tertiary","quaternary","quinary","senary","septenary","octonary","nonary","denary"],preserve:!0,shades:[{name:"50",lightness:98},{name:"100",lightness:95},{name:"200",lightness:90},{name:"300",lightness:82},{name:"400",lightness:64},{name:"500",lightness:46},{name:"600",lightness:33},{name:"700",lightness:24},{name:"800",lightness:14},{name:"900",lightness:7},{name:"950",lightness:4}]},s);const{colors:n,names:t,preserve:r,shades:a}=s;if(void 0===n||void 0===t||void 0===r||void 0===a)return{};return n.reduce(((s,n,o)=>{const h=t[o],i=e({hex:n,preserve:r,shades:a});return s[h]=i,s}),{})};export{s as default,s as tailwindcssPaletteGenerator};//# sourceMappingURL=index.mjs.map