mirror of
https://github.com/penpot/penpot.git
synced 2026-05-16 21:43:40 +00:00
385 lines
7.1 KiB
SCSS
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);
|
|
}
|