Skip to content

No More Player Gradients (Hulu, Netflix, YouTube) by hyper

Screenshot of No More Player Gradients (Hulu, Netflix, YouTube)

Details

Authorhyper

LicenseMIT No Attribution

Categoryhulu, netflix, youtube, 9anime, gogoanime, crunchyroll, piped, aniwave, invidious

Created

Updated

Size10 kB

Statistics

Learn how we calculate statistics in the FAQ.

Failed to fetch stats.

Description

Removes the obscuring black gradients and masks from various video players. Designed primarily for Hulu, only provides basic support for other players.

Notes

In order to support players on multi-server sites like AniWave and Gogoanime this userstyle contains generic cosmetic filters that target various pre-packaged JavaScript players such as JW Player, Video.js, and Plyr. You may find that sites not listed below as supported are still affected by these tweaks; one such example would be FMovies.

Supported players

Changelog

Release 1.4.7

  • Update domains for all AniWave (9Anime) and Gogoanime servers as of 2024-01-09

Release 1.4.6

  • Add domain regular expression for Piped and Invidious that works across all instances

Release 1.4.3-1.4.5

  • Add Invidious YouTube front-end support
  • Tweak Piped, Invidious, and JW Player controls to transition quicker

Release 1.4.2

  • Update domains for all AniWave (9Anime) and Gogoanime servers as of 2023-10-15

Release 1.4.0-1.4.1

  • Add Piped YouTube front-end support
  • Tweak domains to be more specific
  • Tweak Netflix controls to transition quicker

Release 1.3.3

  • Tweak Netflix player overlay text to be uniformly white and opaque

Release 1.3.2

  • Remove gradient from new inline video previews on YouTube

Release 1.3.1

  • Update domains for all 9Anime and Gogoanime servers as of 2023-06-09

Release 1.3.0

  • Add Crunchyroll support

Source code

/*
 * MIT No Attribution
 *
 * Copyright (c) 2023 Hyper
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this
 * software and associated documentation files (the "Software"), to deal in the Software
 * without restriction, including without limitation the rights to use, copy, modify,
 * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
 * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

/* ==UserStyle==
@name           No More Player Gradients (Hulu, Netflix, YouTube)
@namespace      userstyles.world/user/hyper
@version        1.4.7
@description    Removes the obscuring black gradients and masks from various video players. Designed primarily for Hulu, only provides basic support for other players.
@author         Hyper
@homepageURL    https://userstyles.world/style/7779
@license        MIT-0
==/UserStyle== */

/* TODO: Remove Any Remaining Masks from "Are you still watching?" Prompts */

@-moz-document url-prefix("https://www.hulu.com/watch/") {
    /* Hulu */
    
    /* Remove Player Gradients and Thumbnail Mask from Timeline Preview */
    .ControlScrim__gradient,
    .FliptrayWrapper::Before,
    .Thumbnail__mask {
        display: none;
    }

    /* Adjust Text Color to Be Uniformly White */
    body.night {
        --text--secondary: var(--white);
        --text--alternate: var(--white);
        /* --button-text--primary: var(--white); */
        --live-guide-text: var(--white);
        --notification-banner-text: var(--white);
        /* --geo-prompt-modal-button-text: var(--white); */
    }
    body.night .PlayerMetadata__subTitle,
    body.night .PlayerMetadata__description {
        color: var(--white)
    }

    /* Make the "Up Next" Metadata Appear the Same as the "On Now" Metadata */
    body.night .PlayerMetadata--collapsed .PlayerMetadata__hitRegion {
        opacity: 1;
    }
    body.night .UpNextMetadata.PlayerMetadata--collapsed .PlayerMetadata__hitRegion .PlayerMetadata__caret {
        opacity: 0.4;
    }
    body.night .UpNextMetadata.PlayerMetadata--collapsed .PlayerMetadata__hitRegion:hover .PlayerMetadata__caret {
        opacity: 1;
    }

    /* DEPRECATED: Enhance Readability of Text via Outline or Drop Shadow */
    body.night .hulu-player-app {
        /* https://dev.to/codingdudecom/everything-about-stroke-text-in-css-561i */
        --stroke-width: 2px;
        --stroke-color: var(--nm-faux-black);
        /* Outline
        text-shadow: calc(var(--stroke-width) * 1) calc(var(--stroke-width) * 0) 0 var(--stroke-color),
        calc(var(--stroke-width) * 0.9239) calc(var(--stroke-width) * 0.3827) 0 var(--stroke-color),
        calc(var(--stroke-width) * 0.7071) calc(var(--stroke-width) * 0.7071) 0 var(--stroke-color),
        calc(var(--stroke-width) * 0.3827) calc(var(--stroke-width) * 0.9239) 0 var(--stroke-color),
        calc(var(--stroke-width) * 0) calc(var(--stroke-width) * 1) 0 var(--stroke-color),
        calc(var(--stroke-width) * -0.3827) calc(var(--stroke-width) * 0.9239) 0 var(--stroke-color),
        calc(var(--stroke-width) * -0.7071) calc(var(--stroke-width) * 0.7071) 0 var(--stroke-color),
        calc(var(--stroke-width) * -0.9239) calc(var(--stroke-width) * 0.3827) 0 var(--stroke-color),
        calc(var(--stroke-width) * -1) calc(var(--stroke-width) * 0) 0 var(--stroke-color),
        calc(var(--stroke-width) * -0.9239) calc(var(--stroke-width) * -0.3827) 0 var(--stroke-color),
        calc(var(--stroke-width) * -0.7071) calc(var(--stroke-width) * -0.7071) 0 var(--stroke-color),
        calc(var(--stroke-width) * -0.3827) calc(var(--stroke-width) * -0.9239) 0 var(--stroke-color),
        calc(var(--stroke-width) * 0) calc(var(--stroke-width) * -1) 0 var(--stroke-color),
        calc(var(--stroke-width) * 0.3827) calc(var(--stroke-width) * -0.9239) 0 var(--stroke-color),
        calc(var(--stroke-width) * 0.7071) calc(var(--stroke-width) * -0.7071) 0 var(--stroke-color),
        calc(var(--stroke-width) * 0.9239) calc(var(--stroke-width) * -0.3827) 0 var(--stroke-color);
        */
        /* 2px Dropshadow
        text-shadow: var(--stroke-width) var(--stroke-width) 0 var(--stroke-color),
        calc(var(--stroke-width) * 0.5) calc(var(--stroke-width) * 0.5) 0 var(--stroke-color);
        */
    }
    body.night .hulu-player-app .controls__setting-panel {
        /* Not in the Settings Menu
        text-shadow: none;
        */
    }
    
    /* Make the Player Controls Fade In and Out Instantaneously */
    .ControlsContainer__transition {
        /*
        transition-duration: 0s;
        transition-delay: 0s;
        */
        transition-property: none !important;
    }
}

@-moz-document url-prefix("https://www.netflix.com/watch/") {
    /* Netflix */
    
    /* Remove Player Gradients */
    .watch-video--adsInfo-container,
    .watch-video--back-container,
    .watch-video--flag-container,
    .watch-video--bottom-controls-container {
        background-image: none !important;
    }

    /* Remove Mask from Idle Overlay */
    .watch-video--evidence-overlay-container {
        background-color: transparent !important;
    }

    /* Whiten Hard to Read Grey Text */
    div.watch-video--evidence-overlay-container [data-uia="evidence-overlay"] * {
        color: white !important;
    }
    
    /* Full Opacity Advisory Text */
    div.advisory-content [data-uia="advisory-body"] {
        opacity: 1 !important;
    }
    
    /* Instant Controls Transition */
    div.watch-video--player-view [data-uia="player"] [data-uia="video-canvas"] {
        transition-property: none !important;
    }
}

@-moz-document domain("youtube.com") {
    /* YouTube */
    
    /* Remove Player Gradients */
    .ytp-gradient-top,
    .ytp-gradient-bottom {
        display: none !important;
    }
    
    /* Remove Inline Preview Gradient and Miniplayer Mask */
    .ytp-inline-preview-scrim,
    .ytp-miniplayer-scrim {
        background: none !important;
    }
}

@-moz-document domain("filemoon.sx"), domain("mp4upload.com"), domain("mcloud.bz"), domain("vidplay.online"), domain("embtaku.pro"), domain("awish.pro"), domain("mixdrop.co"), domain("dood.wf"), domain("alions.pro") {
    /* Ya'll Know What's Good ( ͡° ͜ʖ ͡°) */
    
    .jwplayer .jw-controls-backdrop,
    .video-js .vjs-logo.vjs-logo-min, /* mp4upload.com */
    .jwplayer .jw-logo.jw-logo-top-right { /* streamsss.net */
        display: none !important;
    }
    
    
    
    .jwplayer.jw-skin-netflix.jw-state-paused .jw-controls, /* vidstream.pro mcloud.to */
    .video-js .vjs-control-bar,
    .jwplayer.jw-state-idle .jw-controls { /* filemoon.sx */
        background-color: transparent !important;
    }
    
    .plyr--video .plyr__controls, /* streamtape.com */
    .plyr .plyr-dock-text, /* streamtape.com */
    body > div#loading, /* fembed9hd.com */
    body > div.title, /* mixdrop.co */
    .video-js.vjs-has-started.vjs-seeking .vjs-text-track-display, /* dood.wf */
    .video-js.vjs-has-started.vjs-user-active .vjs-text-track-display { /* dood.wf */
        background: none !important;
    }
    
    /* Instant Controls Transition */
    .jwplayer .jw-controlbar { /* vidplay.site */
        transition-property: none !important;
    }
}

@-moz-document url("https://static.crunchyroll.com/vilos-v2/web/vilos/player.html") {
    /* Crunchyroll */
    
    /* Remove Player Gradients */
    div#vilosRoot > div#velocity-controls-package [style^="background-color: rgba"],
    div#vilosRoot > div#velocity-controls-package [style^="background-image: linear-gradient"] {
        background: none !important;
    }
    
    /* Full Opacity Preview */
    div#vilosRoot > div#velocity-overlay-package [style^="opacity: 0."] {
        opacity: 1 !important;
    }
}

/*
@-moz-document url("https://piped.video/watch?v=") {
    /* Piped */
    
    /* Remove Player Gradient */
    /*
    div.shaka-scrim-container {
        background-image: none !important;
    }
    */
    
    /* Instant Controls Transition */
    /*
    div.shaka-range-container.shaka-seek-bar-container,
    div.shaka-controls-button-panel.shaka-show-controls-on-mouse-over {
        transition-property: none !important;
    }
}
*/

/*
@-moz-document url("https://invidious.io.lol/watch?v=") {
    /* Invidious */
    
    /* Remove Player Gradient and Instant Controls Transition */
    /*
    div.vjs-control-bar {
        background: none !important;
        transition-property: none !important;
    }
}
*/

@-moz-document regexp("^https?:\\/\\/(?!(?:www\\.)?youtube\\.com)[^/]+\\/watch\\?v=[^/]+$") {
    /* YouTube-compatible Watch Pages */
    
    
    /* Piped */
    
    /* Remove Player Gradient */
    div.shaka-scrim-container {
        background-image: none !important;
    }
    
    /* Instant Controls Transition */
    div.shaka-range-container.shaka-seek-bar-container,
    div.shaka-controls-button-panel.shaka-show-controls-on-mouse-over {
        transition-property: none !important;
    }
    
    
    /* Invidious */
    
    /* Remove Player Gradient and Instant Controls Transition */
    div.vjs-control-bar {
        background: none !important;
        transition-property: none !important;
    }
}

Reviews

No reviews yet.