xmpp.chapril.org-conversejs/sass/_controlbox.scss
Emmanuel Gil Peyrot 174b257c39 Add a dark theme inspired by Discord
This theme takes inspiration from https://discordapp.com/ and builds on
top of custom-properties, making the design more familiar to some users.

In order to change the theme, add the 'theme-dark' class on #conversejs,
you can do it at any point during the lifetime of Converse, either
directly in your HTML or by changing the DOM at runtime.
2018-11-14 15:45:51 +01:00

596 lines
15 KiB
SCSS

#conversejs {
.oauth-providers {
text-align: center;
.oauth-provider {
margin: 1em 0;
.oauth-login {
margin-left: 0;
color: var(--link-color);
font-size: var(--font-size-large);
&:hover {
color: var(--link-color-darken-20-percent);
}
i {
color: var(--link-color);
font-size: var(--font-size-huge);
margin-right: 0.5em;
}
}
}
}
.set-xmpp-status,
.xmpp-status,
.roster-contacts {
.chat-status--online {
color: var(--chat-status-online);
}
.chat-status--busy {
color: var(--chat-status-busy);
}
.chat-status--away {
color: var(--chat-status-away);
}
.far.fa-circle,
.fa-times-circle {
color: var(--subdued-color);
}
}
.room-info {
font-size: var(--font-size-small);
font-style: normal;
font-weight: normal;
li.room-info {
display: block;
margin-left: 5px;
}
p.room-info {
line-height: var(--line-height);
margin: 0;
display: block;
white-space: normal;
}
}
div.room-info {
padding: 0.3em 0;
clear: left;
width: 100%;
}
#controlbox {
.box-flyout {
background-color: white;
}
margin-right: calc(3 * var(--chat-gutter));
&.logged-out {
.box-flyout {
.controlbox-pane {
overflow-y: auto;
}
}
}
form.search-xmpp-contact {
margin: 0;
padding-left: 5px;
padding: 0 0 5px 5px;
input {
width: 8em;
}
}
.msgs-indicator {
margin-right: 0.5em;
}
a.subscribe-to-user {
padding-left: 2em;
font-weight: bold;
}
#converse-register {
@include fade-in;
background: white;
.title {
font-weight: bold;
}
.info {
color: green;
font-size: 90%;
margin: 1.5em 0;
}
.form-errors {
color: var(--error-color);
margin: 1em 0;
}
.provider-title {
font-size: var(--font-size-huge);
margin: 0;
}
.provider-score {
width: 178px;
margin-bottom: 8px;
}
.form-help .url {
font-weight: bold;
color: var(--link-color);
}
.input-group {
display: table;
margin: auto;
width: 100%;
span {
overflow-x: hidden;
text-overflow: ellipsis;
max-width: 110px;
}
span, input[name=username] {
display: table-cell;
text-align: left;
}
}
.instructions {
color: gray;
font-size: 85%;
&:hover {
color: var(--text-color);
}
}
}
.conn-feedback {
color: var(--controlbox-head-color);
&.error {
color: var(--error-color);
}
p {
padding-bottom: 1em;
&.feedback-subject.error {
font-weight: bold;
}
}
}
.brand-heading-container {
.brand-heading {
text-align: center;
}
.brand-name {
font-size: 120%;
}
}
#converse-login-panel, #converse-register-panel {
padding-top: 0;
padding-bottom: 0;
}
#converse-login-panel {
flex-direction: column;
.brand-heading {
color: var(--global-background-color);
}
}
.toggle-register-login {
font-weight: bold;
}
.controlbox-pane {
.userinfo {
padding-bottom: 1em;
.username {
margin-left: 0.5em;
overflow: hidden;
text-overflow: ellipsis;
}
.profile {
margin-bottom: 0.75em;
}
}
}
#chatrooms {
padding: 0;
.add-chatroom {
input[type=button],
input[type=submit],
input[type=text] {
width: 100%;
}
margin: 0;
padding: 0;
}
}
.controlbox-section {
.controlbox-heading {
font-family: var(--heading-font);
color: var(--controlbox-heading-color);
font-weight: var(--controlbox-heading-font-weight);
padding: 0;
margin: 0.75em 0;
font-size: 1.1em;
text-transform: uppercase;
}
.controlbox-heading__btn {
cursor: pointer;
align-self: flex-start;
font-size: 1em;
padding: 0;
margin: 0.75em 0 0.75em 0.75em;
&.fa-vcard {
margin-top: 1em;
}
}
}
.dropdown {
a {
width: 143px;
display: inline-block;
}
li {
list-style: none;
padding-left: 0;
}
dd {
ul {
padding: 0;
list-style: none;
position: absolute;
left: 0;
top: 0;
width: 100%;
z-index: 21;
background-color: var(--light-background-color);
li:hover {
background-color: var(--highlight-color);
}
}
}
dd.search-xmpp {
height: 0;
.contact-form-container {
position: absolute;
z-index: 22;
form {
box-shadow: 1px 4px 10px 1px rgba(0, 0, 0, 0.4);
background-color: white;
}
}
li:hover {
background-color: var(--light-background-color);
}
}
dt a span {
cursor: pointer;
display: block;
padding: 4px 7px 0 5px;
}
}
.controlbox-panes {
height: 100%;
overflow-y: auto;
background-color: var(--controlbox-pane-background-color);
}
.controlbox-subtitle {
font-size: 90%;
padding: 0.5em;
text-align: right;
}
.controlbox-pane {
background-color: var(--controlbox-pane-background-color);
border: 0;
font-size: var(--font-size);
left: 0;
text-align: left;
overflow-x: hidden;
padding: 1em 0 1em 0;
.controlbox-padded {
padding-left: 1em;
padding-right: 1em;
}
.add-converse-contact {
margin: 0 0 0.75em 0;
}
.chatbox-btn {
margin: 0;
}
.switch-form {
text-align: center;
padding: 2em 0;
p {
margin-top: 0.5em;
}
}
dd {
margin-left: 0;
margin-bottom: 0;
&.odd {
background-color: #DCEAC5;
}
}
}
.add-xmpp-contact {
padding: 1em 0.5em;
input {
margin: 0 0 1rem;
width: 100%;
}
button {
width: 100%;
}
}
}
.toggle-controlbox {
text-align: center;
background-color: var(--link-color);
border-top-left-radius: var(--button-border-radius);
border-top-right-radius: var(--button-border-radius);
color: #0a0a0a;
float: right;
height: 100%;
margin: 0 var(--chat-gutter);
padding: 1em;
span {
color: var(--inverse-link-color);
}
}
}
#conversejs.converse-overlayed {
#controlbox {
order: -1;
min-width: var(--controlbox-width) !important;
width: var(--controlbox-width);
.box-flyout {
min-width: var(--controlbox-width) !important;
width: var(--controlbox-width);
}
.login-trusted {
white-space: nowrap;
font-size: 90%;
}
#converse-login-trusted {
margin-top: 0.5em;
}
&:not(.logged-out) {
.controlbox-head {
height: 15px;
}
}
.brand-heading-container {
width: 100%;
}
.controlbox-head {
display: flex;
flex-direction: row-reverse;
flex-wrap: nowrap;
justify-content: space-between;
.brand-heading {
color: var(--text-color);
font-size: 2em;
}
.chatbox-btn {
color: var(--controlbox-head-color);
margin: 0;
}
}
#converse-register, #converse-login {
@include make-col(12);
padding-bottom: 0;
}
#converse-register {
.button-cancel {
font-size: 90%;
}
}
.controlbox-panes {
border-radius: var(--chatbox-border-radius);
}
}
}
#conversejs.converse-fullscreen,
#conversejs.converse-mobile {
#controlbox {
@include make-col-ready();
@include media-breakpoint-up(md) {
@include make-col(4);
}
@include media-breakpoint-up(lg) {
@include make-col(3);
}
@include media-breakpoint-up(xl) {
@include make-col(2);
}
&.logged-out {
@include make-col(12);
}
margin: 0;
.controlbox-pane {
border-radius: 0;
}
.flyout {
border-radius: 0;
}
#converse-login-panel {
border-radius: 0;
.converse-form {
padding: 3em 2em 3em;
}
}
.toggle-register-login {
line-height: var(--line-height-huge);
}
.brand-heading-container {
@include make-col(12);
margin-bottom: 1em;
text-align: center;
.brand-heading {
font-size: 150%;
font-size: 600%;
padding: 0.7em 0 0 0;
opacity: 0.8;
color: var(--brand-heading-color);
}
.brand-subtitle {
font-size: 90%;
padding: 0.5em;
}
@media screen and (max-width: $mobile-portrait-length) {
.brand-heading {
font-size: 400%;
}
}
}
&.logged-out {
@include make-col(12);
@include fade-in;
width: 100%;
.box-flyout {
width: 100%;
}
}
.box-flyout {
border: 0;
width: 100%;
z-index: 1;
background-color: var(--controlbox-head-color);
.controlbox-head {
display: none;
}
}
#converse-register, #converse-login {
@include make-col-ready();
@include make-col(8);
@include make-col-offset(2);
@include media-breakpoint-up(sm) {
@include make-col(8);
@include make-col-offset(2);
}
@include media-breakpoint-up(md) {
@include make-col(8);
@include make-col-offset(2);
}
@include media-breakpoint-up(lg) {
@include make-col(6);
@include make-col-offset(3);
}
.title, .instructions {
margin: 1em 0;
}
input[type=submit],
input[type=button] {
width: auto;
}
}
}
}
@include media-breakpoint-down(sm) {
#conversejs:not(.converse-embedded) {
left: 0;
right: 0;
padding-left: env(safe-area-inset-left);
padding-right: env(safe-area-inset-right);
.converse-chatboxes {
margin: 0 !important;
flex-direction: row !important;
justify-content: space-between;
.converse-chatroom {
font-size: 14px;
}
.chatbox {
.box-flyout {
margin-left: 15px; // Counteracts Bootstrap margins, but
// not clear why needed...
left: 0;
bottom: 0;
border-radius: 0;
width: 100vw !important;
height: 100vh !important;
}
}
#controlbox {
width: 100vw !important;
.box-flyout {
width: 100vw !important;
height: 100vh !important;
}
.sidebar {
display: block;
}
}
&.sidebar-open {
.chatbox:not(#controlbox) {
display: none;
}
#controlbox {
.controlbox-pane {
display: block;
}
}
}
}
}
#conversejs.converse-overlayed {
.converse-chatboxes {
.chatbox {
.box-flyout {
margin-left: 30px; // Counteracts Bootstrap margins, but
// not clear why needed...
}
}
}
}
}