您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Allows you to customize the color of the svg before download.
- // ==UserScript==
- // @name Simpleicons.org Dynamic Colors
- // @namespace https://github.com/appel/userscripts
- // @version 0.0.3
- // @description Allows you to customize the color of the svg before download.
- // @author Ap
- // @match https://simpleicons.org/*
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function () {
- 'use strict';
- function isColorDark(hexcolor) {
- const r = parseInt(hexcolor.substr(1, 2), 16);
- const g = parseInt(hexcolor.substr(3, 2), 16);
- const b = parseInt(hexcolor.substr(5, 2), 16);
- const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
- return luminance < 0.5;
- }
- function expandHex(hex) {
- if (hex.length === 4) {
- return "#" + hex[1] + hex[1] + hex[2] + hex[2] + hex[3] + hex[3];
- }
- return hex;
- }
- function addCustomColorButton() {
- const iconColorButton = document.querySelector('#icon-color');
- if (iconColorButton && !document.querySelector('.custom-color-btn')) {
- const customColorButton = document.createElement('button');
- customColorButton.innerText = 'Custom color';
- customColorButton.classList.add('custom-color-btn');
- customColorButton.style.cssText = "position:absolute;top:10px;right:10px;width:fit-content;font-family:var(--font-family-stylized);font-size:13px;color:var(--color-button-text);background:#000;border-radius:4px;padding:4px 8px;cursor:pointer;";
- customColorButton.addEventListener('click', function () {
- const hexcode = prompt('Please enter hex code for color.');
- if (hexcode && /^#?([0-9A-Fa-f]{3}){1,2}$/.test(hexcode)) {
- let formattedHexcode = hexcode.startsWith("#") ? hexcode : `#${hexcode}`;
- formattedHexcode = expandHex(formattedHexcode);
- const downloadLink = document.querySelector('#icon-download-color-svg');
- if (downloadLink) {
- const svgFillRegex = /%23[0-9A-Fa-f]{6}/i;
- if (svgFillRegex.test(downloadLink.href)) {
- downloadLink.href = downloadLink.href.replace(svgFillRegex, `%23${formattedHexcode.slice(1)}`);
- downloadLink.setAttribute("download", downloadLink.getAttribute("download").replace("-color.svg", `-${formattedHexcode.slice(1)}.svg`));
- }
- }
- iconColorButton.innerText = formattedHexcode;
- iconColorButton.style.background = formattedHexcode;
- if (isColorDark(formattedHexcode)) {
- iconColorButton.style.color = "#ffffff";
- } else {
- iconColorButton.style.color = "#000000";
- }
- } else {
- alert('Invalid hex code. Please enter a valid hex color.');
- }
- });
- iconColorButton.insertAdjacentElement('afterend', customColorButton);
- }
- }
- const observer = new MutationObserver(addCustomColorButton);
- observer.observe(document.body, { childList: true, subtree: true });
- addCustomColorButton();
- })();