2024-06-18 10:31:39 +02:00

385 lines
7.1 KiB
SCSS

// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
//
// Copyright (c) KALEIDOS INC
@use "common/refactor/common-refactor.scss" as *;
@use "common/refactor/common-dashboard";
// SIDEBAR COMPONENT
.dashboard-sidebar {
grid-row: 1 / span 2;
grid-column: 1 / span 2;
display: grid;
grid-template-rows: 1fr auto;
height: 100%;
width: 100%;
padding: $s-16 0 0 0;
margin: 0 $s-16 0 0;
border-right: $s-1 solid var(--panel-border-color);
background-color: var(--panel-background-color);
z-index: $z-index-1;
}
//SIDEBAR CONTENT COMPONENT
.sidebar-content {
display: grid;
grid-template-rows: auto auto auto auto 1fr;
gap: $s-24;
height: 100%;
padding: 0;
overflow-y: auto;
}
// SIDEBAR TEAM SWITCH
.sidebar-team-switch {
position: relative;
margin: $s-4 $s-16;
}
.switch-content {
display: grid;
grid-template-columns: 1fr auto;
align-items: center;
height: $s-48;
width: 100%;
border-radius: $br-8;
border: $s-1 solid var(--menu-background-color);
background-color: var(--menu-background-color);
}
.current-team {
@include buttonStyle;
display: grid;
align-items: center;
grid-template-columns: 1fr auto;
gap: $s-8;
height: 100%;
padding: 0 $s-12;
}
.team-name {
display: grid;
align-items: center;
grid-template-columns: auto 1fr;
gap: $s-12;
height: $s-40;
}
.team-text {
@include textEllipsis;
@include smallTitleTipography;
width: $s-144;
text-align: left;
color: var(--menu-foreground-color-hover);
}
// This icon still use the old svg
.penpot-icon {
@include flexCenter;
svg {
fill: var(--icon-foreground);
width: $s-24;
height: $s-24;
}
}
.team-picture {
@include flexCenter;
border-radius: 50%;
height: $s-24;
width: $s-24;
}
.arrow-icon {
@extend .button-icon;
transform: rotate(90deg);
stroke: var(--icon-foreground);
}
.switch-options {
@include buttonStyle;
@include flexCenter;
max-width: $s-24;
min-width: $s-28;
height: 100%;
border-left: $s-1 solid var(--panel-background-color);
background-color: transparent;
}
.menu-icon {
@extend .button-icon;
stroke: var(--icon-foreground);
}
// DROPDOWNS
.teams-dropdown {
@extend .menu-dropdown;
left: 0;
top: $s-52;
height: fit-content;
max-height: $s-480;
min-width: $s-248;
width: 100%;
overflow-x: hidden;
overflow-y: auto;
}
.team-dropdown-item {
@extend .menu-item-base;
display: grid;
grid-template-columns: $s-24 1fr auto;
gap: $s-8;
height: $s-40;
}
.action {
--sidebar-action-icon-color: var(--icon-foreground);
--sidebar-icon-backgroun-color: var(--color-background-secondary);
&:hover {
--sidebar-action-icon-color: var(--color-background-secondary);
--sidebar-icon-backgroun-color: var(--color-accent-primary);
}
}
.icon-wrapper {
@include flexCenter;
width: $s-24;
height: $s-24;
margin-right: $s-12;
border-radius: 50%;
background-color: var(--sidebar-icon-backgroun-color);
}
.add-icon {
@extend .button-icon;
width: $s-24;
height: $s-24;
stroke: var(--sidebar-action-icon-color);
}
.team-separator {
border-top: $s-1 solid var(--dropdown-separator-color);
margin: 0;
}
.tick-icon {
@extend .button-icon-small;
stroke: var(--icon-foreground);
}
.options-dropdown {
@extend .menu-dropdown;
right: $s-2;
top: $s-52;
max-height: $s-480;
&:not(.teams-dropdown) {
min-width: $s-160;
}
}
.team-options-item {
@extend .menu-item-base;
height: $s-40;
}
.team-option-separator {
height: $s-1;
margin: 0;
border-top: $s-1 solid var(--dropdown-separator-color);
}
// Sections
.sidebar-nav {
margin: 0;
user-select: none;
overflow: none;
}
.pinned-projects {
overflow-y: auto;
}
.sidebar-nav-item {
cursor: pointer;
&:hover {
background-color: var(--sidebar-element-background-color-hover);
span {
color: var(--sidebar-element-foreground-color-hover);
}
}
&.current {
background-color: var(--sidebar-element-background-color-selected);
.element-title {
color: var(--sidebar-element-foreground-color-selected);
}
}
}
.recent-projects svg {
stroke: var(--main-icon-foreground);
}
.sidebar-link {
display: block;
padding: $s-8 $s-8 $s-8 $s-24;
font-weight: $fw400;
width: 100%;
&:hover {
text-decoration: none;
}
}
.project-element {
padding: $s-8 $s-8 $s-8 $s-24;
}
.element-title {
@include textEllipsis;
width: $s-256;
color: var(--sidebar-element-foreground-color);
font-size: $fs-14;
}
// Pinned projects
.sidebar-empty-placeholder {
padding: $s-12;
color: var(--empty-message-foreground-color);
display: flex;
align-items: center;
}
.pin-icon {
@extend .button-icon-small;
stroke: var(--icon-foreground);
margin: 0 $s-12;
}
.empty-text {
font-size: $fs-12;
}
// Search
.sidebar-search {
position: relative;
display: grid;
grid-template-columns: 1fr;
align-items: center;
border: $s-1 solid transparent;
margin: 0 $s-16;
border-radius: $br-8;
background-color: var(--search-bar-input-background-color);
}
.input-text {
@include smallTitleTipography;
height: $s-40;
width: 100%;
padding: $s-6 $s-12;
margin: 0;
border: transparent;
border-radius: $br-8;
background: transparent;
color: var(--search-bar-foreground-color);
&:focus,
&:focus-within,
&:focus-visible {
outline: none;
border: $s-1 solid var(--search-bar-input-border-color-focus);
}
::placeholder {
color: var(--search-bar-placeholder-foreground-color);
}
}
.search-btn {
@include buttonStyle;
@include flexCenter;
position: absolute;
right: 0;
height: $s-24;
width: $s-32;
padding: 0 $s-8;
}
.search-icon,
.clear-search-btn {
@extend .button-icon;
--sidebar-search-foreground-color: var(--search-bar-icon-foreground-color);
stroke: var(--sidebar-search-foreground-color);
}
.clear-search-btn:hover {
--sidebar-search-foreground-color: var(--search-bar-icon-foreground-color-hover);
}
// Profile
.profile-section {
position: relative;
display: grid;
grid-template-columns: 1fr auto;
padding: $s-12 $s-16;
border-top: $s-1 solid var(--panel-border-color);
background-color: var(--profile-section-background-color);
cursor: pointer;
}
.profile {
@include buttonStyle;
display: grid;
grid-template-columns: auto 1fr;
gap: $s-8;
cursor: pointer;
text-align: left;
}
.profile-fullname {
@include smallTitleTipography;
@include textEllipsis;
align-self: center;
max-width: $s-160;
color: var(--profile-foreground-color);
}
.profile-img {
height: $s-40;
width: $s-40;
border-radius: $br-circle;
}
.profile-dropdown {
@extend .menu-dropdown;
left: $s-16;
bottom: $s-72;
min-width: $s-252;
// TODO ADD animation fadeInUp
}
.profile-dropdown-item {
@extend .menu-item-base;
@include smallTitleTipography;
height: $s-40;
padding: $s-8 $s-16;
}
.profile-separator {
height: $s-6;
}
.item-with-icon {
display: grid;
grid-template-columns: auto 1fr;
gap: $s-8;
}
.exit-icon {
@extend .button-icon;
stroke: var(--icon-foreground);
}