Greasy Fork is available in English.
Expands small textareas to improve readability and editing comfort on common websites.
Skrip ini tidak untuk dipasang secara langsung. Ini adalah pustaka skrip lain untuk disertakan dengan direktif meta // @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();
})();