Greasy Fork is available in English.
To fix YouTube Watch Flexible Menu Items
/* ==UserStyle==
@name Fix YouTube Watch Flexible Menu Items
@namespace github.com/openstyles/stylus
@version 1.2.1
@description To fix YouTube Watch Flexible Menu Items
@author CY Fung
@license MIT
@preprocessor stylus
@var range menu-flex-width "Menu:Flex:Width" [260, 120, 680, 20, 'px']
@var checkbox hide-menu-icon-text "Hide:Menu:Icon:Text (For:No:Tabview:only)" 1
@var range owner-min-width "Owner:Min:Width (default:disable)" [0, 0, 720, 40, 'px']
@var checkbox margin-fix "Margin Fix" 1
==/UserStyle== */
hideMenuIcon(){
@supports (color: var(--hide-menu-icon-text-by-default-v1)) { /* May 2023 */
ytd-watch-metadata:not([actions-on-separate-line]) ytd-menu-renderer.ytd-watch-metadata[class] [button-next] .yt-spec-button-shape-next--size-m.yt-spec-button-shape-next--icon-leading .yt-spec-button-shape-next__icon {
margin-right: 0;
margin-left: 0;
contain: layout style;
}
ytd-watch-metadata:not([actions-on-separate-line]) ytd-menu-renderer.ytd-watch-metadata[class] [button-next] .yt-spec-button-shape-next--size-m.yt-spec-button-shape-next--icon-leading .yt-spec-button-shape-next__icon+.yt-spec-button-shape-next--button-text-content {
display: none !important;
width: 0 !important;
contain: strict !important;
}
/* http://greasyfork.icu/en/scripts/456108 */
ytd-watch-metadata:not([actions-on-separate-line]) ytd-menu-renderer.ytd-watch-metadata[class] div[name="top_level_translate_btn"] .yt-spec-button-shape-next--size-m.yt-spec-button-shape-next--icon-leading > img:first-child+span:last-child {
display: none !important;
width: 0 !important;
contain: strict !important;
}
ytd-watch-metadata:not([actions-on-separate-line]) ytd-menu-renderer.ytd-watch-metadata[class] div[name="top_level_translate_btn"] .yt-spec-button-shape-next--size-m.yt-spec-button-shape-next--icon-leading > img:first-child:nth-last-child(2) {
margin-right: 0 !important;
margin-left: 0 !important;
contain: layout style;
}
}
@supports (color: var(--hide-menu-icon-text-by-default-v2)) { /* Jul 2023 */
ytd-watch-metadata:not([actions-on-separate-line]) ytd-menu-renderer.ytd-watch-metadata[class] [button-next] .yt-spec-button-shape-next--size-m.yt-spec-button-shape-next--icon-leading .yt-spec-button-shape-next__icon {
margin-right: 0;
margin-left: 0;
/* contain: layout style; */ /* removed in Dec 2023 */
contain: style; /* added in Dec 2023 */
}
ytd-watch-metadata:not([actions-on-separate-line]) ytd-menu-renderer.ytd-watch-metadata[class] [button-next] .yt-spec-button-shape-next--size-m.yt-spec-button-shape-next--icon-leading .yt-spec-button-shape-next__icon+.yt-spec-button-shape-next__button-text-content {
display: none !important;
width: 0 !important;
contain: strict !important;
}
/* http://greasyfork.icu/en/scripts/456108 */
ytd-watch-metadata:not([actions-on-separate-line]) ytd-menu-renderer.ytd-watch-metadata[class] div[name="top_level_translate_btn"] .yt-spec-button-shape-next--size-m.yt-spec-button-shape-next--icon-leading > img:first-child+span:last-child {
display: none !important;
width: 0 !important;
contain: strict !important;
}
ytd-watch-metadata:not([actions-on-separate-line]) ytd-menu-renderer.ytd-watch-metadata[class] div[name="top_level_translate_btn"] .yt-spec-button-shape-next--size-m.yt-spec-button-shape-next--icon-leading > img:first-child:nth-last-child(2) {
margin-right: 0 !important;
margin-left: 0 !important;
/* contain: layout style; */ /* removed in Dec 2023 */
contain: style; /* added in Dec 2023 */
}
}
}
generalRules(){
#primary.ytd-watch-flexy #below ytd-video-owner-renderer.style-scope.ytd-watch-metadata,
#primary.ytd-watch-flexy #below #owner {
flex-basis: 90%;
max-width: intrinsic;
max-width: -moz-max-content;
max-width: -webkit-max-content;
max-width: max-content;
}
@supports (color: var(--fix-tooltips-display)) { /* May 2023 */
#actions-inner tp-yt-paper-tooltip {
white-space: nowrap; /* no multline for super chat donation button */
}
ytd-watch-flexy #actions-inner.ytd-watch-metadata tp-yt-paper-tooltip{
pointer-events: none !important; /* avoid offset due to cursor */
}
}
@supports (color: var(--tabview-fix-menu-icons-sizing)){ /* May 2023 */
ytd-watch-metadata #actions.item.style-scope.ytd-watch-metadata{
justify-content: end !important;
display:flex;
}
html ytd-watch-metadata[flex-menu-enabled] #actions-inner.ytd-watch-metadata {
/*width: auto !important;*/ /* override 100% */
flex-grow: 1;
}
#sponsor-button.style-scope.ytd-video-owner-renderer {
max-width: calc( ( 100% - 40px ) / 2 );
}
#owner:hover #sponsor-button.style-scope.ytd-video-owner-renderer {
max-width: initial;
}
#sponsor-button.style-scope.ytd-video-owner-renderer [button-next] {
max-width: 100%;
}
#subscribe-button.ytd-watch-metadata {
max-width: calc( ( 100% - 40px ) /3 );
}
#owner:hover #subscribe-button.ytd-watch-metadata {
max-width: initial;
}
#subscribe-button.ytd-watch-metadata > ytd-subscribe-button-renderer {
max-width: 100%;
}
#subscribe-button.ytd-watch-metadata > yt-button-renderer,
#subscribe-button.ytd-watch-metadata > ytd-button-renderer,
#subscribe-button.ytd-watch-metadata > ytd-toggle-button-renderer {
max-width: 100%; /* for Firefox */
}
#sponsor-button.style-scope.ytd-video-owner-renderer > yt-button-renderer,
#sponsor-button.style-scope.ytd-video-owner-renderer > ytd-button-renderer,
#sponsor-button.style-scope.ytd-video-owner-renderer > ytd-toggle-button-renderer {
max-width: 100%; /* for Firefox */
}
}
@supports (color: var(--fix-youtube-bugs-menu-options-hidden-after-page-updated)) and (contain: var(--size)){ /* May 2023 */
/* added in 2023.05.10 due to new css rule added by YouTube due to the change in darker dark theme implementation stage */
/* against YouTube css bug - "max-height: 36px" casue buttons disappear after page changing */
html ytd-menu-renderer[has-flexible-items] {
/* padding-top: 1px; */
max-height: initial; /* limiting the height might prohibit the resizing feature */
/* max-height: 100%; */
/* overflow-y: hidden; */
}
ytd-watch-metadata {
--tyt-action-menu-contain: size;
}
ytd-watch-metadata[actions-on-separate-line] {
/* actions-on-separate-line is a new attribute introduced in May 2023 Darker Dark Theme. */
--tyt-action-menu-contain: none;
}
ytd-watch-metadata #owner ~ #actions.item.style-scope.ytd-watch-metadata {
contain: var(--tyt-action-menu-contain); /* follow flex layouting instead of content. content can have larger size */
/* the height will depends on #owner; the width will fill up for flex layout of #top-row */
min-width: var(--menu-min-width, initial) !important;
}
ytd-watch-metadata #owner ~ #actions.item.style-scope.ytd-watch-metadata > #actions-inner {
max-height: 100%; /* the y-overflowed items will be shifted such that the first line will be always positiioned at the top */
overflow: hidden; /* for visual only */ /* cannot do "contain: paint" due to tooltips */
}
ytd-watch-metadata #owner ~ #actions.item.style-scope.ytd-watch-metadata > #actions-inner ytd-menu-renderer.style-scope.ytd-watch-metadata,
ytd-watch-metadata #owner ~ #actions.item.style-scope.ytd-watch-metadata > #actions-inner .top-level-buttons.ytd-menu-renderer {
row-gap: 12px; /* for visual only */ /* second line will be far below the first line such that it is invisible */
}
/* 2023.05.15 */ /* margin-bottom for `.top-level-buttons.ytd-menu-renderer` is not required. */
html ytd-menu-renderer[has-flexible-items][safe-area] .top-level-buttons.ytd-menu-renderer {
margin-bottom: 0; /* override margin-bottom: 4px; */
}
}
}
marginFix(){
@supports (color: var(--fix-single-column-menu-bar-position)){ /* May 2023 */
html ytd-watch-metadata[actions-on-separate-line] #actions.ytd-watch-metadata ytd-menu-renderer.ytd-watch-metadata {
justify-content: flex-end; /* override justify-content: flex-start; */
}
ytd-watch-metadata[actions-on-separate-line] .item.ytd-watch-metadata {
/* override margin-bottom: 12px */
margin-top: 6px;
margin-bottom: 6px;
}
html .item.ytd-watch-metadata {
/* override margin-right: 12px */
/* this is a wrong design to make every .item.ytd-watch-metadata with margin-right. this makes description line becomes not fullwidth */
margin-right: 0px; /* fix description line */
}
#top-row.ytd-watch-metadata {
column-gap: 12px; /* this is the correct way to set gap in flex layout */
}
}
@supports (color: var(--tabview-adjust-margin-for-watch-metadata)){ /* May 2023 */
html .item.ytd-watch-metadata {
/* May 2023 theme - no second line in song title */
margin-top: 8px;
}
html #description.ytd-watch-metadata {
font-size: 1.2rem; /* override font-size: 1.4rem; */
line-height: 1.8rem; /* override line-height: 2rem; */
}
}
}
@-moz-document domain("youtube.com") {
html{
// --menu-min-width: menu-min-width;
--menu-flex-width: menu-flex-width;
--owner-min-width: owner-min-width;
}
ytd-watch-metadata #owner ~ #actions.item.style-scope.ytd-watch-metadata {
flex-basis: var(--menu-flex-width);
min-width: var(--menu-min-width, initial) !important;
}
@keyframes ytdMenuRendererAni {
0% {
display: none;
background-position-x: 3px;
}
100% {
display: flex;
background-position-x: 4px;
animation: none;
}
}
ytd-menu-renderer {
animation: ytdMenuRendererAni 1ms linear 0s 1 normal forwards;
}
if hide-menu-icon-text {
hideMenuIcon();
}
if owner-min-width > 0px {
body #owner.ytd-watch-metadata {
min-width: var(--owner-min-width);
}
}
generalRules();
if margin-fix {
marginFix();
}
}