174b257c39
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.
596 lines
15 KiB
SCSS
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...
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|