e730b65bef
Using float has the huge disadvantage that different floating elements can block each other if they're just slightly too big (e.g. because of fractional pixels when zooming), leading to the same-level channels being displayed with increasing indention, even though they shouldn't.
537 lines
11 KiB
SCSS
537 lines
11 KiB
SCSS
$black: #000 !default
|
|
$darkgray: #888 !default
|
|
$gray: #a9a9a9 !default
|
|
$lightgray: #d3d3d3 !default
|
|
$bg-color: #eee !default
|
|
$white: #fff !default
|
|
|
|
$font-color: $black !default
|
|
$font-family: "Segoe UI", Frutiger, "Frutiger Linotype", "Dejavu Sans", "Helvetica Neue", Arial, sans-serif !default
|
|
$font-disabled-color: $gray !default
|
|
$panel-bg-color: $white !default
|
|
$panel-border-color: $lightgray !default
|
|
$channel-tree-color: $lightgray !default
|
|
$channel-hover-bg-color: $lightgray !default
|
|
$channel-selected-bg-color: lightblue !default
|
|
$channel-selected-border-color: $darkgray !default
|
|
$tooltip-border-color: $darkgray !default
|
|
$chat-channel-color: orange !default
|
|
$chat-user-color: green !default
|
|
$chat-input-color: $font-color !default
|
|
$mic-volume-border-color: $black !default
|
|
$talk-outline-color: green !default
|
|
$whisper-outline-color: purple !default
|
|
$shout-outline-color: cyan !default
|
|
|
|
$toolbar-hover-bg-color: $lightgray !default
|
|
$toolbar-hover-border-color: $gray !default
|
|
$toolbar-active-bg-color: $white !default
|
|
$toolbar-active-border-color: $toolbar-hover-bg-color !default
|
|
$toolbar-divider-color: $lightgray !default
|
|
$dialog-header-color: $white !default
|
|
$dialog-header-bg-color: $darkgray !default
|
|
$dialog-header-border-bottom-color: $gray !default
|
|
$dialog-bg-color: $bg-color !default
|
|
$dialog-border-color: $darkgray !default
|
|
$dialog-color: $font-color !default
|
|
$dialog-button-border-color: $darkgray !default
|
|
$dialog-button-bg-color: $white !default
|
|
$dialog-button-color: $dialog-color !default
|
|
$dialog-input-border-color: $darkgray !default
|
|
$dialog-input-bg-color: $white !default
|
|
$dialog-input-color: $dialog-color !default
|
|
$context-menu-bg-color: $bg-color !default
|
|
$context-menu-border-color: $panel-border-color !default
|
|
$context-menu-hover-bg-color: $toolbar-hover-bg-color !default
|
|
|
|
$tooltip-bg-color: $panel-bg-color !default
|
|
$channels-bg-color: $panel-bg-color !default
|
|
$channels-border-color: $panel-border-color !default
|
|
$chat-bg-color: $panel-bg-color !default
|
|
$chat-border-color: $panel-border-color !default
|
|
|
|
html, body {
|
|
background-color: $bg-color;
|
|
color: $font-color;
|
|
font-family: $font-family;
|
|
margin: 0;
|
|
overflow: hidden;
|
|
height: 100%
|
|
}
|
|
#container {
|
|
height: 100%;
|
|
}
|
|
.channel-root-container {
|
|
text-size: 16px;
|
|
margin-left: 2px;
|
|
background-color: $channels-bg-color;
|
|
border: 1px solid $channels-border-color;
|
|
float: left;
|
|
border-radius: 3px;
|
|
overflow-x: hidden;
|
|
overflow-y: auto;
|
|
}
|
|
.toolbar-horizontal ~ .channel-root-container {
|
|
margin-top: 2px;
|
|
width: calc(59% - 6px);
|
|
height: calc(98% - 38px);
|
|
}
|
|
.toolbar-vertical ~ .channel-root-container {
|
|
margin-top: 1%;
|
|
width: calc(59% - 6px);
|
|
height: calc(98% - 6px);
|
|
}
|
|
.chat {
|
|
margin-right: 2px;
|
|
float: left;
|
|
}
|
|
.toolbar-horizontal ~ .chat {
|
|
margin-top: 2px;
|
|
margin-left: 1%;
|
|
width: 39%;
|
|
height: calc(98% - 38px);
|
|
}
|
|
.toolbar-vertical ~ .chat {
|
|
margin-top: 1%;
|
|
margin-left: 2px;
|
|
width: calc(39% - 36px);
|
|
height: calc(98% - 4px);
|
|
}
|
|
.log {
|
|
background-color: $chat-bg-color;
|
|
height: calc(100% - 42px);
|
|
padding: 5px;
|
|
border: 1px $chat-border-color solid;
|
|
border-radius: 3px;
|
|
overflow-x: hidden;
|
|
overflow-y: scroll;
|
|
}
|
|
.branch img {
|
|
height: 19px;
|
|
}
|
|
.branch {
|
|
position: absolute;
|
|
padding-top: 3px;
|
|
padding-bottom: 3px;
|
|
background-color: $channels-bg-color;
|
|
}
|
|
.channel-sub {
|
|
margin-left: 9px;
|
|
border-left: 1px transparent solid;
|
|
padding-left: 9px;
|
|
}
|
|
.channel-wrapper:nth-last-child(n + 2) > .branch:not(:empty) + .channel-sub {
|
|
border-left: 1px $channel-tree-color solid;
|
|
}
|
|
.channel-tree,
|
|
.user-wrapper {
|
|
margin-left: 9px;
|
|
}
|
|
.channel-tree,
|
|
.user-tree {
|
|
position: absolute;
|
|
}
|
|
.channel-tree::before,
|
|
.user-tree::before {
|
|
content: "";
|
|
display: block;
|
|
position: relative;
|
|
width: 9px;
|
|
border-left: 1px $channel-tree-color solid;
|
|
border-bottom: 1px $channel-tree-color solid;
|
|
height: 14px;
|
|
}
|
|
.channel-wrapper:nth-last-child(n + 2) > .channel-tree:after,
|
|
.user-wrapper:nth-last-child(n + 2) .user-tree:after {
|
|
content: "";
|
|
display: block;
|
|
position: relative;
|
|
width: 0px;
|
|
border-left: 1px $channel-tree-color solid;
|
|
height: 14px;
|
|
}
|
|
.user {
|
|
margin-left: 9px;
|
|
}
|
|
.user-avatar, .user-talk {
|
|
vertical-align: middle;
|
|
}
|
|
@mixin drop-shadow-4x($size, $blur, $color) {
|
|
filter: drop-shadow(#{+$size} #{+$size} $blur $color)
|
|
drop-shadow(#{+$size} #{-$size} $blur $color)
|
|
drop-shadow(#{-$size} #{+$size} $blur $color)
|
|
drop-shadow(#{-$size} #{-$size} $blur $color);
|
|
}
|
|
@mixin user-avatar-drop-shadow($color) {
|
|
@include drop-shadow-4x(1px, 1px, $color);
|
|
}
|
|
.user-avatar-talk-on {
|
|
@include user-avatar-drop-shadow($talk-outline-color);
|
|
}
|
|
.user-avatar-talk-whisper {
|
|
@include user-avatar-drop-shadow($whisper-outline-color);
|
|
}
|
|
.user-avatar-talk-shout {
|
|
@include user-avatar-drop-shadow($shout-outline-color);
|
|
}
|
|
.user-status, .channel-status {
|
|
float: right;
|
|
}
|
|
.user,.channel{
|
|
height: 23px;
|
|
line-height: 23px;
|
|
padding: 2px;
|
|
border: 1px solid transparent;
|
|
}
|
|
.selected {
|
|
background-color: $channel-selected-bg-color !important;
|
|
border: 1px solid $channel-selected-border-color;
|
|
border-radius: 3px;
|
|
}
|
|
.user:hover,.channel:hover {
|
|
background-color: $channel-hover-bg-color;
|
|
}
|
|
.thisClient {
|
|
font-weight: bold
|
|
}
|
|
.currentChannel {
|
|
font-weight: bold
|
|
}
|
|
.user-status img, .channel-status img {
|
|
margin-top: 2px;
|
|
width: 19px;
|
|
height: 19px
|
|
}
|
|
.channel img, .user img {
|
|
width: auto;
|
|
height: 19px;
|
|
}
|
|
.channel-name, .user-name {
|
|
display: inline;
|
|
}
|
|
.channel:hover .tooltip, .user:hover .tooltip {
|
|
visibility: visible;
|
|
height: auto;
|
|
transition-delay: 1s;
|
|
}
|
|
.tooltip {
|
|
visibility: hidden;
|
|
height: 0px;
|
|
background: $tooltip-bg-color;
|
|
border: 1px solid $tooltip-border-color;
|
|
margin-top: 16px;
|
|
margin-left: 30px;
|
|
padding: 10px;
|
|
position: absolute;
|
|
z-index: 100;
|
|
}
|
|
.context-menu {
|
|
position: absolute;
|
|
z-index: 50;
|
|
background: $context-menu-bg-color;
|
|
border: 1px solid $context-menu-border-color;
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style: none;
|
|
|
|
& > li {
|
|
padding: 5px 20px;
|
|
padding-left: 10px;
|
|
&::before {
|
|
display: inline-block;
|
|
width: 10px;
|
|
padding-right: 5px;
|
|
content: '';
|
|
}
|
|
&.checked::before {
|
|
content: '✓';
|
|
}
|
|
&:hover {
|
|
background: $context-menu-hover-bg-color;
|
|
}
|
|
&.disabled {
|
|
background: $context-menu-bg-color;
|
|
color: $font-disabled-color;
|
|
}
|
|
}
|
|
}
|
|
.avatar-view {
|
|
position: absolute;
|
|
z-index: 200;
|
|
max-width: 90%;
|
|
max-height: 90%;
|
|
top: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
margin: auto;
|
|
}
|
|
.toolbar {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
.toolbar img {
|
|
height: 28px;
|
|
width: 28px;
|
|
padding: 2px;
|
|
border: 1px solid transparent;
|
|
border-radius: 3px;
|
|
}
|
|
.toolbar img:hover {
|
|
border: 1px solid $toolbar-hover-bg-color;
|
|
background-color: $toolbar-hover-border-color;
|
|
}
|
|
.toolbar .tb-active {
|
|
border: 1px solid $toolbar-active-bg-color;
|
|
background-color: $toolbar-active-border-color;
|
|
}
|
|
.toolbar-horizontal {
|
|
flex-direction: row;
|
|
height: 36px;
|
|
margin-top: 4px;
|
|
margin-left: 1%;
|
|
padding-left: 5px;
|
|
}
|
|
.toolbar-vertical {
|
|
flex-direction: column;
|
|
width: 36px;
|
|
margin-top: 1%;
|
|
margin-left: 4px;
|
|
padding-top: 5px;
|
|
float: left;
|
|
}
|
|
.toolbar-horizontal > * {
|
|
margin-right: 5px;
|
|
}
|
|
.toolbar-vertical > * {
|
|
margin-bottom: 5px;
|
|
}
|
|
.divider {
|
|
display: inline-block;
|
|
}
|
|
.toolbar-horizontal .divider {
|
|
height: 32px;
|
|
border-left: 1px $toolbar-divider-color solid;
|
|
}
|
|
.toolbar-vertical .divider {
|
|
width: 32px;
|
|
border-top: 1px $toolbar-divider-color solid;
|
|
}
|
|
.toolbar-horizontal .handle-horizontal {
|
|
width: auto !important;
|
|
border: none !important;
|
|
background-color: $bg-color !important;
|
|
}
|
|
.toolbar-horizontal .handle-vertical {
|
|
display: none;
|
|
}
|
|
.toolbar-vertical .handle-vertical {
|
|
height: auto !important;
|
|
border: none !important;
|
|
background-color: $bg-color !important;
|
|
}
|
|
.toolbar-vertical .handle-horizontal {
|
|
display: none;
|
|
}
|
|
.channel-icon .channel-icon-active {
|
|
display: none;
|
|
}
|
|
.channel-tag {
|
|
font-weight: bold;
|
|
color: $chat-channel-color;
|
|
}
|
|
.user-tag {
|
|
font-weight: bold;
|
|
color: $chat-user-color;
|
|
}
|
|
#message-box {
|
|
width: 100%;
|
|
border: none;
|
|
background: none;
|
|
color: $chat-input-color;
|
|
margin: 5px 0 5px 0;
|
|
padding: 0;
|
|
height: 20px;
|
|
}
|
|
form {
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
.message-content p {
|
|
margin: 0;
|
|
}
|
|
.tb-information.disabled, .tb-record, .tb-comment {
|
|
filter: grayscale(100%);
|
|
}
|
|
.dialog-header {
|
|
height: 20px;
|
|
width: calc(100% - 10px);
|
|
padding: 5px;
|
|
text-align: center;
|
|
color: $dialog-header-color;
|
|
background-color: $dialog-header-bg-color;
|
|
border-bottom: 1px solid $dialog-header-border-bottom-color;
|
|
}
|
|
.dialog-footer {
|
|
width: calc(100% - 20px);
|
|
margin: 10px;
|
|
}
|
|
.dialog-submit {
|
|
float: right;
|
|
}
|
|
.dialog-close, .dialog-submit {
|
|
width: 45%;
|
|
font-size: 15px;
|
|
border: 1px $dialog-button-border-color solid;
|
|
border-radius: 3px;
|
|
background-color: $dialog-button-bg-color;
|
|
color: $dialog-button-color;
|
|
padding: 1px;
|
|
}
|
|
.connect-dialog table {
|
|
text-align: center;
|
|
width: 100%
|
|
}
|
|
.dialog {
|
|
position: absolute;
|
|
max-height: calc(100% - 20px);
|
|
max-width: calc(100% - 20px);
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
overflow: auto;
|
|
background-color: $dialog-bg-color;
|
|
color: $dialog-color;
|
|
border: 1px $dialog-border-color solid;
|
|
box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
|
|
z-index: 20;
|
|
}
|
|
.settings-dialog table {
|
|
width: 100%;
|
|
padding: 5px;
|
|
}
|
|
.settings-dialog td {
|
|
width: 50%;
|
|
}
|
|
.settings-dialog table select {
|
|
width: 100%;
|
|
}
|
|
.settings-dialog table input {
|
|
width: 100%;
|
|
margin: 0px;
|
|
}
|
|
.settings-dialog table input[type="checkbox"] {
|
|
width: auto;
|
|
margin: auto;
|
|
}
|
|
.settings-dialog .mic-volume-container {
|
|
height: 10px;
|
|
border: 3px solid $mic-volume-border-color;
|
|
}
|
|
.settings-dialog .mic-volume {
|
|
height: 100%;
|
|
}
|
|
.join-dialog {
|
|
width: 300px;
|
|
height: 100px;
|
|
top: 50%;
|
|
left: 50%;
|
|
}
|
|
.join-dialog .dialog-submit {
|
|
float: none;
|
|
width: 200px;
|
|
position: absolute;
|
|
top: calc(50% - 10px);
|
|
left: calc(50% - 100px);
|
|
}
|
|
.connect-dialog input[type=text], select {
|
|
font-size: 15px;
|
|
border: 1px $dialog-input-border-color solid;
|
|
border-radius: 3px;
|
|
background-color: $dialog-input-bg-color;
|
|
color: $dialog-input-color;
|
|
padding: 2px;
|
|
width: calc(100% - 8px);
|
|
}
|
|
.connect-dialog input[type=password] {
|
|
font-size: 15px;
|
|
border: 1px $dialog-input-border-color solid;
|
|
border-radius: 3px;
|
|
background-color: $dialog-input-bg-color;
|
|
color: $dialog-input-color;
|
|
padding: 2px;
|
|
width: calc(100% - 8px);
|
|
}
|
|
.connection-info-dialog {
|
|
h3 {
|
|
margin-bottom: 5px;
|
|
}
|
|
.dialog-content {
|
|
padding-left: 20px;
|
|
}
|
|
}
|
|
|
|
|
|
/****************/
|
|
/* Minimal view */
|
|
/****************/
|
|
|
|
.minimal .toolbar-horizontal ~ .channel-root-container {
|
|
width: calc(98% - 6px);
|
|
}
|
|
.minimal .toolbar-vertical ~ .channel-root-container {
|
|
width: calc(98% - 42px);
|
|
}
|
|
.minimal .handle-horizontal {
|
|
display: none;
|
|
}
|
|
.minimal .handle-vertical {
|
|
display: none;
|
|
}
|
|
.minimal .divider {
|
|
display: none;
|
|
}
|
|
.minimal .tb-connect {
|
|
display: none;
|
|
}
|
|
.minimal .tb-information {
|
|
display: none;
|
|
}
|
|
.minimal .tb-record {
|
|
display: none;
|
|
}
|
|
.minimal .tb-comment {
|
|
display: none;
|
|
}
|
|
.minimal .tb-settings {
|
|
display: none;
|
|
}
|
|
.minimal .tb-sourcecode {
|
|
display: none;
|
|
}
|
|
.minimal .chat {
|
|
display: none;
|
|
}
|
|
.minimal .channel-wrapper {
|
|
display: none;
|
|
}
|
|
.minimal .channel {
|
|
display: none;
|
|
}
|
|
.minimal .user-tree {
|
|
display: none;
|
|
}
|
|
.minimal .user-wrapper {
|
|
margin-left: 0px;
|
|
}
|
|
.minimal .user {
|
|
margin-left: 0px;
|
|
padding-top: 0px;
|
|
padding-bottom: 0px;
|
|
border: none;
|
|
height: 19px;
|
|
line-height: 19px;
|
|
}
|
|
.minimal .user-status {
|
|
height: 19px;
|
|
}
|