UNPKG

iking-utils-pro

Version:

金合前端工具库

2 lines (1 loc) 2.28 kB
function t(t){return/^#([0-9a-fA-F]{3}|[0-9a-fA-f]{6})$/.test(t)}function n(t,n,r){const e=(t<<16|n<<8|r).toString(16);return"#"+new Array(Math.abs(e.length-7)).join("0")+e}function r(n){let r=n.toLowerCase();if(t(n)){if(4===r.length){let t="#";for(let n=1;n<4;n+=1)t+=r.slice(n,n+1).concat(r.slice(n,n+1));r=t}const t=[];for(let n=1;n<7;n+=2)t.push(parseInt("0x"+r.slice(n,n+2)));return"RGB("+t.join(",")+")"}return r}function e(n,r){let e=n.toLowerCase();if(t(n)){if(4===e.length){let t="#";for(let n=1;n<4;n+=1)t+=e.slice(n,n+1).concat(e.slice(n,n+1));e=t}const t=[];for(let n=1;n<7;n+=2)t.push(parseInt("0x"+e.slice(n,n+2)));return`RGBA(${t.join(",")},${r})`}return e}function s(n){if(!t(n))return;const[e,s,i]=r(n).replace(/(?:\(|\)|rgb|RGB)*/g,"").split(",").map((t=>Number(t)));return.299*e+.578*s+.114*i<192}function i(t,n){return t=t.indexOf("#")>=0?t.substring(1,t.length):t,n=Math.trunc(255*n/100),`#${g(t.substring(0,2),n)}${g(t.substring(2,4),n)}${g(t.substring(4,6),n)}`}function o(t,n){return t=t.indexOf("#")>=0?t.substring(1,t.length):t,n=Math.trunc(255*n/100),`#${u(t.substring(0,2),n)}${u(t.substring(2,4),n)}${u(t.substring(4,6),n)}`}function u(t,n){const r=parseInt(t,16)+n,e=r>255?255:r;return e.toString(16).length>1?e.toString(16):`0${e.toString(16)}`}function c(t,n,r){const e=[t,n,r].map((t=>(t/=255)<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)));return.2126*e[0]+.7152*e[1]+.0722*e[2]}function a(t){const n=r(t.substring(1));var e,s;return(e=n.split(","),s=[0,0,0],(c(~~e[0],~~e[1],~~e[2])+.05)/(c(s[0],s[1],s[2])+.05))>=12?"#000000":"#FFFFFF"}function g(t,n){const r=parseInt(t,16)-n,e=r<0?0:r;return e.toString(16).length>1?e.toString(16):`0${e.toString(16)}`}function l(t,n=1){const r=t.toLocaleUpperCase();if(/^#[0-9A-F]{6}$/i.test(r)){let t=r.slice(1);return`rgba(${parseInt(t.substring(0,2),16)}, ${parseInt(t.substring(2,4),16)}, ${parseInt(t.substring(4,6),16)}, ${n})`}if(/^rgb\(\d{1,3}, \d{1,3}, \d{1,3}\)$/i.test(r)){let t=r.match(/\d+/g)?.map(Number)||[];return`rgba(${t[0]}, ${t[1]}, ${t[2]}, ${n})`}throw new Error("Invalid color format. Only hexadecimal and RGB formats are supported.")}export{a as calculateBestTextColor,s as colorIsDark,i as darken,r as hexToRGB,e as hexToRGBA,t as isHexColor,o as lighten,n as rgbToHex,l as setOpacity};