FreeTube/src/renderer/components/top-nav/top-nav.scss

211 lines
3.8 KiB
SCSS

@mixin top-nav-is-colored {
@at-root {
.topNavBarColor &,
.topNavBarColor#{&} {
@content;
}
}
}
.topNav {
align-content: center;
align-items: center;
background-color: var(card-bg-color);
box-shadow: 0 2px 1px 0 var(primary-shadow-color);
display: flex;
height: 60px;
left: 0;
line-height: 60px;
position: sticky;
right: 0;
top: 0;
width: 100%;
z-index: 4;
@media only screen and (min-width: 961px) {
display: grid;
grid-template-columns: 1fr 440px 1fr;
}
@include top-nav-is-colored {
background-color: var(primary-color);
}
@media only screen and (max-width: 680px) {
position: fixed;
}
}
.menuIcon {
@media only screen and (max-width: 680px) {
display: none;
}
}
.navIcon {
border-radius: 50%;
color: var(primary-text-color);
cursor: pointer;
font-size: 20px;
height: 1em;
padding: 10px;
transition: background 0.2s ease-out;
width: 1em;
@include top-nav-is-colored {
color: var(text-with-main-color);
&:hover {
background-color: var(primary-color-hover);
}
}
&.fa-arrow-left,
&.fa-arrow-right {
color: gray;
opacity: 0.5;
pointer-events: none;
user-select: none;
}
&:hover {
background-color: var(side-nav-hover-color);
transition: background 0.2s ease-in;
}
&:active {
background-color: var(tertiary-text-color);
transition: background 0.2s ease-in;
@include top-nav-is-colored {
background-color: var(primary-color-active);
}
}
}
.navFilterIcon {
$effect-distance: 10px;
margin-left: $effect-distance;
&.filterChanged {
box-shadow: 0 0 $effect-distance var(primary-color);
@include top-nav-is-colored {
box-shadow: 0 0 $effect-distance var(text-with-main-color);
}
}
}
.side {
align-items: center;
display: flex;
gap: 3px;
margin: 0 6px;
&.profiles {
justify-content: flex-end;
}
.navSearchIcon {
@media only screen and (min-width: 681px) {
display: none;
}
}
.navNewWindowIcon {
@media only screen and (max-width: 680px) {
display: none;
}
}
.logo {
align-items: center;
cursor: pointer;
display: flex;
padding: 0 25px 0 10px;
&:active {
background-color: var(tertiary-text-color);
transition: background 0.2s ease-in;
@include top-nav-is-colored {
background-color: var(primary-color-active);
}
}
.logoIcon {
background-image: var(logo-icon);
background-position: right top;
background-repeat: no-repeat;
background-size: 25px;
height: 25px;
width: 25px;
@include top-nav-is-colored {
background-image: var(logo-icon-bar-color);
}
}
.logoText {
background-image: var(logo-text);
background-position: right top;
background-repeat: no-repeat;
background-size: 100px;
height: 40px;
margin-left: 5px;
position: relative;
top: -3px;
width: 100px;
@media only screen and (max-width: 680px) {
display: none;
}
@include top-nav-is-colored {
background-image: var(logo-text-bar-color);
}
}
}
}
.middle {
flex: 1;
max-width: 440px;
.searchContainer {
align-items: center;
display: flex;
@media only screen and (max-width: 680px) {
background-color: var(side-nav-color);
left: 0;
position: fixed;
right: 0;
top: 60px;
@include top-nav-is-colored {
background-color: var(primary-color-hover);
}
}
.searchInput {
flex: 1;
}
}
.searchFilters {
left: 0;
margin: 10px 20px 20px 220px;
position: absolute;
right: 0;
transition: margin 150ms ease-in-out;
@media only screen and (max-width: 680px) {
left: 0;
margin: 95px 10px 0;
right: 0;
}
}
}