diff --git a/ChangeLog.md b/ChangeLog.md index d581173a..ba638103 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,4 +1,8 @@ # Changelog: +* **13.06.20** + - Started to extract all color values and put them into css variables + - Fixed a minor issue related to server/channel groups + * **12.06.20** - Added a copy/paste menu for all HTML input elements - Heavily improved web client audio de/encoding diff --git a/loader/app/targets/app.ts b/loader/app/targets/app.ts index 9b8f06e0..76c1c7a2 100644 --- a/loader/app/targets/app.ts +++ b/loader/app/targets/app.ts @@ -152,7 +152,6 @@ const loader_style = { await loader.style.load_multiple([ "css/static/main.css", "css/static/main-layout.css", - "css/static/helptag.css", "css/static/scroll.css", "css/static/channel-tree.css", "css/static/ts/tab.css", @@ -173,7 +172,6 @@ const loader_style = { "css/static/modal-volume.css", "css/static/modal-latency.css", "css/static/modal-invite.css", - "css/static/modal-playlist.css", "css/static/modal-banlist.css", "css/static/modal-banclient.css", "css/static/modal-channelinfo.css", @@ -190,8 +188,6 @@ const loader_style = { "css/static/modal-permissions.css", "css/static/modal-group-assignment.css", "css/static/overlay-image-preview.css", - "css/static/music/info_plate.css", - "css/static/frame/SelectInfo.css", "css/static/context_menu.css", "css/static/frame-chat.css", "css/static/connection_handlers.css", diff --git a/shared/css/generate_packed.sh b/shared/css/generate_packed.sh index 35e31b98..db4078a0 100644 --- a/shared/css/generate_packed.sh +++ b/shared/css/generate_packed.sh @@ -15,7 +15,6 @@ files=( "css/static/frame-chat.css" "css/static/server-log.css" "css/static/scroll.css" - "css/static/helptag.css" "css/static/hostbanner.css" "css/static/htmltags.css" "css/static/menu-bar.css" @@ -38,7 +37,6 @@ files=( "css/static/modal-invite.css" "css/static/modal-keyselect.css" "css/static/modal-permissions.css" - "css/static/modal-playlist.css" "css/static/modal-poke.css" "css/static/modal-query.css" "css/static/modal-server.css" @@ -54,8 +52,6 @@ files=( "css/static/ts/icons.css" "css/static/ts/icons_em.css" "css/static/ts/country.css" - "css/static/music/info_plate.css" - "css/static/frame/SelectInfo.css" ) target_file=`pwd`/../generated/static/base.css diff --git a/shared/css/static/connection_handlers.scss b/shared/css/static/connection_handlers.scss index 4bec40a9..62ebc96b 100644 --- a/shared/css/static/connection_handlers.scss +++ b/shared/css/static/connection_handlers.scss @@ -1,5 +1,9 @@ @import "mixin"; +html:root { + +} + .container-connection-handlers { $animation_length: .25s; diff --git a/shared/css/static/frame/SelectInfo.scss b/shared/css/static/frame/SelectInfo.scss deleted file mode 100644 index 3c0f068d..00000000 --- a/shared/css/static/frame/SelectInfo.scss +++ /dev/null @@ -1,119 +0,0 @@ -.select_info_table { - tr { - td { - &:nth-child(1) { - font-weight: bold; - padding-right: 5px; - //min-width: max(35%, 20px); - } - - &:nth-child(2) { - //min-width: max(75%, 40px); - word-break: break-word; - } - } - } - - .reserved-slots { - display: inline; - color: red; - } -} - -.select_server { - height: 100%; - display: inline-flex; - flex-direction: column; - justify-content: space-between; - flex-grow: 1; - - .button-update { - width: 100%; - - &:disabled { - pointer-events: none; - } - } - - .container { - max-height: 100%; - display: flex; - flex-direction: column; - padding-right: 0; - padding-left: 0; - } -} - -.select_info { - display: flex; - flex-direction: column; - justify-content: stretch; - width: 100%; - - > .close { - z-index: 500; - display: none; - position: absolute; - right: 5px; - top: 5px; - } - - > div { - width: 100%; - } - - .container-banner { - position: relative; - - flex-grow: 1; - flex-shrink: 2; - - max-height: 300px; - min-height: 0; - - display: flex; - justify-content: stretch; - overflow: hidden; - - - &.disabled { - display: none; - margin-bottom: 5px; - } - } - - .container-select-info { - padding: 2px; - flex-grow: 1; - flex-shrink: 1; - display: flex; - flex-direction: column; - justify-content: stretch; - - .select_server { - > div { - flex-grow: 1; - } - } - } - - .client-avatar { - > div { - flex-grow: 1; - flex-shrink: 1; - > img { - max-width: 100%; - max-height: 100%; - } - } - } - - .button-browser-info { - vertical-align: bottom; - cursor: pointer; - - &:hover { - background-color: gray; - } - } -} \ No newline at end of file diff --git a/shared/css/static/general.scss b/shared/css/static/general.scss index c5eb861d..167a6071 100644 --- a/shared/css/static/general.scss +++ b/shared/css/static/general.scss @@ -67,6 +67,10 @@ --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } +html:root { + --text: #999; +} + *, :before, :after { box-sizing: border-box; outline: none; diff --git a/shared/css/static/helptag.scss b/shared/css/static/helptag.scss deleted file mode 100644 index 9bfaaae5..00000000 --- a/shared/css/static/helptag.scss +++ /dev/null @@ -1,134 +0,0 @@ -.help-tip-container { - /* position: relative; */ - display: inline; - - .help-tip { - position: absolute; - } -} - -.help-tip { - z-index: 100; - - display: inline-block; - position: relative; - text-align: center; - background-color: #BCDBEA; - border-radius: 50%; - - width: 24px; - height: 24px; - - font-size: 14px; - line-height: 26px; - - cursor: default; - - &:before { - content:'?'; - font-weight: bold; - color:#fff; - } - - &:hover, &.show { - p { - display:block; - transform-origin: 100% 0%; - - -webkit-animation: fadeIn 0.3s ease-in-out; - animation: fadeIn 0.3s ease-in-out; - } - } - - p { - display: none; - text-align: left; - background-color: #1E2021; - padding: 20px; - - width: 400px; /* fallback */ - width: max-content; - - position: absolute; - border-radius: 3px; - box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2); - color: #FFF; - font-size: 13px; - line-height: 1.4; - - - &:before { - position: absolute; - content: ''; - width:0; - height: 0; - border:6px solid transparent; - border-bottom-color:#1E2021; - top:-12px; - } - - &:after { - width:100%; - height:40px; - content:''; - position: absolute; - top:-40px; - left:0; - } - } - - &.tip-left { - p { - right: -4px; - - &:before { - right: 10px; - } - } - } - &.tip-right { - p { - left: -4px; - - &:before { - left: 10px; - } - } - } - - &.tip-center { - p { - left: 50%; - transform: translate(-50%, 0); - - &:before { - right: calc(50% - 5px); - } - } - } - - &.tip-small { - width: 16px; - height: 16px; - - font-size: 12px; - line-height: 18px; - } -} - -@-webkit-keyframes fadeIn { - 0% { - opacity:0; - transform: scale(0.6); - } - - 100% { - opacity:100%; - transform: scale(1); - } -} - -@keyframes fadeIn { - 0% { opacity:0; } - 100% { opacity:100%; } -} \ No newline at end of file diff --git a/shared/css/static/hostbanner.scss b/shared/css/static/hostbanner.scss index 36823db5..079c6cb6 100644 --- a/shared/css/static/hostbanner.scss +++ b/shared/css/static/hostbanner.scss @@ -1,5 +1,9 @@ @import "mixin"; +html:root { + --hostbanner-background: #2e2e2e; +} + .hostbanner { .container-hostbanner { position: relative; @@ -14,7 +18,7 @@ cursor: pointer; &:not(.no-background) { - background-color: #2e2e2e; + background-color: var(--hostbanner-background); border-top-left-radius: 5px; border-top-right-radius: 5px; -moz-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.25); diff --git a/shared/css/static/htmltags.scss b/shared/css/static/htmltags.scss index 090a84d6..afe59076 100644 --- a/shared/css/static/htmltags.scss +++ b/shared/css/static/htmltags.scss @@ -1,5 +1,5 @@ .htmltag-client, .htmltag-channel { - color: blue; + color: var(--text); font-weight: bold; cursor: pointer; } \ No newline at end of file diff --git a/shared/css/static/main-layout.scss b/shared/css/static/main-layout.scss index 7b5261b7..78cc39b6 100644 --- a/shared/css/static/main-layout.scss +++ b/shared/css/static/main-layout.scss @@ -4,6 +4,21 @@ $separator_thickness: 5px; $small_device: 650px; $animation_length: .5s; +html:root { + --app-background: #1e1e1e; + + --control-bar-background: #454545; + + --chat-background: #353535; + --channel-tree-background: #353535; + --server-log-background: #353535; + + --footer-background: #252525; + --footer-text: #666666; + + --channel-chat-seperator: #707070; +} + .app { min-width: 600px; min-height: 330px; @@ -45,7 +60,7 @@ $animation_length: .5s; width: 50%; /* "default" settings */ height: 100%; - background: #353535; + background: var(--channel-tree-background); min-width: 200px; display: flex; @@ -89,7 +104,7 @@ $animation_length: .5s; width: 50%; /* "default" settings */ height: 100%; - background: #353535; + background: var(--chat-background); min-width: 350px; display: flex; @@ -125,7 +140,7 @@ $animation_length: .5s; padding-right: 5px; padding-left: 5px; - background: #353535; + background: var(--server-log-background); } > .container-footer { @@ -134,17 +149,17 @@ $animation_length: .5s; height: 1.5em; - background: #252525; - color: #666666; + background: var(--footer-background); + color: var(--footer-text); border-radius: 0 0 5px 5px; padding-right: 5px; padding-left: 5px; padding-top: 2px; - -webkit-box-shadow: inset 0px 2px 5px 0px rgba(0,0,0,0.125); - -moz-box-shadow: inset 0px 2px 5px 0px rgba(0,0,0,0.125); - box-shadow: inset 0px 2px 5px 0px rgba(0,0,0,0.125); + -webkit-box-shadow: inset 0 2px 5px 0 rgba(0,0,0,0.125); + -moz-box-shadow: inset 0 2px 5px 0 rgba(0,0,0,0.125); + box-shadow: inset 0 2px 5px 0 rgba(0,0,0,0.125); display: flex; flex-direction: row; @@ -165,7 +180,7 @@ $animation_length: .5s; } a[href], a[href]:visited { - color: #666666!important; + color: var(--footer-text)!important; } } } @@ -181,7 +196,7 @@ $animation_length: .5s; height: 2em; width: 100%; - background-color: #454545; + background-color: var(--control-bar-background); display: flex; flex-direction: column; @@ -250,7 +265,7 @@ $animation_seperator_length: .1s; &.seperator-selected { @include transition(all $animation_seperator_length ease-in-out); - background-color: #707070; + background-color: var(--channel-chat-seperator); } } @@ -270,5 +285,5 @@ html, body { } body { - background: #1e1e1e !important; + background: var(--app-background)!important; } \ No newline at end of file diff --git a/shared/css/static/modal-newcomer.scss b/shared/css/static/modal-newcomer.scss index 8e3f5479..03632a1b 100644 --- a/shared/css/static/modal-newcomer.scss +++ b/shared/css/static/modal-newcomer.scss @@ -1,6 +1,11 @@ @import "mixin"; @import "properties"; +html:root { + --modal-newcomer-header-color: hsla(222, 5%, 39%, 1); + --modal-newcomer-divider: #313135; +} + .modal-body.modal-newcomer { display: flex!important; flex-direction: column!important; @@ -17,7 +22,7 @@ flex-shrink: 0; flex-grow: 0; - color: #565656; + color: var(--modal-newcommer-header-color); padding: .5em .5em .25em; position: relative; @@ -40,7 +45,7 @@ height: 1.25px; //background: linear-gradient(90deg, rgba(49,49,53,1) 80%, rgba(49,49,53,0) 100%); - background: rgba(49,49,53,1); + background: var(--modal-newcomer-divider); } &.hidden { @@ -118,23 +123,20 @@ padding: .5em; .left .body { - // background-color: #19191b; - background-color: hsla(220, 4%, 13%, 1); + background-color: #202122; .overlay { - background-color: hsla(220, 4%, 13%, 1); - + background-color: #202122; } + .profile.selected { - background-color: hsla(240, 2%, 8%, 1); + background-color: #141415; } } } - &.step-identity { - } + &.step-identity { } - &.step-microphone { - } + &.step-microphone { } &.hidden { display: none; @@ -151,7 +153,7 @@ flex-direction: row; justify-content: space-between; - border-top: 1.25px solid rgba(49,49,53,1); + border-top: 1.25px solid var(--modal-newcomer-divider); padding: .5em; } } \ No newline at end of file diff --git a/shared/css/static/modal-permissions.scss b/shared/css/static/modal-permissions.scss index 43336af4..43ebf757 100644 --- a/shared/css/static/modal-permissions.scss +++ b/shared/css/static/modal-permissions.scss @@ -1,6 +1,47 @@ @import "mixin"; @import "properties"; +html:root { + --modal-permissions-header-text: #e1e1e1; + --modal-permissions-header-background: #19191b; + --modal-permissions-header-hover: #4e4e4e; + --modal-permissions-header-selected: #0073d4; + + --modal-permission-right: #303036; + --modal-permission-left: #222226; + + --modal-permissions-entry-hover: #28282c; + --modal-permissions-entry-selected: #111111; + --modal-permissions-current-group: #101012; + + --modal-permissions-buttons-background: #1b1b1b; + --modal-permissions-buttons-hover: #262626; + --modal-permissions-buttons-disabled: hsla(0, 0%, 9%, 1); + + --modal-permissions-seperator: #1e1e1e; /* the seperator for the "enter a unique id" and "client info" part */ + --modal-permissions-container-seperator: #222224; /* the seperator between left and right */ + + --modal-permissions-icon-select: #121213; + --modal-permissions-icon-select-border: #0d0d0d; + --modal-permissions-icon-select-hover: #17171a; + --modal-permissions-icon-select-hover-border: #333333; + + --modal-permissions-table-border: #1e2025; + + --modal-permissions-table-header: #303036; + --modal-permissions-table-entry-odd: #303036; + --modal-permissions-table-entry-even: #25252a; + --modal-permissions-table-entry-hover: #343a47; + + --modal-permissions-table-header-text: #e1e1e1; + --modal-permissions-table-entry-text: #535455; + --modal-permissions-table-entry-active-text: #e1e1e1; + --modal-permissions-table-entry-group-text: #e1e1e1; + + --modal-permissions-table-input: #e1e1e1; + --modal-permissions-table-input-focus: #3f7dbf; +} + .modal-body.modal-permission-editor { padding: 0!important; @@ -28,8 +69,8 @@ .header { height: 4em; - background-color: #19191b; - color: #e1e1e1; + background-color: var(--modal-permissions-header-text); + color: var(--modal-permissions-header-background); display: flex; flex-direction: row; @@ -73,7 +114,7 @@ width: 75%; min-width: 30em; - background-color: #303036; + background-color: var(--modal-permission-right); .header { > .entry { @@ -91,7 +132,7 @@ &:hover { border: none; - border-bottom: 2px solid #4e4e4e; + border-bottom: 2px solid var(--modal-permissions-header-hover); padding-bottom: 0; @@ -107,13 +148,13 @@ height: 100%; width: calc(100% + 20em); - box-shadow: inset 0px -1.2em 3em -20px #424242; + box-shadow: inset 0px -1.2em 3em -20px var(--modal-permissions-header-hover); } } &.selected { border: none; - border-bottom: 2px solid #0073d4; + border-bottom: 2px solid var(--modal-permissions-header-selected); padding-bottom: 0; @@ -129,7 +170,7 @@ height: 100%; width: calc(100% + 20em); - box-shadow: inset 0px -1.2em 3em -20px #0073d4; + box-shadow: inset 0px -1.2em 3em -20px var(--modal-permissions-header-selected); } } } @@ -168,7 +209,7 @@ min-height: 10em; overflow: hidden; - background-color: #222226; + background-color: var(--modal-permission-left); .header { font-weight: bold; @@ -212,7 +253,7 @@ width: 100%; .list-groups, .list-channel, .list-clients { - color: #999999; + color: var(--text); display: flex; flex-direction: column; @@ -252,15 +293,11 @@ width: 100%; &:hover { - background-color: #28282c; + background-color: var(--modal-permissions-entry-hover); } &.selected { - background-color: #111111; - - &.client { - background-color: #1a1b1e; - } + background-color: var(--modal-permissions-entry-selected); } @include transition(background-color .25s ease-in-out); @@ -296,15 +333,16 @@ cursor: pointer; - background-color: #1b1b1b; + background-color: var(--modal-permissions-buttons-background); &:hover { - background-color: #262626; + background-color: var(--modal-permissions-buttons-hover); } &:disabled { - background-color: hsla(0, 0%, 9%, 1); + background-color: var(--modal-permissions-buttons-disabled); } + @include transition(background-color .25s ease-in-out); img { @@ -365,8 +403,8 @@ flex-direction: row; justify-content: stretch; - background-color: #101012; - color: #999999; + background-color: var(--modal-permissions-current-group); + color: var(--text); padding-left: .25em; @@ -405,7 +443,7 @@ hr { border: none; - border-top: 2px solid #1e1e1e; + border-top: 2px solid var(--modal-permissions-seperator); } } @@ -420,7 +458,7 @@ .container-seperator { width: 3px; height: unset!important; - background-color: #222224!important; + background-color: var(--modal-permissions-container-seperator)!important; } } @@ -531,7 +569,7 @@ max-width: 10em; min-width: 5em; - color: #999999; + color: var(--text); > label { font-size: .75em; @@ -571,15 +609,15 @@ justify-content: flex-end; cursor: pointer; - background-color: #121213; - border: 1px solid #0d0d0d; + background-color: var(--modal-permissions-icon-select); + border: 1px solid var(--modal-permissions-icon-select-border); .icon-preview { height: 100%; width: 3em; border: none; - border-right: 1px solid #0d0d0d; + border-right: 1px solid var(--modal-permissions-icon-select-border); display: flex; flex-direction: column; @@ -614,7 +652,7 @@ text-align: center; .arrow { - border-color: #999999; + border-color: var(--text); } } @@ -623,13 +661,13 @@ position: absolute; width: max-content; - top: calc(2.5em - 1px); + top: calc(2.5em - 2px); flex-direction: column; justify-content: flex-start; - background-color: #121213; - border: 1px solid #0d0d0d; + background-color: var(--modal-permissions-icon-select); + border: 1px solid var(--modal-permissions-icon-select-border); border-radius: .2em 0 .2em .2em; right: -1px; @@ -639,11 +677,11 @@ &:not(:last-of-type) { border: none; - border-bottom: 1px solid #0d0d0d; + border-bottom: 1px solid var(--modal-permissions-icon-select-border); } &:hover { - background-color: #17171a; + background-color: var(--modal-permissions-icon-select-hover); } } } @@ -657,11 +695,11 @@ } &:hover { - background-color: #17171a; - border-color: hsla(0, 0%, 20%, 1); + background-color: var(--modal-permissions-icon-select-hover); + border-color: var(--modal-permissions-icon-select-hover-border); .icon-preview { - border-color: hsla(0, 0%, 20%, 1); + border-color: var(--modal-permissions-icon-select-hover-border); } } @@ -677,7 +715,7 @@ &.container-mode-permissions { .container-permission-list { width: 100%; - color: #999999; + color: var(--text); display: flex; flex-direction: column; @@ -697,9 +735,10 @@ height: 2em; border: none; - border-bottom: 1px solid #1e2025; + border-bottom: 1px solid var(--modal-permissions-table-border); + background-color: var(--modal-permissions-table-entry-odd); - color: #535455; + color: var(--modal-permissions-table-entry-text); @mixin fixed-column($name, $width) { .column-#{$name} { @@ -717,7 +756,7 @@ padding-left: 1em; border: none; - border-right: 1px solid #1e2025; + border-right: 1px solid var(--modal-permissions-table-border); overflow: hidden; @@ -743,7 +782,7 @@ .arrow { cursor: pointer; - border-color: #e1e1e1; + border-color: var(--modal-permissions-table-entry-active-text); } .group-name { @@ -757,16 +796,16 @@ &.active { - color: #e1e1e1; + color: var(--modal-permissions-table-entry-active-text); } &.group { - color: #e1e1e1; + color: var(--modal-permissions-table-entry-group-text); font-weight: bold; } input { - color: #e1e1e1; + color: var(--modal-permissions-table-input); outline: none; background: transparent; @@ -782,7 +821,7 @@ border-bottom: 2px solid transparent; &:focus { - border-bottom-color: #3f7dbf; + border-bottom-color: var(--modal-permissions-table-input-focus); } @include transition(border-bottom-color $button_hover_animation_time ease-in-out); } @@ -806,10 +845,11 @@ .entry { &.even { - background-color: #25252a; + background-color: var(--modal-permissions-table-entry-even); } + &:hover { - background-color: #343a47; + background-color: var(--modal-permissions-table-entry-hover); } /* We cant use this effect here because the odd/even effect would be a bit crazy then */ //@include transition(background-color $button_hover_animation_time ease-in-out); @@ -817,9 +857,9 @@ } .header { - background-color: unset; + background-color: var(--modal-permissions-table-header); + color: var(--modal-permissions-table-header-text); - color: #e1e1e1; font-weight: bold; .column-granted { @@ -838,7 +878,7 @@ text-align: center; font-size: 2em; - color: #222226; + color: var(--modal-permission-left); } } diff --git a/shared/css/static/modal-playlist.scss b/shared/css/static/modal-playlist.scss deleted file mode 100644 index ca9ed038..00000000 --- a/shared/css/static/modal-playlist.scss +++ /dev/null @@ -1,440 +0,0 @@ - -.playlist-management { - height: 100%; - display: flex!important;; - flex-direction: column!important;; - - .header, .footer { - flex-grow: 0; - flex-shrink: 0; - } - - .header { - display: flex; - flex-direction: row; - justify-content: stretch; - - .buttons { - flex-grow: 0; - } - - .search { - margin-left: 5px; - flex-grow: 1; - - input { - width: 100%; - } - } - } - - .playlist-list { - margin-top: 5px; - - display: flex; - flex-grow: 1; - flex-direction: column; - justify-content: stretch; - - $width_id: 80px; - $width_type: 150px; - $width_used: 40px; - .column { - &.column-id { - width: 80px; - text-align: center; - } - - &.column-title { - width: calc(50% - 95px - 40px); - } - - &.column-creator { - width: calc(50% - 95px - 40px); - text-align: center; - } - - &.column-type { - width: 150px; - flex-grow: 0; - text-align: center; - } - - &.column-used { - width: 40px; - flex-grow: 0; - text-align: center; - - - display: flex; - flex-direction: row; - justify-content: center; - align-self: center; - } - } - - .playlist-list-header { - flex-grow: 0; - flex-shrink: 0; - display: flex; - flex-direction: row; - - .column { - border: 1px solid lightgray; - text-align: center; - } - } - - .playlist-list-entries-container { - flex-grow: 1; - display: flex; - flex-direction: column; - justify-content: start; - overflow-y: auto; - min-height: 250px; - - .entry { - display: flex; - flex-direction: row; - - .column { - margin-left: 2px; - } - - cursor: pointer; - - &.selected { - background-color: blue; - } - - &.highlighted { - font-weight: bold; - } - } - - &.scrollbar { - .column-title { - width: calc(50% - 95px - 40px + 30px) - } - - .column-creator { - width: calc(50% - 95px - 40px + 30px) - } - } - } - } - - .footer { - margin-top: 5px; - display: flex; - flex-direction: row; - justify-content: space-between; - - .info { - align-self: center; - } - - .buttons { - display: flex; - flex-direction: row; - justify-content: stretch; - - .highlight-own { - display: flex; - flex-direction: row; - justify-content: stretch; - - margin-right: 10px; - align-self: center; - } - } - } -} - -.playlist-edit { - display: flex; - flex-direction: column; - justify-content: stretch; - min-height: 0; - - .tab-content { - padding: 0; /* override tab-content setting */ - } - - .general-properties, .playback-properties { - padding: 5px; - width: 100%; - display: flex; - - flex-direction: column; - - .property { - display: flex; - flex-direction: row; - margin-bottom: 5px; - - .key { - width: 150px; - flex-grow: 0; - } - - .value { - flex-grow: 1; - flex-shrink: 1; - } - - .checkbox-container { - input { - margin-left: 0; - } - } - - &.property-description { - textarea { - resize: vertical; - max-height: 400px; - } - } - } - - flex-shrink: 0; - flex-grow: 0; - } - - .playback-properties { - .property .key { - width: 175px; - } - } - - .container-permissions { - padding: 5px; - display: flex; - flex-direction: row; - justify-content: space-around; - - .group_box { - min-width: 30%; - } - - .permissions-list { - display: flex; - flex-direction: column; - } - } - - .container-no-permissions { - background: lightgray; - padding: 50px; - text-align: center; - } - - x-content { - overflow-y: hidden; - display: flex; - flex-direction: column; - } - - .container-songs { - width: 100%; - display: flex; - flex-direction: column; - padding: 5px; - - .song-list { - min-height: 300px; - - margin-top: 5px; - - display: flex; - flex-grow: 1; - flex-direction: column; - justify-content: stretch; - - .column { - &.column-id { - width: 50px; - } - - &.column-url { - width: calc(100% - 140px) - } - - &.column-loaded { - width: 50px; - flex-grow: 0; - - display: flex; - justify-content: center; - flex-direction: row; - } - - &.column-buttons { - width: 40px; - flex-grow: 0; - - display: flex; - justify-content: center; - flex-direction: row; - - .button { - display: flex; - flex-direction: column; - justify-content: center; - - &:hover { - background: rgba(0, 0, 0, 0.2); - } - } - } - } - - .song-list-header { - flex-grow: 0; - flex-shrink: 0; - display: flex; - flex-direction: row; - justify-content: center; - - - .column { - border: 1px solid lightgray; - text-align: center; - } - } - - .song-list-entries-container { - flex-grow: 1; - display: flex; - flex-direction: column; - justify-content: start; - overflow-y: auto; - min-height: 250px; - - .entry { - display: flex; - flex-direction: row; - - .column { - margin-left: 2px; - } - - cursor: pointer; - - &.selected { - background-color: blue; - } - - &.playing { - background-color: lightgreen; - } - } - - &.scrollbar { - &.column-url { - width: calc(100% - 140px + 30px) - } - } - } - } - - .footer { - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - - flex-grow: 0; - flex-shrink: 0; - margin-top: 5px; - } - } - - > .buttons { - margin-top: 5px; - align-self: flex-end; - - button { - width: 100px; - } - } -} - -.container-song-info { - display: flex; - flex-shrink: 1; - flex-direction: column; - - .properties { - display: flex; - flex-direction: column; - padding-bottom: 5px; - - .property { - display: flex; - flex-direction: row; - justify-content: stretch; - flex-shrink: 0; - - .key { - width: 150px; - flex-grow: 0; - } - - .value { - flex-grow: 1; - } - - &.property-metadata-raw { - flex-direction: column; - flex-shrink: 1; - margin-top: 5px; - - .line { - width: 100%; - display: flex; - flex-direction: row; - justify-content: stretch; - flex-shrink: 0; - } - - textarea { - margin-top: 5px; - - width: 100%; - max-height: 100%; - resize: vertical; - } - } - } - } -} - -.container-song-add { - display: flex; - flex-shrink: 1; - flex-direction: column; - - .properties { - display: flex; - flex-direction: column; - padding-bottom: 5px; - - .property { - margin-bottom: 5px; - display: flex; - flex-direction: row; - justify-content: stretch; - flex-shrink: 0; - - .key { - width: 150px; - flex-grow: 0; - } - - .value { - flex-grow: 1; - } - } - } -} diff --git a/shared/css/static/modal-poke.scss b/shared/css/static/modal-poke.scss index 7dc8c778..89df1be4 100644 --- a/shared/css/static/modal-poke.scss +++ b/shared/css/static/modal-poke.scss @@ -1,3 +1,8 @@ +html:root { + --modal-poke-date: cornflowerblue; + --modal-poke-text: #004d00; +} + .container-poke { display: flex!important;; flex-direction: column!important;; @@ -47,10 +52,10 @@ } .date { - color: cornflowerblue; + color: var(--modal-poke-date); } .text { - color: #004d00; + color: var(--modal-poke-text); } } } @@ -80,17 +85,4 @@ float: right; } } -} - -/* - - */ \ No newline at end of file +} \ No newline at end of file diff --git a/shared/css/static/modal-query.scss b/shared/css/static/modal-query.scss index b3345206..3e7759d6 100644 --- a/shared/css/static/modal-query.scss +++ b/shared/css/static/modal-query.scss @@ -54,6 +54,22 @@ } } +html:root { + --modal-query-title: #e0e0e0; + + --modal-query-list: #28292b; + --modal-query-list-border: #1f2122; + + --modal-query-empty: #4d4d4d; + --modal-query-error: #732626; + + --modal-query-entry-hover: #2c2d2f; + --modal-query-entry-selected: #1a1a1b; + + --modal-query-key: #557edc; + --modal-query-copy-hover: #28292b; +} + .modal-body.modal-query-manage { display: flex!important; flex-direction: row!important; @@ -100,7 +116,7 @@ a { font-weight: bold; - color: #e0e0e0; + color: var(--modal-query-title); flex-grow: 1; flex-shrink: 1; @@ -145,8 +161,8 @@ justify-content: stretch; border-radius: 0.2em; - border: 1px solid #1f2122; - background-color: #28292b; + border: 1px solid var(--modal-query-list-border); + background-color: var(--modal-query-list); .container-entries { flex-shrink: 1; @@ -175,12 +191,15 @@ text-align: center; font-size: 2em; - background-color: #28292b; - color: hsla(0, 0%, 30%, 1); + background-color: var(--modal-query-list); + } + + .container-empty { + color: var(--modal-query-empty); } .container-error { - color: #732626; + color: var(--modal-query-error); } .entry { @@ -201,11 +220,11 @@ cursor: pointer; &:hover { - background-color: #2c2d2f; + background-color: var(--modal-query-entry-hover); } &.selected { - background-color: #1a1a1b; + background-color: var(--modal-query-entry-selected); } } } @@ -216,7 +235,7 @@ padding: 0 .5em; - border-top: 1px solid #1f2122; + border-top: 1px solid var(--modal-query-list-border); display: flex; flex-direction: row; @@ -271,7 +290,7 @@ .title, .title a { text-transform: uppercase; - color: #557edc; + color: var(--modal-query-key); white-space: nowrap; overflow: hidden; @@ -307,7 +326,7 @@ border-radius: .2em; &:hover { - background: #28292b; + background: var(--modal-query-copy-hover); } margin-bottom: .2em; /* "text sub" */ diff --git a/shared/css/static/modal-serverinfo.scss b/shared/css/static/modal-serverinfo.scss index a24e73fe..577c6a67 100644 --- a/shared/css/static/modal-serverinfo.scss +++ b/shared/css/static/modal-serverinfo.scss @@ -1,5 +1,16 @@ @import "mixin"; +html:root { + --serverinfo-background: #2f2f35; + --serverinfo-hostbanner-background: #26222a; + + --serverinfo-group-border: #1f2122; + --serverinfo-group-background: #28292b; + + --serverinfo-key: #557edc; + --serverinfo-value: #d6d6d7; +} + .modal-body.modal-server-info { padding: 0!important; width: 55em; @@ -8,7 +19,7 @@ flex-direction: column!important; justify-content: flex-start!important; - background-color: #2f2f35; + background-color: var(--serverinfo-background); .container-tooltip { flex-shrink: 0; @@ -51,8 +62,7 @@ .container-hostbanner { border: none; border-radius: 0; - //background-color: #261f30; - background-color: hsla(265, 10%, 15%, 1); + background-color: var(--serverinfo-hostbanner-background); } &.hidden { @@ -77,9 +87,9 @@ padding: .5em; border-radius: .2em; - border: 1px solid #1f2122; + border: 1px solid var(--serverinfo-group-border); - background-color: #28292b; + background-color: var(--serverinfo-group-background); display: flex; flex-direction: row; @@ -135,7 +145,7 @@ flex-shrink: 0; flex-grow: 0; - color: #557edc; + color: var(--serverinfo-key); text-transform: uppercase; align-self: center; @@ -147,7 +157,7 @@ } .value { - color: #d6d6d7; + color: var(--serverinfo-value); align-self: center; white-space: nowrap; overflow: hidden; diff --git a/shared/css/static/modal-serverinfobandwidth.scss b/shared/css/static/modal-serverinfobandwidth.scss index d7bac716..a8b8505e 100644 --- a/shared/css/static/modal-serverinfobandwidth.scss +++ b/shared/css/static/modal-serverinfobandwidth.scss @@ -1,7 +1,13 @@ @import "mixin"; -$color_upload: #0a5eaa; -$color_download: #9f2712; +html:root { + --serverinfo-bandwidth-upload: #0a5eaa; + --serverinfo-bandwidth-download: #9f2712; + + --serverinfo-title: #e3e3e4; + --serverinfo-statistics-title: #244c78; +} + .modal-body.modal-server-info-bandwidth { padding: 0!important; width: 55em; @@ -90,7 +96,7 @@ $color_download: #9f2712; > a { font-size: 1.25em; - color: #e3e3e4; + color: var(--serverinfo-title); line-height: normal; text-transform: uppercase; @@ -107,11 +113,11 @@ $color_download: #9f2712; } .upload { - color: $color_upload; + color: var(--serverinfo-bandwidth-upload); } .download { - color: $color_download; + color: var(--serverinfo-bandwidth-download); } } @@ -150,7 +156,7 @@ $color_download: #9f2712; flex-grow: 0; flex-shrink: 0; - color: #244c78; + color: var(--serverinfo-statistics-title); font-size: 1.25em; text-transform: uppercase; @@ -186,11 +192,11 @@ $color_download: #9f2712; text-align: right; .upload { - color: $color_upload; + color: var(--serverinfo-bandwidth-upload); } .download { - color: $color_download; + color: var(--serverinfo-bandwidth-download); } } } diff --git a/shared/css/static/modal-volume.scss b/shared/css/static/modal-volume.scss index 73663f0d..e45a75f6 100644 --- a/shared/css/static/modal-volume.scss +++ b/shared/css/static/modal-volume.scss @@ -9,7 +9,7 @@ justify-content: stretch; .htmltag-client { - color: #999!important; + color: var(--text)!important; margin-left: .25em; } diff --git a/shared/css/static/modals.scss b/shared/css/static/modals.scss index 6d6366b1..bffef800 100644 --- a/shared/css/static/modals.scss +++ b/shared/css/static/modals.scss @@ -1,90 +1,3 @@ -.channel_perm_tbl .value { - width: 60px; -} - - -.group_box { - display: flex; - flex-direction: column; - justify-content: stretch; - - .header { - flex-grow: 0; - flex-shrink: 0; - float: left; - margin-bottom: 2px; - } - - .content { - flex-grow: 1; - flex-shrink: 1; - - background: rgba(0, 0, 0, .035); - border: lightgray solid 1px; - border-radius: 0 2px; - padding: 6px; - } -} - -/* Channel edit/create modal */ -.settings_audio { - display: grid; - grid-template-columns: 40% 60%; - grid-gap: 10px; - - .custom { - display: grid; - grid-template-columns: min-content auto; - grid-template-rows: repeat(auto-fill, min-content); - grid-column-gap: 5px; - - select { - height: fit-content; - } - - .quality { - display: inline-grid; - grid-template-columns: auto min-content; - grid-column-gap: 5px; - } - } -} - -.settings_advanced { - display: grid; - grid-template-columns: repeat(auto-fill, max-content); - grid-template-rows: repeat(auto-fill, max-content); - grid-gap: 5px; - - > div:first-of-type { - grid-column: auto / span 2; - } - - .max_limited { - width: 100%; - display: inline-flex; - input[type="number"] { - width: 75px; - } - } - - .group_box { - fieldset, fieldset > div { - width: 100%; - } - } -} - -.horizontal-stretch { - display: flex; - flex-grow: 1; - flex-direction: column; -} - -.container-ban-type { - margin: 5px; -} - .arrow { display: inline-block; border: solid black; @@ -115,91 +28,4 @@ transform: rotate(45deg); -webkit-transform: rotate(45deg); } -} - -.layout-group-server, .layout-group-channel, .layout-channel, .layout-client, .layout-client-channel { - width: 100%; - height: 100%; - display: flex; - flex-direction: row; - justify-content: stretch; - - & > div { - margin: 5px; - } - - .list-group-server, .list-group-channel, .list-group-server-clients, .list-channel { - border: grey solid 1px; - position: relative; - width: 175px; - flex-grow: 0; - min-width: 125px; - - .entries { - display: table; - position: absolute; - top: 0; bottom: 0; - left: 0; right: 0; - min-width: 100%; - } - } - - .list-group-server, .list-group-channel { - border: grey solid 1px; - user-select: none; - overflow: auto; - position: relative; - - .group { - display: block; - white-space: nowrap; - cursor: pointer; - - .icon, .icon_empty, .icon-container { - margin-right: 3px; - margin-left: 3px; - } - - .name.savedb { - color: blue; - } - .name.default { - color: black; - font-weight: bold; - } - - &.selected { - background-color: blue; - - .name.savedb { - color: white; - } - } - } - } -} - -.layout-channel, .layout-client-channel { - .list-channel { - display: flex; - flex-direction: column; - - overflow: auto; - - .channel { - cursor: pointer; - display: block; - width: 100%; - height: max-content; - white-space: nowrap; - - .icon, .icon_empty { - margin-right: 3px; - } - - &.selected { - background-color: blue; - } - } - } } \ No newline at end of file diff --git a/shared/css/static/music/info_plate.scss b/shared/css/static/music/info_plate.scss deleted file mode 100644 index 78986776..00000000 --- a/shared/css/static/music/info_plate.scss +++ /dev/null @@ -1,315 +0,0 @@ -$animtime: .5s; -$ease: cubic-bezier(.45, 0, .55, 1); - -.music-wrapper { - display: flex; - position: relative; - width: 400px; - height: 400px; - user-select: none; - - .left, .right { - position: absolute; - width: 50%; - height: 100%; - perspective-origin: 50% 50%; - perspective: 1200px; - - label { - margin-bottom: 0!important; /* bootstrap fix */ - } - - .flip-card, - .static-card { - background: white; - position: absolute; - width: 100%; - height: 100%; - overflow: hidden; - border: 7px solid #dedede; - - img { - width: calc(100% * 2); - //height: 100%; - } - } - - .static-card { - border-right: none; - } - - .flip-card { - border-left: none; - transform-origin: 0% 50%; - transition: transform $animtime $ease; - transform: rotateY(0); - - &:before { - position: absolute; - content: ''; - width: 100%; - height: 100%; - top: 0; - right: -20px; - box-shadow: 29px 0px 52px 6px rgba(186, 186, 186, 1); - } - - img { - position: absolute; - background-color: #fff; - right: 0; - } - } - } - - .left { - left: 0; - } - .right { - right: 0; - } - .right:hover { - .flip-card { - transform: rotateY(-60deg); - } - //z-index: 120; - } - - .controls { - position: absolute; - right: 0; - width: 50%; - height: 100%; - overflow: hidden; - display: flex; - flex-direction: column; - cursor: pointer; - - &:after { - position: absolute; - content: ''; - right: 0; - top: 0; - width: 100%; - height: 100%; - box-shadow: inset 20px 0px 37px -10px rgba(0, 0, 0, 0.75); - pointer-events: none; - transition: width $animtime $ease; - } - - input[type="radio"] { - position: absolute; - left: -1000px; - } - - label { - flex-grow: 1; - display: block; - width: 100%; - border-top: 1px #e6e6e6 solid; - border-bottom: 1px #9c9c9c solid; - box-sizing: border-box; - cursor: pointer; - background-color: #dcdcdc; - - span { - background: no-repeat 16px 42px; - width: 80px; - height: 125px; - display: block; - pointer-events: none; - } - } - - input:checked + label, - label:active { - background-color: #BCBCBC; - box-shadow: inset 0px 0px 10px 5px rgba(120, 120, 120, 0.2); - border: 1px solid #fff; - } - - //https://insidemartialartsmagazine.com.au/images/glyphicons/glyphicons/svg/individual_svg/ - .btn-forward span { - background-size: calc(42px * 2) calc(42px * 2); - margin-left: 10px; - background: url("%%base_path%%/img/music/forward.svg") no-repeat center; - background: url("/img/music/forward.svg") no-repeat center; - background: url("img/music/forward.svg") no-repeat center; - } - .btn-rewind span { - background-size: calc(42px * 2) calc(42px * 2); - margin-left: 10px; - background: url("%%base_path%%/img/music/rewind.svg") no-repeat center; - background: url("/img/music/rewind.svg") no-repeat center; - background: url("img/music/rewind.svg") no-repeat center; - } - .btn-settings span { - background-size: calc(42px * 2) calc(42px * 2); - margin-left: 10px; - background: url("%%base_path%%/img/music/playlist.svg") no-repeat center; - background: url("/img/music/playlist.svg") no-repeat center; - background: url("img/music/playlist.svg") no-repeat center; - } - } - - .controls-overlay { - position: absolute; - display: block; - top: calc(100% - 60px); - width: 100%; - height: 60px; - z-index: 100; - overflow-x: hidden; - transition: width $animtime $ease; - - .song { - margin-top: 5px; - margin-left: 20px; - height: 15px; - width: 360px; - - font-family: "DejaVu Serif", serif; - } - - .timer { - margin-left: 20px; - height: 15px; - z-index: 200; - width: 360px; - display: inline-flex; - justify-content: space-between; - vertical-align: center; - - .button-container{ - display: inline-block; - - > div { - display: inline-block; - } - } - - .button { - width: 10px; - height: 12px; - margin-left: 2px; - - svg { - - fill: none; - stroke: #4c4c4c;; - stroke-width: 0.5; - stroke-miterlimit: 10; - cursor: pointer; - - color: white; - mix-blend-mode: difference; - //box-shadow: 20px 20px 20px 20px rgb(186, 0, 12); - } - } - - .button.active { - svg { - animation: bounce 500ms alternate; - transform: scale(1.3); - transition: transform 150ms; - } - } - - .button:hover { - svg { - animation: bounce 500ms alternate; - transform: scale(1.1); - transition: transform 150ms; - } - } - - .button.active:hover { - svg { - animation: bounce 500ms alternate; - transform: scale(1.5); - transition: transform 150ms; - } - } - - .timeline * { - border: gray 0; - border-radius: 8px; - } - - //TODO box SHADOW - .timeline { - width: calc(100% - 100px); - height: 4px; - float: left; - background: #DBE3E3; - position: relative; - align-self: center; - border: gray 0; - border-radius: 8px; - - .buffered { - position: absolute; - width: 80%; - height: 100%; - background: #a0a0a0; - } - - .played { - position: absolute; - width: 60%; - height: 100%; - background: #1fe2e3; - } - - .slider { - position: absolute; - width: 4px; - height: 12px; - top: -4px; - background: #303030; - cursor: pointer; - } - } - - .time { - min-width: 38px; - margin-left: 5px; - position: relative; - align-self: center; - font-family: 'fantasy' - } - } - } - - .controls-overlay.flipped { - width: calc(50% + 7px); - } -} - -.music-wrapper.empty { - border: 7px solid #dedede; - display: flex; - flex-direction: column; - background: white; -} - -.music-wrapper.empty img { - margin: 5px; - -webkit-animation: rotation 5s infinite linear; -} -@-webkit-keyframes rotation { - from { - -webkit-transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - } -} - -.music-wrapper.empty a { - text-align: center; - margin: 5px; - margin-top: 20px; - font-size: 20px; - font-family: Arial; -} \ No newline at end of file diff --git a/shared/css/static/server-log.scss b/shared/css/static/server-log.scss index 1f97ac77..173d179c 100644 --- a/shared/css/static/server-log.scss +++ b/shared/css/static/server-log.scss @@ -1,5 +1,11 @@ @import "mixin"; +html:root { + --server-log-text: #6e6e6e; + --server-log-error: #e62222; + --server-log-tree-entry: #d8d8d8; +} + .container-log { display: block; overflow-y: auto; @@ -19,7 +25,7 @@ flex-shrink: 0; flex-grow: 0; - color: #6e6e6e; + color: var(--server-log-text); overflow-x: hidden; overflow-y: hidden; @@ -47,15 +53,11 @@ .log-error { - color: rgba(230, 34, 34, 1); - - &:hover { - color: rgba(230, 34, 34, 1); - } + color: var(--server-log-error); } .htmltag-client, .htmltag-channel { - color: #d8d8d8; + color: var(--server-log-tree-entry); } } } \ No newline at end of file diff --git a/shared/html/templates.html b/shared/html/templates.html index b5bc3ec6..0c28911e 100644 --- a/shared/html/templates.html +++ b/shared/html/templates.html @@ -3447,81 +3447,6 @@ - - - - -