TeaWeb/shared/js/ui/modal/bookmarks/Renderer.scss
2021-03-14 19:50:45 +01:00

675 lines
No EOL
14 KiB
SCSS

@import "../../../../css/static/mixin";
@import "../../../../css/static/properties";
.container {
display: flex;
flex-direction: row;
justify-content: stretch;
height: 45em;
min-width: 30em;
width: 80em;
max-width: 100%;
flex-shrink: 1;
@include user-select(none);
&.windowed {
width: 100%;
height: 100%;
}
.inputBoxed {
height: 2em;
}
}
.listContainer {
min-width: 12em;
width: 30%;
flex-grow: 1;
flex-shrink: 1;
padding: .5em;
background-color: #212125;
display: flex;
flex-direction: column;
justify-content: stretch;
.title {
flex-shrink: 0;
flex-grow: 0;
display: flex;
flex-direction: row;
justify-content: space-between;
.text {
flex-shrink: 1;
min-width: 1em;
text-align: left;
font-size: 1.5em;
color: #557edc;
text-transform: uppercase;
@include text-dotdotdot();
}
.containerButton {
flex-shrink: 0;
flex-grow: 0;
display: flex;
flex-direction: column;
justify-content: center;
.button {
cursor: pointer;
font-size: 1.2em;
padding: .2em;
border-radius: .2em;
display: flex;
flex-direction: column;
justify-content: center;
margin-right: .2em;
&:hover {
background-color: #0000004f;
}
}
}
}
.containerBookmarks {
flex-shrink: 1;
flex-grow: 1;
min-height: 6em;
display: flex;
flex-direction: column;
justify-content: stretch;
position: relative;
overflow: auto;
@include chat-scrollbar();
.bookmark, .directory {
position: relative;
flex-grow: 0;
flex-shrink: 0;
display: flex;
flex-direction: row;
justify-content: stretch;
border-radius: $border_radius_middle;
padding: .25em .5em;
cursor: pointer;
.icon {
flex-grow: 0;
flex-shrink: 0;
align-self: center;
margin-right: .5em;
}
.name {
flex-grow: 1;
flex-shrink: 1;
min-width: 5em;
align-self: center;
@include text-dotdotdot();
}
.bookmarkButtons {
opacity: 0;
position: absolute;
right: 0;
top: 0;
bottom: 0;
display: flex;
flex-direction: row;
background: inherit;
@include transition(opacity ease-in-out $button_hover_animation_time);
.button {
display: flex;
flex-direction: column;
justify-content: center;
align-self: center;
margin-right: .2em;
padding: .2em;
border-radius: .2em;
&:hover {
background-color: #0000004f;
}
}
}
&:hover {
background-color: #2c2d2f;
.bookmarkButtons {
opacity: 1;
}
}
&.selected {
background-color: #1a1a1b;
}
.link {
flex-grow: 0;
flex-shrink: 0;
position: relative;
width: 1.5em;
$line_width: 2px;
$color: hsla(0, 0%, 35%, 1);
&:not(.hidden) {
&:before {
content: "";
position: absolute;
height: 2.25em; /* connect with the previous one */
width: .75em;
left: .5em; /* icons have a width of 1em */
bottom: calc(.75em - #{$line_width / 2});
border-left: $line_width solid $color;
}
&.connected {
&:before {
border-bottom: $line_width solid $color;
border-bottom-left-radius: .3em;
}
}
}
}
}
.linkStart + .bookmark, .linkStart + .directory {
.link.connected {
&:before {
height: 1.25em;
}
}
}
}
.buttons {
flex-shrink: 0;
flex-grow: 0;
display: flex;
flex-direction: row;
justify-content: space-between;
padding-top: .5em;
button {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
&:not(:first-of-type) {
margin-left: .5em;
}
}
}
.overlay {
background-color: #212125;
}
}
.infoContainer {
min-width: 25em;
width: 30%;
flex-grow: 1;
flex-shrink: 1;
background-color: #2f2f35;
display: flex;
flex-direction: column;
justify-content: flex-start;
.header {
flex-grow: 0;
flex-shrink: 0;
height: 10em;
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: flex-end;
padding: .5em;
position: relative;
.containerName {
z-index: 1;
position: relative;
padding-right: 1.5em;
display: flex;
flex-direction: row;
.name {
flex-shrink: 1;
flex-grow: 0;
font-size: 2em;
color: #fcfcfc;
@include text-dotdotdot();
text-shadow: 2px 2px #666666;
@include transition(border-color ease-in-out $button_hover_animation_time);
}
.edit {
flex-shrink: 0;
padding-left: .5em;
display: flex;
flex-direction: column;
justify-content: center;
.button {
padding: .2em;
border-radius: .2em;
cursor: pointer;
display: flex;
opacity: .5;
@include transition(all ease-in-out $button_hover_animation_time);
&:hover {
opacity: 1;
background: #0000004f;
}
.icon {
font-size: 1.5em;
}
}
}
&.editing {
padding-right: 0;
.name {
width: 100%;
text-shadow: none;
border: .04em solid white;
border-radius: .15em;
padding-left: .25em;
padding-right: .25em;
background: #0000006f;
overflow: auto;
text-overflow: unset;
@include chat-scrollbar(.5em / 2em);
&.invalid {
border-color: #721c1c;
}
}
}
}
.containerAddress {
z-index: 1;
font-size: 1.5em;
color: #fcfcfc;
@include text-dotdotdot();
}
.hostBanner {
position: absolute;
top: 0;
left: 0;
&.individual {
right: 0;
bottom: 0;
padding: .5em;
&:after {
content: ' ';
background: #00000020;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
}
.renderer {
height: 100%;
width: 100%;
}
}
//background: url("./header_background.png") no-repeat;
}
.containerSettings {
flex-grow: 1;
flex-shrink: 1;
min-height: 10em;
padding: .5em;
display: flex;
flex-direction: column;
justify-content: flex-start;
overflow-y: auto;
overflow-x: hidden;
@include chat-scrollbar-vertical();
.group {
padding: .5em;
border-radius: .2em;
border: 1px solid #1f2122;
background-color: #28292b;
display: flex;
flex-direction: column;
justify-content: flex-start;
> .row {
display: flex;
flex-direction: row;
justify-content: stretch;
.key {
flex-grow: 0;
flex-shrink: 1;
width: 15em;
min-width: 2em;
align-self: center;
color: #557edc;
text-transform: uppercase;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.value {
flex-grow: 1;
flex-shrink: 1;
min-width: 2em;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
&:not(:first-of-type) {
margin-top: 1em;
}
}
&:not(:first-of-type) {
margin-top: 1em;
}
&.connectInfoContainer {
flex-direction: row;
}
}
}
.buttons {
padding: .5em;
display: flex;
flex-direction: row;
justify-content: flex-start;
.buttonDuplicate {
margin-right: auto;
}
button {
flex-shrink: 1;
flex-grow: 1;
min-width: 2em;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
&:not(:first-of-type) {
margin-left: .5em;
}
}
}
}
.connectInfoContainer {
position: relative;
.containerImage {
flex-grow: 1;
flex-shrink: 1;
max-width: 15em;
max-height: 9em; /* minus one padding */
width: 15em;
display: flex;
flex-direction: column;
justify-content: center;
img {
object-fit: contain;
max-height: 100%;
max-width: 100%;
}
@include transition(.25s ease-in-out);
}
.containerProperties {
flex-shrink: 1;
flex-grow: 1;
min-width: 23em;
display: flex;
flex-direction: column;
justify-content: flex-start;
height: inherit;
.row {
flex-grow: 0;
flex-shrink: 0;
height: 1.8em;
display: flex;
flex-direction: row;
justify-content: flex-start;
.key {
flex-shrink: 0;
flex-grow: 0;
color: #557edc;
text-transform: uppercase;
align-self: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 15em;
}
.value {
color: #d6d6d7;
align-self: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
&.serverRegion {
> div {
display: inline-block;
}
.country {
margin-right: .25em;
}
}
&.valueConnectCount {
display: flex;
flex-direction: row;
justify-content: flex-start;
.text {
margin-right: .5em;
}
> span {
display: flex;
align-self: center;
}
}
.connectCount, .connectNever {
display: inline-block;
color: #7a3131;
}
}
}
}
.tooltipIcon {
text-align: left;
width: 1em;
height: 1em;
}
.overlay {
background: #28292b;
}
}
.inputIconContainer {
display: flex;
flex-direction: column;
justify-content: center;
.iconContainer {
display: flex;
padding: .2em;
margin-right: .2em;
}
&.enabled {
.iconContainer {
cursor: pointer;
&:hover {
background: #ffffff10;
border-radius: .2em;
}
}
}
}
.overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: none;
flex-direction: column;
justify-content: center;
&.shown {
display: flex;
}
.text {
color: #666;
text-align: center;
font-size: 1.2em;
}
.buttonCreate {
margin-top: .5em;
max-width: 100%;
flex-grow: 0;
align-self: center;
}
}