♻️ Refactor dashboard (add teams)

This commit is contained in:
Andrey Antukh 2020-09-25 14:51:21 +02:00 committed by Alonso Torres
parent 47d347f357
commit b3252ec2b2
52 changed files with 1842 additions and 1421 deletions

View file

@ -1,6 +0,0 @@
.libraries-page {
padding: 1rem;
background-color: $color-white;
flex: 1 0 0;
overflow-y: auto;
}

View file

@ -2,8 +2,10 @@
// 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) 2015-2016 Andrey Antukh <niwi@niwi.nz>
// Copyright (c) 2015-2016 Juan de la Cruz <delacruzgarciajuan@gmail.com>
// This Source Code Form is "Incompatible With Secondary Licenses", as
// defined by the Mozilla Public License, v. 2.0.
//
// Copyright (c) 2020 UXBOX Labs SL
.main-content {
display: flex;
@ -14,23 +16,22 @@
.dashboard-layout {
background-color: $color-white;
display: grid;
grid-template-rows: 40px 1fr;
grid-template-rows: 50px 1fr;
grid-template-columns: 40px 180px 1fr;
height: 100vh;
& .dashboard-sidebar {
grid-row: 2;
.dashboard-sidebar {
grid-row: 1 / span 2;
grid-column: 1 / span 2;
overflow: hidden;
}
& .dashboard-content {
.dashboard-content {
grid-row: 1 / span 2;
}
}
.dashboard-content {
background-color: lighten($color-gray-10, 5%);
display: flex;
flex-direction: column;
}

View file

@ -1,6 +0,0 @@
.projects-page {
padding: 1rem;
background-color: $color-white;
flex: 1 0 0;
overflow-y: auto;
}

View file

@ -1,41 +0,0 @@
.recent-files-page {
background-color: $color-white;
flex: 1 0 0;
overflow-y: auto;
}
.recent-files-row {
padding: 1rem;
border-top: 1px solid $color-gray-10;
&.first {
border-top: none;
}
}
.recent-files-row-title {
display: flex;
flex-direction: row;
margin-left: $medium;
margin-top: $medium;
}
.recent-files-row-title-name, .recent-files-row-title-info {
font-size: 15px;
line-height: 1rem;
font-weight: unset;
}
.recent-files-row-title-name {
color: black;
margin-right: $medium;
}
.recent-files-row-title-info {
color: $color-gray-30
}
.recent-files-empty {
margin: 30px;
font-size: 20px
}

View file

@ -1,6 +0,0 @@
.search-page {
padding: 1rem;
background-color: $color-white;
flex: 1 0 0;
overflow-y: auto;
}

View file

@ -2,8 +2,10 @@
// 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) 2015-2016 Andrey Antukh <niwi@niwi.nz>
// Copyright (c) 2015-2016 Juan de la Cruz <delacruzgarciajuan@gmail.com>
// This Source Code Form is "Incompatible With Secondary Licenses", as
// defined by the Mozilla Public License, v. 2.0.
//
// Copyright (c) 2020 UXBOX Labs SL
.activity-bar {
background-color: $color-gray-50;

View file

@ -2,8 +2,10 @@
// 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) 2015-2016 Andrey Antukh <niwi@niwi.nz>
// Copyright (c) 2015-2016 Juan de la Cruz <delacruzgarciajuan@gmail.com>
// This Source Code Form is "Incompatible With Secondary Licenses", as
// defined by the Mozilla Public License, v. 2.0.
//
// Copyright (c) 2020 UXBOX Labs SL
.color-palette {
@include animation(0,.5s,fadeInUp);

View file

@ -1,3 +1,12 @@
// 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/.
//
// This Source Code Form is "Incompatible With Secondary Licenses", as
// defined by the Mozilla Public License, v. 2.0.
//
// Copyright (c) 2020 UXBOX Labs SL
.context-menu {
position: relative;
visibility: hidden;
@ -35,7 +44,7 @@
&:hover {
color: $color-black;
background-color: $color-primary-lighter;
}
}
}
.context-menu.is-selectable {
@ -49,6 +58,6 @@
background-position: 5% 48%;
background-size: 10px;
font-weight: bold;
}
}
}

View file

@ -2,74 +2,23 @@
// 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) 2015-2016 Andrey Antukh <niwi@niwi.nz>
// Copyright (c) 2015-2016 Juan de la Cruz <delacruzgarciajuan@gmail.com>
// This Source Code Form is "Incompatible With Secondary Licenses", as
// defined by the Mozilla Public License, v. 2.0.
//
// Copyright (c) 2020 UXBOX Labs SL
.dashboard-grid {
font-size: $fs14;
.dashboard-title {
position: relative;
width: 100%;
h2 {
text-align: center;
width: 100%;
.edit {
padding: 5px 10px;
background: $color-gray-50;
border: none;
height: 100%;
}
.close {
padding: 5px 10px;
background: $color-gray-50;
cursor: pointer;
svg {
transform: rotate(45deg);
fill: $color-gray-30;
height: 20px;
width: 20px;
}
}
}
.edition {
align-items: center;
display: flex;
position: absolute;
right: 40px;
top: 0;
span {
cursor: pointer;
svg {
fill: $color-gray-30;
height: 20px;
margin: 0 10px;
width: 20px;
}
&:hover {
svg {
fill: $color-gray-50;
}
}
}
}
}
.dashboard-grid-row {
.grid-row {
display: flex;
flex-wrap: wrap;
width: 100%;
align-content: flex-start;
&.no-wrap {
flex-wrap: nowrap;
}
}
.grid-item {
@ -82,14 +31,37 @@
flex-shrink: 0;
height: 200px;
margin: $medium;
max-width: 300px;
max-width: 260px;
min-width: 260px;
position: relative;
text-align: center;
width: 18%;
box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1);
& .overlay {
&.placeholder {
min-width: 115px;
max-width: 115px;
display: flex;
flex-direction: column;
justify-content: center;
.placeholder-icon {
svg {
transform: rotate(-90deg);
width: 20px;
height: 20px;
fill: $color-gray-30;
}
}
.placeholder-label {
font-size: $fs14;
}
}
&.overlay {
border-radius: 4px;
border: 2px solid $color-primary;
height: 100%;
@ -347,128 +319,52 @@
padding: $medium;
}
}
.grid-item-th {
background-position: center;
background-size: auto 80%;
background-repeat: no-repeat;
border-top-left-radius: $br-small;
border-top-right-radius: $br-small;
height: 70%;
overflow: hidden;
position: relative;
width: 100%;
background-color: $color-canvas;
.img-th {
height: auto;
.grid-item-th {
background-position: center;
background-size: auto 80%;
background-repeat: no-repeat;
border-top-left-radius: $br-small;
border-top-right-radius: $br-small;
height: 70%;
overflow: hidden;
position: relative;
width: 100%;
}
svg {
height: 100%;
background-color: $color-canvas;
.img-th {
height: auto;
width: 100%;
}
}
// MULTISELECT OPTIONS BAR
.multiselect-bar {
@include animation(0,.5s,fadeInUp);
align-items: center;
background-color: $color-gray-50;
display: flex;
left: 0;
justify-content: center;
padding: $medium;
position: absolute;
width: 100%;
bottom: 0;
.multiselect-nav {
align-items: center;
display: flex;
justify-content: center;
margin-left: 10%;
width: 110px;
span {
margin-right: 1.5rem;
&:last-child {
margin-right: 0;
}
}
svg {
cursor: pointer;
fill: $color-gray-30;
height: 20px;
width: 20px;
&:hover {
fill: $color-gray-20;
}
height: 100%;
width: 100%;
}
span.delete {
&:hover {
svg{
fill: $color-danger-light;
}
}
}
}
}
.move-item {
position: relative;
.move-list {
background-color: $color-gray-10;
border-radius: $br-small;
bottom: 30px;
display: flex;
flex-direction: column;
left: -30px;
max-height: 260px;
overflow-y: scroll;
padding: $medium;
position: absolute;
width: 260px;
li {
padding-bottom: $medium;
&.title {
color: $color-gray-50;
}
}
}
}
.grid-files-empty {
align-items: center;
border: 1px dashed $color-gray-20;
border-radius: $br-small;
display: flex;
flex-direction: column;
height: fit-content;
margin: $size-4;
padding: 3rem;
.grid-empty-placeholder {
align-items: center;
border: 1px dashed $color-gray-20;
border-radius: $br-small;
display: flex;
flex-direction: column;
height: 200px;
margin: $size-4;
padding: 3rem;
justify-content: center;
.grid-files-desc {
color: $color-gray-60;
margin-bottom: $medium;
}
svg {
width: 36px;
height: 36px;
fill: $color-gray-20;
}
.text {
margin-top: 10px;
color: $color-gray-30;
font-size: $fs16;
}
}

View file

@ -0,0 +1,100 @@
// 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/.
//
// This Source Code Form is "Incompatible With Secondary Licenses", as
// defined by the Mozilla Public License, v. 2.0.
//
// Copyright (c) 2020 UXBOX Labs SL
.dashboard-header {
align-items: center;
background-color: $color-white;
display: flex;
height: 63px;
padding: $x-small $small;
position: relative;
z-index: 10;
.element-name {
margin-right: $small;
}
.btn-secondary {
flex-shrink: 0;
margin-left: auto;
z-index: 10;
height: 32px;
}
svg {
fill: $color-black;
height: 14px;
margin-right: $x-small;
width: 14px;
}
nav {
ul {
align-items: center;
bottom: 0;
display: flex;
font-size: $fs15;
justify-content: center;
margin: auto;
position: absolute;
width: 100%;
z-index: 1;
}
li {
a {
align-items: center;
border-bottom: 3px solid transparent;
color: $color-gray-30;
display: flex;
height: 40px;
padding: $x-small $big;
flex-basis: 140px;
&:hover {
color: $color-black;
}
}
&.current {
a {
color: $color-black;
border-color: $color-primary;
}
}
}
}
.dashboard-title {
color: $color-black;
display: flex;
flex-shrink: 0;
font-size: $fs18;
z-index: 10;
}
.icon {
display: flex;
align-items: center;
cursor: pointer;
margin-left: $small;
z-index: 10;
svg {
fill: $color-gray-40;
width: 15px;
height: 15px;
&:hover {
fill: $color-primary-dark;
}
}
}
}

View file

@ -2,104 +2,335 @@
// 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) 2015-2016 Andrey Antukh <niwi@niwi.nz>
// Copyright (c) 2015-2016 Juan de la Cruz <delacruzgarciajuan@gmail.com>
// This Source Code Form is "Incompatible With Secondary Licenses", as
// defined by the Mozilla Public License, v. 2.0.
//
// Copyright (c) 2020 UXBOX Labs SL
.dashboard-sidebar {
background-color: $color-white;
.sidebar-team {
.sidebar-inside {
display: flex;
flex-direction: column;
padding: $size-4 0;
border-top: 1px solid $color-gray-10;
height: 100%;
padding-bottom: 2.8rem;
padding-top: $size-2;
}
.dashboard-sidebar-inside {
.sidebar-content {
display: flex;
flex-direction: column;
height: 100%;
border-right: 1px solid $color-gray-10;
overflow-y: auto;
padding: 0;
.dashboard-elements {
display: flex;
flex-direction: column;
overflow-y: auto;
hr {
margin: 10px 15px;
border-color: $color-gray-10;
}
}
.dropdown {
position: absolute;
max-height: 30rem;
overflow-y: auto;
background-color: $color-white;
border-radius: 4px;
box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.25);
hr {
margin: 0;
border-color: $color-gray-10;
}
&.dashboard-common {
overflow: unset;
li {
color: $color-gray-60;
cursor: pointer;
font-size: $fs14;
display: flex;
padding: 13px 16px;
&.title {
font-weight: 600;
cursor: default;
}
li {
align-items: center;
cursor: pointer;
&.team-item {
display: flex;
flex-shrink: 0;
padding: $size-2;
svg {
border-radius: 3px;
fill: $color-black;
margin-right: 8px;
height: $size-3;
width: $size-3;
}
span.element-title {
color: $color-gray-60;
font-size: $fs14;
overflow-x: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
&.recent-projects {
.icon {
display: flex;
align-items: center;
padding-right: 10px;
svg {
fill: $color-white;
width: 20px;
height: 20px;
fill: $color-gray-60;
}
}
}
& .edit-wrapper {
display: flex;
}
&:hover {
background-color: $color-primary-lighter;
}
}
}
input.element-title {
border: 0;
height: 30px;
padding: 5px;
margin: 0;
width: 100%;
background-color: $color-white;
}
.sidebar-team-switch {
position: relative;
display: flex;
margin: 5px 15px;
.close {
background-color: $color-white;
cursor: pointer;
padding: 3px 5px;
.teams-dropdown {
left: 0;
top: 50px;
z-index: 12;
max-height: 30rem;
min-width: 189px;
}
svg {
fill: $color-gray-30;
height: 15px;
transform: rotate(45deg) translateY(7px);
width: 15px;
margin: 0;
}
}
.options-dropdown {
left: 80px;
top: 50px;
z-index: 12;
max-height: 30rem;
min-width: 110px;
}
.element-subtitle {
color: $color-gray-20;
font-style: italic;
}
.switch-content {
height: 40px;
display: flex;
width: 100%;
border: 1px solid $color-gray-10;
border-radius: 6px;
align-items: center;
}
&:hover,
&.current {
background-color: $color-primary-lighter;
.switch-options {
display: flex;
max-width: 22px;
min-width: 22px;
border-left: 1px solid $color-gray-10;
justify-content: center;
align-items: center;
cursor: pointer;
svg {
width: 15px;
height: 13px;
fill: $color-gray-60;
}
}
.current-team {
padding: 0px 10px;
display: flex;
flex-grow: 1;
.team-name {
flex-grow: 1;
display: flex;
align-items: center;
.team-text {
color: $color-gray-60;
}
}
}
.team-icon {
display: flex;
align-items: center;
padding-right: 10px;
svg {
width: 23px;
height: 23px;
fill: $color-gray-60;
}
}
.switch-icon {
display: flex;
align-items: center;
cursor: pointer;
svg {
width: 10px;
height: 10px;
fill: $color-gray-60;
}
}
}
.sidebar-empty-placeholder {
padding: 10px 12px;
color: $color-gray-30;
display: flex;
align-items: flex-start;
.icon {
padding: 0px 10px;
svg {
fill: $color-gray-30;
width: 12px;
height: 12px;
}
}
.text {
font-size: $fs13;
}
}
.sidebar-nav {
display: flex;
flex-direction: column;
overflow-y: auto;
margin: 0;
// TODO: should be deprecated / unclear name
&.dashboard-common {
overflow: unset;
}
&.no-overflow {
overflow: unset;
}
li {
align-items: center;
cursor: pointer;
display: flex;
flex-shrink: 0;
padding: $size-2;
svg {
border-radius: 3px;
fill: $color-black;
margin-right: 8px;
height: $size-3;
width: $size-3;
}
span.element-title {
color: $color-gray-60;
font-size: $fs14;
overflow-x: hidden;
text-overflow: ellipsis;
white-space: nowrap;
user-select: none;
}
&::before {
background-color: transparent;
border-radius: $br-small;
content: "";
height: 26px;
margin-right: 6px;
width: 4px;
}
&.recent-projects {
svg {
fill: $color-white;
}
}
& .edit-wrapper {
border: 1px solid $color-gray-10;
border-radius: $br-small;
display: flex;
width: 100%;
}
input.element-title {
border: 0;
height: 30px;
padding: 5px;
margin: 0;
width: 100%;
background-color: $color-white;
}
.close {
background-color: $color-white;
cursor: pointer;
padding: 3px 5px;
svg {
fill: $color-gray-30;
height: 15px;
transform: rotate(45deg) translateY(7px);
width: 15px;
margin: 0;
}
}
.element-subtitle {
color: $color-gray-20;
font-style: italic;
}
&:hover {
&::before {
background-color: $color-gray-10;
}
}
&.current {
font-weight: bold;
&::before {
background-color: $color-primary;
}
}
}
}
.sidebar-search {
align-items: center;
border: 1px solid $color-gray-10;
border-radius: 4px;
display: flex;
margin: 5px 15px;
.input-text {
background: $color-white;
border: 0;
color: $color-gray-60;
font-size: $fs14;
padding: 6px;
margin: 0;
max-width: 170px;
width: 100%;
height: 40px;
}
&:focus,
&:focus-within {
border-color: $color-black;
}
.clear-search {
align-items: center;
cursor: pointer;
display: flex;
height: 22px;
margin-left: auto;
padding: 0 $small;
width: 32px;
svg {
fill: $color-gray-30;
height: 15px;
transform: rotate(45deg);
width: 15px;
&:hover {
fill: $color-danger;
}
}
}
}
@ -117,6 +348,7 @@
display: flex;
margin-top: 1rem;
padding: $size-2;
position: relative;
span {
color: $color-gray-30;
@ -126,50 +358,87 @@
.btn-icon-light {
margin-left: auto;
}
&::before {
background-color: $color-gray-10;
content: "";
height: 1px;
left: 4%;
position: absolute;
right: 4%;
top: -5px;
width: 92%;
}
}
.dashboard-search {
align-items: center;
border: 1px solid $color-gray-10;
display: flex;
margin: $size-2;
.input-text {
background: $color-white;
border: 0;
color: $color-gray-60;
font-size: $fs14;
padding: 4px 8px;
margin: 0;
max-width: 170px;
width: 100%;
.team-form-modal {
h2 {
font-weight: 400;
color: $color-gray-40;
font-size: 28px;
margin-bottom: 30px;
}
&:focus,
&:focus-within {
border-color: $color-black;
}
.clear-search {
align-items: center;
cursor: pointer;
.buttons-row {
margin-top: 20px;
display: flex;
height: 22px;
padding: 0 5px;
width: 22px;
svg {
fill: $color-gray-30;
height: 15px;
transform: rotate(45deg);
width: 15px;
&:hover {
fill: $color-danger;
}
}
justify-content: center;
}
input[type=submit] {
width: 120px;
margin-bottom: 0px;
}
}
.profile-section {
align-items: center;
cursor: pointer;
display: flex;
padding: $small;
position: relative;
span {
@include text-ellipsis;
color: $color-black;
margin: $small;
font-size: $fs12;
max-width: 135px;
}
img {
border-radius: 50%;
flex-shrink: 0;
height: 25px;
width: 25px;
}
.dropdown {
left: 15px;
bottom: 50px;
z-index: 12;
max-height: 30rem;
min-width: 189px;
position: absolute;
bottom: 45px;
z-index: 12;
width: 170px;
@include animation(0,.2s,fadeInUp);
li {
display: flex;
align-items: center;
font-size: $fs13;
padding: 5px 10px;
svg {
fill: $color-gray-20;
height: 12px;
width: 12px;
}
}
}
}

View file

@ -0,0 +1,76 @@
// 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/.
//
// This Source Code Form is "Incompatible With Secondary Licenses", as
// defined by the Mozilla Public License, v. 2.0.
//
// Copyright (c) 2020 UXBOX Labs SL
.dashboard-grid-container {
background-color: $color-dashboard;
border-top-right-radius: $br-huge;
border-top-left-radius: $br-huge;
flex: 1 0 0;
margin-right: $small;
overflow-y: auto;
&.search {
margin-top: 10px;
}
}
.dashboard-project-row {
margin-bottom: $medium;
.project {
align-items: center;
background: $color-white;
border-radius: $br-small;
display: flex;
flex-direction: row;
margin-left: $medium;
margin-top: $medium;
padding: $x-small $x-small $x-small $small;
width: fit-content;
height: 40px;
.btn-secondary {
margin-left: $big;
height: 32px;
}
h2 {
cursor: pointer;
font-size: 15px;
line-height: 1rem;
font-weight: unset;
color: $color-black;
margin-right: $medium;
}
.info {
font-size: 15px;
line-height: 1rem;
font-weight: unset;
color: $color-gray-30;
}
.pin-icon {
cursor: pointer;
display: flex;
align-items: center;
margin-right: 10px;
svg {
width: 15px;
height: 15px;
fill: $color-gray-20;
}
&.active {
svg { fill: $color-gray-50; }
}
}
}
}

View file

@ -1,167 +0,0 @@
// 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) 2015-2016 Andrey Antukh <niwi@niwi.nz>
// Copyright (c) 2015-2016 Juan de la Cruz <delacruzgarciajuan@gmail.com>
.main-bar {
align-items: center;
background-color: $color-white;
border-bottom: 1px solid $color-gray-10;
display: flex;
height: 40px;
padding: $x-small $small;
padding-left: $x-big;
position: relative;
z-index: 10;
.element-name {
margin-right: $small;
}
.btn-secondary {
flex-shrink: 0;
margin-left: auto;
}
svg {
fill: $color-black;
height: 14px;
margin-right: $x-small;
width: 14px;
}
}
.main-logo {
border-right: 1px solid $color-gray-10;
border-bottom: 1px solid $color-gray-10;
text-align: center;
padding-top: $x-small;
svg {
fill: $color-black;
height: 30px;
width: 30px;
}
}
.main-nav {
align-items: center;
display: flex;
font-size: $fs15;
height: 35px;
margin: 0 0 0 120px;
li {
a {
border-bottom: 2px solid transparent;
color: $color-gray-10;
margin: $x-small $big;
&:hover {
border-color: $color-primary;
}
}
&.current {
a {
border-color: $color-primary;
}
}
}
}
.dashboard-title {
color: $color-black;
display: flex;
font-size: $fs15;
}
.main-bar-icon {
cursor: pointer;
margin-left: $small;
svg {
fill: $color-gray-40;
width: 10px;
&:hover {
fill: $color-primary-dark;
}
}
}
.user-zone {
align-items: center;
border-right: 1px solid $color-gray-10;
border-bottom: 1px solid $color-gray-10;
cursor: pointer;
display: flex;
padding: 0 $x-small 0 $small;
position: relative;
width: 180px;
span {
@include text-ellipsis;
color: $color-black;
margin: $small;
font-size: $fs12;
}
img {
border-radius: 50%;
flex-shrink: 0;
height: 25px;
width: 25px;
}
ul.profile-menu {
position: absolute;
top: 0;
left: 0;
z-index: 12;
width: 180px;
background-color: $color-gray-60;
border-radius: $br-small;
padding: 0 $small;
@include animation(0,.2s,fadeInDown);
li {
font-size: $fs13;
padding: $small 0;
svg {
fill: $color-gray-20;
height: 12px;
width: 12px;
}
span {
color: $color-white;
}
&:hover {
span {
color: $color-primary;
}
svg {
fill: $color-primary;
}
}
}
}
}

View file

@ -40,7 +40,7 @@
display: flex;
flex-grow: 1;
flex-direction: column;
padding: 100px;
padding: 60px 100px;
}
.button-row {