mirror of
https://github.com/thelounge/thelounge.git
synced 2024-05-26 10:22:19 +02:00
487 lines
8.8 KiB
CSS
487 lines
8.8 KiB
CSS
@import "../../node_modules/normalize.css/normalize.css";
|
|
@import "fontawesome.css";
|
|
@import "../../node_modules/primer-tooltips/build/build.css";
|
|
@import "./loading.css";
|
|
|
|
:root {
|
|
/* Main text color */
|
|
--body-color: #222;
|
|
|
|
/* Secondary text color, dimmed. Make sure to keep contrast WCAG 2.0 AA compliant on var(--window-bg-color) */
|
|
--body-color-muted: #767676;
|
|
|
|
/* Background color of the whole page */
|
|
--body-bg-color: #415364;
|
|
|
|
/* Main button color. Applies to border, text, and background on hover */
|
|
--button-color: #84ce88;
|
|
--button-text-color-hover: #fff;
|
|
|
|
/* Color for sidebar overlay and other things that dim the viewport when something else is on top */
|
|
--overlay-bg-color: rgb(0 0 0 / 50%);
|
|
|
|
/* Links and link-looking buttons */
|
|
--link-color: #50a656;
|
|
|
|
/* Background color of the main window */
|
|
--window-bg-color: #fff;
|
|
|
|
/* Text color for <h2> and <h3> headings in windows */
|
|
--window-heading-color: #6c797a;
|
|
|
|
/* Color of the date marker, text and separator */
|
|
--date-marker-color: rgb(0 107 59 / 50%);
|
|
|
|
/* Color of the unread message marker, text and separator */
|
|
--unread-marker-color: rgb(231 76 60 / 50%);
|
|
|
|
/* Background and left-border color of highlight messages */
|
|
--highlight-bg-color: #efe8dc;
|
|
--highlight-border-color: #b08c4f;
|
|
|
|
/* Color of the progress bar that appears as a file is being uploaded to the server. Defaults to button color */
|
|
--upload-progressbar-color: var(--button-color);
|
|
|
|
/* Used to fade out long text via mask-image */
|
|
--fade-long-text: linear-gradient(to left, transparent, black 15px);
|
|
|
|
/* Used for connect, settings, help pages */
|
|
--page-content-width: 480px;
|
|
}
|
|
|
|
::placeholder {
|
|
color: rgb(0 0 0 / 35%);
|
|
opacity: 1; /* fix opacity in Firefox */
|
|
}
|
|
|
|
html {
|
|
box-sizing: border-box;
|
|
-webkit-tap-highlight-color: transparent; /* remove tap highlight on touch devices */
|
|
}
|
|
|
|
*,
|
|
*::before,
|
|
*::after {
|
|
box-sizing: inherit;
|
|
}
|
|
|
|
input,
|
|
button,
|
|
select,
|
|
textarea {
|
|
font: inherit;
|
|
color: inherit;
|
|
}
|
|
|
|
img {
|
|
vertical-align: middle;
|
|
}
|
|
|
|
abbr[title] {
|
|
cursor: help;
|
|
}
|
|
|
|
html,
|
|
body {
|
|
height: 100%;
|
|
overscroll-behavior: none; /* prevent overscroll navigation actions */
|
|
}
|
|
|
|
body {
|
|
background: var(--body-bg-color);
|
|
color: var(--body-color);
|
|
font: 16px -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
margin: 0;
|
|
user-select: none;
|
|
cursor: default;
|
|
touch-action: none;
|
|
|
|
/**
|
|
* Disable pull-to-refresh on mobile that conflicts with scrolling the message list.
|
|
* See http://stackoverflow.com/a/29313685/1935861
|
|
*/
|
|
overflow: hidden; /* iOS Safari requires overflow rather than overflow-y */
|
|
}
|
|
|
|
a,
|
|
a:hover,
|
|
a:focus {
|
|
color: var(--link-color);
|
|
text-decoration: none;
|
|
}
|
|
|
|
a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
a:focus {
|
|
outline: thin dotted;
|
|
outline: 5px auto -webkit-focus-ring-color;
|
|
outline-offset: -2px;
|
|
}
|
|
|
|
h1,
|
|
h2,
|
|
h3 {
|
|
font: inherit;
|
|
line-height: inherit;
|
|
margin: 0;
|
|
}
|
|
|
|
button {
|
|
border: none;
|
|
background: none;
|
|
margin: 0;
|
|
outline: none;
|
|
padding: 0;
|
|
user-select: inherit;
|
|
cursor: pointer;
|
|
}
|
|
|
|
code,
|
|
pre,
|
|
#chat .msg[data-type="monospace_block"] .text,
|
|
.irc-monospace,
|
|
textarea#user-specified-css-input {
|
|
font-family: Consolas, Menlo, Monaco, "Lucida Console", "DejaVu Sans Mono", "Courier New", monospace;
|
|
}
|
|
|
|
code,
|
|
.irc-monospace {
|
|
font-size: 13px;
|
|
padding: 2px 4px;
|
|
color: #e74c3c;
|
|
background-color: #f9f2f4;
|
|
border-radius: 2px;
|
|
}
|
|
|
|
pre {
|
|
display: block;
|
|
padding: 9.5px;
|
|
margin: 0 0 10px;
|
|
font-size: 13px;
|
|
line-height: 1.4286;
|
|
color: #333;
|
|
word-break: break-all;
|
|
word-wrap: break-word;
|
|
background-color: #f5f5f5;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
p {
|
|
margin: 0 0 10px;
|
|
}
|
|
|
|
.input:focus {
|
|
outline: 0;
|
|
box-shadow: 0 0 0 3px rgb(132 206 136 / 50%);
|
|
}
|
|
|
|
#js-copy-hack,
|
|
#loading pre,
|
|
#help .container,
|
|
#changelog .container,
|
|
.header .title,
|
|
.header .topic,
|
|
#chat .messages {
|
|
user-select: text;
|
|
cursor: text;
|
|
}
|
|
|
|
#js-copy-hack {
|
|
position: absolute;
|
|
left: -999999px;
|
|
}
|
|
|
|
#chat #js-copy-hack .msg[data-type="condensed"]:not(.closed) .msg,
|
|
#chat #js-copy-hack > .msg {
|
|
display: block;
|
|
}
|
|
|
|
#viewport {
|
|
display: flex;
|
|
height: 100%;
|
|
}
|
|
|
|
#form button,
|
|
.header button,
|
|
.reveal-password span {
|
|
transition: opacity 0.2s;
|
|
}
|
|
|
|
#form button:hover,
|
|
.header button:hover,
|
|
.reveal-password span:hover {
|
|
opacity: 0.6;
|
|
}
|
|
|
|
/* Darker background and defualt cursor for active channels */
|
|
#footer button.active,
|
|
.channel-list-item.active {
|
|
background-color: #303e4a;
|
|
cursor: default;
|
|
}
|
|
|
|
.input {
|
|
background-color: white;
|
|
border: 1px solid #cdd3da;
|
|
border-radius: 2px;
|
|
color: #222;
|
|
font-size: 14px;
|
|
margin: 2px 0;
|
|
margin-bottom: 10px;
|
|
padding: 0 10px;
|
|
transition: border-color 0.2s, box-shadow 0.2s;
|
|
width: 100%;
|
|
height: 35px;
|
|
line-height: 35px;
|
|
}
|
|
|
|
.input:disabled {
|
|
background-color: #ddd;
|
|
}
|
|
|
|
.input:not(:disabled):hover,
|
|
.input:not(:disabled):focus {
|
|
border-color: #84ce88;
|
|
}
|
|
|
|
textarea.input {
|
|
resize: vertical;
|
|
min-height: 35px;
|
|
padding: 6px 10px;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
/**
|
|
* Toggled via JavaScript
|
|
*/
|
|
.userlist-open .chat-view[data-type="channel"] .scroll-down {
|
|
right: 196px;
|
|
}
|
|
|
|
/* Parsed nicks and channels */
|
|
|
|
#chat .user,
|
|
.inline-channel {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.chat .user:hover,
|
|
.inline-channel:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
/* Nicknames */
|
|
.window .logo-inverted {
|
|
display: none; /* In dark themes, inverted logo must be used instead */
|
|
}
|
|
|
|
.password-container {
|
|
position: relative;
|
|
}
|
|
|
|
.password-container input {
|
|
padding-right: 37px;
|
|
}
|
|
|
|
.password-container .reveal-password {
|
|
position: absolute;
|
|
top: 2px;
|
|
right: 0;
|
|
appearance: none;
|
|
}
|
|
|
|
.password-container .reveal-password span {
|
|
font-size: 16px;
|
|
color: #607992;
|
|
width: 35px;
|
|
height: 35px;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.password-container .reveal-password span::before {
|
|
content: "\f06e"; /* https://fontawesome.com/icons/eye?style=solid */
|
|
}
|
|
|
|
.topic-container .save-topic span::before {
|
|
content: "\f00c"; /* https://fontawesome.com/icons/check?style=solid */
|
|
}
|
|
|
|
.password-container .reveal-password-visible span::before {
|
|
content: "\f070"; /* https://fontawesome.com/icons/eye-slash?style=solid */
|
|
color: #ff4136;
|
|
}
|
|
|
|
.mentions-popup,
|
|
#context-menu,
|
|
.textcomplete-menu {
|
|
position: absolute;
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0 6px;
|
|
min-width: 180px;
|
|
font-size: 14px;
|
|
background-color: #fff;
|
|
box-shadow: 0 3px 12px rgb(0 0 0 / 15%);
|
|
border: 1px solid rgb(0 0 0 / 15%);
|
|
border-radius: 5px;
|
|
outline: 0;
|
|
}
|
|
|
|
.context-menu-item,
|
|
.textcomplete-item {
|
|
cursor: pointer;
|
|
display: block;
|
|
padding: 4px 8px;
|
|
color: #333;
|
|
margin-top: 6px;
|
|
margin-bottom: 6px;
|
|
line-height: 1.4;
|
|
border-radius: 3px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.context-menu-item.active,
|
|
.textcomplete-item:focus,
|
|
.textcomplete-item:hover,
|
|
.textcomplete-menu .active,
|
|
#chat .userlist .user.active {
|
|
background-color: rgb(0 0 0 / 10%);
|
|
}
|
|
|
|
.context-menu-item::before,
|
|
.textcomplete-item::before {
|
|
width: 20px;
|
|
display: inline-block;
|
|
}
|
|
|
|
.textcomplete-item a {
|
|
color: #333;
|
|
}
|
|
|
|
.textcomplete-item a:hover {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.textcomplete-item .emoji {
|
|
width: 32px;
|
|
text-align: center;
|
|
}
|
|
|
|
.textcomplete-item .irc-bg {
|
|
display: block;
|
|
}
|
|
|
|
.tooltipped::after {
|
|
font-size: 12px;
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
/**
|
|
* TODO Replace this with `@media (hover: hover)` when Firefox supports it
|
|
* See:
|
|
* - http://stackoverflow.com/a/28058919/1935861
|
|
* - http://caniuse.com/#feat=css-media-interaction
|
|
* - https://www.w3.org/TR/mediaqueries-4/
|
|
* - https://developer.mozilla.org/en-US/docs/Web/CSS/@media/hover
|
|
*/
|
|
.tooltipped-no-touch:hover::before,
|
|
.tooltipped-no-touch:hover::after {
|
|
visibility: hidden;
|
|
opacity: 0;
|
|
}
|
|
|
|
.channel-list-item,
|
|
#sidebar .empty,
|
|
.window label,
|
|
.header .topic,
|
|
#settings .error,
|
|
#help .help-item,
|
|
#loading,
|
|
#context-menu,
|
|
#form #input,
|
|
.textcomplete-menu,
|
|
.messages .msg {
|
|
font-size: 15px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 479px) {
|
|
.container {
|
|
max-width: 100%;
|
|
margin: 0;
|
|
}
|
|
|
|
#sign-in .btn {
|
|
width: 100%;
|
|
}
|
|
|
|
.input {
|
|
margin-bottom: 2px;
|
|
}
|
|
}
|
|
|
|
::-webkit-scrollbar {
|
|
width: 8px;
|
|
background-color: rgb(0 0 0 / 0%);
|
|
}
|
|
|
|
::-webkit-scrollbar:hover {
|
|
background-color: rgb(0 0 0 / 9%);
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:vertical {
|
|
background: rgb(0 0 0 / 50%);
|
|
border-radius: 100px;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:vertical:active {
|
|
background: rgb(0 0 0 / 60%);
|
|
}
|
|
|
|
/* Image viewer and drag-and-drop overlay */
|
|
|
|
#confirm-dialog-overlay,
|
|
#upload-overlay,
|
|
#image-viewer,
|
|
#image-viewer .open-btn,
|
|
#image-viewer .close-btn {
|
|
/* Vertically and horizontally center stuff */
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
#confirm-dialog-overlay,
|
|
#upload-overlay,
|
|
#image-viewer {
|
|
position: fixed;
|
|
top: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
background: var(--overlay-bg-color);
|
|
visibility: hidden;
|
|
opacity: 0;
|
|
transition: opacity 0.2s, visibility 0.2s;
|
|
z-index: 999;
|
|
user-select: none;
|
|
}
|
|
|
|
#confirm-dialog-overlay.opened,
|
|
#upload-overlay.is-dragover,
|
|
#image-viewer.opened {
|
|
visibility: visible;
|
|
opacity: 1;
|
|
}
|
|
|
|
#confirm-dialog-overlay,
|
|
#image-viewer {
|
|
background: rgb(0 0 0 / 90%);
|
|
}
|