UNPKG

thelounge-theme-cg

Version:

Common Ground IRC theme with dark/light mode and single channel mode support

732 lines (624 loc) 20 kB
@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 !important; } body[data-curia-mode="single"] #viewport .lt { display: none !important; } body[data-curia-mode="single"] #chat button.menu { display: none !important; } /* Layout adjustment - chat area expands to fill available space */ body[data-curia-mode="single"] #chat-container { width: 100%; }