Old School GitHub (Chrome / Firefox extension / User Style)
Copyright 2021 Dean Attali
Install the Chrome extension or Firefox add-on
GitHub rolled out a brand new UI on June 23, 2020 that introduced a flat, rounded, and more whitespaced design. There are some aspects of the new UI that many people don't like, so this extension reverts most of GitHub to its classic look.
If you enjoy my work (or just want to get special perks!), you should support me on GitHub.
Installation
Go to the Chrome extension store or Firefox add-ons page to instantly install with one click.
Also available as user style, which you can use with a user style manager such as Stylus.
Features
-
Move header tabs to main content area: In the June update, GitHub moved the header buttons ("Code"/"Issues"/"Pull Requests"/etc) to the far left of the page. This became an issue if you have a big wide monitor because those buttons are now very very far from the rest of the page content. If you're on a laptop you probably won't notice the difference.
-
Highlight selected page in header: Prior to the update, the selected page you're on was clearly highlighted. The update made the current page selection much more subtle.
-
Classic-syle buttons and labels: The old buttons had depth and bold font, and the new buttons are flat and look less clickable.
-
Add row separators in file explorer: The file explorer that shows all the files and folders currently has no borders between rows, making it harder to read the file list.
-
Remove circular user images and rounded corners everywhere: The new circular user photos result in unwanted rounding near the corners, cropping significant features from photos that are intended to be square for some users. Many other items were also made very round.
And many other UI fixes such as fix the text width of issue counters and issue label, fix the whitespace of issues, add a slight background to README title, and more.
Limitations
This extension can change the look of existing items on the page, but it cannot change the layout of the page by moving things around.
For example, a common question is whether the repository sidebar can be moved to be above the main code section, like it was previously. Unfortunately that is not possible with this extension.
The reason is because of the strange way GitHub handles internal links: some pages are actual page reloads, but some pages are fully loaded with AJAX. This makes it difficult to use JavaScript to fix any UI issues, and only CSS can be used. If you're on the Code tab and you click on Pull Requests then you don't actually refresh the page, but if you click on Issues then it is a new page. What that means is that after moving from Code to Pull Requests, any JavaScript changes are reverted because large portions of the page body were re-written. Technically it's possible to find ways around that (using event listeners or mutator observers for example) to try and force a re-initialization of the JavaScript when a new page is AJAX-loaded, but the code to achieve that is too complex for this extension.
Screenshots
3, 4, 5: add row separators, use classic buttons, remove circular images
vs
1. Move headers to main content area
vs
2. Highlight selected page in header
vs
Disclaimer
This was written in just a couple hours and does not deal with some of the biggest UI changes like the layout of the sidebar vs the main content. Because GitHub uses AJAX to load many of its pages (like when navigating from the Code page to Pull Requests), I had to make everything use CSS and no JavaScript.
My other extensions
GitHub Diff Navigator - Chrome/Firefox extension that allows you to easily navigate through the changes in a file that has been edited on GitHub.
Google Slides Auto Resize Speaker Notes - the slides thumbnails in the Speaker Notes window of Google Slides are tiny. This extension dynamically resizes the slides to be more readable based on the window size.
To see my other projects, visit https://deanattali.com/projects
When submitting to a browser extension store, remove the img/doc/
folder and generate-user-style.js