Expands small textareas to improve readability and editing comfort on common websites.
Tento skript by nemal byť nainštalovaný priamo. Je to knižnica pre ďalšie skripty, ktorú by mali používať cez meta príkaz // @require https://update.greasyfork.org/scripts/570704/1780717/Readable%20Textarea%20Expander.js
// ==UserScript==
// @name Readable Textarea Expander
// @namespace https://example.com/userscripts
// @version 1.0.0
// @description Expands small textareas to improve readability and editing comfort on common websites.
// @match *://*/*
// @grant none
// ==/UserScript==
(function () {
'use strict';
// Minimum height for textareas that are too small
const MIN_HEIGHT = 220;
// Apply better sizing to a textarea
function improveTextarea(textarea) {
if (!(textarea instanceof HTMLTextAreaElement)) {
return;
}
// Avoid processing the same textarea multiple times
if (textarea.dataset.expanderApplied === 'true') {
return;
}
textarea.dataset.expanderApplied = 'true';
const computedStyle = window.getComputedStyle(textarea);
const currentHeight = parseFloat(computedStyle.height) || textarea.offsetHeight;
if (currentHeight < MIN_HEIGHT) {
textarea.style.minHeight = `${MIN_HEIGHT}px`;
}
textarea.style.resize = 'vertical';
textarea.style.lineHeight = '1.5';
textarea.style.padding = '10px';
textarea.style.boxSizing = 'border-box';
}
// Process all existing textareas
function processPage() {
const textareas = document.querySelectorAll('textarea');
textareas.forEach(improveTextarea);
}
// Watch for dynamically added textareas
const observer = new MutationObserver(() => {
processPage();
});
observer.observe(document.documentElement, {
childList: true,
subtree: true
});
// Run once on load
processPage();
})();