Dark.qss 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690
  1. /******************************************************************************/
  2. /* Copyright (C) 2014-2015 by Philippe Groarke <[email protected]> */
  3. /* */
  4. /* */
  5. /* This program is free software: you can redistribute it and/or modify */
  6. /* it under the terms of the GNU General Public License as published by */
  7. /* the Free Software Foundation, either version 2 of the License, or */
  8. /* (at your option) any later version. */
  9. /* */
  10. /* This program is distributed in the hope that it will be useful, */
  11. /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
  12. /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
  13. /* GNU General Public License for more details. */
  14. /* */
  15. /* You should have received a copy of the GNU General Public License */
  16. /* along with this program. If not, see <http://www.gnu.org/licenses/>. */
  17. /******************************************************************************/
  18. /* Colors */
  19. /* rgb(225,224,225); /* veryLight */
  20. /* rgb(200,199,200); /* lighter */
  21. /* rgb(122,121,122); /* light */
  22. /* rgb(88,87,88); /* kindaDark */
  23. /* rgb(58,57,58); /* dark */
  24. /* rgb(31,30,31); /* veryDark */
  25. /* rgb(11,10,11); /* veryVeryDark */
  26. /* rgb(42,130,218); /* blue */
  27. /* Custom theme information. This will set the application's QPalette, as
  28. * well as pass to QML via the OBSTheme object.
  29. * Can also use OBSTheme::disabled, OBSTheme::active, and OBSTheme::inactive.
  30. * Using it without will set all three (making 'active' a bit redundant) */
  31. OBSTheme {
  32. window: rgb(58,57,58); /* dark */
  33. windowText: rgb(225,224,225); /* veryLight */
  34. base: rgb(31,30,31); /* veryDark */
  35. alternateBase: rgb(11,10,11); /* veryVeryDark */
  36. text: rgb(225,224,225); /* veryLight */
  37. button: rgb(88,87,88); /* kindaDark */
  38. buttonText: rgb(225,224,225); /* veryLight */
  39. brightText: rgb(200,199,200); /* lighter */
  40. light: rgb(88,87,88); /* kindaDark */
  41. mid: rgb(58,57,58); /* dark */
  42. dark: rgb(31,30,31); /* veryDark */
  43. shadow: rgb(11,10,11); /* veryVeryDark */
  44. highlight: rgb(42,130,218); /* blue */
  45. highlightText: rgb(0,0,0);
  46. link: rgb(114, 162, 255); /* OBS blue */
  47. linkVisited: rgb(114, 162, 255); /* OBS blue */
  48. }
  49. OBSTheme::disabled {
  50. text: rgb(122,121,122); /* light */
  51. buttonText: rgb(122,121,122); /* light */
  52. brightText: rgb(122,121,122); /* light */
  53. }
  54. OBSTheme::inactive {
  55. highlight: rgb(48,47,48);
  56. highlightText: rgb(255, 255, 255);
  57. }
  58. /* General style, we override only what is needed. */
  59. QWidget {
  60. background-color: rgb(58,57,58); /* dark */
  61. alternate-background-color: rgb(31,30,31); /* veryDark */
  62. color: rgb(225,224,225); /* veryLight */
  63. selection-background-color: rgb(42,130,218); /* blue */
  64. selection-color: black;
  65. }
  66. * [frameShape="1"], * [frameShape="2"], * [frameShape="3"], * [frameShape="4"], * [frameShape="5"], * [frameShape="6"] {
  67. border: 1px solid rgb(31,30,31);
  68. }
  69. /* Misc */
  70. QWidget::disabled {
  71. color: 2px solid rgb(200,199,200); /* lighter */
  72. }
  73. QAbstractItemView, QStackedWidget#stackedMixerArea QWidget {
  74. background-color: rgb(31,30,31); /* veryDark */
  75. }
  76. QToolTip {
  77. background-color: rgb(31,30,31); /* veryDark */
  78. color: rgb(205,205,205);
  79. border: none;
  80. }
  81. QMenuBar::item {
  82. background-color: rgb(58,57,58); /* dark */
  83. }
  84. QListWidget::item:selected:!active {
  85. color: rgb(255, 255, 255);
  86. background-color: rgb(48,47,48);
  87. }
  88. /* Dock Widget */
  89. QDockWidget::title {
  90. text-align: center;
  91. background-color: QLinearGradient(x1: 0, y1: 0, x2: 0, y2: 1,
  92. stop: 0 rgb(86,85,86),
  93. stop: 0.1 rgb(82,81,82),
  94. stop: 0.5 rgb(78,77,78),
  95. stop: 0.9 rgb(74,73,74),
  96. stop: 1 rgb(70,69,70));
  97. }
  98. QDockWidget::close-button, QDockWidget::float-button {
  99. border: 1px solid transparent;
  100. background: transparent;
  101. padding: 0px;
  102. }
  103. QDockWidget::close-button:hover, QDockWidget::float-button:hover {
  104. background: transparent;
  105. }
  106. QDockWidget::close-button:pressed, QDockWidget::float-button:pressed {
  107. padding: 1px -1px -1px 1px;
  108. }
  109. /* Group Box */
  110. QGroupBox {
  111. border: 1px solid rgb(31,30,31); /* veryDark */;
  112. border-radius: 5px;
  113. padding-top: 16px;
  114. }
  115. /* ScrollBars */
  116. ::corner {
  117. background-color: rgb(58,57,58); /* dark */
  118. border: none;
  119. }
  120. QScrollBar:vertical {
  121. background-color: rgb(58,57,58); /* dark */
  122. width: 14px;
  123. margin: 0px;
  124. }
  125. QScrollBar::handle:vertical {
  126. background-color: QLinearGradient(x1: 0, y1: 0, x2: 1, y2: 0,
  127. stop: 0 rgb(122,121,122), /* light */
  128. stop: 0.25 rgb(100, 99, 100),
  129. stop: 1 rgb(88,87,88)); /* kindaDark */
  130. min-height: 20px;
  131. margin: 2px;
  132. border-radius: 5px;
  133. border-width: 1px;
  134. border: 1px solid rgb(31,30,31); /* veryDark */
  135. }
  136. QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical {
  137. border: none;
  138. background: none;
  139. height: 0px;
  140. }
  141. QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical, QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
  142. border: none;
  143. background: none;
  144. color: none;
  145. }
  146. QScrollBar:horizontal {
  147. background-color: rgb(58,57,58); /* dark */
  148. height: 14px;
  149. margin: 0px;
  150. }
  151. QScrollBar::handle:horizontal {
  152. background-color: QLinearGradient(x1: 0, y1: 0, x2: 0, y2: 1,
  153. stop: 0 rgb(122,121,122), /* light */
  154. stop: 0.25 rgb(100, 99, 100),
  155. stop: 1 rgb(88,87,88)); /* kindaDark */
  156. min-width: 20px;
  157. margin: 2px;
  158. border-radius: 5px;
  159. border-width: 1px;
  160. border: 1px solid rgb(31,30,31); /* veryDark */
  161. }
  162. QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal {
  163. border: none;
  164. background: none;
  165. width: 0px;
  166. }
  167. QScrollBar::left-arrow:horizontal, QScrollBar::right-arrow:horizontal, QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {
  168. border: none;
  169. background: none;
  170. color: none;
  171. }
  172. /* Scenes and Sources toolbar */
  173. QToolBar {
  174. background-color: rgb(58,57,58); /* dark */
  175. border: none;
  176. }
  177. QToolButton:hover {
  178. background-color: rgb(122,121,122); /* light */
  179. border-radius: none;
  180. }
  181. QToolButton:pressed {
  182. background-color: rgb(31,30,31); /* veryDark */
  183. border-radius: none;
  184. }
  185. * [themeID="addIconSmall"] {
  186. qproperty-icon: url(./Dark/plus.png);
  187. }
  188. * [themeID="removeIconSmall"] {
  189. qproperty-icon: url(./Dark/minus.png);
  190. }
  191. * [themeID="propertiesIconSmall"] {
  192. qproperty-icon: url(./Dark/cogwheel.png);
  193. }
  194. * [themeID="configIconSmall"] {
  195. qproperty-icon: url(./Dark/cogwheel.png);
  196. }
  197. * [themeID="refreshIconSmall"] {
  198. qproperty-icon: url(./Dark/refresh.png);
  199. }
  200. * [themeID="upArrowIconSmall"] {
  201. qproperty-icon: url(./Dark/up_arrow.png);
  202. }
  203. * [themeID="downArrowIconSmall"] {
  204. qproperty-icon: url(./Dark/down_arrow.png);
  205. }
  206. /* Tab Widget */
  207. QTabWidget::pane { /* The tab widget frame */
  208. border-top: 1px solid rgb(31,30,31); /* veryDark */
  209. }
  210. QTabWidget::tab-bar {
  211. alignment: center;
  212. }
  213. QTabBar::tab {
  214. background-color: rgb(88,87,88); /* kindaDark */
  215. border: none;
  216. padding: 5px;
  217. min-width: 50px;
  218. margin: 1px;
  219. }
  220. QTabBar::tab:top {
  221. border-bottom: 1px transparent;
  222. border-top-left-radius: 5px;
  223. border-top-right-radius: 5px;
  224. }
  225. QTabBar::tab:bottom {
  226. padding-top: 1px;
  227. margin-bottom: 4px;
  228. border-bottom-left-radius: 5px;
  229. border-bottom-right-radius: 5px;
  230. height: 14px;
  231. }
  232. QTabBar::tab:selected {
  233. background-color: rgb(31,30,31); /* veryDark */
  234. }
  235. QTabBar::tab:hover {
  236. background-color: rgb(122,121,122); /* light */
  237. }
  238. QTabBar::tab:pressed {
  239. background-color: rgb(31,30,31); /* veryDark */
  240. }
  241. /* ComboBox */
  242. QComboBox {
  243. background-color: QLinearGradient(x1: 0, y1: 0, x2: 0, y2: 1,
  244. stop: 0 rgb(86,85,86),
  245. stop: 0.1 rgb(82,81,82),
  246. stop: 0.5 rgb(78,77,78),
  247. stop: 0.9 rgb(74,73,74),
  248. stop: 1 rgb(70,69,70));
  249. border-style: solid;
  250. border: 1px;
  251. border-radius: 3px;
  252. border-color: rgb(31,30,31); /* veryDark */
  253. padding: 2px;
  254. padding-left: 10px;
  255. }
  256. QComboBox:hover {
  257. background-color: QLinearGradient(x1: 0, y1: 0, x2: 0, y2: 1,
  258. stop: 0 rgb(111, 110, 101),
  259. stop: 0.25 rgb(100, 99, 100),
  260. stop: 1 rgb(88,87,88));
  261. }
  262. QComboBox::drop-down {
  263. border:none;
  264. border-left: 1px solid rgba(31,30,31,155); /* veryDark */
  265. width: 20px;
  266. }
  267. QComboBox::down-arrow {
  268. qproperty-alignment: AlignTop;
  269. image: url(./Dark/updown.png);
  270. width: 100%;
  271. }
  272. QComboBox:on {
  273. background-color: rgb(31,30,31); /* veryDark */
  274. }
  275. QComboBox:editable {
  276. border-top-left-radius: 0px;
  277. border-bottom-left-radius: 0px;
  278. }
  279. QComboBox::drop-down:editable {
  280. border-top-right-radius: 3px;
  281. border-bottom-right-radius: 3px;
  282. }
  283. QComboBox::down-arrow:editable {
  284. qproperty-alignment: AlignTop;
  285. image: url(./Dark/down_arrow.png);
  286. width: 8%;
  287. }
  288. /* Textedits etc */
  289. QLineEdit, QTextEdit, QPlainTextEdit {
  290. background-color: rgb(31,30,31); /* veryDark */
  291. border: none;
  292. border-radius: 3px;
  293. padding: 2px 2px 3px 7px;
  294. }
  295. OBSHotkeyWidget QLineEdit {
  296. margin: 0px 3px 0px 0px;
  297. }
  298. /* Spinbox and doubleSpinbox */
  299. QSpinBox, QDoubleSpinBox {
  300. background-color: rgb(31,30,31); /* veryDark */
  301. border: none;
  302. border-radius: 3px;
  303. margin: 0px 3px 0px 0px;
  304. padding: 2px 2px 3px 7px;
  305. }
  306. QSpinBox::up-button, QDoubleSpinBox::up-button {
  307. subcontrol-origin: margin;
  308. subcontrol-position: top right; /* position at the top right corner */
  309. background-color: rgb(88,87,88); /* kindaDark */
  310. border: 1px solid rgb(31,30,31); /* veryDark */
  311. border-radius: 3px;
  312. border-width: 0;
  313. border-bottom-left-radius: 0;
  314. border-bottom-right-radius: 0;
  315. border-bottom-width: 0;
  316. }
  317. QSpinBox::down-button, QDoubleSpinBox::down-button {
  318. subcontrol-origin: margin;
  319. subcontrol-position: bottom right; /* position at the top right corner */
  320. background-color: rgb(88,87,88); /* kindaDark */
  321. border: 1px solid rgb(31,30,31); /* veryDark */
  322. border-radius: 3px;
  323. border-width: 0;
  324. border-top-left-radius: 0;
  325. border-top-right-radius: 0;
  326. border-top-width: 0;
  327. }
  328. QSpinBox::up-button:hover, QSpinBox::down-button:hover, QDoubleSpinBox::up-button:hover, QDoubleSpinBox::down-button:hover {
  329. background-color: rgb(122,121,122); /* light */
  330. }
  331. QSpinBox::up-button:pressed, QSpinBox::down-button:pressed, QDoubleSpinBox::up-button:pressed, QDoubleSpinBox::down-button:pressed {
  332. background-color: rgb(58,57,58); /* dark */
  333. }
  334. QSpinBox::up-button:disabled, QSpinBox::up-button:off, QSpinBox::down-button:disabled, QSpinBox::down-button:off {
  335. background-color: rgb(58,57,58); /* dark */
  336. }
  337. QDoubleSpinBox::up-button:disabled, QDoubleSpinBox::up-button:off, QDoubleSpinBox::down-button:disabled, QDoubleSpinBox::down-button:off {
  338. background-color: rgb(58,57,58); /* dark */
  339. }
  340. QSpinBox::up-arrow, QDoubleSpinBox::up-arrow {
  341. image: url(./Dark/up_arrow.png);
  342. width: 100%;
  343. }
  344. QSpinBox::down-arrow, QDoubleSpinBox::down-arrow {
  345. image: url(./Dark/down_arrow.png);
  346. width: 100%;
  347. }
  348. /* Buttons */
  349. QPushButton {
  350. color: rgb(225,224,225); /* veryLight */
  351. background-color: rgb(88,87,88); /* kindaDark */
  352. border: none;
  353. border-radius: 3px;
  354. padding: 4px;
  355. padding-left: 20px;
  356. padding-right: 20px;
  357. }
  358. QPushButton::flat {
  359. background-color: rgb(58,57,58); /* dark */
  360. }
  361. QPushButton:hover {
  362. background-color: rgb(122,121,122); /* light */
  363. }
  364. QPushButton:pressed {
  365. background-color: rgb(31,30,31); /* veryDark */
  366. }
  367. QPushButton:checked {
  368. background-color: rgb(122,121,122); /* light */
  369. }
  370. QPushButton::menu-indicator {
  371. image: url(./Dark/down_arrow.png);
  372. subcontrol-position: right;
  373. subcontrol-origin: padding;
  374. width: 25px;
  375. }
  376. QPushButton[themeID="hotkeyButtons"] {
  377. margin: 1px 2px;
  378. }
  379. /* Sliders */
  380. QSlider::groove:horizontal {
  381. background-color: QLinearGradient(x1: 0, y1: 1, x2: 0, y2: 0,
  382. stop: 0 rgb(50, 49, 50), /* dark */
  383. stop: 0.75 rgb(88,87,88)); /* kindaDark */
  384. height: 4px;
  385. border: none;
  386. border-radius: 2px;
  387. }
  388. QSlider::handle:horizontal {
  389. background-color: QLinearGradient(x1: 0, y1: 0, x2: 0, y2: 1,
  390. stop: 0 rgb(240,239,240), /* lighter */
  391. stop: 0.25 rgb(200,199,200),
  392. stop: 1 rgb(162,161,162)); /* light */
  393. border: 1px solid rgb(58,57,58); /* dark */
  394. border-radius: 3px;
  395. height: 10px;
  396. width: 18px;
  397. margin: -3px 0; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */
  398. }
  399. QSlider::handle:horizontal:pressed {
  400. background-color: QLinearGradient(x1: 0, y1: 1, x2: 0, y2: 0,
  401. stop: 0 rgb(240,239,240), /* lighter */
  402. stop: 0.25 rgb(200,199,200),
  403. stop: 1 rgb(162,161,162)); /* light */
  404. }
  405. QSlider::sub-page:horizontal {
  406. background-color: rgb(42,130,218); /* blue */
  407. border-radius: 2px;
  408. }
  409. QSlider::sub-page:horizontal:disabled {
  410. background-color: QLinearGradient(x1: 0, y1: 1, x2: 0, y2: 0,
  411. stop: 0 rgb(31,30,31), /* veryDark */
  412. stop: 0.75 rgb(50, 49, 50)); /* dark */
  413. border-radius: 2px;
  414. }
  415. QSlider::groove:vertical {
  416. background-color: QLinearGradient(x1: 1, y1: 0, x2: 0, y2: 0,
  417. stop: 0 rgb(50, 49, 50), /* dark */
  418. stop: 0.75 rgb(88,87,88)); /* kindaDark */
  419. width: 4px;
  420. border: none;
  421. border-radius: 2px;
  422. }
  423. QSlider::handle:vertical {
  424. background-color: QLinearGradient(x1: 1, y1: 0, x2: 0, y2: 0,
  425. stop: 0 rgb(240,239,240), /* lighter */
  426. stop: 0.25 rgb(200,199,200),
  427. stop: 1 rgb(162,161,162)); /* light */
  428. border: 1px solid rgb(58,57,58); /* dark */
  429. border-radius: 3px;
  430. width: 10px;
  431. height: 18px;
  432. margin: 0 -3px; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */
  433. }
  434. QSlider::handle:vertical:pressed {
  435. background-color: QLinearGradient(x1: 1, y1: 0, x2: 0, y2: 0,
  436. stop: 0 rgb(240,239,240), /* lighter */
  437. stop: 0.25 rgb(200,199,200),
  438. stop: 1 rgb(162,161,162)); /* light */
  439. }
  440. QSlider::add-page:vertical {
  441. background-color: rgb(42,130,218); /* blue */
  442. border-radius: 2px;
  443. }
  444. QSlider::add-page:vertical:disabled {
  445. background-color: QLinearGradient(x1: 1, y1: 0, x2: 0, y2: 0,
  446. stop: 0 rgb(31,30,31), /* veryDark */
  447. stop: 0.75 rgb(50, 49, 50)); /* dark */
  448. border-radius: 2px;
  449. }
  450. QSlider::handle:hover {
  451. background-color: rgb(200,199,200); /* veryLight */
  452. }
  453. QSlider::handle:disabled {
  454. background-color: rgb(122,121,122); /* light */
  455. }
  456. /* Volume Control */
  457. VolumeMeter {
  458. qproperty-backgroundNominalColor: rgb(38, 127, 38);
  459. qproperty-backgroundWarningColor: rgb(127, 127, 38);
  460. qproperty-backgroundErrorColor: rgb(127, 38, 38);
  461. qproperty-foregroundNominalColor: rgb(76, 255, 76);
  462. qproperty-foregroundWarningColor: rgb(255, 255, 76);
  463. qproperty-foregroundErrorColor: rgb(255, 76, 76);
  464. qproperty-magnitudeColor: rgb(0, 0, 0);
  465. qproperty-majorTickColor: rgb(225,224,225); /* veryLight */
  466. qproperty-minorTickColor: rgb(122,121,122); /* light */
  467. }
  468. /* Status Bar */
  469. QStatusBar::item {
  470. border: none;
  471. }
  472. /* Table View */
  473. QTableView {
  474. gridline-color: rgb(88,87,88); /* kindaDark */
  475. }
  476. QHeaderView::section {
  477. background-color: rgb(58,57,58); /* dark */
  478. color: rgb(225,224,225); /* veryLight */
  479. border: 1px solid rgb(31,30,31); /* veryDark */;
  480. border-radius: 5px;
  481. }
  482. /* Mute CheckBox */
  483. MuteCheckBox {
  484. outline: none;
  485. }
  486. MuteCheckBox::indicator:checked {
  487. image: url(./Dark/mute.png);
  488. }
  489. MuteCheckBox::indicator:unchecked {
  490. image: url(./Dark/unmute.png);
  491. }
  492. OBSHotkeyLabel[hotkeyPairHover=true] {
  493. color: red;
  494. }
  495. /* Group Collapse Checkbox */
  496. SourceTreeSubItemCheckBox {
  497. background: transparent;
  498. outline: none;
  499. }
  500. SourceTreeSubItemCheckBox::indicator {
  501. width: 10px;
  502. height: 10px;
  503. }
  504. SourceTreeSubItemCheckBox::indicator:checked {
  505. image: url(./Dark/expand.png);
  506. }
  507. SourceTreeSubItemCheckBox::indicator:unchecked {
  508. image: url(./Dark/collapse.png);
  509. }
  510. /* Label warning/error */
  511. QLabel#warningLabel {
  512. color: rgb(192, 128, 0);
  513. font-weight: bold;
  514. }
  515. QLabel#errorLabel {
  516. color: rgb(192, 0, 0);
  517. font-weight: bold;
  518. }
  519. * [themeID="warning"] {
  520. color: rgb(192, 128, 0);
  521. font-weight: bold;
  522. }
  523. * [themeID="error"] {
  524. color: rgb(192, 0, 0);
  525. font-weight: bold;
  526. }
  527. * [themeID="good"] {
  528. color: rgb(0, 192, 0);
  529. font-weight: bold;
  530. }
  531. /* About dialog */
  532. * [themeID="aboutName"] {
  533. font-size: 36px;
  534. font-weight: bold;
  535. }
  536. * [themeID="aboutVersion"] {
  537. font-size: 16px;
  538. margin-bottom: 20px;
  539. }
  540. * [themeID="aboutInfo"] {
  541. margin-bottom: 20px;
  542. }
  543. * [themeID="aboutHLayout"] {
  544. background-color: rgb(31, 30, 31); /* veryDark */
  545. }
  546. /* Preview background color */
  547. * [themeID="displayBackgroundColor"] {
  548. qproperty-displayBackgroundColor: rgb(76, 76, 76);
  549. }