thelounge-theme-cg
Version:
Common Ground IRC theme with dark/light mode and single channel mode support
732 lines (624 loc) • 20 kB
CSS
@font-face {
font-family: "Classic Console FA";
src: url(/packages/thelounge-theme-cg/clacon2.woff2) format("woff2");
}
:root {
/* Curia Dark Blue Palette */
--color-black: rgba(15, 23, 42, 1); /* slate-900 - main dark bg */
--color-boldblack: rgba(148, 163, 184, 1); /* slate-400 - muted text */
--color-red: rgba(239, 68, 68, 1); /* red-500 - errors */
--color-boldred: rgba(220, 38, 38, 1); /* red-600 - bold errors */
--color-green: rgba(34, 197, 94, 1); /* green-500 - success */
--color-boldgreen: rgba(30, 41, 59, 1); /* slate-800 - code bg */
--color-yellow: rgba(250, 204, 21, 1); /* yellow-400 - warnings */
--color-boldyellow: rgba(51, 65, 85, 1); /* slate-700 - active bg */
--color-blue: rgba(59, 130, 246, 1); /* blue-500 - links/accent */
--color-boldblue: rgba(99, 102, 241, 1); /* indigo-500 - headings */
--color-magenta: rgba(168, 85, 247, 1); /* purple-500 - highlights */
--color-boldmagenta: rgba(248, 250, 252, 1); /* slate-50 - bright text */
--color-cyan: rgba(6, 182, 212, 1); /* cyan-500 - info */
--color-boldcyan: rgba(71, 85, 105, 1); /* slate-600 - borders */
--color-white: rgba(248, 250, 252, 1); /* slate-50 - main text */
--color-boldwhite: rgba(255, 255, 255, 1); /* pure white - emphasis */
--color-black-50: rgba(15, 23, 42, 0.5); /* semi-transparent main bg */
}
:root {
/* Curia Dark Blue Theme Layout */
--body-color: var(--color-white); /* slate-50 text */
--window-bg-color: rgba(15, 23, 42, 1); /* #0F172A - main Curia bg */
--body-color-muted: var(--color-boldblack); /* slate-400 muted text */
--body-bg-color: rgba(30, 41, 59, 1); /* #1E293B - slate-800 content area */
--button-color: rgba(59, 130, 246, 1); /* blue-500 - Curia accent blue */
--button-text-color-hover: var(--color-white);
--overlay-bg-color: var(--color-black-50); /* semi-transparent overlay */
--link-color: rgba(59, 130, 246, 1); /* blue-500 - consistent links */
--window-heading-color: var(--color-boldblue); /* indigo-500 headings */
--date-marker-color: var(--color-yellow); /* yellow-400 timestamps */
--unread-marker-color: rgba(59, 130, 246, 1); /* blue-500 notifications */
--highlight-bg-color: rgba(51, 65, 85, 0.8); /* slate-700 subtle highlight */
--highlight-border-color: rgba(59, 130, 246, 1); /* blue-500 borders */
--upload-progressbar-color: var(--button-color);
--main-font: "Classic Console FA";
--font-size: 16px;
--line-height: 17px;
}
/* Light Theme Overrides */
body[data-curia-theme="light"] {
/* Light Color Palette - Inverted from dark theme */
--color-black: rgba(248, 250, 252, 1); /* slate-50 - light main bg */
--color-boldblack: rgba(100, 116, 139, 1); /* slate-500 - readable muted text */
--color-white: rgba(15, 23, 42, 1); /* slate-900 - dark text */
--color-boldwhite: rgba(0, 0, 0, 1); /* pure black - emphasis */
--color-boldcyan: rgba(203, 213, 225, 1); /* slate-300 - light borders */
--color-boldyellow: rgba(226, 232, 240, 1); /* slate-200 - light active bg */
--color-boldgreen: rgba(241, 245, 249, 1); /* slate-100 - light code bg */
--color-black-50: rgba(15, 23, 42, 0.1); /* semi-transparent dark overlay */
/* Light Theme Layout Colors */
--body-color: rgba(15, 23, 42, 1); /* slate-900 - dark text on light */
--window-bg-color: rgba(255, 255, 255, 1); /* pure white - main bg */
--body-color-muted: rgba(100, 116, 139, 1); /* slate-500 - muted text */
--body-bg-color: rgba(248, 250, 252, 1); /* slate-50 - light content area */
--button-color: rgba(59, 130, 246, 1); /* blue-500 - keep Curia accent */
--button-text-color-hover: rgba(255, 255, 255, 1); /* white text on blue */
--overlay-bg-color: rgba(15, 23, 42, 0.1); /* light dark overlay */
--link-color: rgba(59, 130, 246, 1); /* blue-500 - consistent links */
--window-heading-color: rgba(30, 41, 59, 1); /* slate-800 - dark headings */
--date-marker-color: rgba(180, 83, 9, 1); /* amber-700 - darker timestamps */
--unread-marker-color: rgba(59, 130, 246, 1); /* blue-500 - notifications */
--highlight-bg-color: rgba(226, 232, 240, 0.8); /* slate-200 - light highlight */
--highlight-border-color: rgba(59, 130, 246, 1); /* blue-500 - borders */
--upload-progressbar-color: var(--button-color);
}
body {
font-family: var(--main-font);
font-size: var(--font-size);
}
#form,
.messages .msg,
.userlist {
font-size: var(--font-size);
line-height: var(--line-height);
}
#chat .from {
height: var(--font-size);
}
#chat .content, #chat .from, #chat .time {
padding-top: 0;
padding-bottom: 0;
}
#chat .msg {
padding-top: 1px;
margin-bottom: -1px;
}
#form {
background-color: var(--color-black);
color: var(--color-white);
}
::-webkit-input-placeholder {
color: var(--color-boldyellow);
}
::placeholder {
color: var(--color-boldyellow);
opacity: 1;
}
code,
pre,
#chat .msg[data-type="monospace_block"] .text,
.irc-monospace,
textarea#user-specified-css-input {
background-color: var(--color-boldgreen);
color: var(--color-white);
font-family: var(--main-font);
}
code,
.irc-monospace {
color: var(--color-green);
background-color: var(--color-boldgreen);
}
#chat .userlist .count {
background-color: unset;
}
#chat .names .user {
line-height: var(--line-height);
}
a:focus {
outline: thin dotted;
outline: 1px auto -webkit-focus-ring-color;
outline-offset: 0px;
}
pre {
font-size: var(--font-size);
line-height: var(--line-height);
color: var(--color-white);
background-color: var(--color-boldgreen);
}
kbd {
line-height: var(--line-height);
color: var(--color-white);
background-color: var(--color-boldgreen);
text-shadow: 0 1px 0 var(--color-boldgreen);
border: 1px solid var(--color-boldyellow);
box-shadow: 0 2px 0 var(--color-boldyellow), inset 0 1px 1px var(--color-boldgreen), inset 0 -1px 3px var(--color-boldgreen);
}
.btn {
font-size: var(--font-size);
font-weight: normal;
letter-spacing: 0;
transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
}
.input:focus,
.btn:active,
.btn:focus {
outline: 0;
box-shadow: unset;
}
#chat .msg[data-type="away"] .from::before,
#chat .msg[data-type="back"] .from::before {
color: var(--color-boldblack);
}
#chat .msg[data-type="invite"] .from::before,
#chat .msg[data-type="topic"] .from::before,
#chat .msg[data-type="mode_channel"] .from::before,
#chat .msg[data-type="mode"] .from::before,
#chat .msg[data-type="whois"] .from::before,
#chat .msg[data-type="nick"] .from::before,
#chat .msg[data-type="join"] .from::before,
#chat .msg.self[data-type="raw"] .from::before {
color: var(--color-green);
}
#chat .msg[data-type="kick"] .from::before,
#chat .msg[data-type="part"] .from::before,
#chat .msg[data-type="quit"] .from::before {
color: var(--color-red);
}
#chat .msg-statusmsg span::before,
#chat .msg-shown-in-active span::before {
font-size: var(--font-size);
}
#chat .msg-statusmsg {
background-color: var(--color-boldyellow);
color: var(--color-yellow);
}
#chat .count::before {
color: var(--color-boldblue);
}
#viewport .lt,
#viewport .rt,
#chat button.mentions,
#chat button.search,
#chat button.menu,
#chat button.close {
color: var(--color-blue);
font-size: var(--font-size);
line-height: var(--line-height);
}
#viewport .lt::after {
background-color: var(--color-red);
border: 2px solid var(--window-bg-color);
}
#sidebar {
color: var(--color-boldblack);
}
.channel-list-item,
#sidebar .empty {
font-size: var(--font-size);
align-items: center;
line-height: var(--line-height);
}
#footer button:hover,
#footer button.active,
.channel-list-item:hover,
.channel-list-item.active {
color: var(--color-white);
}
.channel-list-item:hover,
#footer button:hover {
background-color: var(--color-black-50);
}
#footer button.active,
.channel-list-item.active {
background-color: var(--color-boldyellow);
}
.ui-sortable-ghost::after,
.ui-sortable-dragging-touch-cue:not(.ui-sortable-dragging)::after {
background: var(--body-bg-color);
border: 1px dashed var(--color-boldblue);
}
#sidebar .empty {
line-height: var(--line-height);
}
.channel-list-item[data-type="lobby"] {
color: var(--color-green);
font-size: var(--font-size);
font-weight: normal;
}
.channel-list-item[data-type="lobby"]:hover,
.channel-list-item[data-type="lobby"].active {
color: var(--color-cyan);
}
.channel-list-item.not-secure ,
.channel-list-item.not-secure:hover,
.channel-list-item.not-secure.active,
.channel-list-item.not-connected,
.channel-list-item.parted-channel,
.channel-list-item.not-connected:hover,
.channel-list-item.not-connected.active,
.channel-list-item.parted-channel:hover,
.channel-list-item.parted-channel.active {
color: var(--color-boldcyan);
}
.channel-list-item::before {
line-height: var(--line-height);
}
.channel-list-item .badge,
#sidebar .add-channel-tooltip,
.channel-list-item .close-tooltip {
line-height: var(--line-height);
}
.channel-list-item .badge {
color: var(--color-boldblue);
border-radius: 0;
font-size: calc(var(--font-size) * 0.8);
}
.channel-list-item .badge.highlight {
background: var(--color-black);
color: var(--color-boldblack);
}
.channel-list-item .close::before {
font-size: var(--font-size);
font-weight: normal;
line-height: var(--line-height);
}
.channel-list-item[data-type="lobby"] .add-channel::before {
font-size: var(--font-size);
font-weight: normal;
line-height: var(--line-height);
}
#footer {
font-size: var(--font-size);
}
#footer button {
color: var(--color-boldblue);
}
#footer .help.notified::after {
font-size: var(--font-size);
}
.window li,
.window p,
.window label,
#settings .error {
font-size: var(--font-size);
}
.input {
background-color: var(--color-black);
border: 1px solid var(--color-boldblack);
color: var(--color-white);
font-size: var(--font-size);
}
.input:disabled {
background-color: var(--color-boldblack);
}
.input:not(:disabled):hover,
.input:not(:disabled):focus {
border-color: var(--color-green);
}
textarea.input {
line-height: var(--line-height);
}
.window h1 {
font-size: calc(var(--font-size) * 2);
}
.window h2 {
color: var(--window-heading-color);
font-size: calc(var(--font-size) * 1.5);
}
.window h3 {
color: var(--window-heading-color);
font-size: var(--font-size);
}
#chat .header {
border-bottom: 1px solid var(--color-boldblack);
}
.header .title {
font-size: var(--font-size);
}
.header .topic {
color: var(--body-color-muted);
font-size: var(--font-size);
}
.header .topic-input {
border: 1px solid var(--color-boldblack);
font-size: var(--font-size);
line-height: var(--line-height);
}
.topic-container .save-topic span {
font-size: var(--font-size);
color: var(--color-blue);
}
#form,
.messages .msg,
.userlist {
font-size: var(--font-size);
line-height: var(--line-height);
}
#chat .userlist {
border-left: 1px solid var(--color-boldblack);
}
#chat .user {
color: var(--color-green);
}
#chat .content {
border-left: 1px solid var(--color-boldblue);
}
#chat .self .content {
color: var(--color-boldblue);
}
#chat .msg.channel_list_loading .text {
color: var(--color-boldblack);
font-style: normal;
}
#chat table.channel-list th,
#chat table.ban-list th,
#chat table.invite-list th,
#chat table.ignore-list th,
#chat table.channel-list td,
#chat table.ban-list td,
#chat table.invite-list td {
border-bottom-color: var(--color-white)
}
#chat .msg[data-type="action"] .from,
#chat .msg[data-type="action"] .content,
#chat .msg[data-type="action"] .user {
color: var(--color-boldred);
}
#chat .msg[data-type="notice"] .time,
#chat .msg[data-type="wallops"] .time,
#chat .msg[data-type="notice"] .content,
#chat .msg[data-type="wallops"] .content,
#chat .msg[data-type="notice"] .user,
#chat .msg[data-type="wallops"] .user {
color: var(--color-blue);
}
#chat .msg[data-type="error"],
#chat .msg[data-type="error"] .from {
color: var(--color-red);
}
#chat .chat-view[data-type="channel"] .msg.highlight .time {
color: var(--color-boldblue);
}
#chat .toggle-content {
background: var(--color-white);
}
#chat .toggle-content .head {
font-weight: normal;
}
#chat .toggle-type-error,
#chat .toggle-text .body {
color: var(--color-boldblue);
}
#chat .user-mode::before {
font-size: var(--font-size);
line-height: var(--line-height);
}
#loading {
font-size: var(--font-size);
}
#settings #play {
font-size: var(--font-size);
}
#settings #change-password .error {
color: var(--color-red);
}
#settings #change-password .success {
color: var(--color-green);
}
#settings .error {
color: var(--color-red);
}
.password-container .reveal-password-visible span::before {
color: var(--color-red);
}
#help .help-item {
font-size: var(--font-size);
}
#help .help-item .subject.gesture {
font-weight: normal;
}
.changelog-text {
line-height: var(--line-height);
}
#version-checker::before {
font-size: var(--font-size);
}
#version-checker.loading {
background-color: var(--color-black);
color: var(--color-boldblack);
}
#version-checker.new-version,
#version-checker.new-packages {
color: var(--color-boldcyan);
background-color: var(--color-black);
}
#version-checker.error {
color: var(--color-red);
background-color: var(--color-black);
}
#version-checker.up-to-date {
background-color: var(--color-boldblack);
color: var(--color-green);
}
#form {
border-top: 1px solid var(--color-boldyellow);
background: var(--color-black);
}
#user-visible-error {
font-size: var(--font-size);
line-height: var(--line-height);
font-weight: normal;
background: var(--color-red);
color: var(--color-black);
}
#form #nick {
background: var(--color-black);
color: var(--color-boldblack);
font-size: var(--font-size);
line-height: var(--line-height);
}
#form #upload,
#form #submit {
color: var(--color-boldblue);
font-size: var(--font-size);
}
.mentions-popup,
#context-menu,
.textcomplete-menu {
font-size: var(--font-size);
background-color: var(--color-black);
box-shadow: 0 3px 12px rgba(0, 0, 0, 0.15);
border: 1px solid var(--color-boldyellow);
}
.context-menu-divider {
background-color: var(--color-boldyellow);
}
.context-menu-item,
.textcomplete-item {
color: var(--color-white);
line-height: var(--line-height);
}
.context-menu-item.active,
.textcomplete-item:focus,
.textcomplete-item:hover,
.textcomplete-menu .active,
#chat .userlist .user.active {
background-color: var(--color-boldyellow);
}
.textcomplete-item a {
color: var(--color-boldblack);
}
.emoji {
font-size: calc(var(--font-size) * 0.8);
line-height: calc(var(--line-height) * 0.8);
}
@media (max-width: 768px) {
.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: var(--font-size);
}
}
#viewport .lt::before,
#viewport .rt::before,
#chat button.mentions::before,
#chat button.close::before,
#chat button.menu::before,
#chat button.search::before,
.channel-list-item::before,
#footer .icon,
#chat .count::before,
#connect .extra-help,
#settings .extra-help,
#settings #play::before,
#form #upload::before,
#form #submit::before,
#chat .msg[data-type="away"] .from::before,
#chat .msg[data-type="back"] .from::before,
#chat .msg[data-type="invite"] .from::before,
#chat .msg[data-type="join"] .from::before,
#chat .msg[data-type="kick"] .from::before,
#chat .msg[data-type="part"] .from::before,
#chat .msg[data-type="quit"] .from::before,
#chat .msg[data-type="topic"] .from::before,
#chat .msg[data-type="mode_channel"] .from::before,
#chat .msg[data-type="mode"] .from::before,
#chat .msg[data-command="motd"] .from::before,
#chat .msg[data-command="help"] .from::before,
#chat .msg[data-command="info"] .from::before,
#chat .msg[data-type="ctcp"] .from::before,
#chat .msg[data-type="ctcp_request"] .from::before,
#chat .msg[data-type="whois"] .from::before,
#chat .msg[data-type="nick"] .from::before,
#chat .msg[data-type="action"] .from::before,
#chat .msg[data-type="plugin"] .from::before,
#chat .msg[data-type="raw"] .from::before,
#chat .msg-statusmsg span::before,
#chat .msg-shown-in-active span::before,
#chat .toggle-button::after,
#chat .toggle-content .more-caret::before,
#chat .scroll-down-arrow::after,
#chat .topic-container .save-topic span::before,
#version-checker::before,
.context-menu-item::before,
#help .website-link::before,
#help .documentation-link::before,
#help .report-issue-link::before,
#image-viewer .previous-image-btn::before,
#image-viewer .next-image-btn::before,
#image-viewer .open-btn::before,
.channel-list-item .not-secure-icon::before,
.channel-list-item .not-connected-icon::before,
.channel-list-item .parted-channel-icon::before,
.jump-to-input::before,
.password-container .reveal-password span::before,
.topic-container .save-topic span::before,
.password-container .reveal-password-visible span::before,
#sidebar .collapse-network-icon::before {
font-family: "Classic Console FA";
font-size: var(--font-size);
-webkit-font-smoothing: none;
-moz-osx-font-smoothing: grayscale;
}
#chat.colored-nicks .user.color-1 { color: var(--color-red); }
#chat.colored-nicks .user.color-2 { color: var(--color-boldred); }
#chat.colored-nicks .user.color-3 { color: var(--color-green); }
#chat.colored-nicks .user.color-4 { color: var(--color-yellow); }
#chat.colored-nicks .user.color-5 { color: var(--color-blue); }
#chat.colored-nicks .user.color-6 { color: var(--color-boldblue); }
#chat.colored-nicks .user.color-7 { color: var(--color-magenta); }
#chat.colored-nicks .user.color-8 { color: var(--color-boldmagenta); }
#chat.colored-nicks .user.color-9 { color: var(--color-cyan); }
#chat.colored-nicks .user.color-10 { color: var(--color-boldcyan); }
#chat.colored-nicks .user.color-11 { color: var(--color-red); }
#chat.colored-nicks .user.color-12 { color: var(--color-boldred); }
#chat.colored-nicks .user.color-13 { color: var(--color-green); }
#chat.colored-nicks .user.color-14 { color: var(--color-yellow); }
#chat.colored-nicks .user.color-15 { color: var(--color-blue); }
#chat.colored-nicks .user.color-16 { color: var(--color-boldblue); }
#chat.colored-nicks .user.color-18 { color: var(--color-magenta); }
#chat.colored-nicks .user.color-18 { color: var(--color-boldmagenta); }
#chat.colored-nicks .user.color-19 { color: var(--color-cyan); }
#chat.colored-nicks .user.color-20 { color: var(--color-boldcyan); }
#chat.colored-nicks .user.color-21 { color: var(--color-red); }
#chat.colored-nicks .user.color-22 { color: var(--color-boldred); }
#chat.colored-nicks .user.color-23 { color: var(--color-green); }
#chat.colored-nicks .user.color-24 { color: var(--color-yellow); }
#chat.colored-nicks .user.color-25 { color: var(--color-blue); }
#chat.colored-nicks .user.color-26 { color: var(--color-boldblue); }
#chat.colored-nicks .user.color-27 { color: var(--color-magenta); }
#chat.colored-nicks .user.color-28 { color: var(--color-boldmagenta); }
#chat.colored-nicks .user.color-29 { color: var(--color-cyan); }
#chat.colored-nicks .user.color-30 { color: var(--color-boldcyan); }
#chat.colored-nicks .user.color-31 { color: var(--color-red); }
#chat.colored-nicks .user.color-32 { color: var(--color-boldred); }
/* Single Channel Mode Styles */
/* Hide specific UI elements for focused single-channel experience */
body[data-curia-mode="single"] #sidebar {
display: none ;
}
body[data-curia-mode="single"] #viewport .lt {
display: none ;
}
body[data-curia-mode="single"] #chat button.menu {
display: none ;
}
/* Layout adjustment - chat area expands to fill available space */
body[data-curia-mode="single"] #chat-container {
width: 100%;
}