misuzu/assets/less/classes/header.less

250 lines
6 KiB
Text

.header {
--header-height: 70px;
flex: 0 0 auto;
&__background {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
mask-image: linear-gradient(0deg, transparent 0, var(--background-colour) var(--header-height));
-webkit-mask-image: linear-gradient(0deg, transparent 0, var(--background-colour) var(--header-height));
background: var(--background-pattern);
background-color: var(--header-accent-colour);
background-blend-mode: multiply;
}
&__wrapper {
margin: 0 auto;
display: flex;
align-items: center;
padding: 4px;
max-width: var(--site-max-width);
height: var(--header-height);
transition: height .2s;
@media (max-width: @site-mobile-width) {
flex-direction: column;
height: 100%;
}
}
@media (max-width: @site-mobile-width) {
&__icons {
display: flex;
justify-content: space-between;
width: 100%;
}
}
&__icon {
display: none;
cursor: pointer;
width: 40px;
height: 40px;
&--menu {
font-size: 3em;
justify-content: center;
align-items: center;
}
@media (max-width: @site-mobile-width) {
display: inline-flex;
}
}
&__logo {
flex: 0 0 auto;
color: inherit;
text-decoration: none;
cursor: pointer;
display: block;
background: url('/images/logos/imouto-default.png') no-repeat center / cover;
width: 60px;
height: 60px;
font-size: 0;
&--manage {
background-image: url('/images/logos/imouto-broom.png');
}
@media (max-width: @site-mobile-width) {
width: 40px;
height: 40px;
}
}
&__menu {
flex: 1 1 auto;
margin: 0 6px;
list-style: none;
display: flex;
&-toggle {
display: none;
}
@media (max-width: @site-mobile-width) {
display: none;
font-size: 1.6em;
line-height: 1.5em;
margin-top: 4px;
width: 100%;
background: var(--header-accent-colour);
&-toggle:checked ~ .header__menu {
display: block;
}
&__item:not(:last-child) {
border-bottom: 1px solid var(--header-accent-colour);
}
&__link {
width: 100%;
display: block;
padding: 4px 8px;
color: inherit;
text-decoration: none;
}
}
@media (min-width: @site-mobile-width) {
&__item {
text-align: center;
transition: background-color .2s;
&:hover,
&:active,
&:focus {
background-color: var(--header-accent-colour);
.header__submenu {
transform: scaleY(1);
}
}
}
&__link {
font-size: 1.2em;
color: inherit;
text-decoration: none;
display: block;
padding: 6px 4px;
min-width: 100px;
cursor: pointer;
}
}
}
&__submenu {
list-style: none;
display: block;
@media (max-width: @site-mobile-width) {
&__link {
padding: 2px 16px;
display: block;
width: 100%;
color: inherit;
text-decoration: none;
}
}
@media (min-width: @site-mobile-width) {
position: absolute; // floating
transform: scaleY(0);
transform-origin: center top 0;
background: var(--header-accent-colour);
overflow: hidden;
z-index: 100;
text-align: left;
box-shadow: 0 1px 2px var(--header-accent-colour);
transition: transform .2s;
&:hover,
&:focus {
transform: scaleY(1);
}
&__link {
color: inherit;
text-decoration: none;
display: block;
padding: 2px 6px;
min-width: 100px;
}
}
}
&__user {
flex: 0 0 auto;
display: flex;
order: 3;
align-items: center;
&-toggle {
display: none;
}
@media (max-width: @site-mobile-width) {
display: none;
width: 100%;
margin-top: 4px;
&-toggle:checked ~ .header__user {
display: flex;
}
}
&__avatar {
width: 60px;
height: 60px;
margin-left: 5px;
transition: box-shadow .2s;
box-shadow: 0 0 4px #111;
&:hover,
&:active,
&:focus {
box-shadow: 0 0 4px var(--header-accent-colour);
}
@media (max-width: @site-mobile-width) {
display: none;
}
}
&__button {
margin: 2px;
color: inherit;
text-decoration: none;
font-size: 1.5em;
line-height: 1.7em;
width: 32px;
height: 32px;
display: inline-flex;
align-items: center;
justify-content: center;
transition: background-color .2s;
border-radius: 4px;
&:hover,
&:focus {
background-color: fade(#fff, 20%);
}
&:active {
background-color: fade(#fff, 10%);
}
@media (max-width: @site-mobile-width) {
width: 40px;
height: 40px;
font-size: 2em;
}
}
}
}