Removes the obscuring black gradients and masks from various video players. Designed primarily for Hulu, only provides basic support for other players.
No More Player Gradients (Hulu, Netflix, YouTube) by hyper

Details
Authorhyper
LicenseMIT No Attribution
Categoryhulu
Created
Updated
Code size31 kB
Code checksume8a26528
Statistics
Learn how we calculate statistics in the FAQ.
Failed to fetch stats.
Description
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, Vidstack Player, and PlayerJS. You may find that sites not listed below as supported are still affected by these tweaks.
Supported players
- Hulu
- Netflix
- YouTube (Music, Shorts)
- Crunchyroll
- Piped
- Invidious
HBOMax- Prime Video
- Paramount+
- HiAnime
- Vid Binge
- Animepahe
Changelog
Release 1.5.22-1.5.33
- Add Vid Binge support
- Add Animepahe support
- Remove Gogoanime support 🪦
- Move experimental inverted controls style for YouTube to drop-down selector
- Add experimental outlined controls style for YouTube to drop-down selector
Release 1.5.16-1.5.21
- Fix outdated class names for desktop YouTube Shorts player
- Add toggle for affecting YouTube thumbnails
- Add experimental inverted controls toggle for YouTube (causes brightness issues in Firefox)
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-2025 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.34
@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 affectYouTubeThumbnails "YouTube: Affect Thumbnails" 1
@var select styleYouTubeControls "YouTube: Overlaid Controls Style" {
"None*": "null",
"Outlined": "{style: outlined}",
"Inverted": "{style: inverted, value: difference}",
"inverted0:^ High Contrast (Default)": "{style: inverted, value: difference}",
"inverted1:^ Low Contrast": "{style: inverted, value: exclusion}"
}
@var checkbox hideYouTubeWarning "YouTube: Hide Ad Disclaimers" 1
@var checkbox hideParamountRating "Paramount Plus: Hide Content Rating" 1
@preprocessor stylus
==/UserStyle== */
/* DEPRECATED: UserCSS Variables
@var checkbox invertYouTubeControls "YouTube: Invert Overlaid Controls" 0
@var select invertStrength "YouTube: Inversion Contrast" ["difference:High*", "exclusion:Low"]
@var checkbox outlineYouTubeControls "YouTube: Outline Overlaid Controls" 0
*/
/* TODO: Remove Any Remaining Masks from "Are you still watching?" Prompts */
Pi = 3.14159
Tau = Pi * 2
/* Translated from SCSS to Stylus: https://stackoverflow.com/a/72876332 */
-hyper-text-outline($color, $offset, $blurRadius = 0, $numShadows = 16)
shadows = ()
for i in 0..$numShadows
angle = Tau * i / $numShadows
x = $offset * cos(angle)
y = $offset * sin(angle)
push(shadows, join(' ', $color x y $blurRadius))
text-shadow unquote(join(', ', shadows)) !important
-hyper-filter-outline($color, $offset, $blurRadius = 0, $numShadows = 16)
shadows = ()
for i in 0..$numShadows
angle = Tau * i / $numShadows
x = $offset * cos(angle)
y = $offset * sin(angle)
push(shadows, "drop-shadow(%s)" % unquote(join(' ', $color x y $blurRadius)))
filter unquote(join(' ', shadows)) !important
-webkit-text-outline()
-webkit-text-stroke arguments
paint-order stroke fill
text-shadow none !important
@-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 */...