-
Notifications
You must be signed in to change notification settings - Fork 0
/
superfont.js
1 lines (1 loc) · 11 KB
/
superfont.js
1
javascript:(function() { const useHighlightedMode = confirm('Would you like to use highlighted mode?%27); if (useHighlightedMode) { setTimeout(function() { const overlay = document.createElement(%27div%27); overlay.style.position = %27fixed%27; overlay.style.top = %270%27; overlay.style.left = %270%27; overlay.style.width = %27100%%27; overlay.style.height = %27100%%27; overlay.style.backgroundColor = %27rgba(0, 0, 0, 0.5)%27; overlay.style.zIndex = %279999%27; const box = document.createElement(%27div%27); box.style.position = %27absolute%27; box.style.top = %2750%%27; box.style.left = %2750%%27; box.style.transform = %27translate(-50%, -50%)%27; box.style.backgroundColor = %27#fff'; box.style.padding = '20px'; box.style.borderRadius = '10px'; box.style.boxShadow = '0px 0px 10px rgba(0, 0, 0, 0.5)'; const title = document.createElement('h3'); title.innerText = 'Font Options'; const fontLabel = document.createElement('label'); fontLabel.innerText = 'Font: '; const fontSelect = document.createElement('select'); fontSelect.style.marginLeft = '10px'; fontSelect.style.marginRight = '20px'; const fonts = ['Arial', 'Helvetica', 'Times New Roman', 'Georgia', 'Verdana', 'Courier New', 'Lucida Console']; for (let i = 0; i < fonts.length; i++) { const option = document.createElement('option'); option.innerText = fonts[i]; fontSelect.appendChild(option); } const sizeLabel = document.createElement('label'); sizeLabel.innerText = 'Font Size: '; const sizeSelect = document.createElement('select'); sizeSelect.style.marginLeft = '10px'; sizeSelect.style.marginRight = '20px'; const sizes = ['12', '14', '16', '18', '20', '24', '28', '32', '36', '40', '48']; for (let i = 0; i < sizes.length; i++) { const option = document.createElement('option'); option.innerText = sizes[i]; sizeSelect.appendChild(option); } const colorLabel = document.createElement('label'); colorLabel.innerText = 'Color: '; const colorSelect = document.createElement('input'); colorSelect.type = 'color'; colorSelect.style.marginLeft = '10px'; colorSelect.style.marginRight = '20px'; const styleLabel = document.createElement('label'); styleLabel.innerText = 'Style: '; const styleSelect = document.createElement('select'); styleSelect.style.marginLeft = '10px'; styleSelect.style.marginRight = '20px'; const styles = ['normal', 'italic', 'oblique']; for (let i = 0; i < styles.length; i++) { const option = document.createElement('option'); option.innerText = styles[i]; styleSelect.appendChild(option); } const weightLabel = document.createElement('label'); weightLabel.innerText = 'Weight: '; const weightSelect = document.createElement('select'); weightSelect.style.marginLeft = '10px'; weightSelect.style.marginRight = '20px'; const weights = ['normal', 'bold', 'bolder', 'lighter']; for (let i = 0; i < weights.length; i++) { const option = document.createElement('option'); option.innerText = weights[i]; weightSelect.appendChild(option); } const capsLabel = document.createElement('label'); capsLabel.innerText = 'All Caps: '; const capsCheckbox = document.createElement('input'); capsCheckbox.type = 'checkbox'; capsCheckbox.style.marginLeft = '10px'; capsCheckbox.style.marginRight = '20px'; const nevermindButton = document.createElement('button'); nevermindButton.innerText = 'Nevermind'; nevermindButton.style.marginRight = '10px'; nevermindButton.addEventListener('click', () => { overlay.remove(); }); const applyButton = document.createElement('button'); applyButton.innerText = 'Apply'; applyButton.style.backgroundColor = '#4CAF50'; applyButton.style.color = '#fff'; applyButton.addEventListener('click', () => { const font = fontSelect.value; const size = sizeSelect.value + 'px'; const color = colorSelect.value; const style = styleSelect.value; const weight = weightSelect.value; const allCaps = capsCheckbox.checked; const elements = document.getElementsByTagName('*'); for (let i = 0; i < elements.length; i++) { if (elements[i].isSameNode(window.getSelection().focusNode) || elements[i].contains(window.getSelection().focusNode)) { elements[i].style.fontFamily = font; elements[i].style.fontSize = size; elements[i].style.color = color; elements[i].style.fontStyle = style; elements[i].style.fontWeight = weight; if (allCaps) { elements[i].style.textTransform = 'uppercase'; } else { elements[i].style.textTransform = 'none'; } } } overlay.remove(); }); box.appendChild(title); box.appendChild(fontLabel); box.appendChild(fontSelect); box.appendChild(document.createElement('br')); box.appendChild(sizeLabel); box.appendChild(sizeSelect); box.appendChild(document.createElement('br')); box.appendChild(colorLabel); box.appendChild(colorSelect); box.appendChild(document.createElement('br')); box.appendChild(styleLabel); box.appendChild(styleSelect); box.appendChild(document.createElement('br')); box.appendChild(weightLabel); box.appendChild(weightSelect); box.appendChild(document.createElement('br')); box.appendChild(capsLabel); box.appendChild(capsCheckbox); box.appendChild(document.createElement('br')); box.appendChild(nevermindButton); box.appendChild(applyButton); overlay.appendChild(box); document.body.appendChild(overlay); }, 8000); } else { const overlay = document.createElement('div'); overlay.style.position = 'fixed'; overlay.style.top = '0'; overlay.style.left = '0'; overlay.style.width = '100%'; overlay.style.height = '100%'; overlay.style.backgroundColor = 'rgba(0, 0, 0, 0.5)'; overlay.style.zIndex = '9999'; const box = document.createElement('div'); box.style.position = 'absolute'; box.style.top = '50%'; box.style.left = '50%'; box.style.transform = 'translate(-50%, -50%)'; box.style.backgroundColor = '#fff'; box.style.padding = '20px'; box.style.borderRadius = '10px'; box.style.boxShadow = '0px 0px 10px rgba(0, 0, 0, 0.5)'; const title = document.createElement('h3'); title.innerText = 'Font Options'; const fontLabel = document.createElement('label'); fontLabel.innerText = 'Font: '; const fontSelect = document.createElement('select'); fontSelect.style.marginLeft = '10px'; fontSelect.style.marginRight = '20px'; const fonts = ['Arial', 'Helvetica', 'Times New Roman', 'Georgia', 'Verdana', 'Courier New', 'Lucida Console']; for (let i = 0; i < fonts.length; i++) { const option = document.createElement('option'); option.innerText = fonts[i]; fontSelect.appendChild(option); } const sizeLabel = document.createElement('label'); sizeLabel.innerText = 'Font Size: '; const sizeSelect = document.createElement('select'); sizeSelect.style.marginLeft = '10px'; sizeSelect.style.marginRight = '20px'; const sizes = ['12', '14', '16', '18', '20', '24', '28', '32', '36', '40', '48']; for (let i = 0; i < sizes.length; i++) { const option = document.createElement('option'); option.innerText = sizes[i]; sizeSelect.appendChild(option); } const colorLabel = document.createElement('label'); colorLabel.innerText = 'Color: '; const colorSelect = document.createElement('input'); colorSelect.type = 'color'; colorSelect.style.marginLeft = '10px'; colorSelect.style.marginRight = '20px'; const styleLabel = document.createElement('label'); styleLabel.innerText = 'Style: '; const styleSelect = document.createElement('select'); styleSelect.style.marginLeft = '10px'; styleSelect.style.marginRight = '20px'; const styles = ['normal', 'italic', 'oblique']; for (let i = 0; i < styles.length; i++) { const option = document.createElement('option'); option.innerText = styles[i]; styleSelect.appendChild(option); } const weightLabel = document.createElement('label'); weightLabel.innerText = 'Weight: '; const weightSelect = document.createElement('select'); weightSelect.style.marginLeft = '10px'; weightSelect.style.marginRight = '20px'; const weights = ['normal', 'bold', 'bolder', 'lighter']; for (let i = 0; i < weights.length; i++) { const option = document.createElement('option'); option.innerText = weights[i]; weightSelect.appendChild(option); } const capsLabel = document.createElement('label'); capsLabel.innerText = 'All Caps: '; const capsCheckbox = document.createElement('input'); capsCheckbox.type = 'checkbox'; capsCheckbox.style.marginLeft = '10px'; capsCheckbox.style.marginRight = '20px'; const nevermindButton = document.createElement('button'); nevermindButton.innerText = 'Nevermind'; nevermindButton.style.marginRight = '10px'; nevermindButton.addEventListener('click', () => { overlay.remove(); }); const applyButton = document.createElement('button'); applyButton.innerText = 'Apply'; applyButton.style.backgroundColor = '#4CAF50'; applyButton.style.color = '#fff'; applyButton.addEventListener('click', () => { const font = fontSelect.value; const size = sizeSelect.value + 'px'; const color = colorSelect.value; const style = styleSelect.value; const weight = weightSelect.value; const allCaps = capsCheckbox.checked; const elements = document.getElementsByTagName('*'); for (let i = 0; i < elements.length; i++) { elements[i].style.fontFamily = font; elements[i].style.fontSize = size; elements[i].style.color = color; elements[i].style.fontStyle = style; elements[i].style.fontWeight = weight; if (allCaps) { elements[i].style.textTransform = 'uppercase'; } else { elements[i].style.textTransform = 'none'; } } overlay.remove(); }); box.appendChild(title); box.appendChild(fontLabel); box.appendChild(fontSelect); box.appendChild(document.createElement('br')); box.appendChild(sizeLabel); box.appendChild(sizeSelect); box.appendChild(document.createElement('br')); box.appendChild(colorLabel); box.appendChild(colorSelect); box.appendChild(document.createElement('br')); box.appendChild(styleLabel); box.appendChild(styleSelect); box.appendChild(document.createElement('br')); box.appendChild(weightLabel); box.appendChild(weightSelect); box.appendChild(document.createElement('br')); box.appendChild(capsLabel); box.appendChild(capsCheckbox); box.appendChild(document.createElement('br')); box.appendChild(nevermindButton); box.appendChild(applyButton); overlay.appendChild(box); document.body.appendChild(overlay); }})();