Yami.obt 43 KB

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