summaryrefslogtreecommitdiff
path: root/web/share/css
diff options
context:
space:
mode:
authorDevaev Maxim <[email protected]>2018-12-15 04:29:40 +0300
committerDevaev Maxim <[email protected]>2018-12-15 04:29:40 +0300
commit3c33bd37190772a783369894e209bcfe0858177a (patch)
treee095f08f37371a3182f6ced0b280c4bcaa06983b /web/share/css
parent3445766a50eab16a96d969397a6fe0422f7cfcd2 (diff)
own auth
Diffstat (limited to 'web/share/css')
-rw-r--r--web/share/css/index/index.css84
-rw-r--r--web/share/css/kvm/about.css28
-rw-r--r--web/share/css/kvm/hid.css21
-rw-r--r--web/share/css/kvm/keyboard.css146
-rw-r--r--web/share/css/kvm/msd.css22
-rw-r--r--web/share/css/kvm/stream.css90
-rw-r--r--web/share/css/leds.css63
-rw-r--r--web/share/css/login/login.css25
-rw-r--r--web/share/css/main.css179
-rw-r--r--web/share/css/menu.css113
-rw-r--r--web/share/css/modals.css58
-rw-r--r--web/share/css/progress.css23
-rw-r--r--web/share/css/sliders.css78
-rw-r--r--web/share/css/switches.css76
-rw-r--r--web/share/css/vars.css63
-rw-r--r--web/share/css/windows.css74
16 files changed, 1143 insertions, 0 deletions
diff --git a/web/share/css/index/index.css b/web/share/css/index/index.css
new file mode 100644
index 00000000..72ab5c24
--- /dev/null
+++ b/web/share/css/index/index.css
@@ -0,0 +1,84 @@
+div#start-box {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ text-align: center;
+ min-height: 100vh;
+}
+
+div#start {
+ text-align: left;
+ outline: none;
+ word-wrap: break-word;
+ max-width: 800px;
+ border: var(--border-window-thin);
+ border-radius: 8px;
+ box-sizing: border-box;
+ box-shadow: var(--shadow-big);
+ background-color: var(--cs-window-default-bg);
+ padding: 15px;
+}
+
+div#start div#apps-box {
+ display: table;
+ margin: 0 auto;
+}
+
+div#start div#apps-box ul#apps {
+ list-style-type: none;
+ padding: 0;
+ margin: 0;
+}
+
+div#start div#apps-box ul#apps li {
+ float: left;
+ margin-left: 5px;
+ margin-right: 5px;
+}
+
+div#start div#apps-box ul#apps li div.app {
+ height: 100px;
+ width: 100px;
+ text-align: center;
+ background-color: var(--cs-control-default-bg);
+ box-shadow: var(--shadow-micro);
+ border: var(--border-key-thin);
+ border-radius: 8px;
+}
+
+div#start div#apps-box ul#apps li div:hover.app {
+ border: var(--border-intensive-thin);
+ box-shadow: none;
+}
+
+div#start div#apps-box ul#apps li div.app img {
+ display: block;
+ margin: auto;
+ height: 50px;
+ padding-bottom: 5px;
+}
+
+div#start div#apps-box ul#apps li div.app a {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ height: 100%;
+ text-decoration: none;
+ font-weight: bold;
+}
+
+div#start td.logo {
+ padding-right: 25px;
+}
+div#start td.title {
+ font-size: 1.2em;
+}
+div#start td.copyright {
+ font-size: 0.8em;
+}
+div#start tr.server {
+ font-size: 1.4em;
+ font-weight: bold;
+ font-family: monospace;
+}
diff --git a/web/share/css/kvm/about.css b/web/share/css/kvm/about.css
new file mode 100644
index 00000000..e6e2360f
--- /dev/null
+++ b/web/share/css/kvm/about.css
@@ -0,0 +1,28 @@
+div#about {
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ user-select: text;
+ max-width: 600px;
+ white-space: normal;
+ padding: 5px 5px 5px 5px;
+}
+
+div#about td.logo {
+ padding-right: 25px;
+}
+
+div#about td.title {
+ font-size: 1.2em;
+}
+
+div#about td.copyright {
+ font-size: 0.8em;
+}
+
+div#about tr.version {
+ font-family: monospace;
+}
+
+div#about div#about-meta {
+ height: 200px;
+}
diff --git a/web/share/css/kvm/hid.css b/web/share/css/kvm/hid.css
new file mode 100644
index 00000000..6663a85c
--- /dev/null
+++ b/web/share/css/kvm/hid.css
@@ -0,0 +1,21 @@
+textarea#hid-pak-text {
+ display: block;
+ resize: none;
+ width: 100%;
+ height: 40px;
+ color: var(--cs-window-default-fg);
+ background-color: var(--cs-window-default-bg);
+ border: none;
+ outline: 0 !important;
+ -webkit-appearance:none;
+}
+
+textarea#hid-pak-text::-moz-placeholder {
+ line-height: 40px;
+ text-align: center;
+}
+
+textarea#hid-pak-text::-webkit-input-placeholder {
+ line-height: 40px;
+ text-align: center;
+}
diff --git a/web/share/css/kvm/keyboard.css b/web/share/css/kvm/keyboard.css
new file mode 100644
index 00000000..2ff622f3
--- /dev/null
+++ b/web/share/css/kvm/keyboard.css
@@ -0,0 +1,146 @@
+div.keyboard {
+ zoom: 0.8;
+}
+
+div.keyboard div.keyboard-block {
+ display: table-cell;
+ padding-right: 0;
+}
+div.keyboard div.keyboard-block:not(:first-child) {
+ padding-left: 15px;
+}
+
+div.keyboard div.keyboard-row {
+ white-space: nowrap;
+ height: 40px;
+ margin-bottom: 5px;
+}
+div.keyboard div.keyboard-row:last-child {
+ margin-bottom: 0;
+}
+
+div.keyboard div.key, div.modifier, div.empty-key {
+ box-sizing: border-box;
+ display: inline-block;
+ margin-right: 5px;
+ padding: 0;
+ width: 40px;
+}
+div.keyboard div.key, div.modifier {
+ font-size: 0.9em;
+ text-align: center;
+ vertical-align: top;
+ box-shadow: var(--shadow-micro);
+ border: var(--border-key-thin);
+ border-radius: 6px;
+ color: var(--cs-key-default-fg);
+ background-color: var(--cs-key-default-bg);
+ cursor: pointer;
+ height: 40px;
+}
+div.keyboard div.key:hover, div.modifier:hover {
+ color: var(--cs-key-hovered-fg);
+ background-color: var(--cs-key-hovered-bg);
+}
+div.keyboard div.pressed {
+ box-shadow: none;
+ color: var(--cs-key-pressed-fg) !important;
+ background-color: var(--cs-key-pressed-bg) !important;
+}
+div.keyboard div.holded {
+ box-shadow: none;
+ color: var(--cs-key-default-fg) !important;
+ background-color: var(--cs-key-holded-bg) !important;
+}
+div.keyboard div.key:last-child, div.empty-key:last-child, div.modifier:last-child {
+ margin-right: 0;
+}
+div.keyboard div.margin-0 {
+ margin-right: 0px;
+}
+div.keyboard div.wide-0 {
+ width: 26px;
+}
+div.keyboard div.wide-1 {
+ width: 61px;
+}
+div.keyboard div.wide-2 {
+ width: 64px;
+}
+div.keyboard div.wide-3 {
+ width: 77px;
+}
+div.keyboard div.wide-4 {
+ width: 102px;
+}
+div.keyboard div.wide-5 {
+ width: 288px;
+}
+div.keyboard div.left {
+ text-align: left !important;
+ padding-left: 6px !important;
+}
+div.keyboard div.right {
+ text-align: right !important;
+ padding-right: 6px !important;
+}
+div.keyboard div.small {
+ font-size: 0.7em;
+}
+
+div.keyboard p {
+ margin: 0;
+ position: relative;
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ transform: translateY(-50%);
+}
+div.keyboard b {
+ color: var(--cs-key-holded-bg);
+}
+
+@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
+ div#keyboard-window {
+ visibility: visible !important;
+ padding-top: 9px !important;
+ padding-bottom: 30px !important;
+ border-bottom: 0 !important;
+ border-left: 0 !important;
+ border-right: 0 !important;
+ border-radius: 0 !important;
+ top: unset !important;
+ bottom: 0 !important;
+ width: 100% !important;
+ left: 50% !important;
+ -webkit-transform: translateX(-50%) !important;
+ transform: translateX(-50%) !important;
+ }
+ div#keyboard-window-header {
+ display: none !important
+ }
+}
+
+div#keyboard-desktop {
+ display: block;
+}
+div#keyboard-mobile {
+ display: none;
+}
+@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
+ /* iPad */
+ div.keyboard {
+ zoom: 1.28 !important;
+ }
+
+ div.keyboard div.key:hover, div.modifier:hover {
+ color: var(--cs-key-default-fg);
+ background-color: var(--cs-key-default-bg);
+ }
+
+ div#keyboard-desktop {
+ display: none !important;
+ }
+ div#keyboard-mobile {
+ display: block !important;
+ }
+}
diff --git a/web/share/css/kvm/msd.css b/web/share/css/kvm/msd.css
new file mode 100644
index 00000000..4a1c5d28
--- /dev/null
+++ b/web/share/css/kvm/msd.css
@@ -0,0 +1,22 @@
+div#msd-menu {
+ width: 450px;
+}
+
+div#msd-menu div.msd-message, input.msd-message {
+ display: none;
+}
+
+div#msd-menu table.msd-info {
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ user-select: text;
+ border-spacing: 5px;
+ margin: 0 10px 0 10px;
+ font-size: 12px;
+}
+
+div#msd-menu table.msd-info td.msd-info-value {
+ font-weight: bold;
+ max-width: 310px;
+ overflow: hidden;
+}
diff --git a/web/share/css/kvm/stream.css b/web/share/css/kvm/stream.css
new file mode 100644
index 00000000..c99c3c9c
--- /dev/null
+++ b/web/share/css/kvm/stream.css
@@ -0,0 +1,90 @@
+div#stream-info {
+ display: none;
+}
+
+div#stream-box {
+ position: relative;
+ display: inline-block;
+ border: var(--border-window-thin);
+}
+div.stream-box-inactive::after {
+ cursor: wait;
+ content: "";
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ display: inline-block;
+ background: radial-gradient(transparent 20%, black);
+}
+div.stream-box-mouse-enabled {
+ cursor: url("../../svg/stream-mouse-cursor.svg"), pointer;
+}
+
+img#stream-image {
+ width: 640px;
+ height: 480px;
+ display: block;
+ background-color: black;
+}
+
+img.stream-image-active {
+ -webkit-filter: none;
+ filter: none;
+}
+
+img.stream-image-inactive {
+ -webkit-filter: grayscale(100%) brightness(75%) sepia(75%);
+ filter: grayscale(100%) brightness(75%) sepia(75%);
+}
+
+div.stream-slider-box {
+ margin-top: 5px;
+ display: flex;
+}
+
+table#stream-auto-resize-box {
+ width: 100%;
+ border-collapse: collapse;
+}
+@media only screen and (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
+ @supports (-webkit-appearance: none) {
+ table#stream-auto-resize-box {
+ margin: 20px 0 20px 0 !important;
+ }
+ }
+}
+
+div#stream-mouse-buttons {
+ display: none;
+ margin: 0;
+ padding: 0;
+ font-size: 0;
+}
+
+@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
+ div#stream-window {
+ padding-top: 3px !important;
+ border-top: 0 !important;
+ border-radius: 0 0 8px 8px !important;
+ top: 50px !important;
+ left: 50% !important;
+ -webkit-transform: translateX(-50%) !important;
+ transform: translateX(-50%) !important;
+ }
+ div#stream-window-header {
+ display: none !important;
+ }
+ div#stream-info {
+ display: block !important;
+ margin: 0;
+ padding: 0;
+ padding-bottom: 3px;
+ font-size: 0.8em;
+ color: var(--cs-window-header-default-fg);
+ }
+ div#stream-mouse-buttons {
+ display: block !important;
+ }
+}
diff --git a/web/share/css/leds.css b/web/share/css/leds.css
new file mode 100644
index 00000000..fe23a434
--- /dev/null
+++ b/web/share/css/leds.css
@@ -0,0 +1,63 @@
+@-webkit-keyframes spin {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ }
+}
+@keyframes spin {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+:root {
+ --led-filter-gray: invert(0.5);
+ --led-filter-green: invert(0.5) sepia(1) saturate(5) hue-rotate(100deg);
+ --led-filter-red: invert(0.5) sepia(1) saturate(15) hue-rotate(320deg);
+ --led-filter-yellow: invert(0.5) sepia(1) saturate(5) hue-rotate(0deg);
+
+ --led-spin-slow: spin 6s linear infinite;
+ --led-spin-medium: spin 3s linear infinite;
+ --led-spin-fast: spin 2s linear infinite;
+}
+
+img.led-gray {
+ -webkit-filter: var(--led-filter-gray);
+ filter: var(--led-filter-gray);
+}
+
+img.led-green {
+ -webkit-filter: var(--led-filter-green);
+ filter: var(--led-filter-green);
+}
+
+img.led-red {
+ -webkit-filter: var(--led-filter-red);
+ filter: var(--led-filter-red);
+}
+
+img.led-yellow {
+ -webkit-filter: var(--led-filter-yellow);
+ filter: var(--led-filter-yellow);
+}
+
+img.led-green-rotating-medium {
+ -webkit-filter: var(--led-filter-green);
+ filter: var(--led-filter-green);
+ -webkit-animation: var(--led-spin-medium);
+ animation: var(--led-spin-medium);
+}
+
+img.led-yellow-rotating-slow {
+ -webkit-filter: var(--led-filter-yellow);
+ filter: var(--led-filter-yellow);
+ -webkit-animation: var(--led-spin-slow);
+ animation: var(--led-spin-slow);
+}
+
+img.led-yellow-rotating-fast {
+ -webkit-filter: var(--led-filter-yellow);
+ filter: var(--led-filter-yellow);
+ -webkit-animation: var(--led-spin-fast);
+ animation: var(--led-spin-fast);
+}
diff --git a/web/share/css/login/login.css b/web/share/css/login/login.css
new file mode 100644
index 00000000..1fae42d6
--- /dev/null
+++ b/web/share/css/login/login.css
@@ -0,0 +1,25 @@
+div#login-box {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ text-align: center;
+ min-height: 100vh;
+}
+
+div#login {
+ text-align: left;
+ outline: none;
+ word-wrap: break-word;
+ max-width: 400px;
+ border: var(--border-window-thin);
+ border-radius: 8px;
+ box-sizing: border-box;
+ box-shadow: var(--shadow-big);
+ background-color: var(--cs-window-default-bg);
+ padding: 15px;
+}
+
+input[type="text"]#user-input, input[type="password"]#passwd-input {
+ text-align: center;
+}
diff --git a/web/share/css/main.css b/web/share/css/main.css
new file mode 100644
index 00000000..f5f0db75
--- /dev/null
+++ b/web/share/css/main.css
@@ -0,0 +1,179 @@
+body {
+ margin: 0;
+ overflow: hidden;
+ color: var(--cs-page-default-fg);
+ background-color: var(--cs-page-default-bg);
+ font-family: sans-serif !important;
+}
+body.body-no-select {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+ touch-action: manipulation;
+}
+
+a {
+ color: var(--cs-page-default-fg);
+}
+
+hr {
+ border: none;
+ border-top: var(--border-default-thin);
+}
+
+p.text {
+ text-align: justify;
+}
+p:not(:first-child).text {
+ margin-top: 0;
+}
+p:last-child.text {
+ margin-bottom: 0;
+}
+
+div.code {
+ white-space: nowrap;
+ overflow-x: auto;
+ font-family: monospace;
+ border-radius: 4px;
+ color: var(--cs-code-default-fg);
+ background-color: var(--cs-code-default-bg);
+ padding: 10px;
+}
+div.code::-webkit-scrollbar {
+ width: 8px;
+ height: 8px;
+}
+div.code::-webkit-scrollbar-thumb {
+ border-radius: 4px;
+ background: var(--cs-scroll-default-bg);
+}
+
+div.code span.code-comment {
+ color: var(--cs-code-comment-fg);
+}
+
+img.svg-gray {
+ -webkit-filter: invert(0.7);
+ filter: invert(0.7);
+ vertical-align: middle;
+}
+
+button, select {
+ box-shadow: none;
+ border: none;
+ border-radius: 4px;
+ color: var(--cs-control-default-fg);
+ background-color: var(--cs-control-default-bg);
+ display: block;
+ width: 100%;
+ height: 30px;
+ font-size: 16px;
+ outline: none;
+ cursor: pointer;
+}
+@media (hover: hover), (min--moz-device-pixel-ratio: 0) {
+ /* If we have a mouse cursor */
+ button:enabled:hover, select:enabled:hover {
+ color: var(--cs-control-hovered-fg);
+ background-color: var(--cs-control-hovered-bg) !important;
+ }
+ button:active, select:active {
+ color: var(--cs-control-pressed-fg) !important;
+ }
+ select:enabled:hover {
+ background-image: url("../svg/select-arrow-intensive.svg") !important;
+ }
+}
+@media (hover: none) {
+ /* If we DON'T have a mouse cursor */
+ button:active, select:active {
+ color: var(--cs-control-hovered-fg);
+ background-color: var(--cs-control-hovered-bg);
+ }
+}
+button:disabled, select:disabled {
+ color: var(--cs-control-disabled-fg);
+ cursor: default;
+}
+
+select {
+ -webkit-appearance: button;
+ -moz-appearance: button;
+ appearance: button;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+ background-image: url("../svg/select-arrow-normal.svg");
+ background-position: center right;
+ background-repeat: no-repeat;
+}
+select:disabled {
+ background-image: url("../svg/select-arrow-inactive.svg") !important;
+}
+select:active {
+ color: var(--cs-control-intensive-fg) !important;
+ background-color: var(--cs-bg-control-intensive) !important;
+ background-image: url("../svg/select-arrow-intensive.svg") !important;
+}
+
+input[type=text], input[type=password] {
+ overflow-x: auto;
+ font-family: monospace;
+ border: thin;
+ border-radius: 4px;
+ color: var(--cs-code-default-fg);
+ background-color: var(--cs-code-default-bg);
+ padding: 2px;
+}
+
+@media only screen and (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
+ button, select, input[type=text], input[type=password] {
+ height: 45px !important;
+ }
+}
+
+div.buttons-row {
+ margin: 0;
+ padding: 0;
+ font-size: 0;
+}
+
+.row50 {
+ display: inline-block;
+ width: 50%;
+}
+.row25 {
+ display: inline-block;
+ width: 25%;
+}
+.row16 {
+ display: inline-block;
+ width: 16.66%
+}
+.row50:not(:first-child), .row25:not(:first-child), .row16:not(:first-child) {
+ border-left: var(--border-control-thin);
+}
+
+ul.footer {
+ list-style-type: none;
+ bottom: 0;
+ position: fixed;
+ width: 100%;
+ padding: 0;
+ font-size: 0.7em;
+ color: var(--cs-page-obscure-fg);
+ z-index: -10;
+}
+ul.footer li {
+ padding: 0 10px;
+}
+ul.footer li.footer-left {
+ float: left;
+}
+ul.footer li.footer-right {
+ float: right;
+}
+ul.footer li a {
+ color: var(--cs-page-obscure-fg);
+}
diff --git a/web/share/css/menu.css b/web/share/css/menu.css
new file mode 100644
index 00000000..151b82b1
--- /dev/null
+++ b/web/share/css/menu.css
@@ -0,0 +1,113 @@
+ul#menu {
+ box-shadow: var(--shadow-small);
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+ background-color: var(--cs-menu-default-bg);
+ position: fixed;
+ top: 0;
+ width: 100%;
+ height: 50px;
+ z-index: 2147483646;
+}
+
+ul#menu li.menu-right-items {
+ float: right;
+}
+
+ul#menu li.menu-left-items {
+ float: left;
+}
+
+ul#menu li a#menu-logo {
+ line-height: 50px;
+ outline: none;
+ cursor: pointer;
+ border-right: var(--border-menu-thin);
+ display: inline-block;
+ color: var(--cs-menu-default-fg);
+ padding-left: 16px;
+ padding-right: 16px;
+ text-decoration: none;
+}
+
+ul#menu img {
+ vertical-align: middle;
+ margin-right: 10px;
+ height: 20px;
+}
+
+ul#menu li a#menu-logo img {
+ margin-top: -2px;
+ height: 24px;
+}
+
+ul#menu li a.menu-item {
+ line-height: 50px;
+ outline: none;
+ cursor: pointer;
+ border-left: var(--border-menu-thin);
+ display: inline-block;
+ color: var(--cs-menu-default-fg);
+ padding-left: 16px;
+ padding-right: 16px;
+ text-decoration: none;
+}
+
+ul#menu li a#menu-logo:hover:not(.active), a.menu-item:hover:not(.active) {
+ background-color: var(--cs-menu-hovered-bg);
+}
+@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
+ /* iPad 8 */
+ ul#menu li a#menu-item:hover:not(.active), a.menu-item:hover:not(.active) {
+ background-color: var(--cs-menu-default-bg) !important;
+ }
+}
+
+ul#menu li a.menu-item-selected {
+ box-shadow: var(--shadow-menu-pressed);
+ background-color: var(--cs-menu-pressed-bg) !important;
+}
+
+ul#menu li div.menu-item-content {
+ visibility: hidden;
+ outline: none;
+ overflow: hidden;
+ white-space: nowrap;
+ border: var(--border-menu-item-content-default-2px);
+ border-top: var(--border-menu-item-content-top-thin);
+ border-radius: 0 0 8px 8px;
+ position: absolute;
+ background-color: var(--cs-menu-default-bg);
+ min-width: 180px;
+ box-shadow: var(--shadow-big);
+ z-index: 2147483645;
+}
+ul#menu li div.menu-item-content-active {
+ border: var(--border-menu-item-content-active-2px) !important;
+ border-top: var(--border-menu-item-content-top-thin) !important;
+}
+
+ul#menu li div.menu-item-content-buttons {
+ background-color: var(--cs-control-default-bg);
+}
+
+ul#menu li div.menu-item-content-text {
+ margin: 10px 15px 10px 15px;
+ font-size: 14px;
+}
+
+ul#menu li div.menu-item-content button, select {
+ border-radius: 0;
+ text-align: left;
+ padding: 0 16px;
+}
+
+ul#menu li div.menu-item-content hr {
+ margin: 0;
+ display: block;
+ height: 0px;
+ padding: 0;
+ border: none;
+ border-top: var(--border-control-thin);
+}
diff --git a/web/share/css/modals.css b/web/share/css/modals.css
new file mode 100644
index 00000000..ed9837c7
--- /dev/null
+++ b/web/share/css/modals.css
@@ -0,0 +1,58 @@
+div.modal {
+ visibility: hidden;
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ background-color: rgb(0, 0, 0);
+ background-color: rgba(0, 0, 0, 0.5);
+ z-index: 2147483647;
+}
+
+div.modal div.modal-window {
+ display: table;
+ outline: none;
+ margin: 15% auto;
+ overflow: hidden;
+ border: var(--border-window-thin);
+ border-radius: 8px;
+ box-sizing: border-box;
+ box-shadow: var(--shadow-big);
+ background-color: var(--cs-window-default-bg);
+ padding: 0;
+}
+div.modal div.modal-window-active {
+ border: var(--border-intensive-2px) !important;
+}
+
+div.modal div.modal-window div.modal-header {
+ text-align: center;
+ font-weight: bold;
+ padding: 3px 9px 3px 9px;
+ border-bottom: var(--border-default-thin);
+}
+
+div.modal div.modal-window div.modal-content {
+ max-width: 500px;
+ max-height: 500px;
+ padding: 16px 9px 16px 9px;
+}
+
+div.modal div.modal-window div.modal-buttons {
+ border-top: var(--border-control-thin);
+ margin: 0;
+ padding: 0;
+ font-size: 0;
+}
+
+div.modal div.modal-window div.modal-buttons button {
+ border-radius: 0;
+ height: 40px;
+}
+@media only screen and (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
+ /* iPad vertical */
+ div.modal-buttons button {
+ height: 50px !important;
+ }
+}
diff --git a/web/share/css/progress.css b/web/share/css/progress.css
new file mode 100644
index 00000000..1085e5cf
--- /dev/null
+++ b/web/share/css/progress.css
@@ -0,0 +1,23 @@
+div.progress {
+ background-color: var(--cs-progress-default-bg);
+ height: 1.5em;
+ width: 100%;
+ position: relative;
+}
+
+div.progress:before {
+ color: var(--cs-progress-default-fg);
+ content: attr(data-label);
+ font-size: 0.8em;
+ position: absolute;
+ text-align: center;
+ top: 4px;
+ left: 0;
+ right: 0;
+}
+
+div.progress span.progress-value {
+ background-color: var(--cs-progress-bar-bg);
+ display: inline-block;
+ height: 100%;
+}
diff --git a/web/share/css/sliders.css b/web/share/css/sliders.css
new file mode 100644
index 00000000..fe0be262
--- /dev/null
+++ b/web/share/css/sliders.css
@@ -0,0 +1,78 @@
+@supports (-webkit-appearance:none) {
+ input[type=range].slider {
+ cursor: pointer;
+ outline: none;
+ width: 100%;
+ box-shadow: none;
+ background: transparent;
+ margin: 8px 0 8px 0;
+ -webkit-appearance: none;
+ -webkit-tap-highlight-color: transparent;
+ }
+}
+@supports not (-webkit-appearance:none) {
+ input[type=range].slider {
+ cursor: pointer;
+ outline: none;
+ width: 100%;
+ box-shadow: none;
+ margin-left: 0;
+ margin-right: 0;
+ }
+}
+@media only screen and (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
+ @supports (-webkit-appearance: none) {
+ input[type=range].slider {
+ margin: 20px 0 20px 0 !important;
+ }
+ }
+}
+input[type=range].slider:disabled {
+ cursor: default;
+}
+
+input[type=range].slider::-webkit-slider-runnable-track {
+ height: 5px;
+ background: var(--cs-control-default-bg);
+ border-radius: 3px;
+}
+input[type=range].slider:disabled::-webkit-slider-runnable-track {
+ cursor: default;
+}
+
+input[type=range].slider::-webkit-slider-thumb {
+ border: var(--border-intensive-2px);
+ height: 18px;
+ width: 18px;
+ border-radius: 25px;
+ background: var(--cs-thumb-default-bg);
+ -webkit-appearance: none;
+ margin-top: -7px;
+}
+input[type=range].slider:disabled::-webkit-slider-thumb {
+ cursor: default;
+ border: var(--border-default-2px);
+ background: var(--cs-thumb-disabled-bg);
+}
+
+input[type=range].slider::-moz-range-track {
+ height: 5px;
+ background: var(--cs-control-default-bg);
+ border-radius: 3px;
+}
+input[type=range].slider:disabled::-moz-range-track {
+ cursor: default;
+}
+
+input[type=range].slider::-moz-range-thumb {
+ border: var(--border-intensive-2px);
+ height: 18px;
+ width: 18px;
+ border-radius: 25px;
+ background: var(--cs-thumb-default-bg);
+}
+input[type=range].slider:disabled::-moz-range-thumb {
+ cursor: default;
+ border: var(--border-default-2px);
+ background: var(--cs-thumb-disabled-bg);
+}
diff --git a/web/share/css/switches.css b/web/share/css/switches.css
new file mode 100644
index 00000000..65e187f9
--- /dev/null
+++ b/web/share/css/switches.css
@@ -0,0 +1,76 @@
+div.switch-box {
+ display: inline-block;
+ vertical-align: middle;
+ position: relative;
+ width: 50px;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+}
+
+div.switch-box input[type=checkbox].switch-checkbox {
+ display: none;
+}
+
+div.switch-box label.switch-label {
+ display: block;
+ overflow: hidden;
+ cursor: pointer;
+ border: none;
+ border-radius: 15px;
+}
+
+div.switch-box label.switch-label span.switch-inner {
+ display: block;
+ width: 200%;
+ margin-left: -100%;
+}
+
+div.switch-box label.switch-label span.switch-inner:before, span.switch-inner:after {
+ display: block;
+ float: left;
+ width: 50%;
+ height: 20px;
+ padding: 0;
+ line-height: 22px;
+ font-size: 10px;
+ font-family: sans-serif !important;
+ font-weight: bold;
+ box-sizing: border-box;
+}
+
+div.switch-box label.switch-label span.switch-inner:before {
+ content: "ON";
+ padding-left: 5px;
+ background-color: var(--cs-control-default-bg);
+ color: var(--cs-control-default-fg);
+ text-align: left;
+}
+
+div.switch-box label.switch-label span.switch-inner:after {
+ content: "OFF";
+ padding-right: 5px;
+ background-color: var(--cs-control-default-bg);
+ color: var(--cs-control-disabled-fg);
+ text-align: right;
+}
+
+div.switch-box label.switch-label span.switch {
+ display: block;
+ width: 15px;
+ margin: 0px;
+ background: var(--cs-thumb-default-bg);
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ right: 31px;
+ border: var(--border-intensive-2px);
+ border-radius: 15px;
+}
+
+div.switch-box input[type=checkbox].switch-checkbox:checked + label.switch-label span.switch-inner {
+ margin-left: 0;
+}
+
+div.switch-box input[type=checkbox].switch-checkbox:checked + label.switch-label span.switch {
+ right: 0px;
+}
diff --git a/web/share/css/vars.css b/web/share/css/vars.css
new file mode 100644
index 00000000..57e71c0f
--- /dev/null
+++ b/web/share/css/vars.css
@@ -0,0 +1,63 @@
+:root {
+ --cs-page-default-bg: #36393f;
+ --cs-page-default-fg: #c3c3c3;
+ --cs-page-obscure-fg: #6c7481;
+
+ --cs-control-default-bg: #36393f;
+ --cs-control-default-fg: #c3c3c3;
+ --cs-control-intensive-fg: white;
+ --cs-control-hovered-bg: #17191d;
+ --cs-control-hovered-fg: white;
+ --cs-control-pressed-fg: #6c7481;
+ --cs-control-disabled-fg: #6c7481;
+
+ --cs-menu-default-bg: #202225;
+ --cs-menu-default-fg: #c3c3c3;
+ --cs-menu-hovered-bg: #1a1c1f;
+ --cs-menu-pressed-bg: #171717;
+
+ --cs-window-default-bg: #484b51;
+ --cs-window-default-fg: #c3c3c3;
+ --cs-window-header-default-fg: #aaaaaa;
+ --cs-window-header-grabbed-bg: #436a8a;
+ --cs-window-header-grabbed-fg: white;
+ --cs-window-closer-default-fg: #6c7481;
+
+ --cs-code-default-bg: #17191d;
+ --cs-code-default-fg: #aaaaaa;
+ --cs-code-comment-fg: #6c7481;
+
+ --cs-scroll-default-bg: #6c7481;
+ --cs-thumb-default-bg: #436a8a;
+ --cs-thumb-disabled-bg: #202225;
+
+ --cs-progress-default-bg: #171717;
+ --cs-progress-default-fg: white;
+ --cs-progress-bar-bg: #436a8a;
+
+ --cs-key-default-bg: #3b3e43;
+ --cs-key-default-fg: #c3c3c3;
+ --cs-key-hovered-bg: #202225;
+ --cs-key-hovered-fg: white;
+ --cs-key-pressed-bg: #17191d;
+ --cs-key-pressed-fg: #6c7481;
+ --cs-key-holded-bg: #436a8a;
+
+ --shadow-micro: 1px 2px 4px 0 rgba(0, 0, 0, 0.4);
+ --shadow-small: 0 2px 4px 0 rgba(0, 0, 0, 0.2);
+ --shadow-big: 0 8px 16px 0 rgba(0, 0, 0, 0.4);
+ --shadow-menu-pressed: 0 5px 0 #5b90bb inset;
+
+ --border-default-thin: thin solid #36393f;
+ --border-default-2px: 2px solid #36393f;
+ --border-menu-thin: thin solid black;
+ --border-control-thin: thin solid #17191d;
+ --border-window-thin: thin solid #17191d;
+ --border-key-thin: thin solid #202225;
+ --border-intensive-2px: 2px solid #5b90bb;
+ --border-intensive-thin: thin solid #5b90bb;
+
+ --border-menu-item-content-default-2px: 2px solid black;
+ --border-menu-item-content-active-2px: 2px solid #5b90bb;
+ --border-menu-item-content-top-thin: thin solid #17191d;
+}
diff --git a/web/share/css/windows.css b/web/share/css/windows.css
new file mode 100644
index 00000000..32628e55
--- /dev/null
+++ b/web/share/css/windows.css
@@ -0,0 +1,74 @@
+div.window {
+ visibility: hidden;
+ outline: none;
+ overflow: hidden;
+ position: fixed;
+ border: var(--border-window-thin);
+ border-radius: 8px;
+ box-sizing: border-box;
+ box-shadow: var(--shadow-big);
+ white-space: nowrap;
+ color: var(--cs-window-default-fg);
+ background-color: var(--cs-window-default-bg);
+ padding: 30px 9px 9px 9px;
+}
+div.window-active {
+ border: var(--border-intensive-2px) !important;
+}
+
+div.window div.window-header {
+ overflow: hidden;
+ top: 0;
+ left: 0;
+ position: absolute;
+ width: 100%;
+ padding: 0;
+ height: 20px;
+ font-size: 0.8em;
+ color: var(--cs-window-header-default-fg);
+ border-bottom: var(--border-default-thin);
+}
+
+div.window div.window-header div.window-grab {
+ overflow: hidden;
+ top: 0;
+ left: 0;
+ position: absolute;
+ width: 100%;
+ height: 20px;
+ cursor: move;
+ padding: 3px 0 2px 20px;
+}
+
+div.window div.window-header-grabbed {
+ color: var(--cs-window-header-grabbed-fg);
+ background-color: var(--cs-window-header-grabbed-bg);
+ border-bottom: var(--border-intensive-thin);
+}
+
+div.window div.window-header button.window-button-close {
+ position: absolute;
+ top: -2px;
+ right: -6px;
+ width: 44px;
+ height: 24px;
+ padding-left: 0;
+ color: var(--cs-window-closer-default-fg);
+ display: inline-block;
+}
+
+@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
+ /* iPad */
+ div.window {
+ padding-top: 45px !important;
+ }
+ div.window div.window-header {
+ height: 35px !important;
+ }
+ div.window div.window-header div.window-grab {
+ height: 35px !important;
+ }
+ div.window div.window-header button.window-button-close {
+ height: 40px !important;
+ }
+}