Yami.obt 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995
  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::icon {
  361. left: 4px;
  362. }
  363. QMenu::separator {
  364. background: var(--button_bg);
  365. height: 1px;
  366. margin: var(--spacing_base) var(--spacing_large);
  367. }
  368. QMenu::item:disabled {
  369. color: var(--text_disabled);
  370. background: transparent;
  371. }
  372. QMenu::right-arrow {
  373. image: url(theme:Dark/expand.svg);
  374. }
  375. /* Top Menu Bar Items */
  376. QMenuBar::item {
  377. background-color: transparent;
  378. }
  379. QMenuBar::item:selected {
  380. background: var(--primary);
  381. }
  382. /* Item Lists */
  383. QListWidget {
  384. border-radius: var(--border_radius);
  385. }
  386. QListWidget::item {
  387. color: var(--text);
  388. }
  389. QListWidget,
  390. QMenu,
  391. SceneTree,
  392. SourceTree {
  393. padding: var(--spacing_base);
  394. }
  395. QListWidget::item,
  396. SourceTreeItem,
  397. SceneTree::item {
  398. padding: var(--padding_large) var(--padding_large);
  399. }
  400. QMenu::item {
  401. padding: var(--padding_large) var(--padding_menu);
  402. }
  403. QMenu::item {
  404. padding-right: 20px;
  405. }
  406. QListWidget::item,
  407. SourceTreeItem,
  408. QMenu::item,
  409. SceneTree::item {
  410. border-radius: var(--border_radius);
  411. color: var(--text);
  412. border: 1px solid transparent;
  413. }
  414. SourceTree::item {
  415. border-radius: var(--border_radius);
  416. color: var(--text);
  417. }
  418. QMenu::item:selected,
  419. QListWidget::item:selected,
  420. SceneTree::item:selected,
  421. SourceTree::item:selected {
  422. background-color: var(--primary);
  423. }
  424. QMenu::item:hover,
  425. QListWidget::item:hover,
  426. SceneTree::item:hover,
  427. SourceTree::item:hover,
  428. QMenu::item:selected:hover,
  429. QListWidget::item:selected:hover,
  430. SceneTree::item:selected:hover,
  431. SourceTree::item:selected:hover {
  432. background-color: var(--primary_light);
  433. color: var(--text);
  434. }
  435. QMenu::item:focus,
  436. QListWidget::item:focus,
  437. SceneTree::item:focus,
  438. SourceTree::item:focus,
  439. QMenu::item:selected:focus,
  440. QListWidget::item:selected:focus,
  441. SceneTree::item:selected:focus,
  442. SourceTree::item:selected:focus {
  443. border: 1px solid var(--border_highlight);
  444. }
  445. QListWidget::item:disabled,
  446. QListWidget::item:disabled:hover,
  447. SourceTree::item:disabled,
  448. SourceTree::item:disabled:hover,
  449. SceneTree::item:disabled,
  450. SceneTree::item:disabled:hover {
  451. background: transparent;
  452. color: var(--text_disabled);
  453. }
  454. QListWidget QLineEdit,
  455. SceneTree QLineEdit,
  456. SourceTree QLineEdit {
  457. padding: 0;
  458. padding-bottom: 1px;
  459. margin: 0;
  460. border: 1px solid var(--white1);
  461. border-radius: var(--border_radius);
  462. }
  463. QListWidget QLineEdit:focus,
  464. SceneTree QLineEdit:focus,
  465. SourceTree QLineEdit:focus {
  466. border: 1px solid var(--grey1);
  467. }
  468. /* Settings QList */
  469. OBSBasicSettings QListWidget {
  470. border-radius: var(--border_radius);
  471. padding: var(--spacing_base);
  472. }
  473. OBSBasicSettings QListWidget::item {
  474. border-radius: var(--border_radius);
  475. padding: var(--padding_large);
  476. }
  477. OBSBasicSettings QScrollBar:vertical {
  478. width: var(--settings_scrollbar_size);
  479. margin-left: 9px;
  480. }
  481. OBSBasicSettings QScrollBar:horizontal {
  482. height: var(--settings_scrollbar_size);
  483. margin-top: 9px;
  484. }
  485. /* Settings properties view */
  486. OBSBasicSettings #PropertiesContainer {
  487. background-color: var(--bg_base);
  488. }
  489. /* Dock Widget */
  490. OBSDock > QWidget {
  491. background: var(--bg_base);
  492. border-bottom-left-radius: var(--border_radius);
  493. border-bottom-right-radius: var(--border_radius);
  494. border: 1px solid var(--border_color);
  495. border-top: none;
  496. }
  497. #transitionsFrame {
  498. padding: var(--padding_large);
  499. }
  500. OBSDock QLabel {
  501. background: transparent;
  502. }
  503. QDockWidget {
  504. font-size: var(--font_base);
  505. font-weight: bold;
  506. titlebar-close-icon: url(theme:Dark/close.svg);
  507. titlebar-normal-icon: url(theme:Dark/popout.svg);
  508. }
  509. QDockWidget::title {
  510. text-align: left;
  511. background-color: var(--button_bg);
  512. padding: var(--padding_large);
  513. border-top-left-radius: var(--border_radius);
  514. border-top-right-radius: var(--border_radius);
  515. }
  516. QDockWidget::close-button,
  517. QDockWidget::float-button {
  518. border: none;
  519. border-radius: var(--border_radius);
  520. background: transparent;
  521. margin-right: 1px;
  522. }
  523. QDockWidget::close-button:hover,
  524. QDockWidget::float-button:hover {
  525. background: var(--button_bg_hover);
  526. }
  527. QDockWidget::close-button:pressed,
  528. QDockWidget::float-button:pressed {
  529. padding: 1px -1px -1px 1px;
  530. }
  531. QScrollArea {
  532. border-radius: var(--border_radius);
  533. }
  534. /* Qt enforces a padding inside its status bar, so we
  535. * oversize it and use margin to crunch it back down
  536. */
  537. OBSBasicStatusBar {
  538. margin-top: 4px;
  539. border-top: 1px solid var(--border_color);
  540. background: var(--bg_base);
  541. }
  542. StatusBarWidget > QFrame {
  543. margin-top: 1px;
  544. border: 0px solid var(--border_color);
  545. border-left-width: 1px;
  546. padding: 0px 8px 2px;
  547. }
  548. /* Group Box */
  549. QGroupBox {
  550. background: var(--bg_base);
  551. border-radius: var(--border_radius);
  552. padding-top: var(--input_height_base);
  553. padding-bottom: var(--padding_large);
  554. font-weight: bold;
  555. margin-bottom: var(--spacing_large);
  556. }
  557. QGroupBox::title {
  558. subcontrol-origin: margin;
  559. left: var(--spacing_title);
  560. top: var(--spacing_title);
  561. }
  562. /* ScrollBars */
  563. QScrollBar {
  564. background-color: var(--grey6);
  565. margin: 0px;
  566. border-radius: var(--border_radius);
  567. }
  568. ::corner {
  569. background-color: var(--bg_window);
  570. border: none;
  571. }
  572. QScrollBar:vertical {
  573. width: var(--scrollbar_size);
  574. }
  575. QScrollBar::add-line:vertical,
  576. QScrollBar::sub-line:vertical {
  577. border: none;
  578. background: none;
  579. height: 0px;
  580. }
  581. QScrollBar::up-arrow:vertical,
  582. QScrollBar::down-arrow:vertical,
  583. QScrollBar::add-page:vertical,
  584. QScrollBar::sub-page:vertical {
  585. border: none;
  586. background: none;
  587. color: none;
  588. }
  589. QScrollBar:horizontal {
  590. height: var(--scrollbar_size);
  591. }
  592. QScrollBar::add-line:horizontal,
  593. QScrollBar::sub-line:horizontal {
  594. border: none;
  595. background: none;
  596. width: 0px;
  597. }
  598. QScrollBar::left-arrow:horizontal,
  599. QScrollBar::right-arrow:horizontal,
  600. QScrollBar::add-page:horizontal,
  601. QScrollBar::sub-page:horizontal {
  602. border: none;
  603. background: none;
  604. color: none;
  605. }
  606. QScrollBar::handle {
  607. background-color: var(--scrollbar);
  608. margin: 2px;
  609. border-radius: var(--border_radius_small);
  610. border: 1px solid var(--scrollbar);
  611. }
  612. QScrollBar::handle:hover {
  613. background-color: var(--scrollbar_hover);
  614. border-color: var(--scrollbar_border);
  615. }
  616. QScrollBar::handle:pressed {
  617. background-color: var(--scrollbar_down);
  618. border-color: var(--scrollbar_down);
  619. }
  620. QScrollBar::handle:vertical {
  621. min-height: 32px;
  622. }
  623. QScrollBar::handle:horizontal {
  624. min-width: 32px;
  625. }
  626. QScrollBar::handle:disabled {
  627. background: transparent;
  628. border-color: transparent;
  629. }
  630. /* Source Context Bar */
  631. #contextContainer {
  632. background-color: var(--bg_base);
  633. margin-top: 4px;
  634. border-radius: var(--border_radius);
  635. }
  636. #contextContainer QPushButton {
  637. padding-left: 12px;
  638. padding-right: 12px;
  639. }
  640. QPushButton#sourcePropertiesButton {
  641. qproperty-icon: url(theme:Dark/settings/general.svg);
  642. icon-size: var(--icon_base);
  643. }
  644. QPushButton#sourceFiltersButton {
  645. qproperty-icon: url(theme:Dark/filter.svg);
  646. icon-size: var(--icon_base);
  647. }
  648. /* Scenes and Sources toolbar */
  649. QToolBar {
  650. background-color: transparent;
  651. border: none;
  652. margin: var(--spacing_base) 0px;
  653. }
  654. QToolBarExtension {
  655. background: var(--button_bg);
  656. min-width: 12px;
  657. max-width: 12px;
  658. padding: 4px 0px;
  659. margin-left: 0px;
  660. qproperty-icon: url(theme:Dark/dots-vert.svg);
  661. }
  662. /* Tab Widget */
  663. /* The tab widget frame */
  664. QTabWidget::pane {
  665. border-top: 4px solid var(--tab_bg);
  666. }
  667. QTabWidget::tab-bar {
  668. alignment: left;
  669. }
  670. QTabBar QToolButton {
  671. background: var(--button_bg);
  672. border: none;
  673. }
  674. QTabBar::tab:top {
  675. border-top-left-radius: 4px;
  676. border-top-right-radius: 4px;
  677. }
  678. QTabBar::tab:bottom {
  679. border-bottom-left-radius: 4px;
  680. border-bottom-right-radius: 4px;
  681. }
  682. QTabBar::tab {
  683. background: var(--tab_bg);
  684. color: var(--text);
  685. border: none;
  686. padding: 8px 12px;
  687. min-width: 50px;
  688. margin: 1px 0px;
  689. margin-right: 2px;
  690. border: 1px solid var(--tab_border);
  691. }
  692. QTabBar::tab:pressed {
  693. background: var(--tab_bg_down);
  694. }
  695. QTabBar::tab:hover {
  696. background: var(--tab_bg_hover);
  697. border-color: var(--tab_border_hover);
  698. color: var(--text);
  699. }
  700. QTabBar::tab:focus {
  701. border-color: var(--tab_border_focus);
  702. }
  703. QTabBar::tab:selected {
  704. background: var(--tab_bg_down);
  705. color: var(--text);
  706. }
  707. QTabBar::tab:top {
  708. border-bottom: 0px solid transparent;
  709. margin-bottom: 0px;
  710. }
  711. QTabBar::tab:bottom {
  712. border-top: 0px solid transparent;
  713. margin-top: 0px;
  714. }
  715. QTabBar QToolButton {
  716. background: var(--button_bg);
  717. min-width: 16px;
  718. padding: 0px;
  719. }
  720. /* ComboBox */
  721. QComboBox,
  722. QDateTimeEdit {
  723. background-color: var(--input_bg);
  724. border-style: solid;
  725. border: 1px solid var(--input_bg);
  726. border-radius: var(--border_radius);
  727. padding: var(--padding_large) var(--padding_large);
  728. padding-left: 10px;
  729. }
  730. QComboBox QAbstractItemView::item:selected,
  731. QComboBox QAbstractItemView::item:hover {
  732. background-color: var(--list_item_bg_selected);
  733. }
  734. QComboBox:hover,
  735. QComboBox:focus,
  736. QDateTimeEdit:hover,
  737. QDateTimeEdit:selected {
  738. border-color: var(--input_border_hover);
  739. }
  740. QComboBox::drop-down,
  741. QDateTimeEdit::drop-down {
  742. border: none;
  743. border-left: 1px solid var(--grey6);
  744. width: var(--input_height);
  745. }
  746. QComboBox::down-arrow,
  747. QDateTimeEdit::down-arrow {
  748. qproperty-alignment: AlignTop;
  749. image: url(theme:Dark/collapse.svg);
  750. width: 100%;
  751. }
  752. QComboBox:editable:hover {
  753. background-color: var(--input_bg_hover);
  754. border-color: var(--input_border_hover);
  755. }
  756. QComboBox:on,
  757. QDateTimeEdit:on,
  758. QComboBox:editable:focus {
  759. background-color: var(--input_bg_focus);
  760. border-color: var(--input_border_focus);
  761. }
  762. QComboBox::drop-down:editable,
  763. QDateTimeEdit::drop-down:editable {
  764. border-top-right-radius: 4px;
  765. border-bottom-right-radius: 4px;
  766. }
  767. QComboBox::down-arrow:editable,
  768. QDateTimeEdit::down-arrow:editable {
  769. qproperty-alignment: AlignTop;
  770. image: url(theme:Dark/collapse.svg);
  771. width: 100%;
  772. }
  773. /* Textedits etc */
  774. QLineEdit,
  775. QTextEdit,
  776. QPlainTextEdit {
  777. background-color: var(--input_bg);
  778. border: none;
  779. border-radius: var(--border_radius);
  780. padding: var(--input_padding) var(--padding_small) var(--input_padding) var(--input_padding);
  781. padding-left: 8px;
  782. border: 1px solid var(--input_bg);
  783. height: var(--input_height);
  784. }
  785. QLineEdit:hover,
  786. QTextEdit:hover,
  787. QPlainTextEdit:hover {
  788. background-color: var(--input_bg_hover);
  789. border-color: var(--input_border_hover);
  790. }
  791. QLineEdit:focus,
  792. QTextEdit:focus,
  793. QPlainTextEdit:focus {
  794. background-color: var(--input_bg_focus);
  795. border-color: var(--input_border_focus);
  796. }
  797. QTextEdit:!editable,
  798. QTextEdit:!editable:hover,
  799. QTextEdit:!editable:focus {
  800. background-color: var(--input_bg);
  801. }
  802. /* Spinbox and doubleSpinbox */
  803. QSpinBox,
  804. QDoubleSpinBox {
  805. background-color: var(--input_bg);
  806. border: 1px solid var(--input_bg);
  807. border-radius: var(--border_radius);
  808. padding: var(--input_padding) 0px var(--input_padding) var(--input_padding);
  809. padding-left: 8px;
  810. max-height: var(--input_height);
  811. }
  812. QSpinBox:hover,
  813. QDoubleSpinBox:hover {
  814. background-color: var(--input_bg_hover);
  815. border-color: var(--input_border_hover);
  816. }
  817. QSpinBox:focus,
  818. QDoubleSpinBox:focus {
  819. background-color: var(--input_bg_focus);
  820. border-color: var(--input_border_focus);
  821. }
  822. QSpinBox::up-button,
  823. QDoubleSpinBox::up-button {
  824. subcontrol-origin: padding;
  825. /* position at the top right corner */
  826. subcontrol-position: top right;
  827. width: var(--input_height);
  828. height: var(--spinbox_button_height);
  829. border-left: 1px solid var(--grey6);
  830. border-bottom: 1px solid transparent;
  831. border-radius: 0px;
  832. border-top-right-radius: var(--border_radius_small);
  833. }
  834. QSpinBox::down-button,
  835. QDoubleSpinBox::down-button {
  836. subcontrol-origin: padding;
  837. /* position at the top right corner */
  838. subcontrol-position: bottom right;
  839. width: var(--input_height);
  840. height: var(--spinbox_button_height);
  841. border-left: 1px solid var(--grey6);
  842. border-top: 1px solid var(--grey6);
  843. border-radius: 0px;
  844. border-bottom-right-radius: var(--border_radius_small);
  845. }
  846. QSpinBox::up-button:hover,
  847. QSpinBox::down-button:hover,
  848. QDoubleSpinBox::up-button:hover,
  849. QDoubleSpinBox::down-button:hover {
  850. background-color: var(--button_bg_hover);
  851. }
  852. QSpinBox::up-button:pressed,
  853. QSpinBox::down-button:pressed,
  854. QDoubleSpinBox::up-button:pressed,
  855. QDoubleSpinBox::down-button:pressed {
  856. background-color: var(--button_bg_down);
  857. }
  858. QSpinBox::up-button:disabled,
  859. QSpinBox::up-button:off,
  860. QSpinBox::down-button:disabled,
  861. QSpinBox::down-button:off {
  862. background-color: var(--button_bg_disabled);
  863. }
  864. QDoubleSpinBox::up-button:disabled,
  865. QDoubleSpinBox::up-button:off,
  866. QDoubleSpinBox::down-button:disabled,
  867. QDoubleSpinBox::down-button:off {
  868. background-color: var(--button_bg_disabled);
  869. }
  870. QSpinBox::up-arrow,
  871. QDoubleSpinBox::up-arrow {
  872. image: url(theme:Dark/up.svg);
  873. width: 100%;
  874. margin: 2px;
  875. }
  876. QSpinBox::down-arrow,
  877. QDoubleSpinBox::down-arrow {
  878. image: url(theme:Dark/down.svg);
  879. width: 100%;
  880. padding: 2px;
  881. }
  882. /* Controls Dock */
  883. #controlsFrame {
  884. padding: var(--padding_large);
  885. }
  886. #controlsFrame QPushButton {
  887. margin: var(--spacing_base) var(--spacing_small);
  888. }
  889. #streamButton,
  890. #recordButton,
  891. #replayBufferButton,
  892. #broadcastButton {
  893. padding: var(--padding_large);
  894. }
  895. #pauseRecordButton,
  896. #saveReplayButton,
  897. #virtualCamConfigButton {
  898. padding: var(--padding_large) var(--padding_large);
  899. width: var(--input_height);
  900. max-width: var(--input_height);
  901. }
  902. /* Primary Control Button Checked Coloring */
  903. #streamButton:!hover:!pressed:checked,
  904. #recordButton:!hover:!pressed:checked,
  905. #replayBufferButton:!hover:!pressed:checked,
  906. #virtualCamButton:!hover:!pressed:checked,
  907. #modeSwitch:!hover:!pressed:checked,
  908. #broadcastButton:!hover:!pressed:checked {
  909. background: var(--primary);
  910. }
  911. /* Primary Control Button Hover Coloring */
  912. #streamButton:hover:!pressed:checked,
  913. #recordButton:hover:!pressed:checked,
  914. #replayBufferButton:!pressed:checked,
  915. #virtualCamButton:!pressed:checked,
  916. #modeSwitch:hover:!pressed:checked,
  917. #broadcastButton:hover:!pressed:checked {
  918. background: var(--primary_light);
  919. color: var(--text);
  920. }
  921. /* Buttons */
  922. QPushButton {
  923. color: var(--text);
  924. background-color: var(--button_bg);
  925. border-radius: var(--border_radius);
  926. height: var(--input_height);
  927. max-height: var(--input_height);
  928. padding: var(--input_padding) var(--padding_wide);
  929. icon-size: var(--icon_base);
  930. }
  931. QPushButton {
  932. border: 1px solid var(--button_border);
  933. }
  934. QToolButton {
  935. border: 1px solid var(--button_border);
  936. }
  937. QToolButton,
  938. .btn-tool {
  939. background-color: var(--button_bg);
  940. padding: var(--padding_base) var(--padding_base);
  941. margin: 0px var(--spacing_base);
  942. border: 1px solid var(--button_border);
  943. border-radius: var(--border_radius);
  944. icon-size: var(--icon_base);
  945. }
  946. QToolButton:last-child,
  947. .btn-tool:last-child {
  948. margin-right: 0px;
  949. }
  950. QPushButton:hover,
  951. QPushButton:focus {
  952. border-color: var(--button_border_hover);
  953. }
  954. QPushButton:hover {
  955. background-color: var(--button_bg_hover);
  956. }
  957. QToolButton:hover,
  958. QToolButton:focus,
  959. .btn-tool:hover,
  960. .btn-tool:focus,
  961. .indicator-mute::indicator:hover,
  962. .indicator-mute::indicator:focus {
  963. border-color: var(--button_border);
  964. background-color: var(--button_bg_hover);
  965. }
  966. QPushButton::flat {
  967. background-color: var(--button_bg);
  968. }
  969. QPushButton:checked {
  970. background-color: var(--primary);
  971. }
  972. QPushButton:checked:hover,
  973. QPushButton:checked:focus {
  974. border-color: var(--primary_lighter);
  975. }
  976. QPushButton:pressed,
  977. QPushButton:pressed:hover {
  978. background-color: var(--button_bg_down);
  979. border-color: var(--button_border);
  980. }
  981. QToolButton:pressed,
  982. QToolButton:pressed:hover,
  983. .btn-tool:pressed,
  984. .btn-tool:pressed:hover {
  985. background-color: var(--button_bg_down);
  986. border-color: var(--button_border);
  987. }
  988. QPushButton:disabled {
  989. background-color: var(--button_bg_disabled);
  990. border-color: var(--button_border);
  991. }
  992. QToolButton:disabled,
  993. .btn-tool:disabled {
  994. background-color: var(--button_bg_disabled);
  995. border-color: transparent;
  996. }
  997. QPushButton::menu-indicator {
  998. image: url(theme:Dark/down.svg);
  999. subcontrol-position: right;
  1000. subcontrol-origin: padding;
  1001. width: 25px;
  1002. }
  1003. /* Sliders */
  1004. QSlider::groove {
  1005. background-color: var(--grey4);
  1006. border: none;
  1007. border-radius: 2px;
  1008. }
  1009. QSlider::groove:horizontal {
  1010. height: 4px;
  1011. }
  1012. QSlider::groove:vertical {
  1013. width: 4px;
  1014. }
  1015. QSlider::sub-page:horizontal {
  1016. background-color: var(--blue2);
  1017. border-radius: 2px;
  1018. }
  1019. QSlider::sub-page:horizontal:disabled {
  1020. background-color: var(--grey4);
  1021. border-radius: 2px;
  1022. }
  1023. QSlider::add-page:horizontal:disabled {
  1024. background-color: var(--grey7);
  1025. border-radius: 2px;
  1026. }
  1027. QSlider::add-page:vertical {
  1028. background-color: var(--blue2);
  1029. border-radius: 2px;
  1030. }
  1031. QSlider::add-page:vertical:disabled {
  1032. background-color: var(--grey4);
  1033. border-radius: 2px;
  1034. }
  1035. QSlider::sub-page:vertical:disabled {
  1036. background-color: var(--grey7);
  1037. border-radius: 2px;
  1038. }
  1039. QSlider::handle {
  1040. background-color: var(--white1);
  1041. border-radius: var(--border_radius);
  1042. }
  1043. QSlider::handle:horizontal {
  1044. height: 10px;
  1045. width: 20px;
  1046. /* Handle is placed by default on the contents rect of the groove. Expand outside the groove */
  1047. margin: -3px 0;
  1048. }
  1049. QSlider::handle:vertical {
  1050. width: 10px;
  1051. height: 20px;
  1052. /* Handle is placed by default on the contents rect of the groove. Expand outside the groove */
  1053. margin: 0 -3px;
  1054. }
  1055. QSlider::handle:hover {
  1056. background-color: var(--white4);
  1057. }
  1058. QSlider::handle:pressed {
  1059. background-color: var(--white5);
  1060. }
  1061. QSlider::handle:disabled {
  1062. background-color: var(--white5);
  1063. }
  1064. /* Volume Control */
  1065. #stackedMixerArea QPushButton {
  1066. width: var(--icon_base);
  1067. height: var(--icon_base);
  1068. background-color: var(--button_bg);
  1069. padding: var(--padding_base_border) var(--padding_base_border);
  1070. margin: 0px;
  1071. border: 1px solid var(--button_border);
  1072. border-radius: var(--border_radius);
  1073. icon-size: var(--icon_base);
  1074. }
  1075. /* This is an incredibly cursed but necessary fix */
  1076. #stackedMixerArea QPushButton:!hover {
  1077. background-color: var(--button_bg);
  1078. }
  1079. #stackedMixerArea QPushButton:hover {
  1080. background-color: var(--button_bg_hover);
  1081. border-color: var(--button_border_hover);
  1082. }
  1083. #stackedMixerArea QPushButton:pressed {
  1084. background-color: var(--button_bg_down);
  1085. }
  1086. #stackedMixerArea {
  1087. border: none;
  1088. padding: 0px;
  1089. border-bottom: 1px solid #3c404b;
  1090. }
  1091. VolControl #volLabel {
  1092. padding: var(--padding_base) 0px var(--padding_base);
  1093. text-align: center;
  1094. font-size: var(--font_base);
  1095. color: var(--text_muted);
  1096. }
  1097. /* Horizontal Mixer */
  1098. #hMixerScrollArea VolControl {
  1099. padding: 0px var(--padding_xlarge) var(--padding_base);
  1100. border-bottom: 1px solid var(--border_color);
  1101. }
  1102. #hMixerScrollArea VolControl QSlider {
  1103. margin: 0px 0px var(--padding_base);
  1104. }
  1105. #hMixerScrollArea VolControl QSlider::groove:horizontal {
  1106. background: var(--bg_window);
  1107. height: var(--volume_slider);
  1108. }
  1109. /* Vertical Mixer */
  1110. #stackedMixerArea QScrollBar:vertical {
  1111. border-left: 1px solid var(--border_color);
  1112. }
  1113. #vMixerScrollArea VolControl {
  1114. padding: var(--padding_large) 0px var(--padding_base);
  1115. border-right: 1px solid var(--border_color);
  1116. }
  1117. #vMixerScrollArea VolControl QSlider {
  1118. width: var(--volume_slider_box);
  1119. margin: 0px var(--padding_xlarge);
  1120. }
  1121. #vMixerScrollArea VolControl #volLabel {
  1122. padding: var(--padding_base) 0px var(--padding_base);
  1123. min-width: var(--volume_slider_label);
  1124. margin-left: var(--padding_xlarge);
  1125. text-align: center;
  1126. }
  1127. #vMixerScrollArea VolControl QSlider::groove:vertical {
  1128. background: var(--bg_window);
  1129. width: var(--volume_slider);
  1130. }
  1131. #vMixerScrollArea VolControl #volMeterFrame {
  1132. padding: var(--padding_large) var(--padding_xlarge) var(--padding_large) 0px;
  1133. }
  1134. #vMixerScrollArea VolControl QLabel {
  1135. padding: 0px var(--padding_large);
  1136. }
  1137. #vMixerScrollArea VolControl QPushButton {
  1138. margin-right: var(--padding_xlarge);
  1139. }
  1140. #vMixerScrollArea VolControl .indicator-mute {
  1141. margin-left: var(--padding_xlarge);
  1142. }
  1143. VolControl {
  1144. background: var(--bg_base);
  1145. }
  1146. VolumeMeter {
  1147. background: transparent;
  1148. }
  1149. VolumeMeter {
  1150. qproperty-backgroundNominalColor: var(--green5);
  1151. qproperty-backgroundWarningColor: var(--yellow5);
  1152. qproperty-backgroundErrorColor: var(--red5);
  1153. qproperty-foregroundNominalColor: var(--green2);
  1154. qproperty-foregroundWarningColor: var(--yellow2);
  1155. qproperty-foregroundErrorColor: var(--red2);
  1156. qproperty-magnitudeColor: rgb(0, 0, 0);
  1157. qproperty-majorTickColor: var(--white1);
  1158. qproperty-minorTickColor: var(--grey1);
  1159. }
  1160. /* Status Bar */
  1161. QStatusBar::item {
  1162. border: none;
  1163. }
  1164. /* Table View */
  1165. QTableView {
  1166. background: var(--bg_base);
  1167. gridline-color: var(--grey1);
  1168. }
  1169. QTableView::item {
  1170. margin: 0px;
  1171. padding: 0px;
  1172. }
  1173. QTableView QLineEdit {
  1174. background: var(--input_bg_focus);
  1175. padding: 0;
  1176. margin: 0;
  1177. }
  1178. QTableView QPushButton,
  1179. QTableView QToolButton {
  1180. padding: 0px;
  1181. margin: -1px;
  1182. border-radius: 0px;
  1183. }
  1184. QHeaderView::section {
  1185. background-color: var(--button_bg);
  1186. color: var(--text);
  1187. border: none;
  1188. border-left: 1px solid var(--bg_window);
  1189. border-right: 1px solid var(--bg_window);
  1190. padding: 3px 0px;
  1191. margin-bottom: 2px;
  1192. }
  1193. /* Canvas / Preview background color */
  1194. OBSQTDisplay {
  1195. qproperty-displayBackgroundColor: var(--bg_preview);
  1196. }
  1197. /* Filters Window */
  1198. OBSBasicFilters QListWidget {
  1199. border-radius: var(--border_radius_large);
  1200. padding: var(--spacing_base);
  1201. }
  1202. OBSBasicFilters QListWidget::item {
  1203. border-radius: var(--border_radius);
  1204. padding: var(--padding_base) var(--padding_large);
  1205. }
  1206. OBSBasicFilters #widget,
  1207. OBSBasicFilters #widget_2 {
  1208. margin: 0px;
  1209. padding: 0px;
  1210. padding-bottom: var(--padding_base);
  1211. }
  1212. OBSBasicFilters #widget QPushButton,
  1213. OBSBasicFilters #widget_2 QPushButton {
  1214. min-width: 16px;
  1215. padding: var(--padding_base) var(--padding_large);
  1216. margin-top: 0px;
  1217. }
  1218. /* Preview/Program labels */
  1219. .label-preview-title {
  1220. font-size: var(--font_xlarge);
  1221. font-weight: bold;
  1222. color: var(--text_light);
  1223. margin-bottom: 4px;
  1224. }
  1225. /* Settings Icons */
  1226. OBSBasicSettings {
  1227. qproperty-generalIcon: url(theme:Dark/settings/general.svg);
  1228. qproperty-appearanceIcon: url(theme:Dark/settings/appearance.svg);
  1229. qproperty-streamIcon: url(theme:Dark/settings/stream.svg);
  1230. qproperty-outputIcon: url(theme:Dark/settings/output.svg);
  1231. qproperty-audioIcon: url(theme:Dark/settings/audio.svg);
  1232. qproperty-videoIcon: url(theme:Dark/settings/video.svg);
  1233. qproperty-hotkeysIcon: url(theme:Dark/settings/hotkeys.svg);
  1234. qproperty-accessibilityIcon: url(theme:Dark/settings/accessibility.svg);
  1235. qproperty-advancedIcon: url(theme:Dark/settings/advanced.svg);
  1236. }
  1237. /* Checkboxes */
  1238. QCheckBox::indicator,
  1239. QGroupBox::indicator {
  1240. width: var(--icon_base);
  1241. height: var(--icon_base);
  1242. }
  1243. QGroupBox::indicator {
  1244. margin-left: 2px;
  1245. }
  1246. QCheckBox::indicator:unchecked,
  1247. QGroupBox::indicator:unchecked {
  1248. image: url(theme:Yami/checkbox_unchecked.svg);
  1249. }
  1250. QCheckBox::indicator:unchecked:hover,
  1251. QGroupBox::indicator:unchecked:hover {
  1252. border: none;
  1253. image: url(theme:Yami/checkbox_unchecked_focus.svg);
  1254. }
  1255. QCheckBox::indicator:checked,
  1256. QGroupBox::indicator:checked {
  1257. image: url(theme:Yami/checkbox_checked.svg);
  1258. }
  1259. QCheckBox::indicator:checked:hover,
  1260. QGroupBox::indicator:checked:hover {
  1261. image: url(theme:Yami/checkbox_checked_focus.svg);
  1262. }
  1263. QCheckBox::indicator:checked:disabled,
  1264. QGroupBox::indicator:checked:disabled {
  1265. image: url(theme:Yami/checkbox_checked_disabled.svg);
  1266. }
  1267. QCheckBox::indicator:unchecked:disabled,
  1268. QGroupBox::indicator:unchecked:disabled {
  1269. image: url(theme:Yami/checkbox_unchecked_disabled.svg);
  1270. }
  1271. /* Icon Checkboxes */
  1272. .checkbox-icon {
  1273. outline: none;
  1274. background: transparent;
  1275. max-width: var(--icon_base);
  1276. max-height: var(--icon_base);
  1277. padding: var(--padding_base);
  1278. margin-right: var(--spacing_large);
  1279. border: 1px solid transparent;
  1280. border-radius: 4px;
  1281. }
  1282. .checkbox-icon::indicator {
  1283. width: var(--icon_base);
  1284. height: var(--icon_base);
  1285. }
  1286. .checkbox-icon:hover,
  1287. .checkbox-icon:focus {
  1288. border-color: var(--primary_lighter);
  1289. }
  1290. /* Locked CheckBox */
  1291. .indicator-lock::indicator:checked,
  1292. .indicator-lock::indicator:checked:hover {
  1293. image: url(theme:Dark/locked.svg);
  1294. }
  1295. .indicator-lock::indicator:unchecked,
  1296. .indicator-lock::indicator:unchecked:hover {
  1297. image: url(:res/images/unlocked.svg);
  1298. }
  1299. /* Visibility CheckBox */
  1300. .indicator-visibility::indicator:checked,
  1301. .indicator-visibility::indicator:checked:hover {
  1302. image: url(theme:Dark/visible.svg);
  1303. }
  1304. .indicator-visibility::indicator:unchecked,
  1305. .indicator-visibility::indicator:unchecked:hover {
  1306. image: url(:res/images/invisible.svg);
  1307. }
  1308. /* Mute CheckBox */
  1309. .indicator-mute {
  1310. outline: none;
  1311. }
  1312. .indicator-mute::indicator,
  1313. .indicator-mute::indicator:unchecked {
  1314. width: var(--icon_base);
  1315. height: var(--icon_base);
  1316. background-color: var(--button_bg);
  1317. padding: var(--padding_base_border) var(--padding_base_border);
  1318. margin: 0px;
  1319. border: 1px solid var(--button_border);
  1320. border-radius: var(--border_radius);
  1321. icon-size: var(--icon_base);
  1322. }
  1323. .indicator-mute::indicator:hover,
  1324. .indicator-mute::indicator:unchecked:hover {
  1325. background-color: var(--button_bg_hover);
  1326. padding: var(--padding_base_border) var(--padding_base_border);
  1327. margin: 0px;
  1328. border: 1px solid var(--button_border_hover);
  1329. icon-size: var(--icon_base);
  1330. }
  1331. .indicator-mute::indicator:pressed,
  1332. .indicator-mute::indicator:pressed:hover {
  1333. background-color: var(--button_bg_down);
  1334. border-color: var(--button_border);
  1335. }
  1336. .indicator-mute::indicator:checked {
  1337. image: url(theme:Dark/mute.svg);
  1338. }
  1339. .indicator-mute::indicator:indeterminate {
  1340. image: url(theme:Dark/unassigned.svg);
  1341. }
  1342. .indicator-mute::indicator:unchecked {
  1343. image: url(theme:Dark/settings/audio.svg);
  1344. }
  1345. .indicator-mute::indicator:unchecked:hover {
  1346. image: url(theme:Dark/settings/audio.svg);
  1347. }
  1348. .indicator-mute::indicator:unchecked:focus {
  1349. image: url(theme:Dark/settings/audio.svg);
  1350. }
  1351. .indicator-mute::indicator:checked:hover {
  1352. image: url(theme:Dark/mute.svg);
  1353. }
  1354. .indicator-mute::indicator:checked:focus {
  1355. image: url(theme:Dark/mute.svg);
  1356. }
  1357. .indicator-mute::indicator:checked:disabled {
  1358. image: url(theme:Dark/mute.svg);
  1359. }
  1360. .indicator-mute::indicator:unchecked:disabled {
  1361. image: url(theme:Dark/settings/audio.svg);
  1362. }
  1363. #hotkeyFilterReset {
  1364. margin-top: 0px;
  1365. }
  1366. OBSHotkeyWidget {
  1367. padding: 8px 0px;
  1368. margin: 2px 0px;
  1369. }
  1370. OBSHotkeyLabel {
  1371. padding: 4px 0px;
  1372. }
  1373. OBSHotkeyWidget QPushButton {
  1374. min-width: 16px;
  1375. padding: var(--padding_base);
  1376. margin-top: 0px;
  1377. margin-left: var(--spacing_base);
  1378. }
  1379. /* Sources List Group Collapse Checkbox */
  1380. .indicator-expand::indicator:checked,
  1381. .indicator-expand::indicator:checked:hover {
  1382. image: url(theme:Dark/expand.svg);
  1383. }
  1384. .indicator-expand::indicator:unchecked,
  1385. .indicator-expand::indicator:unchecked:hover {
  1386. image: url(theme:Dark/collapse.svg);
  1387. }
  1388. /* Source Icons */
  1389. OBSBasic {
  1390. qproperty-imageIcon: url(theme:Dark/sources/image.svg);
  1391. qproperty-colorIcon: url(theme:Dark/sources/brush.svg);
  1392. qproperty-slideshowIcon: url(theme:Dark/sources/slideshow.svg);
  1393. qproperty-audioInputIcon: url(theme:Dark/sources/microphone.svg);
  1394. qproperty-audioOutputIcon: url(theme:Dark/settings/audio.svg);
  1395. qproperty-desktopCapIcon: url(theme:Dark/settings/video.svg);
  1396. qproperty-windowCapIcon: url(theme:Dark/sources/window.svg);
  1397. qproperty-gameCapIcon: url(theme:Dark/sources/gamepad.svg);
  1398. qproperty-cameraIcon: url(theme:Dark/sources/camera.svg);
  1399. qproperty-textIcon: url(theme:Dark/sources/text.svg);
  1400. qproperty-mediaIcon: url(theme:Dark/sources/media.svg);
  1401. qproperty-browserIcon: url(theme:Dark/sources/globe.svg);
  1402. qproperty-groupIcon: url(theme:Dark/sources/group.svg);
  1403. qproperty-sceneIcon: url(theme:Dark/sources/scene.svg);
  1404. qproperty-defaultIcon: url(theme:Dark/sources/default.svg);
  1405. qproperty-audioProcessOutputIcon: url(theme:Dark/sources/windowaudio.svg);
  1406. }
  1407. /* Scene Tree Grid Mode */
  1408. SceneTree {
  1409. qproperty-gridItemWidth: 154;
  1410. qproperty-gridItemHeight: var(--input_height_base);
  1411. }
  1412. .list-grid SceneTree::item {
  1413. color: var(--text);
  1414. background-color: var(--button_bg);
  1415. border-radius: var(--border_radius);
  1416. margin: var(--spacing_base);
  1417. }
  1418. .list-grid SceneTree::item:selected {
  1419. background-color: var(--list_item_bg_selected);
  1420. }
  1421. .list-grid SceneTree::item:checked {
  1422. background-color: var(--primary);
  1423. }
  1424. .list-grid SceneTree::item:hover {
  1425. background-color: var(--list_item_bg_hover);
  1426. }
  1427. .list-grid SceneTree::item:selected:hover {
  1428. background-color: var(--list_item_bg_hover);
  1429. }
  1430. /* Studio Mode T-Bar */
  1431. .slider-tbar {
  1432. height: 24px;
  1433. }
  1434. .slider-tbar::groove:horizontal {
  1435. height: 8px;
  1436. }
  1437. .slider-tbar::sub-page:horizontal {
  1438. background: var(--blue2);
  1439. }
  1440. .slider-tbar::handle:horizontal {
  1441. width: 12px;
  1442. height: 24px;
  1443. margin: -24px 0px;
  1444. }
  1445. /* YouTube Integration */
  1446. OBSYoutubeActions {
  1447. qproperty-thumbPlaceholder: url(theme:Dark/sources/image.svg);
  1448. }
  1449. #ytEventList QLabel {
  1450. color: var(--text);
  1451. background-color: var(--button_bg);
  1452. border: none;
  1453. border-radius: var(--border_radius);
  1454. padding: 4px 20px;
  1455. }
  1456. #ytEventList QLabel:hover {
  1457. background-color: var(--button_bg_hover);
  1458. }
  1459. #ytEventList .row-selected {
  1460. background-color: var(--primary);
  1461. border: none;
  1462. }
  1463. #ytEventList .row-selected:hover {
  1464. background-color: var(--primary_light);
  1465. color: var(--text);
  1466. }
  1467. /* Calendar Widget */
  1468. QDateTimeEdit::down-arrow {
  1469. qproperty-alignment: AlignTop;
  1470. image: url(theme:Dark/down.svg);
  1471. width: 100%;
  1472. }
  1473. QDateTimeEdit:on {
  1474. background-color: var(--grey7);
  1475. }
  1476. /* Calendar Top Bar */
  1477. QCalendarWidget QWidget#qt_calendar_navigationbar {
  1478. background-color: var(--bg_base);
  1479. padding: var(--padding_base) var(--padding_large);
  1480. }
  1481. /* Calendar Top Bar Buttons */
  1482. QCalendarWidget QToolButton {
  1483. background-color: var(--button_bg);
  1484. padding: 2px 16px;
  1485. border-radius: var(--border_radius);
  1486. margin: var(--spacing_base);
  1487. }
  1488. #qt_calendar_monthbutton::menu-indicator {
  1489. image: url(theme:Dark/down.svg);
  1490. subcontrol-position: right;
  1491. padding-top: var(--padding_small);
  1492. padding-right: var(--padding_base);
  1493. height: 10px;
  1494. width: 10px;
  1495. }
  1496. QCalendarWidget #qt_calendar_prevmonth {
  1497. padding: var(--padding_small);
  1498. qproperty-icon: url(theme:Dark/left.svg);
  1499. icon-size: var(--icon_base);
  1500. }
  1501. QCalendarWidget #qt_calendar_nextmonth {
  1502. padding: var(--padding_small);
  1503. qproperty-icon: url(theme:Dark/right.svg);
  1504. icon-size: var(--icon_base);
  1505. }
  1506. QCalendarWidget QToolButton:hover {
  1507. background-color: var(--button_bg_hover);
  1508. border-radius: var(--border_radius);
  1509. }
  1510. QCalendarWidget QToolButton:pressed {
  1511. background-color: var(--button_bg_down);
  1512. }
  1513. /* Month Dropdown Menu */
  1514. QCalendarWidget QMenu {}
  1515. /* Year spinbox */
  1516. QCalendarWidget QSpinBox {
  1517. background-color: var(--input_bg);
  1518. border: none;
  1519. border-radius: var(--border_radius);
  1520. margin: 0px var(--spacing_base) 0px 0px;
  1521. padding: var(--padding_base) 16px;
  1522. }
  1523. QCalendarWidget QSpinBox::up-button {
  1524. subcontrol-origin: border;
  1525. subcontrol-position: top right;
  1526. width: 16px;
  1527. }
  1528. QCalendarWidget QSpinBox::down-button {
  1529. subcontrol-origin: border;
  1530. subcontrol-position: bottom right;
  1531. width: 16px;
  1532. }
  1533. QCalendarWidget QSpinBox::up-arrow {
  1534. width: 10px;
  1535. height: 10px;
  1536. }
  1537. QCalendarWidget QSpinBox::down-arrow {
  1538. width: 10px;
  1539. height: 10px;
  1540. }
  1541. /* Days of the Week Bar */
  1542. QCalendarWidget QWidget {
  1543. alternate-background-color: var(--grey7);
  1544. }
  1545. QCalendarWidget QAbstractItemView:enabled {
  1546. background-color: var(--bg_base);
  1547. color: var(--text);
  1548. }
  1549. QCalendarWidget QAbstractItemView:disabled {
  1550. color: var(--text_disabled);
  1551. }
  1552. /* VirtualCam Plugin Fixes */
  1553. #VirtualProperties QWidget {
  1554. margin-top: 0;
  1555. margin-bottom: 0;
  1556. }
  1557. /* Disable icons on QDialogButtonBox */
  1558. QDialogButtonBox {
  1559. dialogbuttonbox-buttons-have-icons: 0;
  1560. }
  1561. /* Stats dialog */
  1562. OBSBasicStats {
  1563. background: var(--bg_base);
  1564. }
  1565. /* Advanced audio dialog */
  1566. OBSBasicAdvAudio #scrollAreaWidgetContents {
  1567. background: var(--bg_base);
  1568. }
  1569. #previewScalePercent,
  1570. #previewScalingMode {
  1571. background: transparent;
  1572. color: var(--text_muted);
  1573. font-size: var(--font_xsmall);
  1574. height: 14px;
  1575. max-height: 14px;
  1576. padding: 0px var(--padding_xlarge);
  1577. margin: 0;
  1578. border: none;
  1579. border-radius: 0;
  1580. }
  1581. #previewXContainer {
  1582. border: 1px solid var(--grey6);
  1583. }
  1584. #previewScalingMode {
  1585. border: 1px solid var(--grey6);
  1586. }
  1587. #previewScalingMode:hover,
  1588. #previewScalingMode:focus {
  1589. border-color: var(--input_border_hover);
  1590. }
  1591. #previewXScrollBar,
  1592. #previewYScrollBar {
  1593. background: transparent;
  1594. border: 1px solid var(--grey6);
  1595. border-radius: 0;
  1596. }
  1597. #previewXScrollBar {
  1598. border-left: none;
  1599. height: 16px;
  1600. }
  1601. #previewXScrollBar::handle,
  1602. #previewYScrollBar::handle {
  1603. margin: 3px;
  1604. }
  1605. #previewYScrollBar {
  1606. width: 16px;
  1607. }