3 ** | _ \ | | | \/ | | | (_)
4 ** | | \ |__ _ _ __| | __ | . . | ___ _ __ ___ | | __ __ _ _
5 ** | | | | _` | '__| |/ / | |\/| |/ _ \| '_ \ / _ \| |/ // _` | |
6 ** | |_/ /(_| | | | < | | | | (_) | | | | (_) | <| (_| | |
7 ** |____/\__,_|_| |_|\_\ \_| |_/\___/|_| |_|\___/|_|\_\\__,_|_|
11 ** Author: Chris Holland (Zren on Freenode/GitHub)
16 ** - This theme is designed to work on top of the Fusion or the Plastique client style.
17 ** It will look weird on almost all the others (including the system default).
18 ** (Settings > Configure Quassel (F7) > Interface > Client Style)
24 ** http://qt-project.org/doc/qt-4.8/stylesheet-syntax.html
25 ** http://doc.qt.nokia.com/4.7-snapshot/stylesheet-reference.html
26 ** http://doc.qt.nokia.com/4.7-snapshot/stylesheet-examples.html
27 ** - Plastique Client Style:
28 ** https://qt.gitorious.org/qt/qt/source/src/gui/styles/qplastiquestyle.cpp
29 ** https://github.com/mirror/qt/blob/4.8/src/gui/styles/qplastiquestyle.cpp
30 ** - Quassel Stylesheet Gallery:
31 ** http://bugs.quassel-irc.org/projects/1/wiki/Stylesheet_Gallery
32 ** http://bugs.quassel-irc.org/projects/1/wiki/Stylesheet_Gallery#DarkMonokaiqss
37 ** Quassel stylesheets also support Palette { role: color; } for setting the system
38 ** palette. See the QPalette docs for available roles, and convert them into qss-style
39 ** attributes, so ButtonText would become button-text or see qssparser.cpp In fact,
40 ** qssparser.cpp is the authorative source for Quassel's qss syntax that contains all
41 ** the extensions over standard Qt qss syntax.
43 ** http://qt-project.org/doc/qt-4.8/qpalette.html#ColorRole-enum
44 ** https://github.com/quassel/quassel/blob/master/src/uisupport/qssparser.cpp
55 alternate-base: #42403B;
57 /* Just setting palette(tooltip-base) doesn't work as intended so we set it in
58 ** a QTooltip{} rule as well.
60 tooltip-base: #131313; // palette(base)
61 tooltip-text: white; // palette(text)
63 /* The following attributes should be done in a scale */
64 light: #444444; // Tab Borders, Scrollbar handle grips, Titled Panel border (Settings)
65 midlight: #333333; // ?
66 button: #292929; // Menu BG, Scrollbar and Button base.
67 mid: #252525; // Titled Panel border (Settings)
68 dark: #202020; // TreeView [-] and ... color (Also various borders in Windows Client Style)
77 //highlight-text: #000000;
81 link-visited: #845B90;
83 /* Color of the marker line in the chat view. BG Node that is overlayed on the first new ChatLine. */
84 // 0 -> 0.1 (sharp line)
85 marker-line: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ff0000, stop: 0.1 #ff0000, stop: 0.1 transparent);
93 // QTreeView#settingsTree -> Tree in the Settings popup.
95 QTreeView, QTableView {
96 alternate-background-color: rgba(0,0,0, 64);
97 // background-color: palette(shadow);
102 selection-background-color: transparent;
105 QTreeView::item:focus {
109 QTreeView::item:selected {
112 color: palette(button-text);
115 QTreeView::item:hover {
117 background: #000000; /* palette(dark); */
121 QTreeView::item:selected:active{
122 color: palette(button-text);
123 background: #040404; /* palette(dark); */
126 QTreeView::item:selected:!active {
127 color: palette(button-text);
128 background: #080808; /* palette(shadow); */
131 // QTreeView::item { color: #debc85; }
132 // QTreeView::item:selected { color: #00004b; }
133 // QTreeView#settingsTree { background: #131313; }
137 /* From Quassel Wiki: http://sprunge.us/iZGB */
139 //background: transparent;
140 background: palette(base);
144 /* Optional: Subtle accent of scrolling area on hover */
145 background: #161616; /* base +2 */
147 QScrollBar:vertical {
150 QScrollBar:horizontal {
158 border: 2px solid palette(midlight);
159 background: palette(midlight);
162 QScrollBar::handle:vertical {
167 QScrollBar::handle:horizontal {
171 QScrollBar::handle:hover {
172 border-color: palette(light);
173 background: palette(light);
175 QScrollBar::handle:pressed {
176 background: palette(highlight);
177 border-color: palette(highlight);
180 QScrollBar::add-line , QScrollBar::sub-line {
184 QScrollBar::up-arrow, QScrollBar::down-arrow {
190 QScrollBar::add-page, QScrollBar::sub-page {
196 //background: palette(base);
197 //color: palette(foreground);
201 /* http://doc.qt.nokia.com/4.7-snapshot/qdockwidget.html */
203 QMainWindow QAbstractScrollArea {
204 //border: 0; // Remove borders.
205 border: 1px solid palette(shadow);
209 //background: palette(mid); // Main window trim
213 /* The splits between QDockWidgets and QMainWindow is a different element. */
215 QMainWindow::separator {
216 background: palette(dark);
218 QSplitter::handle:horizontal:hover,
219 QMainWindow::separator:vertical:hover {
220 background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0, stop: 0 palette(window), stop: 0.5 palette(light), stop: 1 palette(window));
223 QSplitter::handle:vertical:hover,
224 QMainWindow::separator:horizontal:hover {
225 background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 palette(window), stop: 0.5 palette(light), stop: 1 palette(window));
228 /* Menu Bar / Context Menues */
230 margin: 5px; // A bit of nice padding around menu items.
234 /* Note: You cannot create transparent sections in the popup box without a mask set. Thus the black edges outside the rounded borders. */
236 border: 2px solid #202020; // palette(dark)
238 background: #131313; // palette(base)
239 color: white; // palette(text)
244 The palette is designed for the selected one to be darker. So we need to change it. Decided to do a simple line.
245 tab:bottom and tab:top reverse y1 and y2 on the linear gradients.
247 Tab Shadow: #444444 (light)
249 Tab Selected: palette(highlight)
253 //QTabWidget::pane {}
255 QTabWidget::tab-bar {
264 QTabBar::tab:bottom:selected {
265 background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 palette(highlight), stop: 0.2 palette(highlight), stop: 0.2 transparent);
268 QTabBar::tab:top:selected {
269 background: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0, stop: 0 palette(highlight), stop: 0.2 palette(highlight), stop: 0.2 transparent);
272 QTabBar::tab:!selected {
276 QTabBar::tab:bottom:!selected {
277 background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 palette(light), stop: 0.2 palette(light), stop: 0.2 transparent);
280 QTabBar::tab:top:!selected {
281 background: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0, stop: 0 palette(light), stop: 0.2 palette(light), stop: 0.2 transparent);
284 QTabBar::tab:!selected:hover {
288 QTabBar::tab:bottom:!selected:hover {
289 background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #666, stop: 0.2 #666, stop: 0.2 transparent);
292 QTabBar::tab:top:!selected:hover {
293 background: qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0, stop: 0 #666, stop: 0.2 #666, stop: 0.2 transparent);
300 /* Main Chat Background Override */
302 background: palette(base);
307 // Will not override if selectors are doubled up eg: "ChatLine, MultiLineEdit {}"
308 // These will override anything set in Quassel's Settings.
310 * Don't bold or style MultiLineEdit text in any way otherwise you will be
311 * prone to get weird behaviour in submitting from the Input box.
312 * It will randomly bold your input if you do.
315 //font-family: "MingLiU_HKSCS-ExtB", "Courier New", Courier, Monotype;
321 //font-family: "MingLiU_HKSCS-ExtB", "Courier New", Courier, Monotype;
324 //font-weight: normal;
330 /* Font: UI Global Font */
332 //font-family: consolas;
335 font-family: consolas;
338 font-family: consolas;
340 StyledLabel#topicLabel {
341 font-family: consolas;
347 StyledLabel#topicLabel { background: palette(base); font-family: consolas; }
349 /* Buffer / Channel List */
351 state: inactive, channel-event, unread-message, highlighted
352 type: query, channel, network
354 ChatListItem { foreground: #888888; }
355 ChatListItem[state="inactive"] { foreground: #555555; }
356 ChatListItem[state="channel-event"] { foreground: #888888; }
357 ChatListItem[state="unread-message"] { foreground: #85A83F; }
358 ChatListItem[state="highlighted"] { foreground: #FFAA00; }
360 ChatListItem[type="network", state="unread-message"] {foreground: #999999; }
361 ChatListItem[type="network", state="highlighted"] {foreground: #999999; }
362 ChatListItem[type="query", state="unread-message"] { foreground: #FFAA00; }
370 NickListItem[type="category"] { foreground: #debc85; }
371 NickListItem[type="user"] { foreground: #cccccc; }
372 NickListItem[type="user", state="away"] { foreground: #666666; }
376 /* Chatbox Line Formatting */
378 ChatLine[label="highlight"] {
380 background: #192527; // 3a557b
384 ** Option: Bold highlighted text, but not the timestamp.
387 ChatLine[label="highlight"] { font-weight: bold; }
388 ChatLine::timestamp[label="highlight"]{ font-weight: normal; }
391 /* Slight accent on the first two columns */
392 ChatLine::sender { background: #101010; }
393 ChatLine::timestamp { background: #101010; }
394 /*ChatLine::contents { background: #101010; }*/
396 ChatLine::sender[label="highlight"] { foreground: #5e7c80; background: #162224; }
397 ChatLine::timestamp[label="highlight"] { foreground: #5e7c80; background: #162224; }
399 ChatLine::timestamp { }
401 /* ::contents == Message */
403 /* Can only set background */
406 ChatLine#plain { foreground: #b8b8bb; }
407 ChatLine#notice { foreground: #A6E22E; }
408 ChatLine#action { foreground: #F92672; font-style: italic; }
409 ChatLine#nick { foreground: #75715E; }
410 ChatLine#mode { foreground: #75715E; font-weight: bold; }
411 ChatLine#join { foreground: #75715E; }
412 ChatLine#part { foreground: #75715E; }
413 ChatLine#quit { foreground: #75715E; }
414 ChatLine#kick { foreground: #75715E; }
415 ChatLine#kill { foreground: #75715E; }
416 ChatLine#server { foreground: #A6E22E; }
417 ChatLine#info { foreground: #A6E22E; }
418 ChatLine#error { foreground: #FD971F; }
419 ChatLine#daychange { foreground: #A6E22E; }
420 ChatLine#topic { foreground: #FD971F; }
421 //ChatLine#netsplit { foreground: #996633; } // Old
422 ChatLine#netsplit-join { foreground: #996633; }
423 ChatLine#netsplit-quit { foreground: #996633; }
425 ChatLine::timestamp {
427 // Resets the timestemp font during #action and other possible formatting.
433 foreground: palette(link);
434 //font-style: underline; // Uncomment if you always want an underline on links.
438 ChatLine::sender#plain[sender="self"] { foreground: #779; }
441 /* Uncomment this is you want all senders the same color: */
442 // ChatLine::sender#plain { foreground: #2828B9; }
445 * The following are the sixteen colours used for the senders.
446 * The names are calculated by taking the hash of the nickname.
447 * Then take the modulo (the remainder) when divided by 16.
449 ChatLine::sender#plain[sender="0"] { foreground: #e90d7f; }
450 ChatLine::sender#plain[sender="1"] { foreground: #8e55e9; }
451 ChatLine::sender#plain[sender="2"] { foreground: #b30e0e; }
452 ChatLine::sender#plain[sender="3"] { foreground: #17b339; }
453 ChatLine::sender#plain[sender="4"] { foreground: #58afb3; }
454 ChatLine::sender#plain[sender="5"] { foreground: #9d54b3; }
455 ChatLine::sender#plain[sender="6"] { foreground: #b39775; }
456 ChatLine::sender#plain[sender="7"] { foreground: #3176b3; }
457 ChatLine::sender#plain[sender="8"] { foreground: #e90d7f; }
458 ChatLine::sender#plain[sender="9"] { foreground: #8e55e9; }
459 ChatLine::sender#plain[sender="a"] { foreground: #b30e0e; }
460 ChatLine::sender#plain[sender="b"] { foreground: #17b339; }
461 ChatLine::sender#plain[sender="c"] { foreground: #58afb3; }
462 ChatLine::sender#plain[sender="d"] { foreground: #9d54b3; }
463 ChatLine::sender#plain[sender="e"] { foreground: #b39775; }
464 ChatLine::sender#plain[sender="f"] { foreground: #3176b3; }
470 ChatLine[format="bold"] { font-weight: bold;}
471 ChatLine[format="italic"] { font-style: italic; }
472 ChatLine[format="underline"] { font-style: underline; }
474 /* Make black text appear lighter as our theme has a dark background. */
475 ChatLine[fg-color="1"] { foreground: #444; }
476 ChatLine[bg-color="1"] { background: #444; }
478 /* Blues are hard to read as well. */
479 ChatLine[fg-color="2"] { foreground: #15a; }
480 ChatLine[bg-color="2"] { background: #15a; }
481 ChatLine[fg-color="c"] { foreground: #15f; }
482 ChatLine[bg-color="c"] { background: #15f; }
484 /* A list of all the colors for easy convienience */
486 ChatLine[fg-color="0"] { foreground: white; }
487 ChatLine[bg-color="0"] { background: white; }
488 ChatLine[fg-color="1"] { foreground: black; }
489 ChatLine[bg-color="1"] { background: black; }
490 ChatLine[fg-color="2"] { foreground: navy; }
491 ChatLine[bg-color="2"] { background: navy; }
492 ChatLine[fg-color="3"] { foreground: green; }
493 ChatLine[bg-color="3"] { background: green; }
494 ChatLine[fg-color="4"] { foreground: red; }
495 ChatLine[bg-color="4"] { background: red; }
496 ChatLine[fg-color="5"] { foreground: darkred; }
497 ChatLine[bg-color="5"] { background: darkred; }
498 ChatLine[fg-color="6"] { foreground: purple; }
499 ChatLine[bg-color="6"] { background: purple; }
500 ChatLine[fg-color="7"] { foreground: orange; }
501 ChatLine[bg-color="7"] { background: orange; }
502 ChatLine[fg-color="8"] { foreground: yellow; }
503 ChatLine[bg-color="8"] { background: yellow; }
504 ChatLine[fg-color="9"] { foreground: lightgreen; }
505 ChatLine[bg-color="9"] { background: lightgreen; }
506 ChatLine[fg-color="a"] { foreground: teal; }
507 ChatLine[bg-color="a"] { background: teal; }
508 ChatLine[fg-color="b"] { foreground: lightcyan; }
509 ChatLine[bg-color="b"] { background: lightcyan; }
510 ChatLine[fg-color="c"] { foreground: blue; }
511 ChatLine[bg-color="c"] { background: blue; }
512 ChatLine[fg-color="d"] { foreground: pink; }
513 ChatLine[bg-color="d"] { background: pink; }
514 ChatLine[fg-color="e"] { foreground: gray; }
515 ChatLine[bg-color="e"] { background: gray; }
516 ChatLine[fg-color="f"] { foreground: lightgray; }
517 ChatLine[bg-color="f"] { background: lightgray; }
524 BufferViewDock[active=true] {
525 /* The circle is hardcoded into the title. */
526 /* Color only changes on a refresh (F5) (so it's pointless). */
527 /* Also colors the border in Breeze. */
528 //color: palette(highlight);
532 ** OS X: Workaround Pallete {} bug
533 ** - https://stackoverflow.com/questions/19748752/qt-style-qpalettewindowtext-color-reverts-after-application-starts