0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-01-24 07:29:08 -05:00
penpot/frontend/resources/styles/main/partials/workspace.scss

464 lines
7.9 KiB
SCSS
Raw Normal View History

2016-03-01 20:39:13 +02:00
// 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
2016-03-01 20:39:13 +02:00
2022-01-26 15:16:21 +01:00
$width-left-toolbar: 48px;
$width-settings-bar: 256px;
$width-settings-bar-min: 255px;
$width-settings-bar-max: 500px;
$height-palette: 79px;
$height-palette-min: 54px;
$height-palette-max: 80px;
#workspace {
2022-01-26 15:16:21 +01:00
width: 100vw;
height: 100%;
user-select: none;
background-color: $color-canvas;
2022-01-26 15:16:21 +01:00
display: grid;
2022-02-02 18:08:47 +01:00
grid-template-areas:
"header header header header"
"toolbar left-sidebar viewport right-sidebar"
"toolbar left-sidebar color-palette right-sidebar";
2022-01-26 15:16:21 +01:00
grid-template-rows: auto 1fr auto;
grid-template-columns: auto auto 1fr auto;
.workspace-header {
grid-area: header;
height: 48px;
}
.left-toolbar {
grid-area: toolbar;
width: $width-left-toolbar;
2023-02-07 09:45:30 +01:00
overflow-y: auto;
overflow-x: hidden;
2022-01-26 15:16:21 +01:00
}
.settings-bar.settings-bar-left {
min-width: $width-settings-bar;
max-width: 500px;
width: var(--width, $width-settings-bar);
grid-area: left-sidebar;
}
.settings-bar.settings-bar-right {
2023-06-12 18:14:24 +02:00
width: var(--width, $width-settings-bar);
2022-01-26 15:16:21 +01:00
grid-area: right-sidebar;
2022-11-29 14:03:08 +01:00
2023-06-12 18:14:24 +02:00
&.not-expand {
max-width: $width-settings-bar;
2022-11-29 14:03:08 +01:00
}
2022-01-26 15:16:21 +01:00
}
.workspace-loader {
grid-area: viewport;
}
.workspace-content {
grid-area: viewport;
}
.color-palette {
grid-area: color-palette;
max-height: $height-palette-max;
height: var(--height, $height-palette);
}
}
.workspace-context-menu {
2020-03-20 10:57:10 +01:00
background-color: $color-white;
border-radius: $br3;
2020-03-20 10:57:10 +01:00
box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.25);
left: 740px;
position: absolute;
top: 40px;
2020-10-19 13:33:34 +02:00
width: 240px;
z-index: 12;
li {
2020-03-20 10:57:10 +01:00
align-items: center;
font-size: $fs14;
2021-10-05 10:16:44 +02:00
padding: $size-1 $size-4;
cursor: pointer;
display: flex;
justify-content: space-between;
&.separator {
border-top: 1px solid $color-gray-10;
padding: 0px;
margin: 2px;
}
span {
2020-03-20 10:57:10 +01:00
color: $color-gray-60;
}
span.shortcut {
color: $color-gray-20;
font-size: $fs12;
}
&:hover {
2020-03-24 14:38:13 +01:00
background-color: $color-primary-lighter;
}
.submenu-icon {
position: absolute;
right: 1rem;
svg {
width: 10px;
height: 10px;
}
}
}
2022-01-24 12:04:16 +01:00
.icon-menu-item {
display: flex;
justify-content: flex-start;
&:hover {
background-color: $color-primary-lighter;
}
span.title {
margin-left: 5px;
}
.selected-icon {
svg {
width: 10px;
height: 10px;
}
}
.shape-icon {
margin-left: 3px;
svg {
width: 13px;
height: 13px;
}
}
.icon-wrapper {
display: grid;
grid-template-columns: 1fr 1fr;
margin: 0;
}
}
}
2020-04-28 09:46:38 +02:00
.workspace-loader {
display: flex;
justify-content: center;
align-items: center;
svg#loader-pencil {
fill: $color-gray-50;
}
}
.workspace-content {
2020-03-03 13:14:37 +01:00
background-color: $color-canvas;
display: flex;
padding: 0;
margin: 0;
2015-06-18 19:35:50 +02:00
&.scrolling {
cursor: grab;
}
2016-02-12 16:26:11 +01:00
&.no-tool-bar-right {
width: calc(100% - #{$width-left-toolbar} - #{$width-settings-bar});
right: 0;
2016-12-19 11:55:55 +01:00
.coordinates {
right: 10px;
}
2015-06-18 19:35:50 +02:00
}
2016-02-12 16:26:11 +01:00
&.no-tool-bar-left {
width: calc(100% - #{$width-left-toolbar} - #{$width-settings-bar});
&.no-tool-bar-right {
width: 100%;
}
2016-02-12 16:26:11 +01:00
}
2016-12-19 11:55:55 +01:00
.coordinates {
background-color: $color-dark-bg;
border-radius: $br3;
bottom: 0px;
2016-12-19 11:55:55 +01:00
padding-left: 5px;
position: fixed;
right: calc(#{$width-settings-bar} + 14px);
2016-12-19 11:55:55 +01:00
text-align: center;
width: 125px;
white-space: nowrap;
2019-08-12 16:50:44 +00:00
padding-bottom: 2px;
transition: bottom 0.5s;
z-index: 2;
&.color-palette-open {
bottom: 5rem;
}
2016-12-19 11:55:55 +01:00
span {
color: $color-white;
font-size: $fs12;
padding-right: 5px;
}
}
2016-12-22 10:11:29 +01:00
.cursor-tooltip {
background-color: $color-dark-bg;
border-radius: $br3;
2016-12-22 10:11:29 +01:00
color: $color-white;
2016-12-22 10:29:34 +01:00
font-size: $fs12;
2016-12-22 10:11:29 +01:00
padding: 3px 8px;
transition: none;
text-align: center;
}
.workspace-viewport {
2020-05-07 15:15:39 +02:00
overflow: hidden;
transition: none;
2020-05-07 15:15:39 +02:00
display: grid;
2022-01-26 15:16:21 +01:00
grid-template-rows: 20px 1fr;
grid-template-columns: 20px 1fr;
flex: 1;
}
.viewport {
cursor: none;
grid-column: 1 / span 2;
grid-row: 1 / span 2;
overflow: hidden;
position: relative;
2020-05-07 15:15:39 +02:00
.viewport-overlays {
cursor: initial;
height: 100%;
overflow: hidden;
pointer-events: none;
position: absolute;
width: 100%;
z-index: 10;
.pixel-overlay {
height: 100%;
left: 0;
pointer-events: initial;
position: absolute;
top: 0;
width: 100%;
z-index: 1;
2016-02-16 19:52:50 +02:00
}
}
2016-02-16 19:52:50 +02:00
.render-shapes {
height: 100%;
position: absolute;
2022-01-26 15:16:21 +01:00
width: 100%;
}
.frame-thumbnail-wrapper {
.fills,
.frame-clip-def {
opacity: 0;
}
}
.viewport-controls {
position: absolute;
2022-01-26 15:16:21 +01:00
width: 100%;
height: 100%;
}
}
.page-canvas,
.page-layout {
overflow: visible;
2015-06-18 19:35:50 +02:00
}
/* Rules */
2020-05-07 15:15:39 +02:00
.empty-rule-square {
grid-column: 1 / span 1;
grid-row: 1 / span 1;
}
.horizontal-rule {
transition: none;
pointer-events: none;
2020-05-07 15:15:39 +02:00
grid-column: 2 / span 1;
grid-row: 1 / span 1;
z-index: 13;
2019-02-23 10:45:56 +01:00
rect {
2020-03-03 13:14:37 +01:00
fill: $color-canvas;
2019-02-23 10:45:56 +01:00
}
path {
2020-03-03 13:14:37 +01:00
stroke: $color-gray-20;
2019-02-23 10:45:56 +01:00
}
}
.vertical-rule {
transition: none;
pointer-events: none;
2020-05-07 15:15:39 +02:00
grid-column: 1 / span 1;
grid-row: 2 / span 1;
z-index: 13;
2019-02-23 10:45:56 +01:00
rect {
2020-03-03 13:14:37 +01:00
fill: $color-canvas;
2019-02-23 10:45:56 +01:00
}
2019-02-23 14:39:27 +01:00
path {
2020-03-03 13:14:37 +01:00
stroke: $color-gray-20;
2019-02-23 14:39:27 +01:00
}
}
2016-02-17 08:56:02 +01:00
}
.workspace-frame-icon {
fill: $color-gray-40;
}
.workspace-frame-label {
2020-04-14 10:15:39 +02:00
fill: $color-gray-40;
font-size: $fs12;
}
.multiuser-cursor {
z-index: 10000;
pointer-events: none;
}
.profile-name {
width: fit-content;
font-family: worksans;
padding: 2px 12px;
border-radius: $br4;
display: flex;
align-items: center;
height: 20px;
font-size: $fs12;
line-height: $lh-150;
}
2020-11-16 13:00:39 +01:00
.viewport-actions {
align-items: center;
2020-11-16 13:00:39 +01:00
display: flex;
flex-direction: row;
justify-content: center;
margin-left: auto;
margin-top: 2rem;
position: absolute;
width: 100%;
z-index: 12;
pointer-events: none;
2020-11-16 13:00:39 +01:00
2023-05-08 17:25:22 +02:00
.path-actions,
.grid-actions {
pointer-events: initial;
2020-11-16 13:00:39 +01:00
display: flex;
flex-direction: row;
background: white;
border-radius: $br3;
2020-11-16 13:00:39 +01:00
padding: 0.5rem;
border: 1px solid $color-gray-20;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
2023-05-08 17:25:22 +02:00
.grid-actions {
padding-left: 1rem;
gap: 12px;
color: var(--color-gray-60);
align-items: center;
font-size: 12px;
.btn-primary,
.btn-secondary {
height: 24px;
}
.grid-edit-title {
margin-right: 2rem;
}
.grid-edit-board-name {
font-weight: 600;
}
}
2020-11-16 13:00:39 +01:00
.viewport-actions-group {
display: flex;
flex-direction: row;
border-right: 1px solid $color-gray-20;
}
.viewport-actions-entry {
2020-11-18 11:37:10 +01:00
width: 28px;
height: 28px;
2020-11-16 13:00:39 +01:00
margin: 0 0.25rem;
cursor: pointer;
2020-11-18 11:37:10 +01:00
display: flex;
justify-content: center;
align-items: center;
border-radius: $br3;
2020-11-16 13:00:39 +01:00
svg {
2020-11-25 17:10:39 +01:00
pointer-events: none;
2020-11-18 11:37:10 +01:00
width: 20px;
2020-11-16 13:00:39 +01:00
height: 20px;
}
&:hover svg {
fill: $color-primary;
}
2020-11-18 11:37:10 +01:00
&.is-disabled {
2021-04-22 14:06:11 +02:00
cursor: initial;
svg {
fill: $color-gray-20;
2020-11-16 13:00:39 +01:00
}
}
2020-11-18 11:37:10 +01:00
&.is-toggled {
background: $color-black;
svg {
fill: $color-primary;
}
}
2020-11-16 13:00:39 +01:00
}
.viewport-actions-entry-wide {
width: 27px;
height: 20px;
svg {
width: 27px;
height: 20px;
}
}
.path-actions > :first-child .viewport-actions-entry {
margin-left: 0;
}
.path-actions > :last-child {
border: none;
}
.path-actions > :last-child .viewport-actions-entry {
margin-right: 0;
}
}