Skip to content

Instantly share code, notes, and snippets.

@Namorzyny
Last active August 18, 2022 04:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Namorzyny/2829cf5e45fd75e6d1d539ce6975a4a7 to your computer and use it in GitHub Desktop.
Save Namorzyny/2829cf5e45fd75e6d1d539ce6975a4a7 to your computer and use it in GitHub Desktop.
Yahoo Mail Optimizer
// ==UserScript==
// @name Yahoo Mail Optimizer
// @namespace github.com/namorzyny
// @version 2022.7.29
// @match https://mail.yahoo.com/*
// @run-at document-start
// @grant none
// @author namorzyny
// ==/UserScript==
(() => {
const STYLE_LIST = [
{
selector: 'ul[aria-label="Message list"]',
properties: {
transform: 'translateY(-80px)',
},
},
{
selector: 'div[aria-describedby="adblock-delay-dismiss-cue"]',
properties: {
display: 'none !important',
},
},
{
selector: 'div[data-test-id="right-rail-ad"]',
properties: {
display: 'none !important',
},
},
{
selector: 'div[data-test-id="mail-right-rail"]',
properties: {
'background-color': 'white !important',
},
},
{
selector: 'div[data-test-id="mail-reader-toolbar"]',
properties: {
display: 'flex',
},
},
{
selector: 'div[data-test-id="message-toolbar"]',
properties: {
flex: 1,
},
},
{
selector: 'div[data-test-id="message-toolbar"] > div > div',
properties: {
'flex-basis': 'unset !important',
},
},
{
selector: 'div[data-test-id="efv-toolbar"]',
properties: {
display: 'none !important',
},
},
{
selector: 'div[data-test-id="video-container"]',
properties: {
display: 'none !important',
},
},
{
selector: 'div[data-test-id="efv-subheader"]',
properties: {
display: 'none !important',
},
},
{
selector: 'div[data-test-id="right-rail-hidead-btn"]',
properties: {
display: 'none !important',
},
},
];
function insertCSS(styles) {
const css = [];
styles.forEach(item => {
css.push(`${item.selector} {`);
Object.keys(item.properties).forEach(property => {
css.push(`${property}: ${item.properties[property]};`);
});
css.push('}');
});
const element = document.createElement('style');
element.innerHTML = css.join('\n');
document.head.append(element);
}
window.addEventListener('DOMContentLoaded', () => insertCSS(STYLE_LIST), {once: true});
window.addEventListener('load', () => {
const propertiesBar = document.querySelector('div[data-test-id="comms-properties-bar"]');
const readerToolbar = document.querySelector('div[data-test-id="mail-reader-toolbar"]');
readerToolbar.append(propertiesBar);
}, {once: true});
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment