Skip to content

Instantly share code, notes, and snippets.

@namorzyny
Last active February 17, 2025 01:05
Show Gist options
  • 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 2025.2.17
// @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',
},
},
{
selector: 'div[data-test-id="mail-right-rail"]',
properties: {
display: 'none !important',
},
},
{
selector: 'div[data-test-id="virtual-list"] >ul >li',
properties: {
top: 'unset !important',
position: 'unset !important',
},
},
{
selector: '#Atom a[data-test-id^="pencil-ad-messageList"]',
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