Expands small textareas to improve readability and editing comfort on common websites.
Dit script moet niet direct worden geïnstalleerd - het is een bibliotheek voor andere scripts om op te nemen met de meta-richtlijn // @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();
})();