Article Font Preference Memory
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
This script remembers your preferred font settings and applies them to article content across the web. Customize font family, size, line height, letter spacing, and maximum text width to create your ideal reading experience. Preferences are saved automatically and applied whenever you visit a page with article content. Choose between global settings that apply everywhere, or per-domain settings that remember different preferences for different sites—perfect for adjusting to each site's unique layout and content style. Dark mode and high contrast mode are also available for comfortable reading in any lighting condition.
WHERE IT RUNS
The script works on any page with article or long-form content—news sites, blogs, documentation, research papers, tutorials, and more. It automatically detects article containers using a comprehensive set of selectors (article, .post, .entry, .content) and falls back to intelligent detection of the largest text block. The script runs on any website, respecting the structure of each page while applying your preferences only to the main content area.
HOW TO USE
After installation, open the panel from the BotGentz menu. Adjust the font family, size, line height, letter spacing, and max width using the sliders or number inputs. Toggle dark mode or high contrast mode for improved visibility. Use the preview box to see changes in real time. Choose whether preferences are remembered globally or per domain—per-domain memory is enabled by default. Click "Apply Now" to apply settings to the current page, or rely on auto-apply to detect articles automatically. Use "Reset to Defaults" to restore the original settings, or "Clear All Preferences" to remove all stored preferences.
TECHNICAL MECHANISM
The script uses a multi-stage article detection and font application pipeline. First, it identifies the article container using a prioritized selector strategy targeting common article elements with a minimum text length threshold of 200 characters and at least 2 paragraphs to ensure it targets real content. Second, it applies font preferences by iterating through the container and all descendant elements (excluding scripts, styles, and interactive elements like buttons and inputs), setting each CSS property with `!important` to override site styles. Third, it stores preferences as JSON objects in GM_setValue with a namespaced key structure—either global (afp_prefs_global) or per-domain (afp_prefs_domain.com). The script loads preferences on page load and watches for DOM changes using a MutationObserver to re-apply settings when dynamic content loads. A debounced scroll listener updates the preview in real time.
THE PANEL
The settings panel is fully draggable and can be positioned anywhere on your screen. It automatically snaps to the nearest edge when released, keeping your workspace organized. The panel can be collapsed to a small bubble showing only a gear icon, and restored with a single click. Its position is remembered across page reloads using GM_setValue. The panel also responds to the Escape key, which instantly hides it until you click the bubble again. All settings are saved immediately when changed and persist across browser sessions.
PLEASE NOTE
This script requires the free BotGentz extension to run. Font preferences apply only to article content containers, not to navigation, sidebars, or other page elements. Some websites may use inline styles or complex CSS that resist application—the script uses `!important` flags to maximize compatibility. The script does not access, store, or transmit any personal data or browsing history. All preference data is stored locally in your browser's userscript storage and never leaves your device.