UNPKG

@fewings/core

Version:
2 lines (1 loc) 558 B
function g(t,s){if(t.startsWith("#")&&(t=t.slice(1)),t.length===3&&(t=t.split("").map(n=>n+n).join("")),t.length!==6&&t.length!==8||!/^[0-9a-fA-F]{6,8}$/.test(t))throw new Error("Invalid HEX color format");s=Math.max(-100,Math.min(100,s));let i=parseInt(t.slice(0,2),16),r=parseInt(t.slice(2,4),16),m=parseInt(t.slice(4,6),16),u=t.length===8?t.slice(6,8):null,e=n=>{let d=Math.round(n+s/100*(s>0?255-n:n));return Math.max(0,Math.min(255,d))},p=e(i),f=e(r),h=e(m),a=n=>n.toString(16).padStart(2,"0");return`#${a(p)}${a(f)}${a(h)}${u??""}`}export{g as shade};