How to Customize Firefox Reader View for Better Readability

Reader View is a popular feature of the Firefox browser, that changes the appearance of a web page, and makes it more readable by removing visual clutter such as images, ads, headers, and sidebars. Reader View is, however not available, for all home pages.

If the feature is available for a certain page, you will find the icon to enable it in the shape of a small book icon displayed to the right of the address bar.

IMAGE: Mozilla.org

There are a few built-in options that allow readers to customize the look of the Reader View. We’ll be looking at those options before showing you what you can do to further personalize the look of the Reader View. For demo purposes, I will be using an article by National Geographic article.

Pre-Built Options

Firefox Reader View comes with a few pre-built customization options such as dark, light and sepia backgrounds, adjustable font sizes, and serif and sans-serif typefaces. You can customize the theme by overriding the CSS rules of these pre-existing options.

Default Reader View Options
Default Reader View Options

I use a dark skin with serif fonts, and this means that I will need to override the belonging CSS classes, in my case .dark and .serif.

If you want to customize another theme variant (skin + font), you will need to use the appropriate CSS selectors. You can check these out with the help of the Firefox Developer Tools by hitting F12.

Check CSS Selectors
Create the Custom CSS File

You need to create a file called userContent.css inside the chrome folder of your Firefox profile folder for your Reader View customizations. To find your Firefox profile folder, type about:support into the URL bar and press Enter.

You’ll find yourself on a page that contains the technical data related to your Firefox install. Click the Show Folder button, and it will open your Profile folder.

Profile Folder Button in Firefox
the Profile Folder button

Create a folder called chrome inside your Profile Folder (if you don’t have it yet), and a file called userContent.css inside the chrome folder. The file path looks like this:

...ProfileschromeuserContent.css
Add the Custom CSS Rules

Once you’ve created and opened userContent.css in a code editor, it’s time to add your CSS rules. In order to customize the design of the Reader View, you need to target the tag with the appropriate selectors.

You can use the following selectors for the different default options:

/* When dark background is selected */
:root[hasbrowserhandlers="true"] body.dark  {
}
/* When light background is selected */
:root[hasbrowserhandlers="true"] body.light  {
}
/* When sepia background is selected */
:root[hasbrowserhandlers="true"] body.sepia  {
}
/* When serif font is selected */
:root[hasbrowserhandlers="true"] body.serif {
}
/* When sans-serif font is selected */
:root[hasbrowserhandlers="true"] body.sans-serif {
}

You can also combine the classes, to target a specific combination of settings.

/* When dark background and serif font are selected */
:root[hasbrowserhandlers="true"] body.dark.serif  {
}
/* When sepia background and sans-serif font are selected */
:root[hasbrowserhandlers="true"] body.sans-serif.sepia  {
}

Do not use the common selector :root[hasbrowserhandlers="true"] body to target all the settings at once. It will work, but it will also affect other browser pages, such as about:newtab, as their root elements also carry the hasbrowserhandlers attribute (which is used to mark the event handlers of internal Firefox pages, such as about: pages).

Here’s the code I added to my userContent.css. I changed the font family, font style, colors, and widened the text container. You can use any other style rules according to your own taste.

/** userContent.css
***************************/
:root[hasbrowserhandlers="true"] body.dark.serif,
:root[hasbrowserhandlers="true"] body.dark.serif #reader-domain {
font-family: "courier new" !important;
}
:root[hasbrowserhandlers="true"] body.dark.serif {
background-color: #13131F !important;
color: #BAE3DB !important;
}
:root[hasbrowserhandlers="true"] body.dark.serif #reader-domain {
font-style: italic !important;
}
:root[hasbrowserhandlers="true"] body.dark.serif h1,
:root[hasbrowserhandlers="true"] body.dark.serif h2,
:root[hasbrowserhandlers="true"] body.dark.serif h3,
:root[hasbrowserhandlers="true"] body.dark.serif h4,
:root[hasbrowserhandlers="true"] body.dark.serif h5 {
color: #06FEB0 !important;
}
:root[hasbrowserhandlers="true"] body.dark.serif a:link {
color: #83E7FF !important;
}
:root[hasbrowserhandlers="true"] body.dark.serif #container {
max-width: 50em !important;
}

Note that it’s necessary to use the !important keyword in userContent.css for all CSS rules. The browser adds user-specified property values before the values specified by the author (the developer of the given web page, here the Reader View).
Hence, any user-specified property value without the !important keyword won’t work if an author-specified stylesheet also targets the same property, as it will be overridden.

Final Result

You can see the changes of my Reader View theme below. Use your own CSS rules to customize the design of your own personalized Firefox Reader View.

Before

Default Firefox Reader View
default Firefox Reader View

After

Customized Firefox Reader View
customized Firefox Reader View

If you want to dive deeper in the theme customization of Firefox tools, check out my previous tutorial on the customization of the Firefox Developer Tools theme.

Operating Systems You May Not Have Heard Of (But Should)

While the Operating System (OS) is the most important system software powering the gadgets and devices we find under our fingers daily, we’re mostly familiar with the regular few: Windows, Mac OS X, Linux, and for mobile, iOS, Android OS, Windows OS, Blackberry OS, Symbian, Bada etc.

But outside of these usual suspects there are many more operating systems – big, small, easy, difficult, for general or very specific uses. Here’s 8 not-so-known operating systems you might find interesting.

These operating systems, though unknown to many, are unique and amazing software. If you cannot install any of these OS you can try them with a flash drive or via a virtual environment using VirtualBox or VMWare, which you might after you find out what they have to offer.

1. KolibriOS: Smallest GUI OS

Kolibri is the smallest GUI operating system. It was forked off from MenuetOS. Written completely in assembly language, it is available in two versions: 1.44MB with essential features and 3MB with additional features. Despite being small enough to fit in a floppy disk, Kolibri is a complete and working graphical user interface.

Kolibri can be booted using a floppy disk, optical disc, flash drive or hard disk drive. It can read many file systems including FAT32, NTFS, and EXT3/4. It has applications for all basic computing tasks, such as text editor, email client, HTTP client, etc.

2. Firefox OS: Mozilla’s Mobile OS

Mozilla has tried to bring a completely open source mobile platform. . Codenamed Boot2Gecko, Mozilla branded it under the name of Firefox OS after its popular and open source web browser, Firefox. It is built on open web standards such as HTML, CSS, and JavaScript.

It features an interface much like that of Android having home screen, notification bar, etc. It doesn’t support native apps, only web apps built using HTML5, CSS3, and JavaScript. One of the interesting features of Firefox OS is that everything inside it is a web page running on its separate browser process, like contacts manager, dialer, etc.

3. Slax: Pocket OS

Slax is a modern, live, pocket operating system based on Slackware Linux. Despite its small size of 220MB, it contains essential apps for basic computing, and you can extend its functionality using modules. Users can open a module (out of hundreds available e.g. Firefox, Libre Office) and the software will installed automatically.

Being a live operating system, it can run directly from the portable drive without the need of installation. You can just plug in your flash drive (with Slax on it), configure system’s BIOS to boot from the flash drive and voila, Slax boots up. It even features persistent storage, which means your data and preferences get saved in the flash drive, and are loaded automatically upon the next run.

4. Ubuntu for Phones: Content-focused UI

Ubuntu, the most popular desktop Linux distribution, is now available for phones under the name of Ubuntu for Phones, on top of Ubuntu for tablets, Ubuntu Server edition and Ubuntu Desktop. One of Ubuntu’s innovative features is that developers can write one app for all Ubuntu devices, which will be available via the Ubuntu Software Centre.

Ubuntu for Phones focuses on content rather than controls. It is designed to make your phone content easier to access – every edge of the screen has a specific purpose, making all your apps, content, and controls instantly accessible.

5. ReactOS: Windows-like OS

ReactOS is a free and open source replacement for MS Windows, and is designed on the principles of Microsoft’s powerful NT architecture. Its kernel is written from scratch, and it is based on WINE. It supports many of Windows drivers, and is able to run many of Windows software, on a GUI similar to that of Windows XP/2003.

Though ReactOS is actively developed and maintained, it is not yet as functional as newer versions of Windows, such as Windows 7 or 8. Then again, ReactOS Foundation’s goal is basically to create a fully functional and compatible Windows replacement, which is open and free for the people.

6. Tizen OS: Samsung’s replacement for Bada OS

Samsung%20relies%20heavily%20on%20Android%20for%20its%20smartphone%20market%20share,%20but%20it’s%20trying%20to%20find%20alternative%20options. While it has the Bada OS, there are plans to replace the mobile OS on their smartphones with Tizen OS, an open source and standards-based software platform.

Tizen offers an innovative OS, applications, and user experience via flexible and powerful development environments based on HTML5. Its smartphone technologies provide 3D window effects, multi-tasking, multi-touch, sensor and location-based service frameworks, and support for multiple screen resolutions.

7. Tails: Amnesic and Incognito OS

Tails is a Linux distribution based on Debian. Tails stands for The Amnesic Incognito Live System, and can be run (without installation) from portable mediums such as optical disks and flash drives. As it is run entirely in the computer’s RAM, all files and browsing history is automatically erased once the system is turned off (amnesic).

Aimed at preserving your privacy and anonymity while browsing, Tails implements many security tools, including the Tor anonymity network, and cryptographic tools to encrypt and secure your files, email, and instant messages to protect your private information, including your identity (incognito).

8. Qubes OS: Security-by-Isolation OS

Qubes OS is based on Xen, X Window System and Linux. Qubes provide hardened security using the security-by-isolation approach, creating many security domains, which are implemented as lightweight Virtual Machines (VMs). These domains have their own set of security restrictions, isolating one domain from the next.

So if you separate your browser from your sensitive work data, a hacker or malware would not be able to access your information even if it has compromised your browser, thanks to the isolated domains and strategic compartmentalization. That’s the beauty of the security implementation of Qubes OS.