Yami.obt 44 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057
  1. @OBSThemeMeta {
  2. name: 'Yami';
  3. id: 'com.obsproject.Yami';
  4. author: 'Warchamp7';
  5. dark: 'true';
  6. }
  7. @OBSThemeVars {
  8. /* OBS Color Palette */
  9. --blue1: #718CDC;
  10. --blue2: #476BD7;
  11. --blue3: #284CB8;
  12. --blue4: #213E97;
  13. --blue5: #1A3278;
  14. --red1: #E85E75;
  15. --red2: #E33B57;
  16. --red3: #C01C37;
  17. --red4: #A1172E;
  18. --red5: #7D1224;
  19. --pink1: #E5619A;
  20. --pink2: #E03E84;
  21. --pink3: #C11F65;
  22. --pink4: #9E1A53;
  23. --pink5: #7B1441;
  24. --teal1: #3DBEF5;
  25. --teal2: #16B1F3;
  26. --teal3: #0981B4;
  27. --teal4: #086F9B;
  28. --teal5: #065374;
  29. --purple1: #997FDC;
  30. --purple2: #805FD3;
  31. --purple3: #5B34BF;
  32. --purple4: #4D2CA0;
  33. --purple5: #3D2380;
  34. --green1: #59D966;
  35. --green2: #37D247;
  36. --green3: #25A231;
  37. --green4: #1E8528;
  38. --green5: #17641E;
  39. --yellow1: #EABC48;
  40. --yellow2: #E5AF24;
  41. --yellow3: #B88A16;
  42. --yellow4: #926E11;
  43. --yellow5: #6E520D;
  44. --grey1: #5B6273;
  45. --grey2: #4E5566;
  46. --grey3: #464B59;
  47. --grey4: #3C404D;
  48. --grey5: #323540;
  49. --grey6: #272A33;
  50. --grey7: #1D1F26;
  51. --grey8: #13141A;
  52. --white1: #FFFFFF;
  53. --white2: #EBEBEB;
  54. --white3: #D6D6D6;
  55. --white4: #C2C2C2;
  56. --white5: #ADADAD;
  57. --black1: #0A0A0A;
  58. --black2: #1F1F1F;
  59. --black3: #333333;
  60. --black4: #474747;
  61. --black5: #5C5C5C;
  62. /* Base Theme Colors */
  63. --bg_window: var(--grey7);
  64. --bg_base: var(--grey6);
  65. --bg_preview: var(--grey8);
  66. --primary: var(--blue3);
  67. --primary_light: var(--blue2);
  68. --primary_lighter: var(--blue1);
  69. --primary_dark: var(--blue4);
  70. --primary_darker: var(--blue5);
  71. --warning: var(--yellow3);
  72. --danger: var(--red3);
  73. --text: var(--white1);
  74. --text_light: rgb(214, 214, 214);
  75. --text_muted: rgb(153, 153, 153);
  76. --text_disabled: var(--text_muted);
  77. --text_inactive: rgb(255, 254, 255);
  78. /* Layout */
  79. /* Configurable Values */
  80. /* TODO: Min 8, Max 12, Step 1 */
  81. --font_base_value: 10;
  82. /* TODO: Min 2, Max 7, Step 1 */
  83. --spacing_base_value: 4;
  84. /* TODO: Min 0.25, Max 10, Step 2 */
  85. --padding_base_value: 4;
  86. /* TODO: Better Accessibility focus state */
  87. /* TODO: Move Accessibilty Colors to Theme config system */
  88. --border_highlight: "transparent";
  89. /* OS Fixes */
  90. --os_mac_font_base_value: 12;
  91. --font_base: calc(1pt * var(--font_base_value));
  92. --font_small: calc(0.9pt * var(--font_base_value));
  93. --font_xsmall: calc(0.85pt * var(--font_base_value));
  94. --font_large: calc(1.1pt * var(--font_base_value));
  95. --font_xlarge: calc(1.5pt * var(--font_base_value));
  96. --font_heading: calc(2.5pt * var(--font_base_value));
  97. --icon_base: calc(6px + var(--font_base_value));
  98. --spacing_base: calc(0.5px * var(--spacing_base_value));
  99. --spacing_large: calc(1px * var(--spacing_base_value));
  100. --spacing_small: calc(0.25px * var(--spacing_base_value));
  101. --spacing_title: 4px;
  102. --padding_base: calc(0.5px * var(--padding_base_value));
  103. --padding_large: calc(1px * var(--padding_base_value));
  104. --padding_xlarge: calc(1.75px * var(--padding_base_value));
  105. --padding_small: calc(0.25px * var(--padding_base_value));
  106. --padding_wide: calc(8px + calc(2 * var(--padding_base_value)));
  107. --padding_menu: calc(4px + calc(2 * var(--padding_base_value)));
  108. --padding_base_border: calc(var(--padding_base) + 1px);
  109. --spinbox_button_height: calc(var(--input_height_half) - 1px);
  110. --volume_slider: calc(calc(4px + var(--font_base_value)) / 4);
  111. --volume_slider_box: calc(var(--volume_slider) * 4);
  112. --volume_slider_label: calc(var(--volume_slider_box) * 2);
  113. --scrollbar_size: 12px;
  114. --settings_scrollbar_size: calc(var(--scrollbar_size) + 9px);
  115. /* Inputs / Controls */
  116. --border_color: var(--grey4);
  117. --border_radius: 4px;
  118. --border_radius_small: 2px;
  119. --border_radius_large: 6px;
  120. --input_font_scale: calc(var(--font_base_value) * 2.2);
  121. --input_font_padding: calc(var(--padding_base_value) * 2);
  122. --input_height_base: calc(var(--input_font_scale) + var(--input_font_padding));
  123. --input_padding: var(--padding_large);
  124. --input_height: calc(var(--input_height_base) - calc(var(--input_padding) * 2));
  125. --input_height_half: calc(var(--input_height_base) / 2);
  126. --input_bg: var(--grey4);
  127. --input_bg_hover: var(--grey7);
  128. --input_bg_focus: var(--grey7);
  129. --list_item_bg_selected: var(--primary);
  130. --list_item_bg_hover: var(--primary_light);
  131. --input_border: var(--grey1);
  132. --input_border_hover: var(--grey1);
  133. --input_border_focus: var(--primary);
  134. --spacing_input: var(--spacing_base);
  135. --button_bg: var(--input_bg);
  136. --button_bg_hover: var(--grey3);
  137. --button_bg_down: var(--grey7);
  138. --button_bg_disabled: var(--grey6);
  139. --button_border: var(--button_bg);
  140. --button_border_hover: var(--grey1);
  141. --button_border_focus: var(--grey1);
  142. --tab_bg: var(--button_bg_disabled);
  143. --tab_bg_hover: var(--button_bg_hover);
  144. --tab_bg_down: var(--primary);
  145. --tab_bg_disabled: var(--button_bg_disabled);
  146. --tab_border: var(--border_color);
  147. --tab_border_hover: var(--button_border_hover);
  148. --tab_border_focus: var(--button_border_focus);
  149. --tab_border_selected: var(--primary);
  150. --scrollbar: var(--grey4);
  151. --scrollbar_hover: var(--grey3);
  152. --scrollbar_down: var(--grey8);
  153. --scrollbar_border: var(--grey2);
  154. --separator_hover: var(--white1);
  155. --highlight: rgb(42, 130, 218);
  156. --highlight_inactive: rgb(25, 28, 34);
  157. /* Qt Palette variables can be set with the "palette_" prefix */
  158. --palette_window: var(--bg_window);
  159. --palette_windowText: var(--text);
  160. --palette_base: var(--bg_base);
  161. --palette_light: var(--grey2);
  162. --palette_mid: var(--grey7);
  163. --palette_dark: var(--grey6);
  164. --palette_highlight: var(--primary);
  165. --palette_highlightedText: var(--text);
  166. --palette_text: var(--text);
  167. --palette_link: var(--blue2);
  168. --palette_linkVisited: var(--blue2);
  169. --palette_button: var(--button_bg);
  170. --palette_buttonText: var(--text);
  171. /* They can be selectively set for palette groups by appending those as well */
  172. --palette_text_active: var(--text);
  173. --palette_text_disabled: var(--text_disabled);
  174. --palette_text_inactive: var(--text_inactive);
  175. /*
  176. * Variables calculated at runtime (after all themes have been composed).
  177. *
  178. * Support standard add, sub, mul, div operations.
  179. * Also supports nested calls (but keep it reasonable).
  180. *
  181. * Note: When using two operands that have a type (e.g. "px") the type must match!
  182. * If only one operand has a type it'll be used for the result.
  183. * Note 2: Cannot be !editable
  184. * Note 3: Operands and operator MUST be separated by whitespace
  185. */
  186. }
  187. /* --------------------- */
  188. /* General Styling Hints */
  189. /* Backgrounds */
  190. .bg_window {
  191. background-color: var(--bg_window);
  192. }
  193. .bg-base {
  194. background-color: var(--bg_base);
  195. }
  196. .text-heading {
  197. font-size: var(--font_heading);
  198. font-weight: bold;
  199. }
  200. .text-large {
  201. font-size: var(--font_large);
  202. }
  203. .text-bright {
  204. color: var(--primary_light);
  205. }
  206. .text-muted {
  207. color: var(--text_muted);
  208. }
  209. .text-warning {
  210. color: var(--warning);
  211. }
  212. .text-danger {
  213. color: var(--danger);
  214. }
  215. .text-success {
  216. color: var(--green3);
  217. }
  218. .frame-notice {
  219. background: var(--bg_preview);
  220. border-radius: var(--border_radius);
  221. padding: var(--padding_xlarge) var(--padding_large);
  222. }
  223. .frame-notice QLabel {
  224. padding: var(--padding_large) 0px;
  225. }
  226. /* Icon Overrides */
  227. .icon-plus {
  228. qproperty-icon: url(theme:Dark/plus.svg);
  229. }
  230. .icon-minus {
  231. qproperty-icon: url(theme:Dark/minus.svg);
  232. }
  233. .icon-trash {
  234. qproperty-icon: url(theme:Dark/trash.svg);
  235. }
  236. .icon-clear {
  237. qproperty-icon: url(theme:Dark/entry-clear.svg);
  238. }
  239. .icon-gear {
  240. qproperty-icon: url(theme:Dark/settings/general.svg);
  241. }
  242. .icon-dots-vert {
  243. qproperty-icon: url(theme:Dark/dots-vert.svg);
  244. }
  245. .icon-refresh {
  246. qproperty-icon: url(theme:Dark/refresh.svg);
  247. }
  248. .icon-cogs {
  249. qproperty-icon: url(theme:Dark/cogs.svg);
  250. }
  251. .icon-touch {
  252. qproperty-icon: url(theme:Dark/interact.svg);
  253. }
  254. .icon-up {
  255. qproperty-icon: url(theme:Dark/up.svg);
  256. }
  257. .icon-down {
  258. qproperty-icon: url(theme:Dark/down.svg);
  259. }
  260. .icon-pause {
  261. qproperty-icon: url(theme:Dark/media-pause.svg);
  262. }
  263. .icon-filter {
  264. qproperty-icon: url(theme:Dark/filter.svg);
  265. }
  266. .icon-revert {
  267. qproperty-icon: url(theme:Dark/revert.svg);
  268. }
  269. .icon-save {
  270. qproperty-icon: url(theme:Dark/save.svg);
  271. }
  272. /* Media icons */
  273. .icon-media-play {
  274. qproperty-icon: url(theme:Dark/media/media_play.svg);
  275. }
  276. .icon-media-pause {
  277. qproperty-icon: url(theme:Dark/media/media_pause.svg);
  278. }
  279. .icon-media-restart {
  280. qproperty-icon: url(theme:Dark/media/media_restart.svg);
  281. }
  282. .icon-media-stop {
  283. qproperty-icon: url(theme:Dark/media/media_stop.svg);
  284. }
  285. .icon-media-next {
  286. qproperty-icon: url(theme:Dark/media/media_next.svg);
  287. }
  288. .icon-media-prev {
  289. qproperty-icon: url(theme:Dark/media/media_previous.svg);
  290. }
  291. /* Default widget style, we override only what is needed. */
  292. QWidget {
  293. alternate-background-color: var(--bg_base);
  294. color: var(--text);
  295. selection-background-color: var(--primary);
  296. selection-color: var(--text);
  297. font-size: var(--font_base);
  298. font-family: 'Open Sans', '.AppleSystemUIFont', Helvetica, Arial, 'MS Shell Dlg', sans-serif;
  299. }
  300. QWidget:disabled {
  301. color: var(--text_disabled);
  302. }
  303. /* Container windows */
  304. QDialog,
  305. QMainWindow,
  306. QStatusBar,
  307. QMenuBar,
  308. QMenu {
  309. background-color: var(--bg_window);
  310. }
  311. /* macOS Separator Fix */
  312. QMainWindow::separator {
  313. background: transparent;
  314. width: var(--spacing_large);
  315. height: var(--spacing_large);
  316. margin: 0px;
  317. }
  318. QMainWindow::separator:hover {
  319. border: 1px solid var(--separator_hover);
  320. margin: 1px;
  321. }
  322. /* General Widgets */
  323. QLabel,
  324. QGroupBox,
  325. QCheckBox {
  326. background: transparent;
  327. }
  328. QComboBox,
  329. QCheckBox,
  330. QPushButton,
  331. QSpinBox,
  332. QDoubleSpinBox {
  333. margin-top: var(--spacing_input);
  334. margin-bottom: var(--spacing_input);
  335. }
  336. QListWidget QWidget,
  337. SceneTree QWidget,
  338. SourceTree QWidget {
  339. margin-top: 0;
  340. margin-bottom: 0;
  341. }
  342. * [frameShape="1"],
  343. * [frameShape="2"],
  344. * [frameShape="3"],
  345. * [frameShape="4"],
  346. * [frameShape="5"],
  347. * [frameShape="6"] {
  348. border: 1px solid var(--bg_base);
  349. }
  350. /* Misc */
  351. QAbstractItemView {
  352. background-color: var(--bg_base);
  353. }
  354. QToolTip {
  355. background-color: var(--bg_base);
  356. color: var(--text);
  357. border: none;
  358. }
  359. /* Context Menu */
  360. QMenu::indicator {
  361. left: var(--padding_large);
  362. }
  363. QMenu::icon {
  364. left: var(--padding_xlarge);
  365. }
  366. QMenu::separator {
  367. background: var(--border_color);
  368. height: 1px;
  369. margin: var(--spacing_base) var(--spacing_large);
  370. }
  371. QMenu::item:disabled {
  372. color: var(--text_disabled);
  373. background: transparent;
  374. }
  375. QMenu::right-arrow {
  376. image: url(theme:Dark/expand.svg);
  377. }
  378. /* Top Menu Bar Items */
  379. QMenuBar::item {
  380. background-color: transparent;
  381. }
  382. QMenuBar::item:selected {
  383. background: var(--primary);
  384. }
  385. /* Item Lists */
  386. QListWidget {
  387. border-radius: var(--border_radius);
  388. }
  389. QListWidget::item {
  390. color: var(--text);
  391. }
  392. QListWidget,
  393. QMenu,
  394. SceneTree,
  395. SourceTree {
  396. padding: var(--spacing_base);
  397. }
  398. QMenu {
  399. border: 1px solid var(--border_color);
  400. }
  401. QListWidget::item,
  402. SourceTreeItem,
  403. SceneTree::item {
  404. padding: var(--padding_large) var(--padding_large);
  405. }
  406. QMenu::item {
  407. padding: var(--padding_large) var(--padding_menu);
  408. padding-right: 20px;
  409. }
  410. QListWidget::item,
  411. SourceTreeItem,
  412. QMenu::item,
  413. SceneTree::item {
  414. border-radius: var(--border_radius);
  415. color: var(--text);
  416. }
  417. SourceTree::item {
  418. border-radius: var(--border_radius);
  419. color: var(--text);
  420. }
  421. QMenu::item:selected,
  422. QListWidget::item:selected,
  423. SceneTree::item:selected,
  424. SourceTree::item:selected {
  425. background-color: var(--primary);
  426. }
  427. QMenu::item:hover,
  428. QListWidget::item:hover,
  429. SceneTree::item:hover,
  430. SourceTree::item:hover,
  431. QMenu::item:selected:hover,
  432. QListWidget::item:selected:hover,
  433. SceneTree::item:selected:hover,
  434. SourceTree::item:selected:hover {
  435. background-color: var(--primary_light);
  436. color: var(--text);
  437. }
  438. QMenu::item:focus,
  439. QListWidget::item:focus,
  440. SceneTree::item:focus,
  441. SourceTree::item:focus,
  442. QMenu::item:selected:focus,
  443. QListWidget::item:selected:focus,
  444. SceneTree::item:selected:focus,
  445. SourceTree::item:selected:focus {
  446. border: 1px solid var(--border_highlight);
  447. }
  448. QListWidget::item:disabled,
  449. QListWidget::item:disabled:hover,
  450. SourceTree::item:disabled,
  451. SourceTree::item:disabled:hover,
  452. SceneTree::item:disabled,
  453. SceneTree::item:disabled:hover {
  454. background: transparent;
  455. color: var(--text_disabled);
  456. }
  457. QListWidget QLineEdit,
  458. SceneTree QLineEdit,
  459. SourceTree QLineEdit {
  460. padding: 0;
  461. padding-bottom: 1px;
  462. margin: 0;
  463. border: 1px solid var(--white1);
  464. border-radius: var(--border_radius);
  465. }
  466. QListWidget QLineEdit:focus,
  467. SceneTree QLineEdit:focus,
  468. SourceTree QLineEdit:focus {
  469. border: 1px solid var(--grey1);
  470. }
  471. /* Settings QList */
  472. OBSBasicSettings QListWidget {
  473. border-radius: var(--border_radius);
  474. padding: var(--spacing_base);
  475. }
  476. OBSBasicSettings QListWidget::item {
  477. border-radius: var(--border_radius);
  478. padding: var(--padding_large);
  479. }
  480. OBSBasicSettings QScrollBar:vertical {
  481. width: var(--settings_scrollbar_size);
  482. margin-left: 9px;
  483. }
  484. OBSBasicSettings QScrollBar:horizontal {
  485. height: var(--settings_scrollbar_size);
  486. margin-top: 9px;
  487. }
  488. /* Settings properties view */
  489. OBSBasicSettings #PropertiesContainer {
  490. background-color: var(--bg_base);
  491. }
  492. /* Dock Widget */
  493. OBSDock > QWidget {
  494. background: var(--bg_base);
  495. border-bottom-left-radius: var(--border_radius);
  496. border-bottom-right-radius: var(--border_radius);
  497. border: 1px solid var(--border_color);
  498. border-top: none;
  499. }
  500. #transitionsFrame {
  501. padding: var(--padding_large);
  502. }
  503. OBSDock QLabel {
  504. background: transparent;
  505. }
  506. QDockWidget {
  507. font-size: var(--font_base);
  508. font-weight: bold;
  509. titlebar-close-icon: url(theme:Dark/close.svg);
  510. titlebar-normal-icon: url(theme:Dark/popout.svg);
  511. }
  512. QDockWidget::title {
  513. text-align: left;
  514. background-color: var(--button_bg);
  515. padding: var(--padding_large);
  516. border-top-left-radius: var(--border_radius);
  517. border-top-right-radius: var(--border_radius);
  518. }
  519. QDockWidget::close-button,
  520. QDockWidget::float-button {
  521. border: none;
  522. border-radius: var(--border_radius);
  523. background: transparent;
  524. margin-right: 1px;
  525. }
  526. QDockWidget::close-button:hover,
  527. QDockWidget::float-button:hover {
  528. background: var(--button_bg_hover);
  529. }
  530. QDockWidget::close-button:pressed,
  531. QDockWidget::float-button:pressed {
  532. padding: 1px -1px -1px 1px;
  533. }
  534. QScrollArea {
  535. border-radius: var(--border_radius);
  536. }
  537. /* Qt enforces a padding inside its status bar, so we
  538. * oversize it and use margin to crunch it back down
  539. */
  540. OBSBasicStatusBar {
  541. margin-top: 4px;
  542. border-top: 1px solid var(--border_color);
  543. background: var(--bg_base);
  544. }
  545. StatusBarWidget > QFrame {
  546. margin-top: 1px;
  547. border: 0px solid var(--border_color);
  548. border-left-width: 1px;
  549. padding: 0px 8px 2px;
  550. }
  551. /* Group Box */
  552. QGroupBox {
  553. background: var(--bg_base);
  554. border-radius: var(--border_radius);
  555. padding-top: var(--input_height_base);
  556. padding-bottom: var(--padding_large);
  557. font-weight: bold;
  558. margin-bottom: var(--spacing_large);
  559. }
  560. QGroupBox::title {
  561. subcontrol-origin: margin;
  562. left: var(--spacing_title);
  563. top: var(--spacing_title);
  564. }
  565. /* ScrollBars */
  566. QScrollBar {
  567. background-color: var(--grey6);
  568. margin: 0px;
  569. border-radius: var(--border_radius);
  570. }
  571. ::corner {
  572. background-color: var(--bg_window);
  573. border: none;
  574. }
  575. QScrollBar:vertical {
  576. width: var(--scrollbar_size);
  577. }
  578. QScrollBar::add-line:vertical,
  579. QScrollBar::sub-line:vertical {
  580. border: none;
  581. background: none;
  582. height: 0px;
  583. }
  584. QScrollBar::up-arrow:vertical,
  585. QScrollBar::down-arrow:vertical,
  586. QScrollBar::add-page:vertical,
  587. QScrollBar::sub-page:vertical {
  588. border: none;
  589. background: none;
  590. color: none;
  591. }
  592. QScrollBar:horizontal {
  593. height: var(--scrollbar_size);
  594. }
  595. QScrollBar::add-line:horizontal,
  596. QScrollBar::sub-line:horizontal {
  597. border: none;
  598. background: none;
  599. width: 0px;
  600. }
  601. QScrollBar::left-arrow:horizontal,
  602. QScrollBar::right-arrow:horizontal,
  603. QScrollBar::add-page:horizontal,
  604. QScrollBar::sub-page:horizontal {
  605. border: none;
  606. background: none;
  607. color: none;
  608. }
  609. QScrollBar::handle {
  610. background-color: var(--scrollbar);
  611. margin: 2px;
  612. border-radius: var(--border_radius_small);
  613. border: 1px solid var(--scrollbar);
  614. }
  615. QScrollBar::handle:hover {
  616. background-color: var(--scrollbar_hover);
  617. border-color: var(--scrollbar_border);
  618. }
  619. QScrollBar::handle:pressed {
  620. background-color: var(--scrollbar_down);
  621. border-color: var(--scrollbar_down);
  622. }
  623. QScrollBar::handle:vertical {
  624. min-height: 32px;
  625. }
  626. QScrollBar::handle:horizontal {
  627. min-width: 32px;
  628. }
  629. QScrollBar::handle:disabled {
  630. background: transparent;
  631. border-color: transparent;
  632. }
  633. /* Source Context Bar */
  634. #contextContainer {
  635. background-color: var(--bg_base);
  636. margin-top: 4px;
  637. border-radius: var(--border_radius);
  638. }
  639. #contextContainer QPushButton {
  640. padding-left: 12px;
  641. padding-right: 12px;
  642. }
  643. QPushButton#sourcePropertiesButton {
  644. qproperty-icon: url(theme:Dark/settings/general.svg);
  645. icon-size: var(--icon_base);
  646. }
  647. QPushButton#sourceFiltersButton {
  648. qproperty-icon: url(theme:Dark/filter.svg);
  649. icon-size: var(--icon_base);
  650. }
  651. /* Scenes and Sources toolbar */
  652. QToolBar {
  653. background-color: transparent;
  654. border: none;
  655. margin: var(--spacing_base) 0px;
  656. }
  657. QToolBarExtension {
  658. background: var(--button_bg);
  659. min-width: 12px;
  660. max-width: 12px;
  661. padding: 4px 0px;
  662. margin-left: 0px;
  663. qproperty-icon: url(theme:Dark/dots-vert.svg);
  664. }
  665. /* Tab Widget */
  666. /* The tab widget frame */
  667. QTabWidget::pane {
  668. border-top: 4px solid var(--tab_bg);
  669. }
  670. QTabWidget::tab-bar {
  671. alignment: left;
  672. }
  673. QTabBar QToolButton {
  674. background: var(--button_bg);
  675. border: none;
  676. }
  677. QTabBar::tab:top {
  678. border-top-left-radius: 4px;
  679. border-top-right-radius: 4px;
  680. }
  681. QTabBar::tab:bottom {
  682. border-bottom-left-radius: 4px;
  683. border-bottom-right-radius: 4px;
  684. }
  685. QTabBar::tab {
  686. background: var(--tab_bg);
  687. color: var(--text);
  688. border: none;
  689. padding: 8px 12px;
  690. min-width: 50px;
  691. margin: 1px 0px;
  692. margin-right: 2px;
  693. border: 1px solid var(--tab_border);
  694. }
  695. QTabBar::tab:pressed {
  696. background: var(--tab_bg_down);
  697. }
  698. QTabBar::tab:hover {
  699. background: var(--tab_bg_hover);
  700. border-color: var(--tab_border_hover);
  701. color: var(--text);
  702. }
  703. QTabBar::tab:focus {
  704. border-color: var(--tab_border_focus);
  705. }
  706. QTabBar::tab:selected {
  707. background: var(--tab_bg_down);
  708. color: var(--text);
  709. }
  710. QTabBar::tab:top {
  711. border-bottom: 0px solid transparent;
  712. margin-bottom: 0px;
  713. }
  714. QTabBar::tab:bottom {
  715. border-top: 0px solid transparent;
  716. margin-top: 0px;
  717. }
  718. QTabBar QToolButton {
  719. background: var(--button_bg);
  720. min-width: 16px;
  721. padding: 0px;
  722. }
  723. /* ComboBox */
  724. QComboBox,
  725. QDateTimeEdit {
  726. background-color: var(--input_bg);
  727. border-style: solid;
  728. border: 1px solid var(--input_bg);
  729. border-radius: var(--border_radius);
  730. padding: var(--padding_large) var(--padding_large);
  731. padding-left: 10px;
  732. }
  733. QComboBox QAbstractItemView {
  734. padding: var(--spacing_base) var(--spacing_large);
  735. border: 1px solid var(--border_color);
  736. outline: none;
  737. }
  738. QComboBox QAbstractItemView::item {
  739. padding: var(--padding_large) var(--padding_xlarge);
  740. }
  741. QComboBox QAbstractItemView::item:selected,
  742. QComboBox QAbstractItemView::item:hover {
  743. background-color: var(--list_item_bg_selected);
  744. }
  745. QComboBox:hover,
  746. QComboBox:focus,
  747. QDateTimeEdit:hover,
  748. QDateTimeEdit:selected {
  749. border-color: var(--input_border_hover);
  750. }
  751. QComboBox:on {
  752. border-bottom-left-radius: 0px;
  753. border-bottom-right-radius: 0px;
  754. }
  755. QComboBox::drop-down,
  756. QDateTimeEdit::drop-down {
  757. border: none;
  758. border-left: 1px solid var(--grey6);
  759. width: var(--input_height);
  760. }
  761. QComboBox::down-arrow,
  762. QDateTimeEdit::down-arrow {
  763. qproperty-alignment: AlignTop;
  764. image: url(theme:Dark/collapse.svg);
  765. width: 100%;
  766. }
  767. QComboBox:editable:hover {
  768. background-color: var(--input_bg_hover);
  769. border-color: var(--input_border_hover);
  770. }
  771. QComboBox:on,
  772. QDateTimeEdit:on,
  773. QComboBox:editable:focus {
  774. background-color: var(--input_bg_focus);
  775. border-color: var(--input_border_focus);
  776. }
  777. QComboBox::drop-down:editable,
  778. QDateTimeEdit::drop-down:editable {
  779. border-top-right-radius: 4px;
  780. border-bottom-right-radius: 4px;
  781. }
  782. QComboBox::down-arrow:editable,
  783. QDateTimeEdit::down-arrow:editable {
  784. qproperty-alignment: AlignTop;
  785. image: url(theme:Dark/collapse.svg);
  786. width: 100%;
  787. }
  788. /* Textedits etc */
  789. QLineEdit,
  790. QTextEdit,
  791. QPlainTextEdit {
  792. background-color: var(--input_bg);
  793. border: none;
  794. border-radius: var(--border_radius);
  795. padding: var(--input_padding) var(--padding_small) var(--input_padding) var(--input_padding);
  796. padding-left: 8px;
  797. border: 1px solid var(--input_bg);
  798. height: var(--input_height);
  799. }
  800. QLineEdit:hover,
  801. QTextEdit:hover,
  802. QPlainTextEdit:hover {
  803. background-color: var(--input_bg_hover);
  804. border-color: var(--input_border_hover);
  805. }
  806. QLineEdit:focus,
  807. QTextEdit:focus,
  808. QPlainTextEdit:focus {
  809. background-color: var(--input_bg_focus);
  810. border-color: var(--input_border_focus);
  811. }
  812. QTextEdit:!editable,
  813. QTextEdit:!editable:hover,
  814. QTextEdit:!editable:focus {
  815. background-color: var(--input_bg);
  816. }
  817. /* Spinbox and doubleSpinbox */
  818. QSpinBox,
  819. QDoubleSpinBox {
  820. background-color: var(--input_bg);
  821. border: 1px solid var(--input_bg);
  822. border-radius: var(--border_radius);
  823. padding: var(--input_padding) 0px var(--input_padding) var(--input_padding);
  824. padding-left: 8px;
  825. max-height: var(--input_height);
  826. }
  827. QSpinBox:hover,
  828. QDoubleSpinBox:hover {
  829. background-color: var(--input_bg_hover);
  830. border-color: var(--input_border_hover);
  831. }
  832. QSpinBox:focus,
  833. QDoubleSpinBox:focus {
  834. background-color: var(--input_bg_focus);
  835. border-color: var(--input_border_focus);
  836. }
  837. QSpinBox::up-button,
  838. QDoubleSpinBox::up-button {
  839. subcontrol-origin: padding;
  840. /* position at the top right corner */
  841. subcontrol-position: top right;
  842. width: var(--input_height);
  843. height: var(--spinbox_button_height);
  844. border-left: 1px solid var(--grey6);
  845. border-bottom: 1px solid transparent;
  846. border-radius: 0px;
  847. border-top-right-radius: var(--border_radius_small);
  848. }
  849. QSpinBox::down-button,
  850. QDoubleSpinBox::down-button {
  851. subcontrol-origin: padding;
  852. /* position at the top right corner */
  853. subcontrol-position: bottom right;
  854. width: var(--input_height);
  855. height: var(--spinbox_button_height);
  856. border-left: 1px solid var(--grey6);
  857. border-top: 1px solid var(--grey6);
  858. border-radius: 0px;
  859. border-bottom-right-radius: var(--border_radius_small);
  860. }
  861. QSpinBox::up-button:hover,
  862. QSpinBox::down-button:hover,
  863. QDoubleSpinBox::up-button:hover,
  864. QDoubleSpinBox::down-button:hover {
  865. background-color: var(--button_bg_hover);
  866. }
  867. QSpinBox::up-button:pressed,
  868. QSpinBox::down-button:pressed,
  869. QDoubleSpinBox::up-button:pressed,
  870. QDoubleSpinBox::down-button:pressed {
  871. background-color: var(--button_bg_down);
  872. }
  873. QSpinBox::up-button:disabled,
  874. QSpinBox::up-button:off,
  875. QSpinBox::down-button:disabled,
  876. QSpinBox::down-button:off {
  877. background-color: var(--button_bg_disabled);
  878. }
  879. QDoubleSpinBox::up-button:disabled,
  880. QDoubleSpinBox::up-button:off,
  881. QDoubleSpinBox::down-button:disabled,
  882. QDoubleSpinBox::down-button:off {
  883. background-color: var(--button_bg_disabled);
  884. }
  885. QSpinBox::up-arrow,
  886. QDoubleSpinBox::up-arrow {
  887. image: url(theme:Dark/up.svg);
  888. width: 100%;
  889. margin: 2px;
  890. }
  891. QSpinBox::down-arrow,
  892. QDoubleSpinBox::down-arrow {
  893. image: url(theme:Dark/down.svg);
  894. width: 100%;
  895. padding: 2px;
  896. }
  897. /* Controls Dock */
  898. #controlsFrame {
  899. padding: var(--padding_large);
  900. }
  901. #controlsFrame QPushButton {
  902. margin: var(--spacing_base) var(--spacing_small);
  903. }
  904. #streamButton,
  905. #recordButton,
  906. #replayBufferButton,
  907. #broadcastButton {
  908. padding: var(--padding_large);
  909. }
  910. #pauseRecordButton,
  911. #saveReplayButton,
  912. #virtualCamConfigButton {
  913. padding: var(--padding_large) var(--padding_large);
  914. width: var(--input_height);
  915. max-width: var(--input_height);
  916. }
  917. /* Primary Control Button Checked Coloring */
  918. #streamButton:!hover:!pressed:checked,
  919. #recordButton:!hover:!pressed:checked,
  920. #replayBufferButton:!hover:!pressed:checked,
  921. #virtualCamButton:!hover:!pressed:checked,
  922. #modeSwitch:!hover:!pressed:checked,
  923. #broadcastButton:!hover:!pressed:checked {
  924. background: var(--primary);
  925. }
  926. /* Primary Control Button Hover Coloring */
  927. #streamButton:hover:!pressed:checked,
  928. #recordButton:hover:!pressed:checked,
  929. #replayBufferButton:!pressed:checked,
  930. #virtualCamButton:!pressed:checked,
  931. #modeSwitch:hover:!pressed:checked,
  932. #broadcastButton:hover:!pressed:checked {
  933. background: var(--primary_light);
  934. color: var(--text);
  935. }
  936. /* Buttons */
  937. QPushButton {
  938. color: var(--text);
  939. background-color: var(--button_bg);
  940. border-radius: var(--border_radius);
  941. height: var(--input_height);
  942. max-height: var(--input_height);
  943. padding: var(--input_padding) var(--padding_wide);
  944. icon-size: var(--icon_base);
  945. }
  946. QPushButton {
  947. border: 1px solid var(--button_border);
  948. }
  949. QToolButton {
  950. border: 1px solid var(--button_border);
  951. }
  952. QToolButton,
  953. .btn-tool {
  954. background-color: var(--button_bg);
  955. padding: var(--padding_base) var(--padding_base);
  956. margin: 0px var(--spacing_base);
  957. border: 1px solid var(--button_border);
  958. border-radius: var(--border_radius);
  959. icon-size: var(--icon_base);
  960. }
  961. QToolButton:last-child,
  962. .btn-tool:last-child {
  963. margin-right: 0px;
  964. }
  965. QPushButton:hover,
  966. QPushButton:focus {
  967. border-color: var(--button_border_hover);
  968. }
  969. QPushButton:hover {
  970. background-color: var(--button_bg_hover);
  971. }
  972. QToolButton:hover,
  973. QToolButton:focus,
  974. .btn-tool:hover,
  975. .btn-tool:focus,
  976. .indicator-mute::indicator:hover,
  977. .indicator-mute::indicator:focus {
  978. border-color: var(--button_border);
  979. background-color: var(--button_bg_hover);
  980. }
  981. QPushButton::flat {
  982. background-color: var(--button_bg);
  983. }
  984. QPushButton:checked {
  985. background-color: var(--primary);
  986. }
  987. QPushButton:checked:hover,
  988. QPushButton:checked:focus {
  989. border-color: var(--primary_lighter);
  990. }
  991. QPushButton:pressed,
  992. QPushButton:pressed:hover {
  993. background-color: var(--button_bg_down);
  994. border-color: var(--button_border);
  995. }
  996. QToolButton:pressed,
  997. QToolButton:pressed:hover,
  998. .btn-tool:pressed,
  999. .btn-tool:pressed:hover {
  1000. background-color: var(--button_bg_down);
  1001. border-color: var(--button_border);
  1002. }
  1003. QPushButton:disabled {
  1004. background-color: var(--button_bg_disabled);
  1005. border-color: var(--button_border);
  1006. }
  1007. QToolButton:disabled,
  1008. .btn-tool:disabled {
  1009. background-color: var(--button_bg_disabled);
  1010. border-color: transparent;
  1011. }
  1012. QPushButton::menu-indicator {
  1013. image: url(theme:Dark/down.svg);
  1014. subcontrol-position: right;
  1015. subcontrol-origin: padding;
  1016. width: 25px;
  1017. }
  1018. /* Sliders */
  1019. QSlider::groove {
  1020. background-color: var(--grey4);
  1021. border: none;
  1022. border-radius: 2px;
  1023. }
  1024. QSlider::groove:horizontal {
  1025. height: 4px;
  1026. }
  1027. QSlider::groove:vertical {
  1028. width: 4px;
  1029. }
  1030. QSlider::sub-page:horizontal {
  1031. background-color: var(--blue2);
  1032. border-radius: 2px;
  1033. }
  1034. QSlider::sub-page:horizontal:disabled {
  1035. background-color: var(--grey4);
  1036. border-radius: 2px;
  1037. }
  1038. QSlider::add-page:horizontal:disabled {
  1039. background-color: var(--grey7);
  1040. border-radius: 2px;
  1041. }
  1042. QSlider::add-page:vertical {
  1043. background-color: var(--blue2);
  1044. border-radius: 2px;
  1045. }
  1046. QSlider::add-page:vertical:disabled {
  1047. background-color: var(--grey4);
  1048. border-radius: 2px;
  1049. }
  1050. QSlider::sub-page:vertical:disabled {
  1051. background-color: var(--grey7);
  1052. border-radius: 2px;
  1053. }
  1054. QSlider::handle {
  1055. background-color: var(--white1);
  1056. border-radius: var(--border_radius);
  1057. }
  1058. QSlider::handle:horizontal {
  1059. height: 10px;
  1060. width: 20px;
  1061. /* Handle is placed by default on the contents rect of the groove. Expand outside the groove */
  1062. margin: -3px 0;
  1063. }
  1064. QSlider::handle:vertical {
  1065. width: 10px;
  1066. height: 20px;
  1067. /* Handle is placed by default on the contents rect of the groove. Expand outside the groove */
  1068. margin: 0 -3px;
  1069. }
  1070. QSlider::handle:hover {
  1071. background-color: var(--white4);
  1072. }
  1073. QSlider::handle:pressed {
  1074. background-color: var(--white5);
  1075. }
  1076. QSlider::handle:disabled {
  1077. background-color: var(--white5);
  1078. }
  1079. /* Volume Control */
  1080. #stackedMixerArea QPushButton {
  1081. width: var(--icon_base);
  1082. height: var(--icon_base);
  1083. background-color: var(--button_bg);
  1084. padding: var(--padding_base_border) var(--padding_base_border);
  1085. margin: 0px;
  1086. border: 1px solid var(--button_border);
  1087. border-radius: var(--border_radius);
  1088. icon-size: var(--icon_base);
  1089. }
  1090. /* This is an incredibly cursed but necessary fix */
  1091. #stackedMixerArea QPushButton:!hover {
  1092. background-color: var(--button_bg);
  1093. }
  1094. #stackedMixerArea QPushButton:hover {
  1095. background-color: var(--button_bg_hover);
  1096. border-color: var(--button_border_hover);
  1097. }
  1098. #stackedMixerArea QPushButton:pressed {
  1099. background-color: var(--button_bg_down);
  1100. }
  1101. #stackedMixerArea {
  1102. border: none;
  1103. padding: 0px;
  1104. border-bottom: 1px solid #3c404b;
  1105. }
  1106. VolControl #volLabel {
  1107. padding: var(--padding_base) 0px var(--padding_base);
  1108. text-align: center;
  1109. font-size: var(--font_base);
  1110. color: var(--text_muted);
  1111. }
  1112. /* Horizontal Mixer */
  1113. #hMixerScrollArea VolControl {
  1114. padding: 0px var(--padding_xlarge) var(--padding_base);
  1115. border-bottom: 1px solid var(--border_color);
  1116. }
  1117. #hMixerScrollArea VolControl QSlider {
  1118. margin: 0px 0px var(--padding_base);
  1119. }
  1120. #hMixerScrollArea VolControl QSlider::groove:horizontal {
  1121. background: var(--bg_window);
  1122. height: var(--volume_slider);
  1123. }
  1124. /* Vertical Mixer */
  1125. #stackedMixerArea QScrollBar:vertical {
  1126. border-left: 1px solid var(--border_color);
  1127. }
  1128. #vMixerScrollArea VolControl {
  1129. padding: var(--padding_large) 0px var(--padding_base);
  1130. border-right: 1px solid var(--border_color);
  1131. }
  1132. #vMixerScrollArea VolControl QSlider {
  1133. width: var(--volume_slider_box);
  1134. margin: 0px var(--padding_xlarge);
  1135. }
  1136. #vMixerScrollArea VolControl #volLabel {
  1137. padding: var(--padding_base) 0px var(--padding_base);
  1138. min-width: var(--volume_slider_label);
  1139. margin-left: var(--padding_xlarge);
  1140. text-align: center;
  1141. }
  1142. #vMixerScrollArea VolControl QSlider::groove:vertical {
  1143. background: var(--bg_window);
  1144. width: var(--volume_slider);
  1145. }
  1146. #vMixerScrollArea VolControl #volMeterFrame {
  1147. padding: var(--padding_large) var(--padding_xlarge) var(--padding_large) 0px;
  1148. }
  1149. #vMixerScrollArea VolControl QLabel {
  1150. padding: 0px var(--padding_large);
  1151. }
  1152. #vMixerScrollArea VolControl QPushButton {
  1153. margin-right: var(--padding_xlarge);
  1154. }
  1155. #vMixerScrollArea VolControl .indicator-mute {
  1156. margin-left: var(--padding_xlarge);
  1157. }
  1158. VolControl {
  1159. background: var(--bg_base);
  1160. }
  1161. VolumeMeter {
  1162. background: transparent;
  1163. }
  1164. VolumeMeter {
  1165. qproperty-backgroundNominalColor: var(--green5);
  1166. qproperty-backgroundWarningColor: var(--yellow5);
  1167. qproperty-backgroundErrorColor: var(--red5);
  1168. qproperty-foregroundNominalColor: var(--green2);
  1169. qproperty-foregroundWarningColor: var(--yellow2);
  1170. qproperty-foregroundErrorColor: var(--red2);
  1171. qproperty-magnitudeColor: rgb(0, 0, 0);
  1172. qproperty-majorTickColor: var(--white1);
  1173. qproperty-minorTickColor: var(--grey1);
  1174. }
  1175. /* Status Bar */
  1176. QStatusBar::item {
  1177. border: none;
  1178. }
  1179. /* Table View */
  1180. QTableView {
  1181. background: var(--bg_base);
  1182. gridline-color: var(--grey1);
  1183. }
  1184. QTableView::item {
  1185. margin: 0px;
  1186. padding: 0px;
  1187. }
  1188. QTableView QLineEdit {
  1189. background: var(--input_bg_focus);
  1190. padding: 0;
  1191. margin: 0;
  1192. }
  1193. QTableView QPushButton,
  1194. QTableView QToolButton {
  1195. padding: 0px;
  1196. margin: -1px;
  1197. border-radius: 0px;
  1198. }
  1199. QHeaderView::section {
  1200. background-color: var(--button_bg);
  1201. color: var(--text);
  1202. border: none;
  1203. border-left: 1px solid var(--bg_window);
  1204. border-right: 1px solid var(--bg_window);
  1205. padding: 3px 0px;
  1206. margin-bottom: 2px;
  1207. }
  1208. /* Canvas / Preview background color */
  1209. OBSQTDisplay {
  1210. qproperty-displayBackgroundColor: var(--bg_preview);
  1211. }
  1212. /* Filters Window */
  1213. OBSBasicFilters QListWidget {
  1214. border-radius: var(--border_radius_large);
  1215. padding: var(--spacing_base);
  1216. }
  1217. OBSBasicFilters QListWidget::item {
  1218. border-radius: var(--border_radius);
  1219. padding: var(--padding_base) var(--padding_large);
  1220. }
  1221. OBSBasicFilters #widget,
  1222. OBSBasicFilters #widget_2 {
  1223. margin: 0px;
  1224. padding: 0px;
  1225. padding-bottom: var(--padding_base);
  1226. }
  1227. OBSBasicFilters #widget QPushButton,
  1228. OBSBasicFilters #widget_2 QPushButton {
  1229. min-width: 16px;
  1230. padding: var(--padding_base) var(--padding_large);
  1231. margin-top: 0px;
  1232. }
  1233. /* Preview/Program labels */
  1234. .label-preview-title {
  1235. font-size: var(--font_xlarge);
  1236. font-weight: bold;
  1237. color: var(--text_light);
  1238. margin-bottom: 4px;
  1239. }
  1240. /* Settings Icons */
  1241. OBSBasicSettings {
  1242. qproperty-generalIcon: url(theme:Dark/settings/general.svg);
  1243. qproperty-appearanceIcon: url(theme:Dark/settings/appearance.svg);
  1244. qproperty-streamIcon: url(theme:Dark/settings/stream.svg);
  1245. qproperty-outputIcon: url(theme:Dark/settings/output.svg);
  1246. qproperty-audioIcon: url(theme:Dark/settings/audio.svg);
  1247. qproperty-videoIcon: url(theme:Dark/settings/video.svg);
  1248. qproperty-hotkeysIcon: url(theme:Dark/settings/hotkeys.svg);
  1249. qproperty-accessibilityIcon: url(theme:Dark/settings/accessibility.svg);
  1250. qproperty-advancedIcon: url(theme:Dark/settings/advanced.svg);
  1251. }
  1252. /* Checkboxes */
  1253. QCheckBox::indicator,
  1254. QGroupBox::indicator,
  1255. QTableView::indicator {
  1256. width: var(--icon_base);
  1257. height: var(--icon_base);
  1258. }
  1259. QGroupBox::indicator {
  1260. margin-left: 2px;
  1261. }
  1262. QCheckBox::indicator:unchecked,
  1263. QGroupBox::indicator:unchecked,
  1264. QTableView::indicator:unchecked {
  1265. image: url(theme:Yami/checkbox_unchecked.svg);
  1266. }
  1267. QCheckBox::indicator:unchecked:hover,
  1268. QGroupBox::indicator:unchecked:hover,
  1269. QTableView::indicator:unchecked:hover {
  1270. border: none;
  1271. image: url(theme:Yami/checkbox_unchecked_focus.svg);
  1272. }
  1273. QCheckBox::indicator:checked,
  1274. QGroupBox::indicator:checked,
  1275. QTableView::indicator:checked {
  1276. image: url(theme:Yami/checkbox_checked.svg);
  1277. }
  1278. QCheckBox::indicator:checked:hover,
  1279. QGroupBox::indicator:checked:hover,
  1280. QTableView::indicator:checked:hover {
  1281. image: url(theme:Yami/checkbox_checked_focus.svg);
  1282. }
  1283. QCheckBox::indicator:checked:disabled,
  1284. QGroupBox::indicator:checked:disabled,
  1285. QTableView::indicator:checked:disabled {
  1286. image: url(theme:Yami/checkbox_checked_disabled.svg);
  1287. }
  1288. QCheckBox::indicator:unchecked:disabled,
  1289. QGroupBox::indicator:unchecked:disabled,
  1290. QTableView::indicator:unchecked:disabled {
  1291. image: url(theme:Yami/checkbox_unchecked_disabled.svg);
  1292. }
  1293. /* Icon Checkboxes */
  1294. .checkbox-icon {
  1295. outline: none;
  1296. background: transparent;
  1297. max-width: var(--icon_base);
  1298. max-height: var(--icon_base);
  1299. padding: var(--padding_base);
  1300. margin-right: var(--spacing_large);
  1301. border: 1px solid transparent;
  1302. border-radius: 4px;
  1303. }
  1304. .checkbox-icon::indicator {
  1305. width: var(--icon_base);
  1306. height: var(--icon_base);
  1307. }
  1308. .checkbox-icon:hover,
  1309. .checkbox-icon:focus {
  1310. border-color: var(--primary_lighter);
  1311. }
  1312. /* Locked CheckBox */
  1313. .indicator-lock::indicator:checked,
  1314. .indicator-lock::indicator:checked:hover {
  1315. image: url(theme:Dark/locked.svg);
  1316. }
  1317. .indicator-lock::indicator:unchecked,
  1318. .indicator-lock::indicator:unchecked:hover {
  1319. image: url(:res/images/unlocked.svg);
  1320. }
  1321. /* Visibility CheckBox */
  1322. .indicator-visibility::indicator:checked,
  1323. .indicator-visibility::indicator:checked:hover {
  1324. image: url(theme:Dark/visible.svg);
  1325. }
  1326. .indicator-visibility::indicator:unchecked,
  1327. .indicator-visibility::indicator:unchecked:hover {
  1328. image: url(:res/images/invisible.svg);
  1329. }
  1330. /* Mute CheckBox */
  1331. .indicator-mute {
  1332. outline: none;
  1333. }
  1334. .indicator-mute::indicator,
  1335. .indicator-mute::indicator:unchecked {
  1336. width: var(--icon_base);
  1337. height: var(--icon_base);
  1338. background-color: var(--button_bg);
  1339. padding: var(--padding_base_border) var(--padding_base_border);
  1340. margin: 0px;
  1341. border: 1px solid var(--button_border);
  1342. border-radius: var(--border_radius);
  1343. icon-size: var(--icon_base);
  1344. }
  1345. .indicator-mute::indicator:hover,
  1346. .indicator-mute::indicator:unchecked:hover {
  1347. background-color: var(--button_bg_hover);
  1348. padding: var(--padding_base_border) var(--padding_base_border);
  1349. margin: 0px;
  1350. border: 1px solid var(--button_border_hover);
  1351. icon-size: var(--icon_base);
  1352. }
  1353. .indicator-mute::indicator:pressed,
  1354. .indicator-mute::indicator:pressed:hover {
  1355. background-color: var(--button_bg_down);
  1356. border-color: var(--button_border);
  1357. }
  1358. .indicator-mute::indicator:checked {
  1359. image: url(theme:Dark/mute.svg);
  1360. }
  1361. .indicator-mute::indicator:indeterminate {
  1362. image: url(theme:Dark/unassigned.svg);
  1363. }
  1364. .indicator-mute::indicator:unchecked {
  1365. image: url(theme:Dark/settings/audio.svg);
  1366. }
  1367. .indicator-mute::indicator:unchecked:hover {
  1368. image: url(theme:Dark/settings/audio.svg);
  1369. }
  1370. .indicator-mute::indicator:unchecked:focus {
  1371. image: url(theme:Dark/settings/audio.svg);
  1372. }
  1373. .indicator-mute::indicator:checked:hover {
  1374. image: url(theme:Dark/mute.svg);
  1375. }
  1376. .indicator-mute::indicator:checked:focus {
  1377. image: url(theme:Dark/mute.svg);
  1378. }
  1379. .indicator-mute::indicator:checked:disabled {
  1380. image: url(theme:Dark/mute.svg);
  1381. }
  1382. .indicator-mute::indicator:unchecked:disabled {
  1383. image: url(theme:Dark/settings/audio.svg);
  1384. }
  1385. #hotkeyFilterReset {
  1386. margin-top: 0px;
  1387. }
  1388. OBSHotkeyWidget {
  1389. padding: 8px 0px;
  1390. margin: 2px 0px;
  1391. }
  1392. OBSHotkeyLabel {
  1393. padding: 4px 0px;
  1394. }
  1395. OBSHotkeyWidget QPushButton {
  1396. min-width: 16px;
  1397. padding: var(--padding_base);
  1398. margin-top: 0px;
  1399. margin-left: var(--spacing_base);
  1400. }
  1401. /* Sources List Group Collapse Checkbox */
  1402. .indicator-expand::indicator:checked,
  1403. .indicator-expand::indicator:checked:hover {
  1404. image: url(theme:Dark/expand.svg);
  1405. }
  1406. .indicator-expand::indicator:unchecked,
  1407. .indicator-expand::indicator:unchecked:hover {
  1408. image: url(theme:Dark/collapse.svg);
  1409. }
  1410. /* Source Icons */
  1411. .source-icon {
  1412. margin-right: var(--spacing_large);
  1413. }
  1414. OBSBasic {
  1415. qproperty-imageIcon: url(theme:Dark/sources/image.svg);
  1416. qproperty-colorIcon: url(theme:Dark/sources/brush.svg);
  1417. qproperty-slideshowIcon: url(theme:Dark/sources/slideshow.svg);
  1418. qproperty-audioInputIcon: url(theme:Dark/sources/microphone.svg);
  1419. qproperty-audioOutputIcon: url(theme:Dark/settings/audio.svg);
  1420. qproperty-desktopCapIcon: url(theme:Dark/settings/video.svg);
  1421. qproperty-windowCapIcon: url(theme:Dark/sources/window.svg);
  1422. qproperty-gameCapIcon: url(theme:Dark/sources/gamepad.svg);
  1423. qproperty-cameraIcon: url(theme:Dark/sources/camera.svg);
  1424. qproperty-textIcon: url(theme:Dark/sources/text.svg);
  1425. qproperty-mediaIcon: url(theme:Dark/sources/media.svg);
  1426. qproperty-browserIcon: url(theme:Dark/sources/globe.svg);
  1427. qproperty-groupIcon: url(theme:Dark/sources/group.svg);
  1428. qproperty-sceneIcon: url(theme:Dark/sources/scene.svg);
  1429. qproperty-defaultIcon: url(theme:Dark/sources/default.svg);
  1430. qproperty-audioProcessOutputIcon: url(theme:Dark/sources/windowaudio.svg);
  1431. }
  1432. /* Scene Tree Grid Mode */
  1433. SceneTree {
  1434. qproperty-gridItemWidth: 154;
  1435. qproperty-gridItemHeight: var(--input_height_base);
  1436. }
  1437. .list-grid SceneTree::item {
  1438. color: var(--text);
  1439. background-color: var(--button_bg);
  1440. border-radius: var(--border_radius);
  1441. margin: var(--spacing_base);
  1442. }
  1443. .list-grid SceneTree::item:selected {
  1444. background-color: var(--list_item_bg_selected);
  1445. }
  1446. .list-grid SceneTree::item:checked {
  1447. background-color: var(--primary);
  1448. }
  1449. .list-grid SceneTree::item:hover {
  1450. background-color: var(--list_item_bg_hover);
  1451. }
  1452. .list-grid SceneTree::item:selected:hover {
  1453. background-color: var(--list_item_bg_hover);
  1454. }
  1455. /* Studio Mode T-Bar */
  1456. .slider-tbar {
  1457. height: 24px;
  1458. }
  1459. .slider-tbar::groove:horizontal {
  1460. height: 8px;
  1461. }
  1462. .slider-tbar::sub-page:horizontal {
  1463. background: var(--blue2);
  1464. }
  1465. .slider-tbar::handle:horizontal {
  1466. width: 12px;
  1467. height: 24px;
  1468. margin: -24px 0px;
  1469. }
  1470. /* YouTube Integration */
  1471. OBSYoutubeActions {
  1472. qproperty-thumbPlaceholder: url(theme:Dark/sources/image.svg);
  1473. }
  1474. #ytEventList QLabel {
  1475. color: var(--text);
  1476. background-color: var(--button_bg);
  1477. border: none;
  1478. border-radius: var(--border_radius);
  1479. padding: 4px 20px;
  1480. }
  1481. #ytEventList QLabel:hover {
  1482. background-color: var(--button_bg_hover);
  1483. }
  1484. #ytEventList .row-selected {
  1485. background-color: var(--primary);
  1486. border: none;
  1487. }
  1488. #ytEventList .row-selected:hover {
  1489. background-color: var(--primary_light);
  1490. color: var(--text);
  1491. }
  1492. /* Calendar Widget */
  1493. QDateTimeEdit::down-arrow {
  1494. qproperty-alignment: AlignTop;
  1495. image: url(theme:Dark/down.svg);
  1496. width: 100%;
  1497. }
  1498. QDateTimeEdit:on {
  1499. background-color: var(--grey7);
  1500. }
  1501. /* Calendar Top Bar */
  1502. QCalendarWidget QWidget#qt_calendar_navigationbar {
  1503. background-color: var(--bg_base);
  1504. padding: var(--padding_base) var(--padding_large);
  1505. }
  1506. /* Calendar Top Bar Buttons */
  1507. QCalendarWidget QToolButton {
  1508. background-color: var(--button_bg);
  1509. padding: 2px 16px;
  1510. border-radius: var(--border_radius);
  1511. margin: var(--spacing_base);
  1512. }
  1513. #qt_calendar_monthbutton::menu-indicator {
  1514. image: url(theme:Dark/down.svg);
  1515. subcontrol-position: right;
  1516. padding-top: var(--padding_small);
  1517. padding-right: var(--padding_base);
  1518. height: 10px;
  1519. width: 10px;
  1520. }
  1521. QCalendarWidget #qt_calendar_prevmonth {
  1522. padding: var(--padding_small);
  1523. qproperty-icon: url(theme:Dark/left.svg);
  1524. icon-size: var(--icon_base);
  1525. }
  1526. QCalendarWidget #qt_calendar_nextmonth {
  1527. padding: var(--padding_small);
  1528. qproperty-icon: url(theme:Dark/right.svg);
  1529. icon-size: var(--icon_base);
  1530. }
  1531. QCalendarWidget QToolButton:hover {
  1532. background-color: var(--button_bg_hover);
  1533. border-radius: var(--border_radius);
  1534. }
  1535. QCalendarWidget QToolButton:pressed {
  1536. background-color: var(--button_bg_down);
  1537. }
  1538. /* Month Dropdown Menu */
  1539. QCalendarWidget QMenu {}
  1540. /* Year spinbox */
  1541. QCalendarWidget QSpinBox {
  1542. background-color: var(--input_bg);
  1543. border: none;
  1544. border-radius: var(--border_radius);
  1545. margin: 0px var(--spacing_base) 0px 0px;
  1546. padding: var(--padding_base) 16px;
  1547. }
  1548. QCalendarWidget QSpinBox::up-button {
  1549. subcontrol-origin: border;
  1550. subcontrol-position: top right;
  1551. width: 16px;
  1552. }
  1553. QCalendarWidget QSpinBox::down-button {
  1554. subcontrol-origin: border;
  1555. subcontrol-position: bottom right;
  1556. width: 16px;
  1557. }
  1558. QCalendarWidget QSpinBox::up-arrow {
  1559. width: 10px;
  1560. height: 10px;
  1561. }
  1562. QCalendarWidget QSpinBox::down-arrow {
  1563. width: 10px;
  1564. height: 10px;
  1565. }
  1566. /* Days of the Week Bar */
  1567. QCalendarWidget QWidget {
  1568. alternate-background-color: var(--grey7);
  1569. }
  1570. QCalendarWidget QAbstractItemView:enabled {
  1571. background-color: var(--bg_base);
  1572. color: var(--text);
  1573. }
  1574. QCalendarWidget QAbstractItemView:disabled {
  1575. color: var(--text_disabled);
  1576. }
  1577. /* VirtualCam Plugin Fixes */
  1578. #VirtualProperties QWidget {
  1579. margin-top: 0;
  1580. margin-bottom: 0;
  1581. }
  1582. /* Disable icons on QDialogButtonBox */
  1583. QDialogButtonBox {
  1584. dialogbuttonbox-buttons-have-icons: 0;
  1585. }
  1586. /* Stats dialog */
  1587. OBSBasicStats {
  1588. background: var(--bg_base);
  1589. }
  1590. /* Advanced audio dialog */
  1591. OBSBasicAdvAudio #scrollAreaWidgetContents {
  1592. background: var(--bg_base);
  1593. }
  1594. #previewScalePercent,
  1595. #previewScalingMode {
  1596. background: transparent;
  1597. color: var(--text_muted);
  1598. font-size: var(--font_xsmall);
  1599. height: 14px;
  1600. max-height: 14px;
  1601. padding: 0px var(--padding_xlarge);
  1602. margin: 0;
  1603. border: none;
  1604. border-radius: 0;
  1605. }
  1606. #previewXContainer {
  1607. border: 1px solid var(--grey6);
  1608. }
  1609. #previewScalingMode {
  1610. border: 1px solid var(--grey6);
  1611. }
  1612. #previewScalingMode:hover,
  1613. #previewScalingMode:focus {
  1614. border-color: var(--input_border_hover);
  1615. }
  1616. #previewScalingMode:on {
  1617. background-color: var(--input_bg_focus);
  1618. border-color: var(--input_border_focus);
  1619. }
  1620. #previewXScrollBar,
  1621. #previewYScrollBar {
  1622. background: transparent;
  1623. border: 1px solid var(--grey6);
  1624. border-radius: 0;
  1625. }
  1626. #previewXScrollBar {
  1627. border-left: none;
  1628. height: 16px;
  1629. }
  1630. #previewXScrollBar::handle,
  1631. #previewYScrollBar::handle {
  1632. margin: 3px;
  1633. }
  1634. #previewYScrollBar {
  1635. width: 16px;
  1636. }
  1637. #previewZoomInButton {
  1638. border: none;
  1639. border-radius: 0px;
  1640. outline: none;
  1641. }
  1642. #previewZoomOutButton {
  1643. border: none;
  1644. border-radius: 0px;
  1645. outline: none;
  1646. }
  1647. #previewZoomInButton:!hover,
  1648. #previewZoomOutButton:!hover {
  1649. background-color: transparent;
  1650. }
  1651. #previewZoomInButton:pressed,
  1652. #previewZoomOutButton:pressed {
  1653. background-color: var(--button_bg);
  1654. }
  1655. #previewZoomInButton:focus,
  1656. #previewZoomOutButton:focus {
  1657. border: 1px solid var(--input_border_hover);
  1658. }