p5.js-web-editor/client/styles/components/_sidebar.scss

300 lines
6.1 KiB
SCSS
Raw Normal View History

.sidebar {
2016-11-23 20:44:39 +01:00
display: flex;
flex-flow: column;
}
.sidebar__header {
2016-12-19 23:19:07 +01:00
padding-right: #{6 / $base-font-size}rem;
padding-left: #{19 / $base-font-size}rem;
display: flex;
justify-content: space-between;
2016-07-14 18:47:54 +02:00
align-items: center;
height: #{29 / $base-font-size}rem;
min-height: #{29 / $base-font-size}rem;
}
.sidebar__title {
font-size: #{12 / $base-font-size}rem;
display: inline-block;
2016-07-14 18:47:54 +02:00
.sidebar--contracted & {
display: none;
}
white-space: nowrap;
overflow: hidden;
}
.sidebar__add {
@include themify() {
@extend %icon;
2016-09-13 23:05:42 +02:00
}
.sidebar--contracted & {
display: none;
2016-07-14 18:47:54 +02:00
}
& svg {
width: #{10 / $base-font-size}rem;
}
}
.sidebar__file-list {
@include themify() {
border-color: getThemifyVariable('ide-border-color')
}
border-top: 1px solid;
2016-07-14 18:47:54 +02:00
.sidebar--contracted & {
display: none;
}
}
2016-08-30 20:39:37 +02:00
.sidebar__root-item {
position: relative;
2016-11-23 20:44:39 +01:00
overflow-y: scroll;
flex: 1 1 auto;
2016-08-30 20:39:37 +02:00
}
.sidebar__file-item {
2017-05-10 19:19:37 +02:00
// height: #{20 / $base-font-size}rem;
font-size: #{12 / $base-font-size}rem;
2016-07-12 18:25:48 +02:00
cursor: pointer;
position: relative;
2016-09-15 00:38:57 +02:00
@include themify() {
color: map-get($theme-map, 'inactive-text-color');
&:hover > .file-item__content .sidebar__file-item-name {
color: map-get($theme-map, 'primary-text-color');
}
&:hover > .file-item__content .sidebar__file-item-icon g {
fill: map-get($theme-map, 'primary-text-color');
}
}
}
2016-07-14 18:47:54 +02:00
2017-05-10 19:19:37 +02:00
.sidebar__file-item--folder {
z-index: 1;
}
2016-08-30 20:39:37 +02:00
// to indent each row in the file tree
// not sure how to do this in a better way
// it won't work if the file tree is too nested
.file-item__spacer {
flex-shrink: 0;
2016-08-30 20:39:37 +02:00
.sidebar__file-item & {
width: #{33 / $base-font-size}rem;
2016-08-30 20:39:37 +02:00
.sidebar__file-item & {
width: #{53 / $base-font-size}rem;
2016-08-30 20:39:37 +02:00
.sidebar__file-item & {
width: #{73 / $base-font-size}rem;
2016-08-30 20:39:37 +02:00
.sidebar__file-item & {
width: #{93 / $base-font-size}rem;
2016-08-30 20:39:37 +02:00
.sidebar__file-item & {
width: #{113 / $base-font-size}rem;
2016-08-30 20:39:37 +02:00
}
}
}
}
}
}
2016-08-24 01:40:47 +02:00
.file-item__content {
display: flex;
position: relative;
.sidebar__file-item--selected > & {
2016-09-15 00:38:57 +02:00
@include themify() {
2016-09-22 00:52:44 +02:00
background-color: map-get($theme-map, 'file-selected-color');
2016-09-15 00:38:57 +02:00
}
}
2016-09-04 02:29:18 +02:00
.sidebar--contracted & {
display: none;
}
2016-08-24 01:40:47 +02:00
}
2016-08-03 23:10:03 +02:00
.sidebar__file-item-name {
padding: #{4 / $base-font-size}rem 0;
2016-08-03 23:10:03 +02:00
.sidebar__file-item--editing & {
display: none;
}
&:before {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
content: '';
width: 100%;
}
2016-08-03 23:10:03 +02:00
}
2016-08-03 21:11:59 +02:00
.sidebar__file-item-show-options {
@include themify() {
@extend %icon;
padding: #{4 / $base-font-size}rem 0;
background-color: map-get($theme-map, 'file-selected-color');
padding-right: #{6 / $base-font-size}rem;
2016-09-13 23:05:42 +02:00
}
display: none;
position: absolute;
right: 0;
2016-09-13 23:05:42 +02:00
.sidebar__file-item--selected > .file-item__content & {
display: inline-block;
.sidebar--cant-edit & {
display: none;
}
2016-08-03 21:11:59 +02:00
}
& svg {
width: #{10 / $base-font-size}rem;
}
2016-08-03 21:11:59 +02:00
}
.sidebar__file-item-options {
@extend %modal;
2016-09-15 00:38:57 +02:00
@include themify() {
2016-12-09 23:05:24 +01:00
background-color: getThemifyVariable('modal-background-color');
box-shadow: 0 0 18px getThemifyVariable('shadow-color');
2016-09-15 00:38:57 +02:00
}
2016-08-03 21:11:59 +02:00
position: absolute;
top: 95%;
2016-12-09 23:05:24 +01:00
left: #{15 / $base-font-size}rem;
right: #{0 / $base-font-size}rem;
2016-08-03 21:11:59 +02:00
display: none;
z-index: 100;
padding: #{8 / $base-font-size}rem #{16 / $base-font-size}rem;
2016-08-30 20:39:37 +02:00
.sidebar__file-item--open > .file-item__content & {
2016-08-03 21:11:59 +02:00
display: block;
}
}
.sidebar__project-options li, .sidebar__file-item-options li {
padding: #{4 / $base-font-size}rem 0;
}
.sidebar__project-options a, .sidebar__file-item-options a {
@include themify() {
color: getThemifyVariable('secondary-text-color');
}
}
2016-08-03 23:10:03 +02:00
.sidebar__file-item-input {
display: none;
padding: 0;
border: 0;
2016-09-22 00:52:44 +02:00
width: calc(100% - #{100 / $base-font-size}rem);
2016-08-03 23:10:03 +02:00
.sidebar__file-item--editing & {
display: inline-block;
}
}
2016-09-13 23:05:42 +02:00
.sidebar__expand {
@include themify() {
@extend %icon;
2016-09-13 23:05:42 +02:00
}
position: absolute;
top: #{7 / $base-font-size}rem;
left: #{1 / $base-font-size}rem;
2016-09-13 23:05:42 +02:00
height: #{14 / $base-font-size}rem;
& svg {
2016-07-14 18:47:54 +02:00
height: #{14 / $base-font-size}rem;
2016-09-13 23:05:42 +02:00
}
display: none;
.sidebar--contracted & {
display: inline-block;
2016-07-14 18:47:54 +02:00
}
}
2016-09-13 23:05:42 +02:00
.sidebar__contract {
@include themify() {
@extend %icon;
2016-09-13 23:05:42 +02:00
}
position: absolute;
top: #{7 / $base-font-size}rem;
left: #{34 / $base-font-size}rem;
2016-09-13 23:05:42 +02:00
height: #{14 / $base-font-size}rem;
& svg {
2016-07-14 18:47:54 +02:00
height: #{14 / $base-font-size}rem;
2016-09-13 23:05:42 +02:00
}
.sidebar--contracted & {
display: none;
2016-07-14 18:47:54 +02:00
}
}
.sidebar__icons {
display: flex;
align-items: center;
2016-08-30 05:23:10 +02:00
position: relative;
.sidebar--cant-edit & {
display: none;
}
2016-07-14 18:47:54 +02:00
}
.sidebar__folder-icon {
padding: #{4 / $base-font-size}rem 0;
margin-right: #{5 / $base-font-size}rem;
& g {
2016-09-15 00:38:57 +02:00
@include themify() {
fill: map-get($theme-map, 'primary-text-color');
}
}
& svg {
width: #{10 / $base-font-size}rem;
}
}
.sidebar__file-item-icon {
padding: #{4 / $base-font-size}rem 0;
margin-right: #{5 / $base-font-size}rem;
2016-09-15 00:38:57 +02:00
& g {
@include themify() {
fill: getThemifyVariable('inactive-text-color');
}
}
& svg {
height: #{10 / $base-font-size}rem;
}
background-color: transparent;
border: none;
}
2016-08-30 05:23:10 +02:00
2016-08-31 03:08:50 +02:00
.sidebar__file-item-closed {
@extend .sidebar__file-item-icon;
display: none;
.sidebar__file-item--closed & {
display: inline-block;
}
}
.sidebar__file-item-open {
@extend .sidebar__file-item-icon;
2016-09-22 01:08:30 +02:00
display: inline-block;
2016-08-31 03:08:50 +02:00
.sidebar__file-item--closed & {
display: none;
}
}
2016-08-30 05:23:10 +02:00
.sidebar__project-options {
@extend %modal;
@include themify() {
background-color: getThemifyVariable('modal-background-color');
box-shadow: 0 0 18px getThemifyVariable('shadow-color');
}
2016-08-30 05:23:10 +02:00
display: none;
position: absolute;
.sidebar--project-options & {
display: block;
}
top: #{22 / $base-font-size}rem;
right: #{-6 / $base-font-size}rem;
padding: #{8 / $base-font-size}rem #{16 / $base-font-size}rem;
width: #{145 / $base-font-size}rem;
2016-08-30 05:23:10 +02:00
}
.sidebar__file-item-option {
@include themify() {
@extend %link;
}
background-color: transparent;
border: none;
}
.sidebar__file-item--closed .file-item__children {
display: none;
}