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

Created

Updated

Size17 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 Gogoanime and HiAnime this userstyle contains generic cosmetic filters that target various pre-packaged JavaScript players such as JW Player, Video.js, Plyr, and Vidstack Player. You may find that sites not listed below as supported are still affected by these tweaks.

Supported players

Changelog

Release 1.5.11-1.5.15

  • Add hide content rating toggle for Paramount+
  • Add always show volume slider toggle for YouTube
  • Expand YouTube support to include Music and Shorts

Release 1.5.10

  • Tweak YouTube controls to transition quicker

Release 1.5.3-1.5.9

  • Add HiAnime support
  • Update domains for all Gogoanime servers as of 2024-09-30
  • Remove Aniwave (9Anime) support 🪦

Release 1.5.2

  • Add Paramount Plus support (per MF-JEWM's Request)

Release 1.5.1

  • Add Prime Video support (per MF-JEWM's Request)

Release 1.5.0

  • Add HBO Max support (per MF-JEWM's Request)

Release 1.4.8-1.4.9

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

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

Source code has over 10K characters, so we truncated it. You can inspect the full source code on install link.
/*
 * MIT No Attribution
 *
 * Copyright (c) 2023-2024 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.5.16
@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
@var            checkbox showYouTubeVolume "YouTube: Always Show Volume" 1
@var            checkbox hideParamountRating "Paramount: Hide Content Rating" 1
@preprocessor   stylus
==/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 url-prefix("https://www.max.com/a/video/") {
    /* HBO Max */

    /* Remove Top Bar Background and Preview Mask */
    div.tui-play-slate,
    div.max-section-trailer-nav {
        background: none !important;
    }

    /* Instant Controls Transition */
    div.tui-control-bar,
    div.max-section-trailer-nav {
        transition: none !important;
    }

    /* Remove Controls Gradient */
    div.tui-control-bar__background {
        display: none !important;
    }
}

@-moz-document url-prefix("https://www.amazon.com/gp/video/") {
    /* Prime Video */

    /* Remove Player Gradient */
    body > div.dv-player-fullscreen div.atvwebplayersdk-overlays-container > div/*:not(.hide)*/ {
        background: none !important;
    }

    /* Instant Controls Transition */
    body > div.dv-player-fullscreen div.atvwebplayersdk-overlays-container * {
        transition: none !important;
    }

    /* Force Full Opacity for Previews and Subtitles */
    body > div.dv-player-fullscreen div.atvwebplayersdk-overlays-container img,
    body > div.dv-player-fullscreen div.atvwebplayersdk-captions-overlay {
        opacity: 1 !important;
    }
}

@-moz-document url-prefix("https://www.paramountplus.com/shows/video/"), url-prefix("https://www.paramountplus.com/movies/video/"), url-prefix("https://www.paramountplus.com/live-tv/stream/") {
    /* Paramount Plus */

    /* Remove Player Gradients */
    div.top-menu-backplane,
    div.controls-backplane,
    div.top-menu-hint-bg/*,
    div.audio-cc-panel*/,
    div.start-panel-click-overlay, 
    div.start-panel-metadata,
    div.skin-sidebar-plugin {
        background: none !important;
    }

    /* Instant Controls Transition */
    main#main-container * {
        transition: none !important;
    }

    /* Add Dropshadow to Subtitles for Readability w/o Background */
    div.tt-container[style] {
        /* Inspired by Prime Video */
        padding: 10px !important;
        text-shadow: black 2px 2px 2px;
    }

    /* Fullbright Start Button */
    /*
    main#main-container button:not(.over) > svg {
        fill-opacity: 1 !important;
        fill: white !important;
    }
    main#main-container button:not(.over) > svg path {
        stroke: white !important;
    }
    */

    /* Invert Start Button Background Color */
    /* main#main-container button:has(> svg) { */
    button.start-panel-big-play-button {
        background-color: #0008 !important;
    }

    /* Fullbright Controls */
    main#main-container .aa-player-skin {
        color: white !important;
    }
    
    /* Hide Content Rating in Upper-left Corner */
    if hideParamountRating {
        div.rating-manager {
            display: none !important;
        }
    }
}

@-moz-document domain("youtube.com") {
    /* YouTube */

    /* Experimental Controls BG
    .ytp-gradient-bottom {
        background-color: rgba(40, 40, 40, 0.6);
        background-image: none;
        padding-top: 0;
        backdrop-filter: blur(8px);
        height: 48px;
        bottom: 8px;
    }
    */

    /* Experimental Settings Popup BG
    body:has(button.yt-spec-button-shape-next--enable-backdrop-filter-experiment) .ytp-popup {
        backdrop-filter: blur(8px);
        rgba(40, 40, 40, 0.6);
    }
    */

    /* Remove Player Gradients */
    .ytp-gradient-top,
    .ytp-gradient-bottom,
    .YtInlinePlayerControlsDarkenedOverlay {
        display: none !important;
    }

    /* Remove Inline Preview Gradient and Miniplayer Mask */
    .ytp-inline-preview-scrim,
    .ytp-miniplayer-scrim,
    .ytp-videowall-still-info-content,
    ytmusic-player > #song-media-window {
        background: none !important;
    }

    /* Instant Con...

Reviews

No reviews yet.