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

167 lines
3.8 KiB
Sass

@mixin top-nav-is-colored
@at-root
.topNavBarColor &, .topNavBarColor#{&}
@content
.topNav
position: sticky
z-index: 4
left: 0
right: 0
top: 0
height: 60px
width: 100%
line-height: 60px
background-color: var(--card-bg-color)
-webkit-box-shadow: 0px 2px 1px 0px var(--primary-shadow-color)
display: flex
align-items: center
align-content: center
@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 // the hamburger button
@media only screen and (max-width: 680px)
display: none
.navIcon // all icons in the top navigation
font-size: 20px
padding: 10px
cursor: pointer
color: var(--primary-text-color)
border-radius: 50%
transition: background 0.2s ease-out
width: 1em
height: 1em
&.fa-arrow-left, &.fa-arrow-right
color: gray
opacity: 0.5
pointer-events: none
user-select: none
@include top-nav-is-colored
color: var(--text-with-main-color)
&:hover
background-color: var(--primary-color-hover)
&: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 // Filter icon
$effect-distance: 10px
margin-left: $effect-distance
&.filterChanged // When filter value changed from default
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 // parts of the top nav either side of the search bar
display: flex
gap: 3px
margin: 0 6px
align-items: center
&.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 // parts that make up the logo
display: flex
align-items: center
padding: 0px 25px 0px 10px
cursor: pointer
&: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-repeat: no-repeat
background-position: right top
background-size: 25px
width: 25px
height: 25px
@include top-nav-is-colored
background-image: var(--logo-icon-bar-color)
.logoText
margin-left: 5px
position: relative
top: -3px
background-image: var(--logo-text)
background-repeat: no-repeat
background-position: right top
background-size: 100px
width: 100px
height: 40px
@media only screen and (max-width: 680px)
display: none
@include top-nav-is-colored
background-image: var(--logo-text-bar-color)
.middle // the middle part of the top nav which contains the search bar
max-width: 440px
flex: 1
.searchContainer
display: flex
align-items: center
@media only screen and (max-width: 680px)
position: fixed
left: 0
right: 0
top: 60px
background-color: var(--side-nav-color)
@include top-nav-is-colored
background-color: var(--primary-color-hover)
.searchInput
flex: 1
.searchFilters
position: absolute
left: 0
right: 0
margin: 10px 20px 20px 220px
transition: margin 150ms ease-in-out
@media only screen and (max-width: 680px)
left: 0
right: 0
margin: 95px 10px 0px