diff --git a/package.json b/package.json
index e035f69..7bb1f57 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,8 @@
"private": true,
"scripts": {
"start": "node spacedeck.js",
- "dev": "nodemon spacedeck.js"
+ "dev": "nodemon spacedeck.js",
+ "styles": "gulp styles"
},
"engines": {
"node": ">=10.0.0"
diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css
index 9f61a12..3ddebcd 100644
--- a/public/stylesheets/style.css
+++ b/public/stylesheets/style.css
@@ -2688,32 +2688,40 @@ th {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
- src: local(""), url("/fonts/inter-v2-latin-ext_latin-regular.woff2") format("woff2"), url("/fonts/inter-v2-latin-ext_latin-regular.woff") format("woff");
- /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ }
+ src: url("/fonts/inter-v2-latin-ext_latin-regular.eot");
+ /* IE9 Compat Modes */
+ src: local(""), url("/fonts/inter-v2-latin-ext_latin-regular.eot?#iefix") format("embedded-opentype"), url("/fonts/inter-v2-latin-ext_latin-regular.woff2") format("woff2"), url("/fonts/inter-v2-latin-ext_latin-regular.woff") format("woff"), url("/fonts/inter-v2-latin-ext_latin-regular.ttf") format("truetype"), url("/fonts/inter-v2-latin-ext_latin-regular.svg#Inter") format("svg");
+ /* Legacy iOS */ }
/* inter-500 - latin-ext_latin */
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 500;
- src: local(""), url("/fonts/inter-v2-latin-ext_latin-500.woff2") format("woff2"), url("/fonts/inter-v2-latin-ext_latin-500.woff") format("woff");
- /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ }
+ src: url("/fonts/inter-v2-latin-ext_latin-500.eot");
+ /* IE9 Compat Modes */
+ src: local(""), url("/fonts/inter-v2-latin-ext_latin-500.eot?#iefix") format("embedded-opentype"), url("/fonts/inter-v2-latin-ext_latin-500.woff2") format("woff2"), url("/fonts/inter-v2-latin-ext_latin-500.woff") format("woff"), url("/fonts/inter-v2-latin-ext_latin-500.ttf") format("truetype"), url("/fonts/inter-v2-latin-ext_latin-500.svg#Inter") format("svg");
+ /* Legacy iOS */ }
/* inter-600 - latin-ext_latin */
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 600;
- src: local(""), url("/fonts/inter-v2-latin-ext_latin-600.woff2") format("woff2"), url("/fonts/inter-v2-latin-ext_latin-600.woff") format("woff");
- /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ }
+ src: url("/fonts/inter-v2-latin-ext_latin-600.eot");
+ /* IE9 Compat Modes */
+ src: local(""), url("/fonts/inter-v2-latin-ext_latin-600.eot?#iefix") format("embedded-opentype"), url("/fonts/inter-v2-latin-ext_latin-600.woff2") format("woff2"), url("/fonts/inter-v2-latin-ext_latin-600.woff") format("woff"), url("/fonts/inter-v2-latin-ext_latin-600.ttf") format("truetype"), url("/fonts/inter-v2-latin-ext_latin-600.svg#Inter") format("svg");
+ /* Legacy iOS */ }
/* inter-900 - latin-ext_latin */
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 900;
- src: local(""), url("/fonts/inter-v2-latin-ext_latin-900.woff2") format("woff2"), url("/fonts/inter-v2-latin-ext_latin-900.woff") format("woff");
- /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ }
+ src: url("/fonts/inter-v2-latin-ext_latin-900.eot");
+ /* IE9 Compat Modes */
+ src: local(""), url("/fonts/inter-v2-latin-ext_latin-900.eot?#iefix") format("embedded-opentype"), url("/fonts/inter-v2-latin-ext_latin-900.woff2") format("woff2"), url("/fonts/inter-v2-latin-ext_latin-900.woff") format("woff"), url("/fonts/inter-v2-latin-ext_latin-900.ttf") format("truetype"), url("/fonts/inter-v2-latin-ext_latin-900.svg#Inter") format("svg");
+ /* Legacy iOS */ }
body {
background-color: #f5f5f5;
@@ -15002,7 +15010,7 @@ button.close {
top: 50%;
left: 50%;
margin: -22px; }
- .artifact.artifact-text.text-blank [contentEditable=true]:not(.text-editing) p:first-child::after {
+ .artifact.artifact-text.text-blank [contentEditable="true"]:not(.text-editing) p:first-child::after {
content: "Double click to edit";
opacity: 0.25; }
.artifact.artifact-text.text-blank p:first-child br {
@@ -15150,10 +15158,10 @@ button.close {
.artifact .text-table .text-cell .text-column > * {
display: block; }
.artifact .oembed,
- .artifact div[class*='oembed-'] {
+ .artifact div[class*="oembed-"] {
height: 100%; }
.artifact .oembed .play,
- .artifact div[class*='oembed-'] .play {
+ .artifact div[class*="oembed-"] .play {
position: absolute;
top: 50%;
left: 50%;
@@ -15162,7 +15170,7 @@ button.close {
background-color: #f5f5f5 !important;
color: #292929 !important; }
.artifact .oembed .meta,
- .artifact div[class*='oembed-'] .meta {
+ .artifact div[class*="oembed-"] .meta {
padding-top: 10px;
font-size: 10px;
display: block;
@@ -15173,33 +15181,33 @@ button.close {
color: #888;
text-align: left; }
.artifact .oembed .meta .link,
- .artifact div[class*='oembed-'] .meta .link {
+ .artifact div[class*="oembed-"] .meta .link {
position: absolute;
left: -12px;
bottom: -4px; }
.artifact .oembed .meta .description,
- .artifact div[class*='oembed-'] .meta .description {
+ .artifact div[class*="oembed-"] .meta .description {
padding-left: 28px;
display: block; }
.artifact .oembed iframe,
- .artifact div[class*='oembed-'] iframe {
+ .artifact div[class*="oembed-"] iframe {
width: 100% !important;
height: 100% !important; }
.artifact .oembed:not(.interactive) iframe,
- .artifact div[class*='oembed-']:not(.interactive) iframe {
+ .artifact div[class*="oembed-"]:not(.interactive) iframe {
pointer-events: none; }
.artifact .oembed .title,
- .artifact div[class*='oembed-'] .title {
+ .artifact div[class*="oembed-"] .title {
font-size: 20px; }
.artifact .oembed .image,
- .artifact div[class*='oembed-'] .image {
+ .artifact div[class*="oembed-"] .image {
height: auto;
top: 0;
bottom: 0px;
position: absolute;
width: 100%; }
.artifact .oembed .interact,
- .artifact div[class*='oembed-'] .interact {
+ .artifact div[class*="oembed-"] .interact {
position: absolute;
top: 50%;
left: 50%;
@@ -15216,7 +15224,8 @@ button.close {
.artifact .video {
width: 100%;
height: 100%;
- background-size: cover; }
+ background-size: cover;
+ background-color: black; }
.artifact .video.playing video {
z-index: 1; }
.artifact .video .title {
@@ -15364,11 +15373,24 @@ body:not(.present-mode) #space .artifact.selected {
body:not(.present-mode) #space .artifact.selected:not(.artifact-vector):after {
border: 1px solid #288cd7; }
-.mouse-scribble, .tool-scribble, .tool-line, .tool-arrow {
+.mouse-scribble,
+.tool-scribble,
+.tool-line,
+.tool-arrow {
cursor: crosshair !important; }
- .mouse-scribble .artifact, .tool-scribble .artifact, .tool-line .artifact, .tool-arrow .artifact {
+ .mouse-scribble .artifact,
+ .tool-scribble .artifact,
+ .tool-line .artifact,
+ .tool-arrow .artifact {
pointer-events: none !important; }
- .mouse-scribble .artifact:after, .mouse-scribble .artifact:before, .tool-scribble .artifact:after, .tool-scribble .artifact:before, .tool-line .artifact:after, .tool-line .artifact:before, .tool-arrow .artifact:after, .tool-arrow .artifact:before {
+ .mouse-scribble .artifact:after,
+ .mouse-scribble .artifact:before,
+ .tool-scribble .artifact:after,
+ .tool-scribble .artifact:before,
+ .tool-line .artifact:after,
+ .tool-line .artifact:before,
+ .tool-arrow .artifact:after,
+ .tool-arrow .artifact:before {
display: none !important; }
.tool-pan {
@@ -15377,19 +15399,28 @@ body:not(.present-mode) #space .artifact.selected {
.tool-note {
cursor: crosshair !important; }
-.artifact.state-idle .progress, .artifact.state-idle .progress-text {
+.artifact.state-idle .progress,
+.artifact.state-idle .progress-text {
display: none; }
-.artifact.state-processing, .artifact.state-uploading {
+.artifact.state-processing,
+.artifact.state-uploading {
background-color: white; }
- .artifact.state-processing .progress, .artifact.state-uploading .progress {
+ .artifact.state-processing .progress,
+ .artifact.state-uploading .progress {
height: 100%;
- padding: 10px;
- background-color: #3d9ee9;
+ padding: 4px;
opacity: 0.9;
- text-align: center;
font-size: 14px; }
- .artifact.state-processing .progress-text, .artifact.state-uploading .progress-text {
+ .artifact.state-processing .progress-container,
+ .artifact.state-uploading .progress-container {
+ background: #ffffff;
+ width: 100%;
+ height: 100%;
+ padding-left: 10px;
+ padding-top: 10px; }
+ .artifact.state-processing .progress-text,
+ .artifact.state-uploading .progress-text {
text-align: center;
padding: 8px;
width: 100%;
@@ -15398,7 +15429,14 @@ body:not(.present-mode) #space .artifact.selected {
top: 0px;
color: #888;
font-size: 10px; }
- .artifact.state-processing video, .artifact.state-processing audio, .artifact.state-processing .tl-controls, .artifact.state-processing .timeline, .artifact.state-uploading video, .artifact.state-uploading audio, .artifact.state-uploading .tl-controls, .artifact.state-uploading .timeline {
+ .artifact.state-processing video,
+ .artifact.state-processing audio,
+ .artifact.state-processing .tl-controls,
+ .artifact.state-processing .timeline,
+ .artifact.state-uploading video,
+ .artifact.state-uploading audio,
+ .artifact.state-uploading .tl-controls,
+ .artifact.state-uploading .timeline {
display: none; }
.state-processing .spinner {
diff --git a/styles/artifact.scss b/styles/artifact.scss
index 19aa93b..05a1967 100644
--- a/styles/artifact.scss
+++ b/styles/artifact.scss
@@ -11,10 +11,12 @@
max-height: 100%;
}
- &.hide-text .text { opacity: 0 }
+ &.hide-text .text {
+ opacity: 0;
+ }
&.locked.selected {
- box-shadow: 0px 0px 0px 3px rgba(0,0,0,0.5) !important;
+ box-shadow: 0px 0px 0px 3px rgba(0, 0, 0, 0.5) !important;
}
.placeholder {
@@ -26,7 +28,9 @@
}
}
- &.artifact-text.text-blank [contentEditable=true]:not(.text-editing) p:first-child::after {
+ &.artifact-text.text-blank
+ [contentEditable="true"]:not(.text-editing)
+ p:first-child::after {
content: "Double click to edit";
opacity: 0.25;
}
@@ -79,7 +83,6 @@
// padding-right: 20px; margin-right: -20px;
//> * {pointer-events: auto; }
-
}
&:not(.artifact-text) {
@@ -142,7 +145,9 @@
li {
margin-top: 0;
margin-bottom: 0.5em;
- &:last-child {margin-bottom: 0em !important; }
+ &:last-child {
+ margin-bottom: 0em !important;
+ }
}
h1 {
@@ -179,10 +184,14 @@
p {
margin-top: 0;
margin-bottom: 0.5em; // compatibility to old system
- &:last-child {margin-bottom: 0em !important; }
+ &:last-child {
+ margin-bottom: 0em !important;
+ }
}
- a {pointer-events: none; }
+ a {
+ pointer-events: none;
+ }
ol {
padding: 0;
@@ -247,7 +256,7 @@
}
.oembed,
- div[class*='oembed-'] {
+ div[class*="oembed-"] {
height: 100%;
.play {
position: absolute;
@@ -290,7 +299,9 @@
}
}
- .title {font-size: 20px; }
+ .title {
+ font-size: 20px;
+ }
.image {
height: auto;
top: 0;
@@ -319,10 +330,11 @@
}
}
- .video {
+ .video {
width: 100%;
height: 100%;
background-size: cover;
+ background-color: black;
&.playing {
video {
@@ -359,10 +371,8 @@
.btn {
margin-top: 20px;
-
}
}
-
}
// FIXME: fix later
@@ -381,8 +391,8 @@
height: 100%;
.timeline {
position: absolute;
- left:0;
- top:0;
+ left: 0;
+ top: 0;
width: 100%;
bottom: 54px;
background-size: 100% 100%;
@@ -391,7 +401,7 @@
overflow: hidden;
.tl-current-time {
- height:100%;
+ height: 100%;
background: white;
opacity: 0.5;
border-right: 1px solid #888;
@@ -427,12 +437,11 @@
.btn {
margin-top: 20px;
-
}
}
.tl-title {
- margin-left:10px;
+ margin-left: 10px;
max-width: 55%;
overflow: hidden;
display: inline-block;
@@ -454,19 +463,41 @@
height: 100%;
}
- &.bold { font-weight: bold;}
- &.italic { font-style: italic;}
- &.underline { text-decoration: underline;}
- &.strike { text-decoration: line-through;}
+ &.bold {
+ font-weight: bold;
+ }
+ &.italic {
+ font-style: italic;
+ }
+ &.underline {
+ text-decoration: underline;
+ }
+ &.strike {
+ text-decoration: line-through;
+ }
- &.align-top .text-cell {vertical-align: top;}
- &.align-middle .text-cell {vertical-align: middle;}
- &.align-bottom .text-cell {vertical-align: bottom;}
+ &.align-top .text-cell {
+ vertical-align: top;
+ }
+ &.align-middle .text-cell {
+ vertical-align: middle;
+ }
+ &.align-bottom .text-cell {
+ vertical-align: bottom;
+ }
- &.align-left { text-align: left; }
- &.align-center { text-align: center; }
- &.align-right { text-align: right; }
- &.align-justify { text-align: justify; }
+ &.align-left {
+ text-align: left;
+ }
+ &.align-center {
+ text-align: center;
+ }
+ &.align-right {
+ text-align: right;
+ }
+ &.align-justify {
+ text-align: justify;
+ }
audio {
width: 100%;
@@ -481,10 +512,14 @@
font-size: 36px;
&.artifact-zone {
- background-color: rgba(0,0,0,0.05);
+ background-color: rgba(0, 0, 0, 0.05);
border-radius: 10px;
- &:after {display: none; }
- .shape {display: none; }
+ &:after {
+ display: none;
+ }
+ .shape {
+ display: none;
+ }
.zone {
height: 100%;
}
@@ -496,32 +531,31 @@ body.present-mode {
.artifact-zone {
display: none;
}
- .artifact {
+ .artifact {
cursor: default !important;
- .text a { pointer-events: auto !important; }
+ .text a {
+ pointer-events: auto !important;
+ }
}
}
}
body:not(.present-mode) {
-
#space {
-
.Medium {
cursor: text;
}
.artifact {
-
&.selected.text-editing,
&.text-editing {
cursor: text;
&:before {
- border: 1px solid rgba(255,255,255,0.25);
+ border: 1px solid rgba(255, 255, 255, 0.25);
}
&:after {
- border: 1px dotted rgba(40,140,215,0.5);
+ border: 1px dotted rgba(40, 140, 215, 0.5);
background-color: transparent !important;
}
}
@@ -535,24 +569,27 @@ body:not(.present-mode) {
}
&:not(.artifact-vector):after {
- border: 1px solid rgba(40,140,215,1);
+ border: 1px solid rgba(40, 140, 215, 1);
// overlay color removed for now (messes with colors)
//background-color: rgba(40,140,215,0.35);
}
}
-
}
}
}
-.mouse-scribble, .tool-scribble, .tool-line, .tool-arrow {
+.mouse-scribble,
+.tool-scribble,
+.tool-line,
+.tool-arrow {
cursor: crosshair !important;
.artifact {
pointer-events: none !important;
}
- .artifact:after, .artifact:before {
+ .artifact:after,
+ .artifact:before {
display: none !important;
}
}
@@ -566,21 +603,27 @@ body:not(.present-mode) {
}
.artifact.state-idle {
- .progress, .progress-text {
+ .progress,
+ .progress-text {
display: none;
}
}
-.artifact.state-processing, .artifact.state-uploading {
+.artifact.state-processing,
+.artifact.state-uploading {
.progress {
height: 100%;
- padding: 10px;
-
- background-color: $blue;
+ padding: 4px;
opacity: 0.9;
- text-align: center;
font-size: 14px;
}
+ .progress-container {
+ background: $white;
+ width: 100%;
+ height: 100%;
+ padding-left: 10px;
+ padding-top: 10px;
+ }
.progress-text {
text-align: center;
padding: 8px;
@@ -593,43 +636,48 @@ body:not(.present-mode) {
color: #888;
font-size: 10px;
}
- video, audio, .tl-controls, .timeline {
+ video,
+ audio,
+ .tl-controls,
+ .timeline {
display: none;
}
-
background-color: white;
}
.state-processing .spinner {
opacity: 1;
- background-image: url('/images/hourglass.gif');
+ background-image: url("/images/hourglass.gif");
}
.state-uploading .spinner {
opacity: 0.8;
- background-image: url('/images/hourglass.gif');
+ background-image: url("/images/hourglass.gif");
}
.state-idle .spinner {
display: none;
}
-
.artifact.image {
background-color: transparent;
- &.state-loading { background-color: rgba(40,140,215,0.05);}
- &.state-processing { background-color: rgba(107,195,111,0.05);}
+ &.state-loading {
+ background-color: rgba(40, 140, 215, 0.05);
+ }
+ &.state-processing {
+ background-color: rgba(107, 195, 111, 0.05);
+ }
}
.spinner {
- height:44px;
- width:44px;
- position:absolute;
+ height: 44px;
+ width: 44px;
+ position: absolute;
top: 50%;
left: 50%;
margin: -22px;
- border-radius:100%;
+ border-radius: 100%;
background-size: cover;
background-repeat: no-repeat;
}
diff --git a/views/partials/space.html b/views/partials/space.html
index dbb8c65..3b245a6 100644
--- a/views/partials/space.html
+++ b/views/partials/space.html
@@ -156,8 +156,13 @@