frontend/src/styles/theme/navigation.scss
konrad f2fcf42639 Favorite lists (#237)
Remove/show favorites namespace if a task/list is the first to being marked as favorite

Add special case to prevent marking an archived list as favorite

Add marking a task as favorite  on namespaces page

Prevent toggling the favorite state for the favorites list

Add method to toggle list favorite in the menu

Add favorite icon to lists in menu

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/frontend#237
2020-09-06 14:20:48 +00:00

441 lines
8.0 KiB
SCSS

.navbar {
z-index: 2;
@each $name, $pair in $colors {
$color: nth($pair, 1);
$color-invert: nth($pair, 2);
&.is-#{$name} {
border-color: darken($color, 5);
}
}
.navbar-dropdown {
box-shadow: $navbar-dropdown-boxed-shadow;
top: 101%;
}
.navbar-brand {
display: flex;
align-items: center;
}
}
.navbar.main-theme {
background: $light-background;
z-index: 5 !important;
justify-content: space-between;
align-items: center;
.title {
margin: 0;
font-size: 1.75rem;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
.navbar-end {
margin-left: 0;
align-items: center;
}
@media screen and (max-width: $desktop) {
display: flex;
justify-content: space-between;
@media screen and (max-width: $tablet) {
.navbar-brand {
display: none;
}
.user {
width: $user-dropdown-width-mobile;
display: flex;
align-items: center;
.dropdown-trigger {
line-height: 1;
.button {
padding: 0 0.25rem;
height: 1rem;
.icon {
width: .5rem;
}
}
}
.username {
display: none;
}
}
}
}
}
.hero {
.navbar {
border: none;
box-shadow: none;
}
@each $name, $pair in $colors {
$color: nth($pair, 1);
$color-invert: nth($pair, 2);
&.is-#{$name} {
.navbar {
box-shadow: none;
}
}
}
@include touch {
.navbar-menu {
box-shadow: none;
}
}
}
.navbar-menu .navbar-item .icon {
margin: 0 0.5em;
}
.navbar {
z-index: 4 !important;
}
.app-container {
.namespace-container {
background: $vikunja-nav-background;
z-index: 6;
color: $vikunja-nav-color;
padding: 0;
transition: all $transition;
position: fixed;
bottom: 0;
top: $navbar-height;
overflow-x: auto;
width: $navbar-width;
padding: 0 0 1em;
left: -147vw;
bottom: 0;
@media screen and (max-width: $tablet) {
top: 0;
width: 70vw;
}
&.is-active {
left: 0;
}
.collapse-menu-button {
font-size: .75rem;
color: $grey;
text-align: center;
display: block;
width: 100%;
margin: $navbar-padding / 2 0 $navbar-padding;
cursor: pointer;
@media screen and (max-width: $tablet) {
display: none;
}
}
.menu {
.menu-label {
font-size: 1em;
font-weight: 700;
font-weight: bold;
font-family: $vikunja-font;
color: $grey;
font-weight: 500;
min-height: 2.5em;
padding-top: $navbar-padding * 0.3;
padding-left: $navbar-padding;
display: block;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.menu-label, .menu-list span.list-menu-link, .menu-list a {
display: flex;
align-items: center;
justify-content: space-between;
cursor: pointer;
.list-menu-title {
overflow: hidden;
text-overflow: ellipsis;
width: 100%;
}
.color-bubble {
display: inline-block;
width: 14px; // Without this, the bubble is only 10.2342357612px wide and seems squashed.
height: 12px;
border-radius: 100%;
margin-right: 4px;
}
.favorite {
margin-left: .25rem;
transition: opacity $transition, color $transition;
opacity: 0;
&:hover {
color: $orange;
}
&.is-favorite {
opacity: 1;
color: $orange;
}
}
&:hover .favorite {
opacity: 1;
}
}
.menu-label {
.color-bubble {
width: 14px !important;
height: 14px !important;
}
.is-archived {
min-width: 85px;
}
}
.nsettings {
float: right;
padding: 10px 0.3em 0;
}
.menu-label, .nsettings, .menu-list span.list-menu-link, .menu-list a {
color: $vikunja-nav-color;
}
.checkinput {
display: none;
}
.checkinput:checked + .more-container {
.menu-list.can-be-hidden {
opacity: 1;
height: auto;
}
}
.checkinput:not(:checked) + .more-container .hidden-hint {
opacity: 1;
height: auto;
}
.hidden-hint {
display: block;
opacity: 0;
height: 0;
text-align: center;
color: $grey;
cursor: pointer;
font-size: 0.8em;
}
.menu-list {
&.can-be-hidden {
transition: all $transition;
height: 0;
overflow: hidden;
opacity: 0;
}
li {
height: 44px;
}
span.list-menu-link, a {
padding: 0.75em .5em 0.75em $navbar-padding * 1.5;
transition: all 0.2s ease;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
width: 100%;
border-left: $vikunja-nav-selected-width solid transparent;
.icon {
color: lighten($vikunja-nav-color, 20);
height: 1rem;
vertical-align: middle;
padding-bottom: 4px;
padding-right: 0.5em;
}
&.router-link-exact-active {
color: $primary;
border-left: $vikunja-nav-selected-width solid darken($primary, 5%);
.icon {
color: $primary;
}
}
&:hover {
background: $white;
border-left: $vikunja-nav-selected-width solid darken($primary, 3%);
}
}
}
.logo {
display: none;
@media screen and (max-width: $tablet) {
display: block;
}
}
}
.top-menu {
margin-top: $navbar-padding / 2;
.menu-list {
li {
font-weight: 500;
font-family: $vikunja-font;
}
span.list-menu-link, a {
padding-left: 2em;
display: inline-block;
}
}
}
}
}
.navbar .user {
span {
font-family: $vikunja-font;
}
.avatar {
-webkit-border-radius: 100%;
-moz-border-radius: 100%;
border-radius: 100%;
vertical-align: middle;
height: 40px;
}
.logout-icon {
color: lighten($black, 10);
.icon {
vertical-align: middle;
}
}
.dropdown-trigger .button {
background: none;
&:focus:not(:active), &:active {
outline: none !important;
-webkit-box-shadow: none !important;
-moz-box-shadow: none !important;
box-shadow: none !important;
}
}
.dropdown-menu {
.dropdown-content {
box-shadow: 0.3em 0.3em 0.8em darken($light, 6);
}
}
}
.menu-hide-button, .menu-show-button {
display: none;
z-index: 31;
font-weight: bold;
font-size: 2em;
color: $dark;
line-height: 1;
&:hover, &:focus {
color: darken($dark, 20);
}
}
.menu-hide-button {
position: fixed;
&:hover, &:focus {
color: $dark;
}
}
.mobile-overlay {
display: none;
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(250, 250, 250, 0.8);
z-index: 5;
opacity: 0;
transition: all $transition;
}
@media screen and (max-width: $tablet) {
.menu-hide-button {
display: block;
top: $hamburger-menu-icon-spacing;
right: $hamburger-menu-icon-spacing;
}
.menu-show-button {
display: block;
margin-left: $hamburger-menu-icon-spacing;
}
.mobile-overlay {
display: block;
opacity: 1;
}
.navbar.is-dark .navbar-brand > .navbar-item {
margin: 0 auto;
}
}
.menu-show-button.is-visible {
display: block;
}
.logout-icon {
margin-right: 0.85em !important;
}
.menu-bottom-link {
width: 100%;
color: $grey-light;
text-align: center;
display: block;
margin: 1em 0;
font-size: .8em;
}