update interface (fixes issue #6)

This commit is contained in:
Georg Fischer
2015-12-23 23:09:12 +01:00
parent af20f1e045
commit f2e76ee1f3
124 changed files with 10878 additions and 2600 deletions
+14
View File
@@ -0,0 +1,14 @@
@import 'global/reset.css';
@import 'global/typography.css';
@import 'global/color.css';
@import 'modules/app.css';
@import 'modules/buttons.css';
@import 'modules/panzoom.css';
@import 'modules/description.css';
@import 'modules/controls.css';
@import 'modules/nav.css';
@import 'modules/dialog.css';
@import 'modules/indicator.css';
@import 'modules/workspace.css';
@import 'modules/workspace-nav.css';
@import 'modules/about.css';
+19
View File
@@ -0,0 +1,19 @@
body {
color: #333;
}
input {
color: #ccc;
}
a {
color: #06f;
}
.color-bg {
background-color: hsla(0, 0%, 20%, 1);
}
.color-bg-light {
background-color: hsla(0, 0%, 30%, 1);
}
+5
View File
@@ -0,0 +1,5 @@
.clear:after {
content: '';
display: table;
clear: both;
}
+23
View File
@@ -0,0 +1,23 @@
a {
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
button {
font-family: -apple-system, Roboto, 'Lucida Grande', sans-serif;
font-size: 11px;
}
label,
time {
font-family: -apple-system, Roboto, 'Lucida Grande', sans-serif;
font-size: 11px;
}
input {
font-family: 'Menlo', 'Lucida Grande', sans-serif;
font-size: 11px;
}
-390
View File
@@ -1,390 +0,0 @@
* {
margin: 0;
padding: 0;
}
body {
font-family: sans-serif;
color: #666;
line-height: 18px;
font-size: 14px;
}
a {
color: #06f;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
.is-hidden {
display: none;
}
.full-width {
width: 100%;
}
.dark-bg {
background-color: #333;
}
.light-bg {
background-color: #efefef;
border-bottom: 1px #ddd solid;
}
.center {
max-width: 860px;
margin-left: auto;
margin-right: auto;
}
.nav-wrapper {
padding-top: 17px;
padding-bottom: 17px;
position: relative;
z-index: 3;
}
.button {
background-color: #ddd;
padding: 5px 9px;
display: inline-block;
color: #666;
font-weight: normal;
border-radius: 2px;
cursor: pointer;
border: none;
font-family: sans-serif;
font-size: 12px;
text-decoration: none;
line-height: normal;
margin-right: 4px;
}
.button:hover {
background-color: #06f;
color: #fff;
text-decoration: none;
}
.dark-bg .button {
background-color: #666;
color: #ccc;
}
.dark-bg .button:hover {
background-color: #999;
color: #fff;
}
.dark-bg a {
color: #ddd;
}
#random-button {
position: relative;
top: 6px;
}
.headline {
font-size: 16px;
color: #fff;
display: inline-block;
font-weight: normal;
margin-right: 20px;
position: relative;
top: 1px;
}
.intro {
width: 100%;
position: absolute;
top: -100%;
background-color: #fff;
background-color: rgba(255,255,255, 0.9);
-webkit-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
}
.intro.is-active {
top: 0;
}
.intro .center {
padding: 30px;
max-width: 580px;
position: relative;
}
.intro .close {
position: absolute;
top: 10px;
right: 10px;
display: block;
font-size: 16px;
background-color: transparent;
border: none;
color: #06f;
cursor: pointer;
}
.intro-button {
float: right;
}
.intro-button.is-active,
.intro-button.is-active:hover {
background-color: #ddd;
color: #666;
}
#controls {
display: none;
}
#controls.is-active {
display: block;
}
.control-wrapper {
display: inline-block;
width: 160px;
margin-right: 20px;
}
.control-label {
font-size: 11px;
display: block;
color: #666;
text-align: center;
max-width: 120px;
}
.oldie .control-label {
max-width: 100%;
}
.control-slider {
display: block;
float: left;
border: none;
width: 120px;
height: 1px;
margin-top: 6px;
background: #ddd;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
.oldie .control-slider {
display: none;
}
.somewhatokie .control-slider {
height: 10px;
}
.control-number {
display: block;
color: #333;
float: right;
border: none;
max-width: 30px;
font-family: sans-serif;
background-color: transparent;
}
.oldie .control-number {
float: none;
width: 20px;
margin-left: auto;
margin-right: auto;
}
#import-input {
display: none;
}
.download-link {
display: none;
}
.download-link.is-active {
display: inline-block;
margin-left: 15px;
}
.download-link span {
color: #999;
display: inline-block;
text-decoration: none;
margin-left: 4px;
}
#imgur-button {
width: 85px;
overflow: hidden;
padding-left: 0
}
#imgur-button.is-uploading,
#imgur-button.is-uploading:hover {
background-color: #ddd;
color: #666;
cursor: default;
}
#imgur-button span {
display: inline-block;
width: 154px;
padding-left: 9px;
-webkit-transition: margin-left 0.5s ease-in;
transition: margin-left 0.5s ease-in;
-webkit-transition-property: margin-left top;
transition-property: margin-left top;
text-align: left;
line-height: 10px;
font-size: 12px;
margin-bottom: 0;
padding-bottom: 0;
position: relative;
}
#imgur-button.is-uploading span {
margin-left: -76px;
}
#imgur-button span::after {
content: 'loading…';
display: inline-block;
padding-left: 15px;
color: #999;
}
#imgur-url-container {
display: inline-block;
opacity: 0;
-webkit-transition: opacity 0.3s ease-in;
transition: opacity 0.3s ease-in;
}
#imgur-url-container.is-active {
opacity: 1;
}
#imgur-url-input {
padding: 5px 9px 4px 9px;
border: none;
border-radius: 2px;
font-family: sans-serif;
font-size: 13px;
color: #333;
margin-right: 7px;
position: relative;
top: 1px;
max-width: 90px;
}
#imgur-url-error {
padding: 5px 9px;
line-height: normal;
color: #999;
}
#imgur-url-input,
#imgur-url-link,
#imgur-url-error {
display: none;
}
#imgur-url-container.upload-successful #imgur-url-input,
#imgur-url-container.upload-successful #imgur-url-link {
display: inline-block;
}
#imgur-url-container.upload-failed #imgur-url-error {
display: inline-block;
}
.social-link {
display: none;
}
.upload-successful .social-link {
display: inline-block;
}
.missing-feature {
clear: both;
}
.canvas-wrapper {
width: 100%;
position: relative;
background-color: rgba(255, 255, 255, 0.9);
line-height: 1.7;
}
#canvas {
margin-left: auto;
margin-right: auto;
display: block;
max-width: 100%;
}
.cam-wrapper {
width: 100%;
height: 0;
background-color: rgba(255, 255, 255, 0.5);
position: absolute;
z-index: 3;
transition: all 0.4s;
top: 60px;
overflow: hidden;
opacity: 0;
}
.cam-wrapper.is-active {
height: 100%;
opacity: 1;
}
.take-picture {
position: absolute;
top: 450px;
left: 50%;
margin-left: -43px;
cursor: pointer;
z-index: 3;
}
.cam {
display: block;
width: 100%;
max-width: 640px;
margin-left: auto;
margin-right: auto;
margin-top: 68px;
transform: scalex(-1);
}
@media all and (max-width: 860px) {
.nav-wrapper {
text-align: center;
}
.center {
padding-left: 10px;
padding-right: 10px;
}
.button
{
margin-bottom: 5px;
}
}
+35
View File
@@ -0,0 +1,35 @@
.about-content {
max-width: 300px;
max-height: calc(100vh - 270px);
overflow: auto;
padding-bottom: 15px;
}
.about-content .text {
opacity: 1;
margin-top: 0;
margin-bottom: 0;
width: 100%;
}
.abount-content .description {
}
.has-touch .about-content {
max-height: calc(100vh - 290px);
}
/*.about-content p {
font-size: 13px;
line-height: 22px;
}
.about-content p + p {
margin-top: 10px;
}*/
.about-dialog .dialog-item {
padding-bottom: 0;
}
+18
View File
@@ -0,0 +1,18 @@
.app {
transition: opacity 0.3s ease-out;
opacity: 0;
}
.is-loaded .app {
opacity: 1;
}
html:not(.is-online) .is-online-only {
display: none;
}
@media screen and (min-width: 600px) {
.app {
display: flex;
}
}
+87
View File
@@ -0,0 +1,87 @@
.button {
background-color: transparent;
padding: 4px 6px;
border-radius: 3px;
border: none;
color: #fff;
font-size: 11px;
display: inline-block;
cursor: pointer;
transition: all 0.2s;
outline: none;
text-decoration: none;
font-weight: 500;
text-transform: uppercase;
border: 2px solid rgba(255, 255, 255, 0.1);
height: 30px;
line-height: 22px;
}
.has-touch .button {
border: 2px solid rgba(255, 255, 255, 0.5);
height: 45px;
line-height: 40px;
padding-top: 0;
padding-bottom: 0;
padding-left: 20px;
padding-right: 20px;
}
.button:focus {
color: #fff;
border-color: #fff;
}
.button:hover,
.button:active {
color: #333;
background-color: #fff;
text-decoration: none;
border-color: #fff;
}
.button[disabled],
.button[disabled]:hover,
.button[disabled]:active,
.button[disabled]:focus {
color: rgba(255, 255, 255, 0.5);
border-color: transparent;
background-color: transparent;
cursor: default;
}
.button + .button {
margin-left: 10px;
}
.save-dialog.is-active {
max-height: 40px;
}
.webcam-dialog.is-active {
max-height: 225px;
}
.webcam-dialog.is-active {
max-height: 225px;
}
.open-file-dialog.is-active,
.share-dialog .is-active {
max-height: 550px;
}
.about-dialog.is-active {
max-height: 442px;
}
/*.dialog-list .button {
border-radius: 1px;
}
.dialog-list .button:hover,
.dialog-list .button:active,
.dialog-list .button:focus {
color: #e91e63;
background-color: #fff;
}*/
+442
View File
@@ -0,0 +1,442 @@
.controls {
width: 100%;
max-height: 0;
transition: 0.3s all ease-out;
overflow: hidden;
}
.controls.is-visible {
z-index: 10;
}
.controls.is-active {
opacity: 1;
max-height: 200px;
}
.has-touch .controls.is-active {
max-height: 300px;
}
.controls-wrapper {
width: 100%;
background-color: #333;
padding: 10px;
color: #ccc;
display: flex;
justify-content: space-between;
align-items: flex-start;
align-content: flex-start;
flex-wrap: wrap;
}
.control {
display: block;
position: relative;
min-width: 160px;
margin-top: 10px;
width: 100%;
}
.has-touch .control {
height: 45px;
margin-bottom: 10px;
}
.controls .button {
line-height: 18px;
margin-left: 10px;
}
.control-label {
display: block;
float: left;
width: 100%;
max-width: 60px;
height: 100%;
font-size: 11px;
margin-right: 10px;
text-overflow: ellipsis;
overflow: hidden;
}
.has-touch .control-label {
font-size: 14px;
max-width: 80px;
line-height: 45px;
text-align: right;
}
.control-input {
display: block;
width: 100%;
height: 100%;
min-height: 10px;
max-width: calc(100% - 105px);
background-color: transparent;
margin-top: 0;
margin-bottom: 0;
float: left;
}
.has-touch .control-input {
max-width: calc(100% - 130px);
}
.control-value {
display: block;
float: right;
width: 35px;
height: 100%;
background-color: transparent;
border: none;
text-align: right;
float: left;
}
.controls .random-button {
display: none;
}
/*two columns*/
@media screen and (min-width: 660px) {
html:not(.has-touch) .nav ~ .workspace .control {
width: calc(50% - 5px);
}
html:not(.has-touch) .nav ~ .workspace .control {
max-width: 320px;
}
}
@media screen and (min-width: 800px) {
.has-touch .nav ~ .workspace .control {
width: calc(50% - 5px);
}
html:not(.has-touch) .nav ~ .workspace .control {
max-width: 320px;
}
.has-touch .nav ~ .workspace .controls-wrapper {
min-height: 164px;
}
}
/*four columns*/
@media screen and (min-width: 721px) {
html:not(.has-touch) .nav:not(.is-active) ~ .workspace .controls-wrapper {
justify-content: flex-start;
}
html:not(.has-touch) .nav:not(.is-active) ~ .workspace .control {
min-width: 160px;
max-width: 320px;
width: calc(25% - 15px);
}
html:not(.has-touch) .nav:not(.is-active) ~ .workspace .control + .control {
margin-left: 20px;
}
}
@media screen and (min-width: 1021px) {
html:not(.has-touch) .nav ~ .workspace .controls-wrapper {
justify-content: flex-start;
}
html:not(.has-touch) .nav ~ .workspace .control {
min-width: 160px;
max-width: 320px;
width: calc(25% - 15px);
}
html:not(.has-touch) .nav ~ .workspace .control + .control {
margin-left: 20px;
}
}
/*four columns*/
@media screen and (min-width: 815px) {
html:not(.has-touch) .nav:not(.is-active) ~ .workspace .control {
width: calc(25% - 40px);
}
html:not(.has-touch) .nav:not(.is-active) ~ .workspace .random-button {
display: inline-block;
}
}
@media screen and (min-width: 1215px) {
html:not(.has-touch) .nav ~ .workspace .control {
width: calc(25% - 40px);
}
html:not(.has-touch) .nav ~ .workspace .random-button {
display: inline-block;
}
}
@media screen and (min-width: 1200px) {
.has-touch .nav:not(.is-active) ~ .workspace .control {
width: calc(25% - 40px);
}
.has-touch .nav:not(.is-active) ~ .workspace .random-button {
display: inline-block;
}
.has-touch .nav:not(.is-active) ~ .workspace .controls-wrapper {
min-height: 0;
}
}
@media screen and (min-width: 1500px) {
.has-touch .nav ~ .workspace .control {
width: calc(25% - 40px);
}
.has-touch .nav ~ .workspace .random-button {
display: inline-block;
}
.has-touch .nav ~ .workspace .controls-wrapper {
min-height: 0;
}
}
input[type=range] {
-webkit-appearance: none;
width: 100%;
}
input[type=range]:focus {
outline: none;
}
/*input[type=range]::-webkit-slider-runnable-track {
width: 100%;
height: 4px;
cursor: pointer;
background: rgba(0, 0, 0, 0.95);
border-radius: 3px;
border: 1px solid #333333;
}
input[type=range]::-webkit-slider-thumb {
border: 0.1px solid rgba(102, 102, 102, 0.5);
height: 10px;
width: 10px;
border-radius: 10px;
margin-top: -4px;
background: #999999;
cursor: pointer;
-webkit-appearance: none;
}*/
input[type='range']:not(*:root) {
overflow: hidden;
background-color: transparent;
}
input[type=range]::-webkit-slider-runnable-track {
height: 100%;
border: none;
background-color: transparent;
position: relative;
}
/*track background line, full width*/
input[type=range]::-webkit-slider-runnable-track::before {
content: '';
display: block;
position: absolute;
width: 100%;
height: 4px;
background-color: rgba(255, 255, 255, 0.2);
left: 0;
top: 50%;
transform: translateY(-50%);
transition: background-color 0.2s;
}
input[type=range]:focus::-webkit-slider-runnable-track::before,
input[type=range]:active::-webkit-slider-runnable-track::before {
background-color: rgba(0, 0, 0, 0.5);
}
/*slider thumb clickable area*/
input[type=range]::-webkit-slider-thumb {
height: 20px;
width: 20px;
border-radius: 45px;
margin-top: 0;
transition: background-color 0.2s;
background-color: transparent;
position: relative;
cursor: pointer;
-webkit-appearance: none;
}
input[type=range]:focus::-webkit-slider-thumb,
input[type=range]:active::-webkit-slider-thumb,
.has-touch input[type=range]:focus::-webkit-slider-thumb,
.has-touch input[type=range]:active::-webkit-slider-thumb {
background-color: rgba(255, 255, 255, 0.5);
}
.has-touch input[type=range]::-webkit-slider-thumb {
height: 38px;
width: 38px;
background-color: rgba(255, 255, 255, 0.2);
}
/*slider thumb point*/
input[type=range]::-webkit-slider-thumb::before {
content: '';
display: block;
position: absolute;
background-color: #fff;
width: 10px;
height: 10px;
border-radius: 14px;
z-index: 2;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);
transition: background-color 0.2s;
}
.has-touch input[type=range]::-webkit-slider-thumb::before {
width: 14px;
height: 14px;
}
/*slider current value track*/
input[type=range]::-webkit-slider-thumb::after {
content: '';
display: block;
position: absolute;
width: 100vw;
height: 3px;
top: 50%;
right: 50%;
transform: translateY(-50%);
background-color: #fff;
}
input[type=range]::-moz-range-track {
height: 100%;
border: none;
background-color: transparent;
position: relative;
background: linear-gradient(
to bottom,
rgba(255,255,255,0) 0%,
rgba(255,255,255,0) 41.9%,
rgba(255,255,255,0.2) 42%,
rgba(255,255,255,0.2) 58%,
rgba(255,255,255,0) 58.1%,
rgba(255,255,255,0) 100%
);
}
.has-touch input[type=range]::-moz-range-track {
background: linear-gradient(
to bottom,
rgba(255,255,255,0) 0%,
rgba(255,255,255,0) 49.9%,
rgba(255,255,255,0.2) 50%,
rgba(255,255,255,0.2) 55%,
rgba(255,255,255,0) 55.1%,
rgba(255,255,255,0) 100%
);
}
input[type=range]::-moz-range-thumb {
height: 20px;
width: 20px;
border-radius: 45px;
margin-top: 3px;
transition: background-color 0.2s;
position: relative;
cursor: pointer;
appearance: none;
border: none;
background: radial-gradient(
ellipse at center,
rgba(255,255,255,1) 0%,
rgba(255,255,255,1) 30%,
rgba(255,255,255,0) 30.1%,
rgba(255,255,255,0) 100%
);
}
input[type=range]::-moz-range-thumb:hover,
.has-touch input[type=range]::-moz-range-thumb {
background: radial-gradient(
ellipse at center,
rgba(255,255,255,1) 0%,
rgba(255,255,255,1) 30%,
rgba(255,255,255,0.2) 30.1%,
rgba(255,255,255,0.2) 100%
);
}
input[type=range]:focus::-moz-range-thumb,
input[type=range]:active::-moz-range-thumb,
.has-touch input[type=range]:focus::-moz-range-thumb,
.has-touch input[type=range]:active::-moz-range-thumb {
background: radial-gradient(
ellipse at center,
rgba(255,255,255,1) 0%,
rgba(255,255,255,1) 30%,
rgba(255,255,255,0.5) 30.1%,
rgba(255,255,255,0.5) 100%
);
}
.has-touch input[type=range]::-moz-range-thumb {
height: 38px;
width: 38px;
}
input[type=range]::-ms-track {
width: 100%;
height: 3px;
cursor: pointer;
background: transparent;
border: none;
color: transparent;
overflow: visible;
background-color: rgba(255, 255, 255, 0.2);
}
input[type=range]::-ms-fill-lower {
background: #fff;
border: none;
box-shadow: none;
}
input[type=range]::-ms-thumb {
box-shadow: none;
border: none;
height: 10px;
width: 10px;
border-radius: 14px;
border: none;
background: #fff;
cursor: pointer;
}
.has-touch input[type=range]::-ms-thumb {
width: 15px;
height: 15px;
border-radius: 45px;
border: 10px rgba(255, 255, 255, 0.5) solid;
}
.has-touch input[type=range]:focus::-ms-thumb,
.has-touch input[type=range]:active::-ms-thumb {
border-color: rgba(255, 255, 255, 1);
}
+7
View File
@@ -0,0 +1,7 @@
.is-good-enough .description .min-requirements {
display: none;
}
.has-js .description .js-required {
display: none;
}
+388
View File
@@ -0,0 +1,388 @@
.dialog {
transition: all 0.5s;
max-height: 0;
overflow: hidden;
position: relative;
}
.dialog.is-active {
max-height: calc(100vh - 220px);
}
.has-touch .dialog.is-active {
max-height: calc(100vh - 290px);
}
.dialog.is-visible {
display: block;
}
.dialog-close-button {
position: absolute;
top: 5px;
right: 5px;
border: none;
cursor: pointer;
border-radius: 34px;
width: 34px;
height: 34px;
outline: none;
background-color: transparent;
}
.dialog-close-button:hover,
.dialog-close-button:focus,
.dialog-close-button:active {
color: #f50057;
}
.dialog-close-button .close-text {
font-size: 20px;
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);
text-align: center;
}
.dialog > h1,
.dialog-title {
font-size: 17px;
font-weight: normal;
/*color: #fff;*/
padding: 10px 20px 0 20px;
}
.dialog-item {
display: block;
width: 100%;
padding-top: 15px;
padding-left: 20px;
padding-bottom: 15px;
padding-right: 20px;
}
.dialog-item + .dialog-item,
.dialog-item:first-child {
padding-top: 0;
}
.dialog-item p {
font-size: 13px;
line-height: 22px;
}
.dialog-item p + p {
margin-top: 10px;
}
.dialog-item .label {
display: block;
width: 100%;
font-size: 14px;
color: rgba(255, 255, 255, 0.7);
margin-bottom: 3px;
padding: 10px 0;
}
.dialog-item input[type="text"],
.dialog-item input[type="url"],
.dialog-item input[type="email"] {
background-color: transparent;
border: none;
border-bottom: 1px #666 solid;
margin-bottom: 5px;
max-width: calc(100% - 45px);
width: 100%;
transition: all 0.2s;
}
.dialog-item input[type="text"]:focus,
.dialog-item input[type="url"]:focus,
.dialog-item input[type="email"]:focus {
border-bottom-color: #999;
color: #fff;
}
.dialog-item input[type="text"]:last-child,
.dialog-item input[type="url"]:last-child,
.dialog-item input[type="email"]:last-child {
max-width: 100%;
}
.dialog-item input[type="text"] + .button,
.dialog-item input[type="url"] + .button,
.dialog-item input[type="email"] + .button {
margin-left: 5px;
float: right;
}
.dialog-item input[type="file"] {
width: 0;
height: 0;
overflow: hidden;
position: absolute;
top: 0;
left: 0;
}
.dialog-item video {
max-height: 200px;
max-width: 300px;
width: 100%;
background-color: #000;
overflow: hidden;
object-fit: cover;
display: block;
cursor: pointer;
opacity: 0.8;
}
.dialog-item video:hover {
opacity: 1;
}
.dialog-item .video-wrapper.is-taking-picture {
background-color: #fff;
}
.dialog-item .video-wrapper.is-taking-picture video {
opacity: 0;
transition-duration: 0;
}
.dialog-item a:not(.button) {
color: #fff;
border-bottom: 1px #999 solid;
}
.dialog-item a:not(.button):hover {
border-bottom: 1px #ccc solid;
text-decoration: none;
}
.dialog-list {
overflow: scroll;
margin-left: -20px;
padding-left: 20px;
padding-right: 20px;
width: calc(100% + 40px);
max-height: calc(100vh - 355px);
}
.has-touch .dialog-list {
max-height: calc(100vh - 445px);
}
.dialog-list-item {
position: relative;
margin-bottom: 10px;
display: block;
}
.has-touch .dialog-list-item {
margin-bottom: 30px;
}
.dialog-list img {
transition: all 0.2s;
cursor: pointer;
display: block;
float: left;
margin-bottom: 10px;
}
.has-touch .dialog-list img {
float: none;
}
.dialog-list .entry-text {
position: absolute;
left: 60px;
top: 0;
line-height: 16px;
max-width: calc(100% - 60px);
}
.has-touch .dialog-list .entry-text {
width: 100%;
}
.dialog-list .entry-name {
font-size: 11px;
color: #fff;
display: block;
overflow: hidden;
width: 80px;
text-overflow: ellipsis;
}
html:not(.has-touch) .dialog-list .entry-name {
white-space: nowrap;
}
.has-touch .dialog-list .entry-name {
width: 100%;
}
.dialog-list .entry-datetime span {
display: block;
max-width: 90px;
overflow: hidden;
text-overflow: ellipsis;
max-height: 40px
}
.has-touch .dialog-list .entry-datetime span {
max-width: 100%;
display: inline-block;
}
.has-touch .dialog-list .entry-datetime span + span {
margin-left: 10px;
}
.dialog-list .entry-button-wrapper {
position: absolute;
top: 15px;
right: 0;
text-align: right;
}
.has-touch .dialog-list .entry-button-wrapper {
position: static;
text-align: left;
margin-top: 10px;
margin-bottom: 10px;
display: inline-block;
}
.dialog-list .entry-shared-button-wrapper {
margin-top: 10px;
clear: both;
}
.has-touch .dialog-list .entry-shared-button-wrapper {
display: inline;
}
.has-touch .shared-list .entry-button-wrapper {
width: 100%;
}
html:not(.has-touch) .dialog-list .entry-shared-button-wrapper .button {
border-color: transparent;
}
html:not(.has-touch) .dialog-list .item-delete-button {
border-color: transparent;
}
.dialog-list .no-items {
font-size: 12px;
margin-left: 15px;
}
.has-touch .share-dialog.is-active {
max-height: calc(100vh - 270px);
overflow: auto;
}
/*pulse keyframe animation is inlined in html*/
.dialog .loader {
font-size: 14px;
overflow: hidden;
position: relative;
transition: all 0.3s;
max-height: 0;
padding-top: 0;
padding-bottom: 0;
border-width: 0;
}
.dialog.is-loading:not(.was-loaded) .loader {
padding-left: 50px;
padding-bottom: 10px;
padding-top: 13px;
max-height: 40px;
border-width: 1;
color: #fff;
}
.dialog .loader ~ .dialog-item {
transition: all 0.3s;
overflow: hidden;
}
.dialog .loader + .dialog-item {
border-top: none;
}
.dialog:not(.was-loaded) .loader ~ .dialog-item:not(.has-list) {
max-height: 0;
padding-top: 0;
padding-bottom: 0;
border-width: 0;
}
.save-dialog .dialog-item {
display: flex;
justify-content: space-between;
}
.save-dialog .button {
display: block;
}
.webcam-dialog .button {
margin-top: 10px;
}
.shared-list {
max-height: calc(100vh - 345px);
transition: max-height 0.2s;
}
.shared-list.is-empty {
max-height: 0;
overflow: hidden;
padding-top: 0;
padding-bottom: 0;
border-width: 0;
}
.shared-list .entry-button-wrapper {
position: static;
width: 120px;
float: right;
}
.shared-list .item-offline-button {
margin-top: 5px;
}
html:not(.has-touch) .shared-list .item-offline-button {
border-color: transparent;
}
.setting {
display: flex;
}
.setting-label {
font-size: 14px;
display: block;
width: calc(100% - 16px);
padding-right: 30px;
cursor: pointer;
line-height: 21px;
-webkit-touch-callout: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.setting-checkbox {
margin-top: 3px;
}
+75
View File
@@ -0,0 +1,75 @@
.notifications {
position: absolute;
top: 15px;
right: 15px;
transition: all 0.3s;
width: 240px;
opacity: 0;
transform: translateZ(0);
max-height: 50vh;
overflow: hidden;
}
.notifications.is-active {
opacity: 1;
z-index: 5;
}
.notification {
width: 100%;
background-color: rgba(0, 0, 0, 0.8);
opacity: 0;
transition: all 0.3s ease-out;
transform: translateY(30px);
max-height: 0;
overflow: hidden;
line-height: 24px;
padding-left: 10px;
padding-right: 10px;
padding-top: 0;
padding-bottom: 0;
font-size: 12px;
padding-left: 45px;
background-repeat: no-repeat;
background-position: 10px 10px;
background-image: url(../../images/icon/information-outline.svg);
color: #fff;
}
.notification a {
color: #fff;
text-decoration: none;
border-bottom: 1px #ccc solid;
}
.notification-error {
background-image: url(../../images/icon/alert-circle.svg);
}
.notification-welcome {
background-image: url(../../images/icon/emoticon.svg);
}
.notification.is-visible {
transform: translateY(0);
}
.notification.is-active {
margin-bottom: 10px;
opacity: 1;
padding-top: 10px;
padding-bottom: 10px;
max-height: calc(100%);
}
.notification.is-visible:not(.is-active) {
height: 0;
}
.notification.is-active:nth-child(3) {
opacity: 0.5;
}
.notification.is-active:nth-child(3) ~ .notification {
opacity: 0;
}
+284
View File
@@ -0,0 +1,284 @@
.nav {
position: absolute;
width: 15%;
height: 100%;
width: 300px;
left: 0;
top: 0;
z-index: 11;
color: rgba(255, 255, 255, 0.6);
overflow: hidden;
transform: translateX(-300px);
transition: transform 300ms ease-out;
max-width: 100%;
}
.nav.is-swiping {
transition: none;
}
.nav.is-active {
transform: translateX(0);
}
.nav-button {
background-color: transparent;
display: block;
color: #fff;
border: none;
line-height: 22px;
font-size: 15px;
cursor: pointer;
transition: all 0.2s;
outline: none;
width: 100%;
text-align: left;
padding-left: 50px;
padding-right: 0px;
padding-bottom: 10px;
padding-top: 10px;
position: relative;
}
.has-touch .nav-button {
padding-top: 0;
padding-bottom: 0;
height: 48px;
line-height: 48px;
}
.nav-button:hover,
.nav-button.is-active,
.nav-button:focus {
color: #fff;
background-color: hsla(0,0%,30%,1);
}
.nav-button::before {
width: 18px;
height: 18px;
content: '';
display: block;
position: absolute;
left: 20px;
top: 12px;
background-size: contain;
background-position: center;
background-repeat: no-repeat;
}
.has-touch .nav-button::before {
top: 16px;
}
.has-touch .nav-button::after {
top: 15px;
transform: scale(1.5);
}
.open-button::before {
background-image: url(../../images/icon/open-in-app.svg);
}
.save-view-button::before {
background-image: url(../../images/icon/content-save.svg);
}
.photo-button::before {
background-image: url(../../images/icon/camera.svg);
}
.share-toggle-button::before {
background-image: url(../../images/icon/share-variant.svg);
}
.info-button::before {
background-image: url(../../images/icon/information-outline.svg);
}
.settings-button::before {
background-image: url(../../images/icon/settings.svg);
}
.nav-button::after {
content: '';
display: block;
width: 18px;
height: 18px;
position: absolute;
right: 20px;
top: 13px;
background-image: url(../../images/icon/chevron-down.svg);
background-size: cover;
background-position: center;
background-repeat: no-repeat;
transition: all 0.3s;
}
.nav-button.is-active::after {
transform: rotate(-180deg);
}
.has-touch .nav-button.is-active::after {
transform: rotate(-180deg) scale(1.5);
}
.nav-headline {
height: 50px;
line-height: 50px;
color: #fff;
font-weight: normal;
padding-left: 20px;
font-size: 15px;
text-transform: uppercase;
}
.nav-toggle-button {
display: block;
width: 90px;
height: 30px;
position: absolute;
top: 10px;
left: 15px;
border: none;
text-indent: -5000px;
background-color: transparent;
border: none;
cursor: pointer;
outline: 0;
z-index: 11;
transition: all 0.3s ease-out;
-webkit-touch-callout: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.nav-toggle-button.is-active {
border-color: transparent;
width: 30px;
transform: translateX(242px);
}
.nav-toggle-button.is-swiping {
transition: none;
}
.nav-toggle-button-text {
position: absolute;
height: 100%;
width: 50px;
text-indent: 0;
text-align: left;
left: 40px;
top: 0;
line-height: 30px;
font-size: 14px;
color: #666;
text-transform: uppercase;
overflow: hidden;
transition: all 0.3s ease-out;
}
.nav-toggle-button.is-active .nav-toggle-button-text {
width: 0;
opacity: 0;
}
.nav-toggle-button.is-swiping .nav-toggle-button-text {
transition: none;
}
.nav-toggle-button .svg-wrapper {
width: 30px;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
.nav-toggle-button #svg {
width: 100%;
height: 100%;
display: block;
}
.nav-toggle-button rect,
.nav-toggle-button #menu {
transition: all 0.4s ease-out;
}
.nav-toggle-button #menu {
transform-origin: 12px 12px;
transform: rotateZ(0);
}
.nav-toggle-button rect {
transform-origin: 12px 12px;
}
.nav-toggle-button.is-swiping rect,
.nav-toggle-button.is-swiping #menu {
transition: none;
}
.nav-toggle-button.is-active rect {
fill: #fff;
}
.nav-toggle-button.is-active #menu {
transform: rotateZ(-90deg);
}
.nav-toggle-button.is-active #rect-1 {
transform: rotateZ(45deg) translateX(0) translateY(5.1px);
}
.nav-toggle-button.is-active #rect-3 {
transform: rotateZ(-45deg) translateX(0) translateY(-5.1px);
}
.nav-toggle-button.is-active #rect-2 {
transform: scaleX(0);
}
@media screen and (max-width: 300px) {
.nav-toggle-button.is-active {
left: calc(100% - 41px);
}
}
@media screen and (max-width: 600px) {
body {
overflow: hidden;
}
}
@media screen and (max-height: 600px) {
.nav {
overflow: auto;
}
.nav .dialog.is-active {
max-height: none !important;
overflow: visible;
}
.nav .dialog-list:not(.is-empty),
.nav .shared-list:not(.is-empty),
.nav .about-content {
max-height: none !important;
overflow: visible;
}
}
@media screen and (min-width: 1200px) {
.nav {
transform: translateX(0);
}
.nav-toggle-button {
display: none;
}
}
+33
View File
@@ -0,0 +1,33 @@
.panzoom {
width: 100%;
height: 100%;
overflow: hidden;
transition: all 0.2s;
}
.panzoom canvas {
image-rendering: -moz-crisp-edges;
image-rendering: -webkit-crisp-edges;
image-rendering: crisp-edges;
image-rendering: pixelated;
opacity: 0;
}
.panzoom.is-visible:not(.drag-over) canvas {
opacity: 1;
transition: opacity 0.2s;
}
.panzoom.drag-over {
background-color: #444;
}
.panzoom.drag-over canvas {
opacity: 0;
}
@media screen and (max-width: 800px) {
.has-touch .controls.is-active ~ .panzoom {
height: calc(100vh - 280px)
}
}
+311
View File
@@ -0,0 +1,311 @@
.workspace-nav {
z-index: 10;
width: 100%;
position: relative;
}
.workspace-controls {
position: absolute;
top: 0;
background-color: rgba(255, 255, 255, 0.4);
padding: 10px;
transform: translateY(-100%);
width: 100%;
display: flex;
justify-content: space-between;
flex-direction: row-reverse;
}
.workspace-controls .scale-to-original-button {
display: inline-block;
}
input.scale-slider {
width: calc(100% - 230px);
float: right;
position: relative;
top: 6px;
height: 20px;
display: none;
margin-right: 0;
margin-left: 0;
z-index: 14;
}
.has-touch .workspace-controls .scale-slider {
min-height: 45px;
width: calc(100% - 260px);
top: 0;
}
.workspace-controls .button {
margin-right: 10px;
float: left;
color: #333;
border-color: rgba(0, 0, 0, 0.1);
}
.workspace-controls .button:hover,
.workspace-controls .button:active {
border-color: rgba(0, 0, 0, 0.9);
}
.has-touch .workspace-controls .button,
.workspace-controls .button[disabled],
.workspace-controls .button[disabled]:hover,
.workspace-controls .button[disabled]:active,
.workspace-controls .button[disabled]:focus {
border-color: rgba(0, 0, 0, 0.5);
}
.workspace-controls .scale-label {
color: #333;
margin-left: 20px;
display: none;
height: 30px;
line-height: 30px;
}
.has-touch .workspace-controls .scale-label {
font-size: 14px;
line-height: 45px;
text-align: right;
height: 45px;
}
.workspace-controls .button {
float: right;
margin-right: 10px
}
.workspace-controls .controls-toggle-button {
float: left;
}
.fullscreen-button {
display: block;
position: absolute;
top: 10px;
right: 10px;
width: 20px;
overflow: hidden;
text-indent: -5000px;
width: 30px;
height: 30px;
background-image: url(../../images/icon/fullscreen.svg);
background-color: transparent;
background-size: cover;
background-position: center;
border: none;
cursor: pointer;
transition: all 0.3s ease-out;
opacity: 1;
}
html:not(.has-touch) .fullscreen-button {
opacity: 0.7;
}
html:not(.has-touch) .fullscreen-button:hover {
opacity: 1;
}
.is-fullscreen .fullscreen-button {
background-image: url(../../images/icon/fullscreen-exit.svg);
}
.workspace-controls input[type=range]::-webkit-slider-runnable-track::before,
.has-touch .workspace-controls input[type=range]::-webkit-slider-thumb {
background-color: rgba(0, 0, 0, 0.2);
}
.workspace-controls input[type=range]:focus::-webkit-slider-thumb,
.workspace-controls input[type=range]:active::-webkit-slider-thumb,
.workspace-controls input[type=range]:focus::-webkit-slider-runnable-track::before,
.workspace-controls input[type=range]:active::-webkit-slider-runnable-track::before,
.has-touch .workspace-controls input[type=range]:focus::-webkit-slider-thumb,
.has-touch .workspace-controls input[type=range]:active::-webkit-slider-thumb {
background-color: rgba(0, 0, 0, 0.5);
}
.workspace-controls input[type=range]::-webkit-slider-thumb::before,
.workspace-controls input[type=range]::-webkit-slider-thumb::after {
background-color: rgba(0, 0, 0, 0.9);
}
.workspace-controls input[type=range]::-moz-range-track {
background: linear-gradient(
to bottom,
rgba(0, 0, 0, 0) 0%,
rgba(0, 0, 0, 0) 41.9%,
rgba(0, 0, 0, 0.2) 42%,
rgba(0, 0, 0, 0.2) 58%,
rgba(0, 0, 0, 0) 58.1%,
rgba(0, 0, 0, 0) 100%
);
}
.workspace-controls .has-touch input[type=range]::-moz-range-track {
background: linear-gradient(
to bottom,
rgba(0, 0, 0, 0) 0%,
rgba(0, 0, 0, 0) 49.9%,
rgba(0, 0, 0, 0.2) 50%,
rgba(0, 0, 0, 0.2) 55%,
rgba(0, 0, 0, 0) 55.1%,
rgba(0, 0, 0, 0) 100%
);
}
.workspace-controls input[type=range]::-moz-range-thumb {
background: radial-gradient(
ellipse at center,
rgba(0, 0, 0 ,1) 0%,
rgba(0, 0, 0 ,1) 30%,
rgba(0, 0, 0 ,0) 30.1%,
rgba(0, 0, 0 ,0) 100%
);
}
.workspace-controls input[type=range]::-moz-range-thumb:hover,
.has-touch .workspace-controls input[type=range]::-moz-range-thumb {
background: radial-gradient(
ellipse at center,
rgba(0, 0, 0, 1) 0%,
rgba(0, 0, 0, 1) 30%,
rgba(0, 0, 0, 0.2) 30.1%,
rgba(0, 0, 0, 0.2) 100%
);
}
.workspace-controls input[type=range]:focus::-moz-range-thumb,
.workspace-controls input[type=range]:active::-moz-range-thumb,
.has-touch .workspace-controls input[type=range]:focus::-moz-range-thumb,
.has-touch .workspace-controls input[type=range]:active::-moz-range-thumb {
background: radial-gradient(
ellipse at center,
rgba(0, 0, 0, 1) 0%,
rgba(0, 0, 0, 1) 30%,
rgba(0, 0, 0, 0.5) 30.1%,
rgba(0, 0, 0, 0.5) 100%
);
}
.workspace-controls input[type=range]::-ms-track {
background-color: rgba(0, 0, 0, 0.2);
}
.workspace-controls input[type=range]::-ms-fill-lower,
.workspace-controls input[type=range]::-ms-thumb {
background: #000;
}
.has-touch .workspace-controls input[type=range]::-ms-thumb {
border-color: rgba(0, 0, 0, 0.5);
}
.has-touch .workspace-controls input[type=range]:active::-ms-thumb,
.has-touch .workspace-controls input[type=range]:focus::-ms-thumb {
border-color: rgba(0, 0, 0, 1);
}
/*workspace ui*/
@media screen and (min-width: 300px) {
html:not(.has-touch) .workspace-controls .scale-slider {
display: inline-block;
}
}
@media screen and (min-width: 400px) {
html:not(.has-touch) .nav:not(.is-active) ~ .workspace .scale-label {
display: inline-block;
}
html:not(.has-touch) .nav:not(.is-active) ~ .workspace .scale-slider {
width: calc(100% - 300px);
}
.has-touch .nav:not(.is-active) ~ .workspace .scale-slider {
display: inline-block;
}
}
@media screen and (min-width: 700px) {
html:not(.has-touch) .nav ~ .workspace .scale-label {
display: inline-block;
}
html:not(.has-touch) .nav ~ .workspace .scale-slider {
width: calc(100% - 300px);
}
.has-touch .nav ~ .workspace .scale-slider {
display: inline-block;
}
}
@media screen and (min-width: 440px) {
.nav:not(.is-active) ~ .workspace .scale-slider {
width: calc(100% - 320px);
margin-left: 20px;
margin-right: 20px;
}
.has-touch .nav:not(.is-active) ~ .workspace .scale-slider {
width: calc(100% - 360px);
}
.has-touch .nav:not(.is-active) ~ .workspace .scale-label {
display: inline-block;
}
}
@media screen and (min-width: 740px) {
.nav ~ .workspace .scale-slider {
width: calc(100% - 320px);
margin-left: 20px;
margin-right: 20px;
}
.has-touch .nav ~ .workspace .scale-slider {
width: calc(100% - 360px);
}
.has-touch .nav ~ .workspace .scale-label {
display: inline-block;
}
}
@media screen and (min-width: 700px) {
.workspace-controls .controls-toggle-button {
padding-left: 20px;
position: relative;
}
.has-touch .workspace-controls .controls-toggle-button {
text-indent: 10px;
}
.workspace-controls .controls-toggle-button::before {
content: '';
position: absolute;
width: 20px;
height: 20px;
background-image: url(../../images/icon/chevron-down-black.svg);
background-size: contain;
background-position: center;
background-repeat: no-repeat;
top: 50%;
left: 0;
transform: translateY(-50%) rotate(-180deg);
transition: all 0.3s ease-out;
}
.workspace-controls .controls-toggle-button.is-active::before {
transform: translateY(-50%) rotate(0deg);
}
.has-touch .workspace-controls .controls-toggle-button::before {
left: 5px;
}
}
+22
View File
@@ -0,0 +1,22 @@
.workspace {
width: 100%;
height: 100%;
position: absolute;
right: 0;
top: 0;
transition: all 0.3s ease-out;
display: flex;
flex-direction: column-reverse;
}
@media screen and (min-width: 600px) {
.nav.is-active ~ .workspace {
width: calc(100% - 300px);
}
}
@media screen and (min-width: 1200px) {
.nav ~ .workspace {
width: calc(100% - 300px);
}
}