X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fmenu%2Fmenu.component.scss;h=8a8094fbbbc751c321c516d16fb1d987bffc12b3;hb=26300126f99a4a2b8dd1ae501da4a7dcb2e514c7;hp=97ceadde3200d2ec967cc647a7e0b933e5c0a19a;hpb=fada8d75550dc7365f7e18ee1569b9406251d660;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/menu/menu.component.scss b/client/src/app/menu/menu.component.scss index 97ceadde3..8a8094fbb 100644 --- a/client/src/app/menu/menu.component.scss +++ b/client/src/app/menu/menu.component.scss @@ -1,193 +1,367 @@ +@import '_variables'; +@import '_mixins'; + +$menu-link-icon-size: 22px; +$menu-link-icon-margin-right: 18px; + +@mixin menu-link { + display: flex; + align-items: center; + padding-left: $menu-lateral-padding; + color: pvar(--menuForegroundColor); + cursor: pointer; + font-size: 16px; + white-space: normal; + word-break: break-word; + padding-right: 20px; + transition: background-color .1s ease-in-out; + + &.active { + background-color: rgba(255, 255, 255, 0.15); + } + + &:hover, &.focus-visible { + background-color: rgba(255, 255, 255, 0.10); + } + + my-global-icon { + @include apply-svg-color(#808080); + + display: flex; + width: $menu-link-icon-size; + height: $menu-link-icon-size; + margin-right: $menu-link-icon-margin-right; + } +} + +.menu-wrapper { + position: fixed; + height: calc(100vh - #{$header-height}); + padding: 0; + width: $menu-width; + z-index: z(menu); + scrollbar-color: pvar(--actionButtonColor) pvar(--menuBackgroundColor); +} + menu { - background-color: $black-background; + @include ellipsis; + + background-color: pvar(--menuBackgroundColor); + color: pvar(--menuForegroundColor); + + display: flex; + flex-direction: column; + height: 100%; + width: 100%; margin: 0; padding: 0; - height: 100%; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - z-index: 1000; - color: $menu-color; - - .logged-in-block { - height: 100px; - background-color: rgba(255, 255, 255, 0.15); - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 35px; - img { - margin-left: 20px; - margin-right: 10px; + &:focus, &:hover { + overflow-y: auto; + } + + @media not all and (hover: hover) and (pointer: fine) { + overflow-y: auto; + } + + &.is-logged-in { + .panel-block { + margin-bottom: 20px; + } - @include avatar(34px); + .block-title { + margin-bottom: 15px; } + } +} + +.top-menu { + flex-grow: 1; + width: $menu-width; +} + +.logged-in-block { + margin-bottom: 20px; + background-color: rgba(255, 255, 255, 0.15); + + > div:first-child { + height: 80px; + display: flex; + align-items: center; + justify-content: center; .logged-in-info { + @include ellipsis; + flex-grow: 1; - .logged-in-username { + .logged-in-display-name { font-size: 16px; font-weight: $font-semibold; - color: $menu-color; + color: pvar(--menuForegroundColor); cursor: pointer; @include disable-default-a-behaviour; } - .logged-in-email { + .logged-in-username { + @include ellipsis; + font-size: 13px; color: #C6C6C6; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; max-width: 140px; + cursor: pointer; } } .logged-in-more { margin-right: 20px; - .glyphicon { + my-global-icon.dropdown-toggle { cursor: pointer; - font-size: 18px; + + &::after { + border: none; + } + + ::ng-deep { + @include apply-svg-color(pvar(--menuForegroundColor)); + } } } } - .button-block { - margin: 30px 25px 35px 25px; + .logged-in-menu { + display: flex; + flex-direction: column; + align-items: flex-start; + border-top: 1px solid var(--greyForegroundColor); - .login-button, .create-account-button { - font-weight: $font-semibold; - font-size: 15px; - height: $button-height; - line-height: $button-height; + a { + @include menu-link; + @include disable-default-a-behaviour; + + $icon-size: 13px; + $additional-margin: ($menu-link-icon-size - $icon-size) / 2; + + font-size: 14px; width: 100%; - border-radius: 3px; - text-align: center; - color: $menu-color; - display: block; - cursor: pointer; - margin-bottom: 15px; + min-height: 35px; - @include disable-default-a-behaviour; + my-global-icon { + width: $icon-size; + height: $icon-size; - &.login-button { - background-color: $orange-color; - margin-bottom: 10px; + // Keep aligned with other icons + margin-left: $additional-margin; + + &[iconName="channel"] { + margin-top: -2px; + } } - &.create-account-button { - background-color: rgba(255, 255, 255, 0.25); + &.active, + &:hover, + &:focus-visible { + my-global-icon { + @include apply-svg-color(var(--mainBackgroundColor)); + } + } + + &.active { + $border-left-width: 4px; + + font-weight: $font-semibold; + border-left: $border-left-width solid var(--mainColor); + + my-global-icon { + margin-left: $additional-margin - $border-left-width; + } } } } +} + +.login-buttons-block { + margin: 30px 25px 35px 25px; + + .login-button { + @include peertube-button-link; + @include orange-button; + + display: block; + width: 100%; + margin-bottom: 10px; + } + + .create-account-button { + @include peertube-button-link; + + display: block; + width: 100%; + + color: #fff; + background-color: rgba(255, 255, 255, 0.25); + + &:hover { + background-color: rgba(255, 255, 255, 0.28); + } + } +} + +.in-my-library, +.on-instance, +.footer-block { + margin-bottom: 15px; .block-title { text-transform: uppercase; font-weight: $font-bold; // Bold font-size: 13px; margin-bottom: 25px; - } - - .panel-block { - margin-bottom: 45px; margin-left: 26px; - a { - display: flex; - color: $menu-color; - cursor: pointer; - height: 22px; - line-height: 22px; - font-size: 16px; - margin-bottom: 15px; - @include disable-default-a-behaviour; + @include ellipsis; - .icon { - @include icon(22px); + margin-right: 30px; + } - margin-right: 18px; + a { + @include menu-link; + @include disable-default-a-behaviour; - &.icon-videos-trending { - position: relative; - top: -2px; - background-image: url('../../assets/images/menu/trending.svg'); - } + min-height: 40px; - &.icon-videos-recently-added { - width: 23px; - height: 23px; - position: relative; - top: -1px; - background-image: url('../../assets/images/menu/recently-added.svg'); - } + my-global-icon { + &[iconName="playlists"] { + height: 24px; + width: 24px; - &.icon-administration { - width: 23px; - height: 23px; + margin-right: 16px; + } - background-image: url('../../assets/images/menu/administration.svg'); - } + &[iconName="videos"] { + position: relative; + right: -1px; } } } } -@media screen and (max-width: 800px) { - menu { - .logged-in-block { - padding-left: 10px; +.footer { + width: $menu-width; + padding-bottom: 15px; - img { - display: none; - } + .bottom-links { + display: flex; + flex-direction: column; + padding: 0 $menu-lateral-padding; + } - .logged-in-info { - .logged-in-username { - font-size: 14px; - } + $footer-links-base-opacity: .8; - .logged-in-email { - font-size: 11px; - max-width: 120px; - } - } + .footer-links { + &, > div { + display: flex; + flex-wrap: wrap; + } + + a, span[role=button] { + display: inline-block; + text-decoration: none; + color: pvar(--mainBackgroundColor); + opacity: $footer-links-base-opacity; + white-space: nowrap; + font-size: 90%; + font-weight: 500; + line-height: 1.4rem; + margin-right: 8px; + + &.inline-global-icon { + display: inline-flex; + align-items: center; + white-space: nowrap; + height: 1.4rem; - .logged-in-more { - margin-right: 5px; + my-global-icon { + @include apply-svg-color(pvar(--mainBackgroundColor)); - .login-button, .create-account-button { - font-weight: $font-semibold; - font-size: 15px; - height: $button-height; - line-height: $button-height; - width: 190px; + display: flex; + width: auto; + height: 90%; + margin-right: .2rem; } } } + } - .button-block { - margin: 20px 10px 25px 10px; + .footer-copyleft small a { + @include disable-default-a-behaviour; - .login-button, .create-account-button { - font-size: 13px; - } + color: pvar(--mainBackgroundColor); + opacity: $footer-links-base-opacity - .2; + } +} + +.dropdown { + z-index: #{z('menu') + 1} !important; +} + +.dropdown-menu { + width: calc(100% + 40px); +} + +.dropdown-item { + @include dropdown-with-icon-item; + + cursor: pointer; + display: flex; + align-items: center; + + i.glyphicon-menu-right { + opacity: .4; + } + + my-global-icon { + &[iconName="cog"], + &[iconName="sign-out"] { + position: relative; + right: -2px; + height: 20px; + width: 20px; } + } - .panel-block { - margin-bottom: 30px; - margin-left: 10px; + my-global-icon.not-displayed { + display: none; + } - a { - font-size: 14px; + &:hover { + my-global-icon.hover-display-toggle.not-displayed { + display: inherit; + } + my-global-icon.hover-display-toggle { + display: none; + } + } +} - .icon { - margin-right: 10px; - } - } +.more-settings { + text-transform: uppercase; + font-size: 80%; + color: #6c757d; +} + +@media screen and (max-width: $mobile-view) { + .menu-wrapper { + width: 100% !important; + + menu { + overflow-y: auto; } } + + .top-menu, .footer { + width: 100% !important; + } }