thelounge/client/css/style.css

487 lines
8.8 KiB
CSS
Raw Normal View History

@import "../../node_modules/normalize.css/normalize.css";
2018-03-21 13:13:52 +01:00
@import "fontawesome.css";
2019-11-02 11:45:41 +01:00
@import "../../node_modules/primer-tooltips/build/build.css";
2022-02-24 03:13:28 +01:00
@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;
2019-02-18 19:32:41 +01:00
/* Main button color. Applies to border, text, and background on hover */
--button-color: #84ce88;
--button-text-color-hover: #fff;
2019-12-04 07:58:23 +01:00
/* Color for sidebar overlay and other things that dim the viewport when something else is on top */
2022-02-10 00:27:34 +01:00
--overlay-bg-color: rgb(0 0 0 / 50%);
2019-12-04 07:58:23 +01:00
/* 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 */
2022-02-10 00:27:34 +01:00
--date-marker-color: rgb(0 107 59 / 50%);
/* Color of the unread message marker, text and separator */
2022-02-10 00:27:34 +01:00
--unread-marker-color: rgb(231 76 60 / 50%);
/* Background and left-border color of highlight messages */
--highlight-bg-color: #efe8dc;
--highlight-border-color: #b08c4f;
2019-03-18 01:42:53 +01:00
/* 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);
2022-02-24 01:40:54 +01:00
2022-02-24 03:13:28 +01:00
/* Used to fade out long text via mask-image */
--fade-long-text: linear-gradient(to left, transparent, black 15px);
2022-02-24 01:40:54 +01:00
/* Used for connect, settings, help pages */
--page-content-width: 480px;
}
::placeholder {
2022-02-10 00:27:34 +01:00
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;
}
2014-08-15 15:52:14 +02:00
html,
body {
height: 100%;
overscroll-behavior: none; /* prevent overscroll navigation actions */
2014-08-15 15:52:14 +02:00
}
2014-08-15 15:52:14 +02:00
body {
background: var(--body-bg-color);
color: var(--body-color);
2017-09-18 12:32:52 +02:00
font: 16px -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
2014-08-15 15:52:14 +02:00
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 */
2014-08-15 15:52:14 +02:00
}
a,
a:hover,
a:focus {
color: var(--link-color);
text-decoration: none;
}
2014-08-15 15:52:14 +02:00
a:hover {
2018-07-05 12:10:10 +02:00
text-decoration: underline;
2014-08-15 15:52:14 +02:00
}
a:focus {
outline: thin dotted;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
2014-08-15 15:52:14 +02:00
h1,
h2,
h3 {
2014-08-15 15:52:14 +02:00
font: inherit;
line-height: inherit;
margin: 0;
}
button {
2014-08-15 15:52:14 +02:00
border: none;
background: none;
margin: 0;
outline: none;
padding: 0;
user-select: inherit;
2019-12-12 12:20:07 +01:00
cursor: pointer;
2014-08-15 15:52:14 +02:00
}
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;
2022-02-10 00:27:34 +01:00
line-height: 1.4286;
color: #333;
word-break: break-all;
word-wrap: break-word;
background-color: #f5f5f5;
border-radius: 4px;
}
2019-12-12 12:20:07 +01:00
p {
margin: 0 0 10px;
}
.input:focus {
outline: 0;
2022-02-10 00:27:34 +01:00
box-shadow: 0 0 0 3px rgb(132 206 136 / 50%);
}
2017-08-26 18:36:18 +02:00
#js-copy-hack,
#loading pre,
#help .container,
#changelog .container,
2019-12-04 07:58:23 +01:00
.header .title,
.header .topic,
#chat .messages {
user-select: text;
cursor: text;
}
2017-08-26 18:36:18 +02:00
#js-copy-hack {
position: absolute;
left: -999999px;
}
2019-12-15 12:46:43 +01:00
#chat #js-copy-hack .msg[data-type="condensed"]:not(.closed) .msg,
2017-08-26 18:36:18 +02:00
#chat #js-copy-hack > .msg {
display: block;
}
#viewport {
display: flex;
2014-08-15 15:52:14 +02:00
height: 100%;
}
2017-07-09 03:17:03 +02:00
#form button,
2018-03-30 08:07:11 +02:00
.header button,
.reveal-password span {
transition: opacity 0.2s;
2017-07-09 03:17:03 +02:00
}
#form button:hover,
2018-03-30 08:07:11 +02:00
.header button:hover,
.reveal-password span:hover {
opacity: 0.6;
2017-07-09 03:17:03 +02:00
}
2019-12-11 12:35:18 +01:00
/* Darker background and defualt cursor for active channels */
2020-01-02 11:57:36 +01:00
#footer button.active,
2019-12-11 12:35:18 +01:00
.channel-list-item.active {
2018-03-30 08:07:11 +02:00
background-color: #303e4a;
2019-12-11 12:35:18 +01:00
cursor: default;
2018-03-30 08:07:11 +02:00
}
2022-02-24 01:40:54 +01:00
.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;
}
2022-02-24 01:40:54 +01:00
.input:disabled {
background-color: #ddd;
}
2022-02-24 01:40:54 +01:00
.input:not(:disabled):hover,
.input:not(:disabled):focus {
border-color: #84ce88;
}
2022-02-24 01:40:54 +01:00
textarea.input {
resize: vertical;
min-height: 35px;
padding: 6px 10px;
line-height: 1.5;
}
2022-02-24 01:40:54 +01:00
/**
* Toggled via JavaScript
*/
.userlist-open .chat-view[data-type="channel"] .scroll-down {
right: 196px;
}
/* Parsed nicks and channels */
2018-04-30 07:03:47 +02:00
#chat .user,
.inline-channel {
cursor: pointer;
}
.chat .user:hover,
.inline-channel:hover {
2018-07-05 12:10:10 +02:00
text-decoration: underline;
}
/* Nicknames */
2019-12-04 07:58:23 +01:00
.window .logo-inverted {
2018-03-11 22:20:51 +01:00
display: none; /* In dark themes, inverted logo must be used instead */
2017-10-28 22:50:57 +02:00
}
.password-container {
position: relative;
}
.password-container input {
padding-right: 37px;
}
.password-container .reveal-password {
position: absolute;
top: 2px;
2019-12-12 12:20:07 +01:00
right: 0;
appearance: none;
}
2018-05-24 21:20:23 +02:00
.password-container .reveal-password span {
2018-05-08 01:52:54 +02:00
font-size: 16px;
2018-03-30 08:07:11 +02:00
color: #607992;
2018-06-19 12:32:15 +02:00
width: 35px;
height: 35px;
2018-05-24 21:20:23 +02:00
display: flex;
justify-content: center;
align-items: center;
2018-03-30 08:07:11 +02:00
cursor: pointer;
2018-05-08 01:52:54 +02:00
}
2018-05-24 21:20:23 +02:00
.password-container .reveal-password span::before {
content: "\f06e"; /* https://fontawesome.com/icons/eye?style=solid */
2018-05-08 01:52:54 +02:00
}
.topic-container .save-topic span::before {
content: "\f00c"; /* https://fontawesome.com/icons/check?style=solid */
}
2019-02-18 10:18:32 +01:00
.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 {
2016-02-12 12:34:10 +01:00
position: absolute;
list-style: none;
margin: 0;
padding: 0 6px;
min-width: 180px;
2016-02-12 12:34:10 +01:00
font-size: 14px;
background-color: #fff;
2022-02-10 00:27:34 +01:00
box-shadow: 0 3px 12px rgb(0 0 0 / 15%);
border: 1px solid rgb(0 0 0 / 15%);
border-radius: 5px;
2019-11-18 21:05:47 +01:00
outline: 0;
2016-02-12 12:34:10 +01:00
}
.context-menu-item,
.textcomplete-item {
2016-02-12 12:34:10 +01:00
cursor: pointer;
display: block;
padding: 4px 8px;
2016-02-12 12:34:10 +01:00
color: #333;
margin-top: 6px;
margin-bottom: 6px;
2017-08-23 16:19:04 +02:00
line-height: 1.4;
border-radius: 3px;
2019-11-23 15:26:20 +01:00
white-space: nowrap;
2016-02-12 12:34:10 +01:00
}
2019-11-18 21:05:47 +01:00
.context-menu-item.active,
.textcomplete-item:focus,
.textcomplete-item:hover,
.textcomplete-menu .active,
#chat .userlist .user.active {
2022-02-10 00:27:34 +01:00
background-color: rgb(0 0 0 / 10%);
2016-02-12 12:34:10 +01:00
}
.context-menu-item::before,
.textcomplete-item::before {
2016-02-12 12:34:10 +01:00
width: 20px;
display: inline-block;
}
.textcomplete-item a {
color: #333;
}
.textcomplete-item a:hover {
text-decoration: none;
}
.textcomplete-item .emoji {
2017-08-23 16:19:04 +02:00
width: 32px;
text-align: center;
}
.textcomplete-item .irc-bg {
display: block;
}
.tooltipped::after {
font-size: 12px;
}
2014-08-15 15:52:14 +02:00
@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;
}
2019-12-04 07:58:23 +01:00
.channel-list-item,
#sidebar .empty,
2019-12-04 07:58:23 +01:00
.window label,
.header .topic,
#settings .error,
#help .help-item,
#loading,
#context-menu,
#form #input,
.textcomplete-menu,
.messages .msg {
font-size: 15px;
}
2016-06-12 04:16:17 +02:00
}
@media (max-width: 479px) {
2014-09-10 17:56:19 +02:00
.container {
2019-12-12 12:20:07 +01:00
max-width: 100%;
margin: 0;
}
2018-03-11 22:20:51 +01:00
#sign-in .btn {
width: 100%;
}
2019-12-04 07:58:23 +01:00
.input {
margin-bottom: 2px;
2014-09-10 17:56:19 +02:00
}
2014-08-15 15:52:14 +02:00
}
2014-09-15 19:41:23 +02:00
2016-01-18 18:49:23 +01:00
::-webkit-scrollbar {
width: 8px;
2022-02-10 00:27:34 +01:00
background-color: rgb(0 0 0 / 0%);
2016-01-18 18:49:23 +01:00
}
2016-01-18 18:49:23 +01:00
::-webkit-scrollbar:hover {
2022-02-10 00:27:34 +01:00
background-color: rgb(0 0 0 / 9%);
2016-01-18 18:49:23 +01:00
}
2016-01-18 18:49:23 +01:00
::-webkit-scrollbar-thumb:vertical {
2022-02-10 00:27:34 +01:00
background: rgb(0 0 0 / 50%);
2016-01-18 18:49:23 +01:00
border-radius: 100px;
}
::-webkit-scrollbar-thumb:vertical:active {
2022-02-10 00:27:34 +01:00
background: rgb(0 0 0 / 60%);
}
/* Image viewer and drag-and-drop overlay */
2020-02-25 10:16:05 +01:00
#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;
}
2020-02-25 10:16:05 +01:00
#confirm-dialog-overlay,
#upload-overlay,
#image-viewer {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
2019-12-04 07:58:23 +01:00
background: var(--overlay-bg-color);
visibility: hidden;
opacity: 0;
transition: opacity 0.2s, visibility 0.2s;
z-index: 999;
user-select: none;
}
2020-02-25 10:16:05 +01:00
#confirm-dialog-overlay.opened,
2019-12-10 15:46:50 +01:00
#upload-overlay.is-dragover,
#image-viewer.opened {
visibility: visible;
opacity: 1;
}
2020-02-25 10:16:05 +01:00
#confirm-dialog-overlay,
2019-12-10 15:46:50 +01:00
#image-viewer {
2022-02-10 00:27:34 +01:00
background: rgb(0 0 0 / 90%);
}