// 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 "../ds/typography.scss" as *; @use "../ds/colors.scss" as *; @use "../ds/spacing.scss" as *; @use "common/refactor/common-refactor.scss" as *; @use "common/refactor/common-dashboard"; @use "../ds/typography.scss" as t; @import "../ds/_borders.scss"; // 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-x: hidden; overflow-y: auto; } .separator { height: var(--sp-xxs); width: 94%; margin-left: 3%; } .overflow-separator { border-bottom: $b-1 solid var(--color-background-quaternary); } .sidebar-section-title { @include use-typography("headline-small"); padding: 0 var(--sp-s) var(--sp-s) var(--sp-xxl); color: var(--color-foreground-secondary); } // 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: auto; text-align: left; color: var(--menu-foreground-color-hover); } .team-text-with-icon { display: flex; gap: $s-8; max-width: 100%; overflow: hidden; } // 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(--color-foreground-primary); 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; border-top: solid $s-1 var(--color-background-quaternary); } .item-with-icon { display: grid; grid-template-columns: auto 1fr; gap: $s-8; } .exit-icon { @extend .button-icon; stroke: var(--icon-foreground); } .upgrade-plan-section { @include buttonStyle; display: flex; justify-content: space-between; border: $b-1 solid var(--color-background-quaternary); border-radius: var(--sp-s); padding: var(--sp-m); margin: var(--sp-m); color: var(--color-foreground-secondary); cursor: pointer; } .penpot-free { @include t.use-typography("body-medium"); display: flex; flex-direction: column; text-align: left; } .no-limits { @include t.use-typography("body-small"); } .power-up { @include t.use-typography("body-small"); color: var(--color-accent-tertiary); }