chat.style 43 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249
  1. /*
  2. This file is part of Telegram Desktop,
  3. the official desktop application for the Telegram messaging service.
  4. For license and copyright information please follow this link:
  5. https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
  6. */
  7. using "ui/basic.style";
  8. using "dialogs/dialogs.style";
  9. using "ui/widgets/widgets.style";
  10. using "ui/menu_icons.style";
  11. using "chat_helpers/chat_helpers.style"; // GroupCallUserpics
  12. msgMaxWidth: 430px;
  13. msgFont: font(fsize);
  14. msgNameFont: semiboldFont;
  15. msgNameStyle: semiboldTextStyle;
  16. msgServiceFont: semiboldFont;
  17. msgServiceNameFont: semiboldFont;
  18. msgServicePhotoWidth: 100px;
  19. msgDateFont: font(13px);
  20. msgMinWidth: 160px;
  21. msgPhotoSize: 33px;
  22. msgPhotoSkip: 40px;
  23. msgPadding: margins(11px, 8px, 11px, 8px);
  24. msgMargin: margins(16px, 6px, 56px, 2px);
  25. msgMarginTopAttached: 0px;
  26. msgShadow: 2px;
  27. msgSelectionOffset: 30px;
  28. msgSelectionBottomSkip: 5px;
  29. historyReplyTop: 2px;
  30. historyReplyBottom: 2px;
  31. historyReplyPreview: 32px;
  32. historyReplyPreviewMargin: margins(7px, 4px, 4px, 4px);
  33. historyReplyPadding: margins(11px, 2px, 6px, 2px);
  34. historyReplyUser: icon {{ "chat/reply_type_user", windowFg }};
  35. historyReplyUserPadding: margins(0px, 4px, 4px, 0px);
  36. historyReplyGroup: icon {{ "chat/reply_type_group", windowFg }};
  37. historyReplyGroupPadding: margins(0px, 4px, 4px, 0px);
  38. historyReplyChannel: icon {{ "chat/reply_type_channel", windowFg }};
  39. historyReplyChannelPadding: margins(0px, 5px, 4px, 0px);
  40. historyReplyForward: icon {{ "mini_forward", windowFg }};
  41. historyReplyForwardPadding: margins(0px, 2px, 2px, 0px);
  42. msgReplyPadding: margins(6px, 6px, 11px, 6px);
  43. msgReplyBarPos: point(1px, 0px);
  44. msgReplyBarSize: size(2px, 36px);
  45. msgReplyBarSkip: 10px;
  46. msgServicePadding: margins(12px, 3px, 12px, 4px);
  47. msgServiceMargin: margins(10px, 10px, 10px, 2px);
  48. msgDateSpace: 12px;
  49. msgDateDelta: point(2px, 5px);
  50. msgDateImgDelta: 4px;
  51. msgDateImgPadding: point(8px, 2px);
  52. messageQuoteStyle: historyQuoteStyle;
  53. messageTextStyle: historyTextStyle;
  54. historyPagePreview: QuoteStyle(messageQuoteStyle) {
  55. padding: margins(10px, 5px, 7px, 7px);
  56. }
  57. msgDateTextStyle: defaultTextStyle;
  58. serviceTextPalette: TextPalette(defaultTextPalette) {
  59. linkFg: msgServiceFg;
  60. monoFg: msgServiceFg;
  61. spoilerFg: msgServiceFg;
  62. selectBg: msgServiceBgSelected;
  63. selectFg: msgServiceFg;
  64. selectLinkFg: msgServiceFg;
  65. selectMonoFg: msgServiceFg;
  66. selectSpoilerFg: msgServiceFg;
  67. selectOverlay: msgServiceBgSelected;
  68. }
  69. serviceTextStyle: TextStyle(defaultTextStyle) {
  70. font: msgServiceFont;
  71. }
  72. inTextPalette: TextPalette(defaultTextPalette) {
  73. linkFg: historyLinkInFg;
  74. monoFg: msgInMonoFg;
  75. spoilerFg: msgInDateFg;
  76. selectBg: msgInBgSelected;
  77. selectFg: historyTextInFgSelected;
  78. selectLinkFg: historyLinkInFgSelected;
  79. selectMonoFg: msgInMonoFgSelected;
  80. selectSpoilerFg: msgInDateFgSelected;
  81. selectOverlay: msgSelectOverlay;
  82. }
  83. inTextPaletteSelected: TextPalette(inTextPalette) {
  84. linkFg: historyLinkInFgSelected;
  85. monoFg: msgInMonoFgSelected;
  86. spoilerFg: msgInDateFgSelected;
  87. }
  88. outTextPalette: TextPalette(defaultTextPalette) {
  89. linkFg: historyLinkOutFg;
  90. monoFg: msgOutMonoFg;
  91. spoilerFg: msgOutDateFg;
  92. selectBg: msgOutBgSelected;
  93. selectFg: historyTextOutFgSelected;
  94. selectLinkFg: historyLinkOutFgSelected;
  95. selectMonoFg: msgOutMonoFgSelected;
  96. selectSpoilerFg: msgOutDateFgSelected;
  97. selectOverlay: msgSelectOverlay;
  98. }
  99. outTextPaletteSelected: TextPalette(outTextPalette) {
  100. linkFg: historyLinkOutFgSelected;
  101. monoFg: msgOutMonoFgSelected;
  102. spoilerFg: msgOutDateFgSelected;
  103. }
  104. priceTagTextPalette: TextPalette(defaultTextPalette) {
  105. linkFg: creditsBg1;
  106. }
  107. fwdTextUserpicPadding: margins(0px, 1px, 3px, 0px);
  108. fwdTextStyle: TextStyle(semiboldTextStyle) {
  109. linkUnderline: kLinkUnderlineNever;
  110. }
  111. inFwdTextPalette: TextPalette(defaultTextPalette) {
  112. linkFg: msgInServiceFg;
  113. }
  114. outFwdTextPalette: TextPalette(defaultTextPalette) {
  115. linkFg: msgOutServiceFg;
  116. }
  117. inFwdTextPaletteSelected: TextPalette(defaultTextPalette) {
  118. linkFg: msgInServiceFgSelected;
  119. }
  120. outFwdTextPaletteSelected: TextPalette(defaultTextPalette) {
  121. linkFg: msgOutServiceFgSelected;
  122. }
  123. inReplyTextPalette: TextPalette(inTextPalette) {
  124. linkFg: msgInDateFg;
  125. }
  126. inReplyTextPaletteSelected: TextPalette(inTextPaletteSelected) {
  127. linkFg: msgInDateFgSelected;
  128. }
  129. outReplyTextPalette: TextPalette(outTextPalette) {
  130. linkFg: msgOutDateFg;
  131. }
  132. outReplyTextPaletteSelected: TextPalette(outTextPaletteSelected) {
  133. linkFg: msgOutDateFgSelected;
  134. }
  135. imgReplyTextPalette: TextPalette(defaultTextPalette) {
  136. linkFg: msgImgReplyBarColor;
  137. monoFg: msgImgReplyBarColor;
  138. }
  139. inSemiboldPalette: TextPalette(inTextPalette) {
  140. linkFg: msgInServiceFg;
  141. selectFg: msgInServiceFgSelected;
  142. selectLinkFg: msgInServiceFgSelected;
  143. }
  144. outSemiboldPalette: TextPalette(outTextPalette) {
  145. linkFg: msgOutServiceFg;
  146. selectFg: msgOutServiceFgSelected;
  147. selectLinkFg: msgOutServiceFgSelected;
  148. }
  149. mediaCaptionSkip: 5px;
  150. mediaInBubbleSkip: 5px;
  151. mediaUnreadSize: 7px;
  152. mediaUnreadSkip: 5px;
  153. mediaUnreadTop: 6px;
  154. mediaInPalette: TextPalette(defaultTextPalette) {
  155. linkFg: mediaInFg;
  156. }
  157. mediaInPaletteSelected: TextPalette(defaultTextPalette) {
  158. linkFg: mediaInFgSelected;
  159. }
  160. minPhotoSize: 100px;
  161. maxMediaSize: 430px;
  162. maxStickerSize: 224px;
  163. maxAnimatedEmojiSize: 112px;
  164. maxGifSize: 320px;
  165. maxVideoMessageSize: 240px;
  166. maxSignatureSize: 144px;
  167. maxWallPaperWidth: 160px;
  168. maxWallPaperHeight: 240px;
  169. historyThemeSize: size(272px, 176px);
  170. extendedPreviewButtonPadding: margins(20px, 10px, 20px, 10px);
  171. extendedPreviewButtonMargin: 20px;
  172. historyMinimalWidth: 380px;
  173. reactionMenu: PopupMenu(defaultPopupMenu) {
  174. menu: Menu(defaultMenu) {
  175. widthMin: 30px;
  176. }
  177. }
  178. historyScroll: ScrollArea(defaultScrollArea) {
  179. bg: historyScrollBg;
  180. bgOver: historyScrollBgOver;
  181. barBg: historyScrollBarBg;
  182. barBgOver: historyScrollBarBgOver;
  183. round: 3px;
  184. width: 12px;
  185. deltax: 3px;
  186. deltat: 3px;
  187. deltab: 3px;
  188. bottomsh: -1px;
  189. }
  190. historyResizeWidth: 6px;
  191. historyPaddingBottom: 8px;
  192. historyPremiumToast: Toast(defaultToast) {
  193. minWidth: msgMinWidth;
  194. maxWidth: 380px;
  195. padding: margins(19px, 13px, 19px, 12px);
  196. }
  197. historyPremiumViewSet: RoundButton(defaultActiveButton) {
  198. width: -24px;
  199. height: 44px;
  200. textTop: 13px;
  201. textFg: mediaviewTextLinkFg;
  202. textFgOver: mediaviewTextLinkFg;
  203. textBg: transparent;
  204. textBgOver: transparent;
  205. ripple: emptyRippleAnimation;
  206. }
  207. membersInnerWidth: 310px;
  208. membersInnerHeightMax: 360px;
  209. membersInnerDropdown: InnerDropdown(defaultInnerDropdown) {
  210. scroll: ScrollArea(defaultSolidScroll) {
  211. deltat: 0px;
  212. deltab: 0px;
  213. round: 1px;
  214. width: 8px;
  215. deltax: 3px;
  216. }
  217. scrollMargin: margins(0px, 5px, 0px, 5px);
  218. scrollPadding: margins(0px, 3px, 0px, 3px);
  219. }
  220. membersInnerItem: defaultPeerListItem;
  221. historyFileOutImage: icon {{ "history_file_image", historyFileOutIconFg }};
  222. historyFileOutImageSelected: icon {{ "history_file_image", historyFileOutIconFgSelected }};
  223. historyFileInImage: icon {{ "history_file_image", historyFileInIconFg }};
  224. historyFileInImageSelected: icon {{ "history_file_image", historyFileInIconFgSelected }};
  225. historyFileOutDocument: icon {{ "history_file_document", historyFileOutIconFg }};
  226. historyFileOutDocumentSelected: icon {{ "history_file_document", historyFileOutIconFgSelected }};
  227. historyFileInDocument: icon {{ "history_file_document", historyFileInIconFg }};
  228. historyFileInDocumentSelected: icon {{ "history_file_document", historyFileInIconFgSelected }};
  229. historyFileOutDownload: icon {{ "history_file_download", historyFileOutIconFg }};
  230. historyFileOutDownloadSelected: icon {{ "history_file_download", historyFileOutIconFgSelected }};
  231. historyFileInDownload: icon {{ "history_file_download", historyFileInIconFg }};
  232. historyFileInDownloadSelected: icon {{ "history_file_download", historyFileInIconFgSelected }};
  233. historyFileOutCancel: icon {{ "history_file_cancel", historyFileOutIconFg }};
  234. historyFileOutCancelSelected: icon {{ "history_file_cancel", historyFileOutIconFgSelected }};
  235. historyFileInCancel: icon {{ "history_file_cancel", historyFileInIconFg }};
  236. historyFileInCancelSelected: icon {{ "history_file_cancel", historyFileInIconFgSelected }};
  237. historyFileOutPause: icon {{ "history_file_pause", historyFileOutIconFg }};
  238. historyFileOutPauseSelected: icon {{ "history_file_pause", historyFileOutIconFgSelected }};
  239. historyFileInPause: icon {{ "history_file_pause", historyFileInIconFg }};
  240. historyFileInPauseSelected: icon {{ "history_file_pause", historyFileInIconFgSelected }};
  241. historyFileOutPlay: icon {{ "history_file_play", historyFileOutIconFg }};
  242. historyFileOutPlaySelected: icon {{ "history_file_play", historyFileOutIconFgSelected }};
  243. historyFileInPlay: icon {{ "history_file_play", historyFileInIconFg }};
  244. historyFileInPlaySelected: icon {{ "history_file_play", historyFileInIconFgSelected }};
  245. historyFileOutWaiting: icon {{ "mediaview/save_check", historyFileOutIconFg }};
  246. historyFileOutWaitingSelected: icon {{ "mediaview/save_check", historyFileOutIconFgSelected }};
  247. historyFileInWaiting: icon {{ "mediaview/save_check", historyFileInIconFg }};
  248. historyFileInWaitingSelected: icon {{ "mediaview/save_check", historyFileInIconFgSelected }};
  249. historyFileThumbPause: icon {{ "history_file_pause", historyFileThumbIconFg }};
  250. historyFileThumbPauseSelected: icon {{ "history_file_pause", historyFileThumbIconFgSelected }};
  251. historyFileThumbDownload: icon {{ "history_file_download", historyFileThumbIconFg }};
  252. historyFileThumbDownloadSelected: icon {{ "history_file_download", historyFileThumbIconFgSelected }};
  253. historyFileThumbCancel: icon {{ "history_file_cancel", historyFileThumbIconFg }};
  254. historyFileThumbCancelSelected: icon {{ "history_file_cancel", historyFileThumbIconFgSelected }};
  255. historyFileThumbPlay: icon {{ "history_file_play", historyFileThumbIconFg }};
  256. historyFileThumbPlaySelected: icon {{ "history_file_play", historyFileThumbIconFgSelected }};
  257. historyFileThumbWaiting: icon {{ "mediaview/save_check", historyFileThumbIconFg }};
  258. historyFileThumbWaitingSelected: icon {{ "mediaview/save_check", historyFileThumbIconFgSelected }};
  259. historySendStateSpace: 24px;
  260. historySendStatePosition: point(-17px, -19px);
  261. historySentIcon: icon {{ "history_sent", historyOutIconFg, point(2px, 4px) }};
  262. historySentSelectedIcon: icon {{ "history_sent", historyOutIconFgSelected, point(2px, 4px) }};
  263. historySentInvertedIcon: icon {{ "history_sent", historyIconFgInverted, point(2px, 4px) }};
  264. historyReceivedIcon: icon {{ "history_received", historyOutIconFg, point(2px, 4px) }};
  265. historyReceivedSelectedIcon: icon {{ "history_received", historyOutIconFgSelected, point(2px, 4px) }};
  266. historyReceivedInvertedIcon: icon {{ "history_received", historyIconFgInverted, point(2px, 4px) }};
  267. historyShortcutStateSpace: 18px;
  268. historyViewsSpace: 8px;
  269. historyViewsWidth: 20px;
  270. historyPinWidth: 24px;
  271. historyViewsTop: -15px;
  272. historyViewsInIcon: icon {{ "history_views", msgInDateFg }};
  273. historyViewsInSelectedIcon: icon {{ "history_views", msgInDateFgSelected }};
  274. historyViewsOutIcon: icon {{ "history_views", historyOutIconFg }};
  275. historyViewsOutSelectedIcon: icon {{ "history_views", historyOutIconFgSelected }};
  276. historyViewsInvertedIcon: icon {{ "history_views", historySendingInvertedIconFg }};
  277. historyRepliesInIcon: icon {{ "history_replies", msgInDateFg }};
  278. historyRepliesInSelectedIcon: icon {{ "history_replies", msgInDateFgSelected }};
  279. historyRepliesOutIcon: icon {{ "history_replies", historyOutIconFg }};
  280. historyRepliesOutSelectedIcon: icon {{ "history_replies", historyOutIconFgSelected }};
  281. historyRepliesInvertedIcon: icon {{ "history_replies", historySendingInvertedIconFg }};
  282. historyPinTop: -18px;
  283. historyPinInIcon: icon {{ "history_pin", msgInDateFg }};
  284. historyPinInSelectedIcon: icon {{ "history_pin", msgInDateFgSelected }};
  285. historyPinOutIcon: icon {{ "history_pin", historyOutIconFg }};
  286. historyPinOutSelectedIcon: icon {{ "history_pin", historyOutIconFgSelected }};
  287. historyPinInvertedIcon: icon {{ "history_pin", historySendingInvertedIconFg }};
  288. historySendPadding: 9px;
  289. historySendRight: 2px;
  290. historyBotMenuSkip: 8px;
  291. historyBotMenuMaxWidth: 160px;
  292. historyBotMenuButton: RoundButton(defaultActiveButton) {
  293. width: -24px;
  294. height: 30px;
  295. textTop: 6px;
  296. }
  297. topicButtonSkip: 3px;
  298. topicButtonPadding: margins(6px, 3px, 8px, 3px);
  299. topicButtonArrowSkip: 8px;
  300. topicButtonArrowPosition: point(3px, 3px);
  301. topicButtonArrow: icon{{ "dialogs/dialogs_topic_arrow", historyReplyIconFg }};
  302. textMoreIconEmoji: IconEmoji {
  303. icon: topicButtonArrow;
  304. padding: margins(-2px, 5px, 0px, 0px);
  305. }
  306. msgBotKbIconPadding: 4px;
  307. msgBotKbUrlIcon: icon {{ "inline_button_url", msgBotKbIconFg }};
  308. msgBotKbSwitchPmIcon: icon {{ "inline_button_switch", msgBotKbIconFg }};
  309. msgBotKbPaymentIcon: icon {{ "inline_button_card", msgBotKbIconFg }};
  310. msgBotKbWebviewIcon: icon {{ "inline_button_web", msgBotKbIconFg }};
  311. msgBotKbCopyIcon: icon {{ "inline_button_copy", msgBotKbIconFg }};
  312. msgBotKbButton: BotKeyboardButton {
  313. margin: 2px;
  314. padding: 10px;
  315. height: 36px;
  316. textTop: 8px;
  317. ripple: defaultRippleAnimation;
  318. }
  319. botDescSkip: 8px;
  320. botKbDuration: 200;
  321. botKbStyle: TextStyle(defaultTextStyle) {
  322. font: font(15px semibold);
  323. }
  324. botKbButton: BotKeyboardButton {
  325. margin: 10px;
  326. padding: 10px;
  327. height: 38px;
  328. textTop: 9px;
  329. ripple: RippleAnimation(defaultRippleAnimation) {
  330. color: botKbDownBg;
  331. }
  332. }
  333. botKbTinyButton: BotKeyboardButton {
  334. margin: 4px;
  335. padding: 3px;
  336. height: 25px;
  337. textTop: 2px;
  338. ripple: defaultRippleAnimation;
  339. }
  340. botKbScroll: defaultSolidScroll;
  341. historyScrollDateHideTimeout: 1000;
  342. historyDateFadeDuration: 200;
  343. historyDiceToast: Toast(defaultToast) {
  344. minWidth: msgMinWidth;
  345. maxWidth: 640px;
  346. durationFadeOut: 200;
  347. }
  348. historyInfoToast: Toast(defaultToast) {
  349. minWidth: msgMinWidth;
  350. maxWidth: 380px;
  351. padding: margins(54px, 13px, 19px, 12px);
  352. icon: icon {{ "toast_info", toastFg }};
  353. iconPosition: point(13px, 13px);
  354. }
  355. bubbleRadiusSmall: roundRadiusLarge;
  356. bubbleRadiusLarge: 16px;
  357. historyPhotoLeft: 14px;
  358. historyPhotoBubbleMinWidth: 200px;
  359. historyBubbleTailInLeft: icon {{ "bubble_tail", msgInBg }};
  360. historyBubbleTailInLeftSelected: icon {{ "bubble_tail", msgInBgSelected }};
  361. historyBubbleTailOutLeft: icon {{ "bubble_tail", msgOutBg }};
  362. historyBubbleTailOutLeftSelected: icon {{ "bubble_tail", msgOutBgSelected }};
  363. historyBubbleTailInRight: icon {{ "bubble_tail-flip_horizontal", msgInBg }};
  364. historyBubbleTailInRightSelected: icon {{ "bubble_tail-flip_horizontal", msgInBgSelected }};
  365. historyBubbleTailOutRight: icon {{ "bubble_tail-flip_horizontal", msgOutBg }};
  366. historyBubbleTailOutRightSelected: icon {{ "bubble_tail-flip_horizontal", msgOutBgSelected }};
  367. historyPeerUserpicFont: semiboldFont;
  368. historyPsaIconIn: icon {{ "message_psa_tooltip", msgFileThumbLinkInFg }};
  369. historyPsaIconInSelected: icon {{ "message_psa_tooltip", msgFileThumbLinkInFgSelected }};
  370. historyPsaIconOut: icon {{ "message_psa_tooltip", msgFileThumbLinkOutFg }};
  371. historyPsaIconOutSelected: icon {{ "message_psa_tooltip", msgFileThumbLinkOutFgSelected }};
  372. historyPsaIconSkip1: 23px;
  373. historyPsaIconSkip2: 23px;
  374. historyPsaIconPosition1: point(-5px, 0px);
  375. historyPsaIconPosition2: point(-5px, 0px);
  376. historyStatusFg: windowSubTextFg;
  377. historyStatusFgActive: windowActiveTextFg;
  378. historyStatusFgTyping: historyStatusFgActive;
  379. historyUnreadBarHeight: 32px;
  380. historyUnreadBarMargin: 8px;
  381. historyUnreadBarFont: semiboldFont;
  382. historyForwardChooseMargins: margins(30px, 10px, 30px, 10px);
  383. historyForwardChooseFont: font(16px);
  384. historyCallArrowIn: icon {{ "calls/call_arrow_in", historyCallArrowInFg }};
  385. historyCallArrowInSelected: icon {{ "calls/call_arrow_in", historyCallArrowInFgSelected }};
  386. historyCallArrowMissedIn: icon {{ "calls/call_arrow_in", historyCallArrowMissedInFg }};
  387. historyCallArrowMissedInSelected: icon {{ "calls/call_arrow_in", historyCallArrowMissedInFgSelected }};
  388. historyCallArrowOut: icon {{ "calls/call_arrow_out", historyCallArrowOutFg }};
  389. historyCallArrowOutSelected: icon {{ "calls/call_arrow_out", historyCallArrowOutFgSelected }};
  390. historyCallWidth: 240px;
  391. historyCallHeight: 56px;
  392. historyCallInIcon: icon {{ "calls/call_answer", msgFileInBg }};
  393. historyCallInIconSelected: icon {{ "calls/call_answer", msgFileInBgSelected }};
  394. historyCallOutIcon: icon {{ "calls/call_answer", msgFileOutBg }};
  395. historyCallOutIconSelected: icon {{ "calls/call_answer", msgFileOutBgSelected }};
  396. historyCallCameraInIcon: icon {{ "calls/call_camera_active", msgFileInBg }};
  397. historyCallCameraInIconSelected: icon {{ "calls/call_camera_active", msgFileInBgSelected }};
  398. historyCallCameraOutIcon: icon {{ "calls/call_camera_active", msgFileOutBg }};
  399. historyCallCameraOutIconSelected: icon {{ "calls/call_camera_active", msgFileOutBgSelected }};
  400. historyCallIconPosition: point(12px, 10px);
  401. historyCallLeft: 16px;
  402. historyCallTop: 9px;
  403. historyCallStatusTop: 29px;
  404. historyCallStatusSkip: 4px;
  405. historyCallArrowPosition: point(-1px, 1px);
  406. HistoryFileLayout {
  407. padding: margins;
  408. nameTop: pixels;
  409. statusTop: pixels;
  410. linkTop: pixels;
  411. thumbSize: pixels;
  412. thumbSkip: pixels;
  413. }
  414. msgFileThumbRadiusSmall: 4px;
  415. msgFileThumbRadiusLarge: 12px;
  416. msgFileLayout: HistoryFileLayout {
  417. padding: margins(12px, 8px, 10px, 8px);
  418. nameTop: 12px;
  419. statusTop: 34px;
  420. thumbSize: 44px;
  421. thumbSkip: 11px;
  422. }
  423. msgFileThumbLayout: HistoryFileLayout {
  424. padding: margins(6px, 6px, 10px, 6px);
  425. nameTop: 11px;
  426. statusTop: 31px;
  427. linkTop: 55px;
  428. thumbSize: 72px;
  429. thumbSkip: 14px;
  430. }
  431. msgFileLayoutGrouped: HistoryFileLayout(msgFileLayout) {
  432. padding: margins(12px, 5px, 10px, 5px);
  433. nameTop: 9px;
  434. statusTop: 31px;
  435. }
  436. msgFileThumbLayoutGrouped: HistoryFileLayout(msgFileThumbLayout) {
  437. padding: margins(6px, 3px, 10px, 3px);
  438. nameTop: 8px;
  439. statusTop: 28px;
  440. linkTop: 52px;
  441. }
  442. attachPreviewLayout: HistoryFileLayout {
  443. padding: margins(0px, 0px, 0px, 0px);
  444. nameTop: 6px;
  445. statusTop: 27px;
  446. thumbSize: 44px;
  447. thumbSkip: 11px;
  448. }
  449. attachPreviewThumbLayout: HistoryFileLayout {
  450. padding: margins(0px, 0px, 0px, 0px);
  451. nameTop: 7px;
  452. statusTop: 37px;
  453. thumbSize: 64px;
  454. thumbSkip: 10px;
  455. }
  456. msgFileMinWidth: 268px;
  457. msgFileTopMinus: 6px;
  458. msgFileOverDuration: 200;
  459. msgFileRadialLine: 3px;
  460. msgWaveformBar: 2px;
  461. msgWaveformSkip: 1px;
  462. msgWaveformMin: 3px;
  463. msgWaveformMax: 17px;
  464. historyVoiceMessageInTTL: icon {{ "chat/mini_media_once", historyFileInIconFg }};
  465. historyVoiceMessageInTTLSelected: icon {{ "chat/mini_media_once", historyFileInIconFgSelected }};
  466. historyVoiceMessageOutTTL: icon {{ "chat/mini_media_once", historyFileOutIconFg }};
  467. historyVoiceMessageOutTTLSelected: icon {{ "chat/mini_media_once", historyFileOutIconFgSelected }};
  468. historyTranscribeSkip: 10px;
  469. historyTranscribeSize: size(28px, 22px);
  470. historyTranscribeRadius: 4px;
  471. historyTranscribeInIcon: icon {{ "chat/voice_to_text", msgFileInBg }};
  472. historyTranscribeInIconSelected: icon {{ "chat/voice_to_text", msgFileInBgSelected }};
  473. historyTranscribeOutIcon: icon {{ "chat/voice_to_text", msgFileOutBg }};
  474. historyTranscribeOutIconSelected: icon {{ "chat/voice_to_text", msgFileOutBgSelected }};
  475. historyTranscribeInHide: icon {{ "chat/voice_to_text_collapse", msgFileInBg }};
  476. historyTranscribeInHideSelected: icon {{ "chat/voice_to_text_collapse", msgFileInBgSelected }};
  477. historyTranscribeOutHide: icon {{ "chat/voice_to_text_collapse", msgFileOutBg }};
  478. historyTranscribeOutHideSelected: icon {{ "chat/voice_to_text_collapse", msgFileOutBgSelected }};
  479. historyTranscribeInLock: icon {{ "chat/mini_lock", msgFileInBg }};
  480. historyTranscribeInLockSelected: icon {{ "chat/mini_lock", msgFileInBgSelected }};
  481. historyTranscribeOutLock: icon {{ "chat/mini_lock", msgFileOutBg }};
  482. historyTranscribeOutLockSelected: icon {{ "chat/mini_lock", msgFileOutBgSelected }};
  483. historyTranscribeLockPos: point(17px, 9px);
  484. historyTranscribeLockOverlayPos: point(19px, 11px);
  485. historyTranscribeLockOverlaySize: size(5px, 10px);
  486. historyVideoMessageMute: icon {{ "volume_mute", historyFileThumbIconFg }};
  487. historyVideoMessageMuteSelected: icon {{ "volume_mute", historyFileThumbIconFgSelected }};
  488. historyVideoMessageMuteSize: 25px;
  489. historyVideoMessageProgressOpacity: 0.72;
  490. historyVideoMessageTtlIcon: icon {{ "chat/audio_once", historyFileThumbIconFg }};
  491. historyVideoMessageTtlIconSelected: icon {{ "chat/audio_once", historyFileThumbIconFgSelected }};
  492. historyAdminLogEmptyWidth: 260px;
  493. historyAdminLogEmptyPadding: margins(10px, 12px, 10px, 12px);
  494. historyAdminLogCancelSearch: CrossButton {
  495. width: 40px;
  496. height: 54px;
  497. cross: CrossAnimation {
  498. size: 32px;
  499. skip: 10px;
  500. stroke: 1.5;
  501. minScale: 0.3;
  502. }
  503. crossFg: menuIconFg;
  504. crossFgOver: menuIconFgOver;
  505. crossPosition: point(6px, 11px);
  506. duration: 150;
  507. loadingPeriod: 1000;
  508. ripple: defaultRippleAnimationBgOver;
  509. }
  510. historyAdminLogSearchTop: 11px;
  511. historyAdminLogSearchSlideDuration: 150;
  512. historyFastShareSize: 31px;
  513. historyFastShareLeft: 13px;
  514. historyFastShareBottom: 5px;
  515. historyFastShareIcon: icon {{ "fast_share", msgServiceFg }};
  516. historyGoToOriginalIcon: icon {{ "filled_go_to_message", msgServiceFg, point(0px, 0px) }};
  517. historyFastCommentsIcon: icon {{ "fast_comments", msgServiceFg }};
  518. historyFastCloseSize: 30px;
  519. historyFastCloseIcon: icon {{ "box_button_close", msgServiceFg }};
  520. historyFastMoreIcon: icon {{ "title_menu_dots", msgServiceFg, point(0px, -2px) }};
  521. historyFastTranscribeIcon: icon {{ "chat/voice_to_text", msgServiceFg }};
  522. historyFastTranscribeLock: icon {{ "chat/mini_lock", msgServiceFg }};
  523. historyFastTranscribeLockPos: point(18px, 13px);
  524. historyFastTranscribeLockOverlayPos: point(21px, 13px);
  525. historyFastTranscribeLockOverlaySize: size(6px, 10px);
  526. historySwipeIconSkip: 80px;
  527. historySavedFont: font(semibold 14px);
  528. historyGroupWidthMax: maxMediaSize;
  529. historyGroupWidthMin: minPhotoSize;
  530. historyGroupSkip: 4px;
  531. historyGroupRadialSize: 44px;
  532. historyGroupRadialLine: 3px;
  533. historyMapPoint: icon {{ "map_point", mapPointDrop }};
  534. historyMapPointInner: icon {{ "map_point_inner", mapPointDot }};
  535. historyPsaForwardPalette: TextPalette(defaultTextPalette) {
  536. linkFg: boxTextFgGood;
  537. }
  538. webPageTitleFont: semiboldFont;
  539. webPageTitleStyle: semiboldTextStyle;
  540. webPageSponsoredHintFont: font(10px);
  541. webPageDescriptionFont: normalFont;
  542. webPageDescriptionStyle: defaultTextStyle;
  543. webPagePhotoDelta: 8px;
  544. historyPollQuestionFont: semiboldFont;
  545. historyPollQuestionStyle: TextStyle(defaultTextStyle) {
  546. font: historyPollQuestionFont;
  547. }
  548. historyPollAnswerStyle: defaultTextStyle;
  549. historyPollQuestionTop: 7px;
  550. historyPollSubtitleSkip: 4px;
  551. historyPollAnswerPadding: margins(32px, 10px, 0px, 10px);
  552. historyPollAnswersSkip: 2px;
  553. historyPollPercentFont: semiboldFont;
  554. historyPollPercentSkip: 5px;
  555. historyPollPercentTop: 0px;
  556. historyPollTotalVotesSkip: 5px;
  557. historyPollFillingMin: 4px;
  558. historyPollFillingHeight: 4px;
  559. historyPollFillingRadius: 1px;
  560. historyPollFillingBottom: 2px;
  561. historyPollFillingRight: 4px;
  562. historyPollRadio: Radio(defaultRadio) {
  563. bg: transparent;
  564. untoggledFg: checkboxFg;
  565. toggledFg: windowBgActive;
  566. diameter: 18px;
  567. thickness: 2px;
  568. skip: 65px; // * 0.1
  569. duration: universalDuration;
  570. rippleAreaPadding: 8px;
  571. }
  572. historyPollRadioOpacity: 0.7;
  573. historyPollRadioOpacityOver: 1.;
  574. historyPollDuration: 300;
  575. historyPollRadialAnimation: InfiniteRadialAnimation(defaultInfiniteRadialAnimation) {
  576. thickness: 2px;
  577. size: size(18px, 18px);
  578. }
  579. historyPollRippleOpacity: 0.3;
  580. historyPollRecentVotersSkip: 4px;
  581. historyPollRecentVoterSize: 18px;
  582. historyPollRecentVoterSkip: 13px;
  583. historyPollBottomButtonSkip: 15px;
  584. historyPollBottomButtonTop: 4px;
  585. historyPollChoiceRight: icon {{ "poll_choice_right", activeButtonFg }};
  586. historyPollChoiceWrong: icon {{ "poll_choice_wrong", activeButtonFg }};
  587. historyPollOutChoiceRight: icon {{ "poll_choice_right", historyFileOutIconFg }};
  588. historyPollOutChoiceRightSelected: icon {{ "poll_choice_right", historyFileOutIconFgSelected }};
  589. historyPollInChoiceRight: icon {{ "poll_choice_right", historyFileInIconFg }};
  590. historyPollInChoiceRightSelected: icon {{ "poll_choice_right", historyFileInIconFgSelected }};
  591. historyPollOutChosen: icon {{ "poll_select_check", historyFileOutIconFg }};
  592. historyPollOutChosenSelected: icon {{ "poll_select_check", historyFileOutIconFgSelected }};
  593. historyPollInChosen: icon {{ "poll_select_check", historyFileInIconFg }};
  594. historyPollInChosenSelected: icon {{ "poll_select_check", historyFileInIconFgSelected }};
  595. historyViewButtonHeight: 48px;
  596. historyViewButtonMargins: margins(10px, 5px, 10px, 10px);
  597. historyViewButtonTextStyle: semiboldTextStyle;
  598. historyPageButtonLine: 1px;
  599. historyPageButtonHeight: 36px;
  600. historyPageButtonPadding: margins(13px, 8px, 13px, 8px);
  601. historyPageEnlarge: icon{{ "chat/link_photo_enlarge", historyFileThumbRadialFg }};
  602. historyPageEnlargeSelected: icon{{ "chat/link_photo_enlarge", historyFileThumbRadialFgSelected }};
  603. historyPageEnlargeSize: 36px;
  604. historyPageEnlargeSkip: 4px;
  605. historyPageEnlargeRadius: 8px;
  606. historyCommentsButtonHeight: 40px;
  607. historyCommentsSkipLeft: 9px;
  608. historyCommentsSkipText: 10px;
  609. historyCommentsSkipRight: 8px;
  610. historyCommentsUserpics: GroupCallUserpics {
  611. size: 25px;
  612. shift: 6px;
  613. stroke: 2px;
  614. align: align(left);
  615. }
  616. historyGroupAboutMargin: 16px;
  617. historyGroupAboutPadding: margins(24px, 16px, 24px, 16px);
  618. historyGroupAboutBulletSkip: 16px;
  619. historyGroupAboutHeaderSkip: 10px;
  620. historyGroupAboutTextSkip: 10px;
  621. historyGroupAboutSkip: 8px;
  622. historyVideoDownloadSize: 44px;
  623. historyVideoMuteSize: 22px;
  624. historyVideoCancel: icon {{ "player/playlist_cancel", historyFileThumbIconFg }};
  625. historyVideoCancelSelected: icon {{ "player/playlist_cancel", historyFileThumbIconFgSelected }};
  626. historyVideoDownload: icon {{ "player/playlist_download", historyFileThumbIconFg }};
  627. historyVideoDownloadSelected: icon {{ "player/playlist_download", historyFileThumbIconFgSelected }};
  628. historyVideoRadialLine: msgFileRadialLine;
  629. historyVideoTimestampProgressLine: 4px;
  630. historyAudioDownloadSize: 20px;
  631. historyAudioRadialLine: 2px;
  632. historyAudioDownloadShift: 28px;
  633. historyAudioInCancel: icon {{ "history_audio_cancel", historyFileInIconFg }};
  634. historyAudioInCancelSelected: icon {{ "history_audio_cancel", historyFileInIconFgSelected }};
  635. historyAudioOutCancel: icon {{ "history_audio_cancel", historyFileOutIconFg }};
  636. historyAudioOutCancelSelected: icon {{ "history_audio_cancel", historyFileOutIconFgSelected }};
  637. historyAudioInDownload: icon {{ "history_audio_download", historyFileInIconFg }};
  638. historyAudioInDownloadSelected: icon {{ "history_audio_download", historyFileInIconFgSelected }};
  639. historyAudioOutDownload: icon {{ "history_audio_download", historyFileOutIconFg }};
  640. historyAudioOutDownloadSelected: icon {{ "history_audio_download", historyFileOutIconFgSelected }};
  641. historyQuizExplainIn: icon {{ "quiz_explain", msgFileThumbLinkInFg }};
  642. historyQuizExplainInSelected: icon {{ "quiz_explain", msgFileThumbLinkInFgSelected }};
  643. historyQuizExplainOut: icon {{ "quiz_explain", msgFileThumbLinkOutFg }};
  644. historyQuizExplainOutSelected: icon {{ "quiz_explain", msgFileThumbLinkOutFgSelected }};
  645. historyQuizTimerIn: icon {{ "quiz_timer", msgFileThumbLinkInFg }};
  646. historyQuizTimerInSelected: icon {{ "quiz_timer", msgFileThumbLinkInFgSelected }};
  647. historyQuizTimerOut: icon {{ "quiz_timer", msgFileThumbLinkOutFg }};
  648. historyQuizTimerOutSelected: icon {{ "quiz_timer", msgFileThumbLinkOutFgSelected }};
  649. historyCommentsIn: icon {{ "history_comments", msgFileThumbLinkInFg }};
  650. historyCommentsInSelected: icon {{ "history_comments", msgFileThumbLinkInFgSelected }};
  651. historyCommentsOut: icon {{ "history_comments", msgFileThumbLinkOutFg }};
  652. historyCommentsOutSelected: icon {{ "history_comments", msgFileThumbLinkOutFgSelected }};
  653. historyCommentsOpenIn: icon {{ "history_comments_open", msgFileThumbLinkInFg }};
  654. historyCommentsOpenInSelected: icon {{ "history_comments_open", msgFileThumbLinkInFgSelected }};
  655. historyCommentsOpenOut: icon {{ "history_comments_open", msgFileThumbLinkOutFg }};
  656. historyCommentsOpenOutSelected: icon {{ "history_comments_open", msgFileThumbLinkOutFgSelected }};
  657. historyGroupCallUserpics: GroupCallUserpics {
  658. size: 32px;
  659. shift: 12px;
  660. stroke: 4px;
  661. align: align(top);
  662. }
  663. historyGroupCallBlobMinRadius: 23px;
  664. historyGroupCallBlobMaxRadius: 25px;
  665. largeEmojiSize: 36px;
  666. largeEmojiOutline: 1px;
  667. largeEmojiPadding: margins(0px, 0px, 0px, 0px);
  668. largeEmojiSkip: 4px;
  669. youtubeIcon: icon {
  670. { "media_youtube_play_bg", youtubePlayIconBg },
  671. { "media_youtube_play", youtubePlayIconFg, point(24px, 12px) },
  672. };
  673. videoIcon: icon {
  674. { "media_video_play_bg", videoPlayIconBg },
  675. { "media_video_play", videoPlayIconFg, point(12px, 12px) },
  676. };
  677. SliderForTTL {
  678. font: font;
  679. textFg: color;
  680. pointSize: pixels;
  681. chosenSize: pixels;
  682. skip: pixels;
  683. stroke: pixels;
  684. activeFg: color;
  685. inactiveFg: color;
  686. dashOn: pixels;
  687. dashOff: pixels;
  688. }
  689. defaultSliderForTTL: SliderForTTL {
  690. font: normalFont;
  691. textFg: windowSubTextFg;
  692. pointSize: 6px;
  693. chosenSize: 12px;
  694. skip: 8px;
  695. stroke: 2px;
  696. activeFg: mediaPlayerActiveFg;
  697. inactiveFg: mediaPlayerInactiveFg;
  698. dashOn: 8px;
  699. dashOff: 5px;
  700. }
  701. ttlDividerLabelPadding: margins(22px, 10px, 22px, 19px);
  702. ttlItemPadding: margins(0px, 4px, 0px, 4px);
  703. ttlItemTimerFont: font(12px);
  704. expandedMenuSeparator: MenuSeparator(defaultMenuSeparator) {
  705. padding: margins(0px, 4px, 0px, 4px);
  706. width: 6px;
  707. }
  708. popupMenuExpandedSeparator: PopupMenu(popupMenuWithIcons) {
  709. menu: Menu(menuWithIcons) {
  710. separator: expandedMenuSeparator;
  711. }
  712. }
  713. whoReadMenu: PopupMenu(popupMenuExpandedSeparator) {
  714. scrollPadding: margins(0px, 6px, 0px, 4px);
  715. maxHeight: 400px;
  716. }
  717. whoReadNameWithDateTop: 3px;
  718. whoReadDateTop: 20px;
  719. whoReadDateSkip: 15px;
  720. whoReadDateChecks: icon{{ "menu/read_ticks_s", windowSubTextFg }};
  721. whoReadDateChecksOver: icon{{ "menu/read_ticks_s", windowSubTextFgOver }};
  722. whoLikedDateHeart: icon{{ "menu/read_react_s", windowSubTextFg }};
  723. whoLikedDateHeartOver: icon{{ "menu/read_react_s", windowSubTextFgOver }};
  724. whoRepostedDateHeart: icon{{ "mediaview/mini_repost", groupCallMemberActiveIcon, point(4px, 4px) }};
  725. whoRepostedDateHeartOver: icon{{ "mediaview/mini_repost", groupCallMemberActiveIcon, point(4px, 4px) }};
  726. whoForwardedDateHeart: icon{{ "statistics/mini_stats_share", groupCallMemberActiveIcon, point(4px, 4px) }};
  727. whoForwardedDateHeartOver: icon{{ "statistics/mini_stats_share", groupCallMemberActiveIcon, point(4px, 4px) }};
  728. whoReadDateChecksPosition: point(-7px, -4px);
  729. whoReadDateStyle: TextStyle(defaultTextStyle) {
  730. font: font(12px);
  731. }
  732. whoReadChecks: icon{{ "menu/read_ticks", windowBoldFg }};
  733. whoReadChecksOver: icon{{ "menu/read_ticks", windowBoldFg }};
  734. whoReadChecksDisabled: icon{{ "menu/read_ticks", menuFgDisabled }};
  735. whoReadPlayed: icon{{ "menu/read_audio", windowBoldFg }};
  736. whoReadPlayedOver: icon{{ "menu/read_audio", windowBoldFg }};
  737. whoReadPlayedDisabled: icon {{ "menu/read_audio", menuFgDisabled }};
  738. whoReadReactions: icon{{ "menu/read_reactions", windowBoldFg }};
  739. whoReadReactionsOver: icon{{ "menu/read_reactions", windowBoldFg }};
  740. whoReadReactionsDisabled: icon{{ "menu/read_reactions", menuFgDisabled }};
  741. whenEdited: icon {{ "menu/edited_status", windowBoldFg }};
  742. whenEditedOver: icon {{ "menu/edited_status", windowBoldFg }};
  743. whenOriginal: icon {{ "menu/forwarded_status", windowBoldFg }};
  744. whenOriginalOver: icon {{ "menu/forwarded_status", windowBoldFg }};
  745. reactionsTabAll: icon {{ "menu/read_reactions", windowFg }};
  746. reactionsTabAllSelected: icon {{ "menu/read_reactions", activeButtonFg }};
  747. reactionsTabPlayed: icon {{ "menu/read_audio", windowFg }};
  748. reactionsTabPlayedSelected: icon {{ "menu/read_audio", activeButtonFg }};
  749. reactionsTabChecks: icon {{ "menu/read_ticks", windowFg }};
  750. reactionsTabChecksSelected: icon {{ "menu/read_ticks", activeButtonFg }};
  751. reactionsTabs: MultiSelect(defaultMultiSelect) {
  752. padding: margins(12px, 10px, 12px, 10px);
  753. }
  754. reactionsTabIconSkip: 3px;
  755. SendAsButton {
  756. width: pixels;
  757. height: pixels;
  758. size: pixels;
  759. activeBg: color;
  760. activeFg: color;
  761. cross: CrossAnimation;
  762. duration: int;
  763. }
  764. sendAsButton: SendAsButton {
  765. width: 44px;
  766. height: 46px;
  767. size: 28px;
  768. activeBg: activeButtonBg;
  769. activeFg: activeButtonFg;
  770. cross: CrossAnimation {
  771. size: 28px;
  772. skip: 10px;
  773. stroke: 1.5;
  774. minScale: 0.3;
  775. }
  776. duration: 150;
  777. }
  778. reactionInlinePadding: margins(5px, 2px, 7px, 2px);
  779. reactionInlineSize: 18px;
  780. reactionInlineImage: 32px;
  781. reactionInlineSkip: 3px;
  782. reactionInlineTagSkip: 6px;
  783. reactionInlineTagLeftRadius: 6px;
  784. reactionInlineTagRightRadius: 3px;
  785. reactionInlineTagArrow: 5px;
  786. reactionInlineTagDot: 5px;
  787. reactionInlineTagDotSkip: 2px;
  788. reactionInlineTagFont: font(12px);
  789. reactionInlineTagNamePosition: point(26px, 2px);
  790. reactionInlineTagPromoPosition: point(20px, 2px);
  791. reactionInlineBetween: 4px;
  792. reactionInlineInBubbleLeft: -3px;
  793. reactionInlineUserpicsPadding: margins(1px, 1px, 1px, 1px);
  794. reactionInlineUserpics: GroupCallUserpics {
  795. size: 20px;
  796. shift: 7px;
  797. stroke: 1px;
  798. align: align(left);
  799. }
  800. reactionInfoSize: 15px;
  801. reactionInfoImage: 30px;
  802. reactionInfoSkip: 3px;
  803. reactionInfoDigitSkip: 6px;
  804. reactionInfoBetween: 3px;
  805. reactionCornerSize: size(36px, 32px);
  806. reactionCornerCenter: point(7px, -9px);
  807. reactionCornerImage: 22px;
  808. reactionCornerShadow: margins(4px, 8px, 4px, 8px);
  809. reactionCornerActiveAreaPadding: margins(10px, 10px, 10px, 10px);
  810. reactionCornerAddedHeightMax: 100px;
  811. reactionCornerSkip: -4px;
  812. reactionExpandedSkip: 2px;
  813. reactionGradientStart: 8px;
  814. reactionGradientSize: 24px;
  815. reactionGradientFadeSize: 24px;
  816. reactionAppearStartSkip: 2px;
  817. reactionMainAppearShift: 20px;
  818. reactionCollapseFadeThreshold: 40px;
  819. reactionFlyUp: 50px;
  820. effectInfoImage: 12px;
  821. searchInChatMultiSelectItem: MultiSelectItem(defaultMultiSelectItem) {
  822. maxWidth: 200px;
  823. }
  824. searchInChatMultiSelect: MultiSelect(defaultMultiSelect) {
  825. item: searchInChatMultiSelectItem;
  826. }
  827. searchInChatPeerListItem: PeerListItem(defaultPeerListItem) {
  828. height: dialogsRowHeight;
  829. }
  830. searchInChatPeerList: PeerList(defaultPeerList) {
  831. item: searchInChatPeerListItem;
  832. }
  833. searchInChatTagsPadding: margins(6px, 0px, 6px, 0px);
  834. msgServiceGiftPreview: 172px;
  835. msgServiceGiftBoxSize: size(236px, 231px); // Plus msgServiceGiftBoxTopSkip.
  836. msgServiceGiftBoxRadius: 20px;
  837. msgServiceGiftBoxTopSkip: 4px;
  838. msgServiceGiftBoxButtonHeight: 32px;
  839. msgServiceGiftBoxButtonPadding: margins(2px, 0px, 2px, 0px);
  840. msgServiceGiftBoxButtonMargins: margins(0px, 13px, 0px, 17px);
  841. msgServiceGiftBoxTitlePadding: margins(0px, 20px, 0px, 6px);
  842. msgServiceGiftBoxStickerTop: -19px;
  843. msgServiceGiftBoxStickerSize: 140px;
  844. msgServiceStarGiftBoxWidth: 224px;
  845. msgServiceStarGiftStickerTop: 24px;
  846. msgServiceStarGiftStickerSize: 100px;
  847. historySponsorInfoItem: FlatLabel(defaultFlatLabel) {
  848. style: TextStyle(defaultTextStyle) {
  849. font: font(12px);
  850. }
  851. minWidth: 136px;
  852. maxHeight: 120px;
  853. }
  854. historyHasCustomEmoji: FlatLabel(defaultFlatLabel) {
  855. style: TextStyle(defaultTextStyle) {
  856. font: font(11px);
  857. }
  858. minWidth: 80px;
  859. }
  860. historyHasCustomEmojiPosition: point(12px, 4px);
  861. historyTranslateLabel: FlatLabel(defaultFlatLabel) {
  862. style: semiboldTextStyle;
  863. textFg: windowActiveTextFg;
  864. minWidth: 80px;
  865. }
  866. historyTranslateIcon: icon{{ "menu/translate", windowActiveTextFg }};
  867. historyTranslateBarHeight: 36px;
  868. historyTranslateSettings: IconButton(defaultIconButton) {
  869. width: 46px;
  870. height: 36px;
  871. icon: icon{{ "menu/customize", windowActiveTextFg }};
  872. iconOver: icon{{ "menu/customize", windowActiveTextFg }};
  873. rippleAreaPosition: point(6px, 2px);
  874. rippleAreaSize: 32px;
  875. ripple: RippleAnimation(defaultRippleAnimation) {
  876. color: lightButtonBgOver;
  877. }
  878. }
  879. historyTranslateMenuPosition: point(-6px, 30px);
  880. historySponsoredAboutMenuLabelPosition: point(54px, 4px);
  881. historySendDisabled: FlatLabel(defaultFlatLabel) {
  882. minWidth: 10px;
  883. maxHeight: 20px;
  884. textFg: placeholderFg;
  885. }
  886. historySendDisabledIcon: icon {{ "emoji/premium_lock", placeholderFgActive }};
  887. historySendDisabledIconSkip: 20px;
  888. historySendDisabledPosition: point(0px, 0px);
  889. historySendPremiumRequired: FlatLabel(historySendDisabled) {
  890. align: align(top);
  891. }
  892. backgroundSwitchToDark: IconButton(defaultIconButton) {
  893. width: 48px;
  894. height: 48px;
  895. icon: icon {{ "menu/header_mode_night", boxTitleCloseFg }};
  896. iconOver: icon {{ "menu/header_mode_night", boxTitleCloseFgOver }};
  897. rippleAreaPosition: point(4px, 4px);
  898. rippleAreaSize: 40px;
  899. ripple: defaultRippleAnimationBgOver;
  900. }
  901. backgroundSwitchToLight: IconButton(backgroundSwitchToDark) {
  902. icon: icon {{ "menu/header_mode_day", boxTitleCloseFg }};
  903. iconOver: icon {{ "menu/header_mode_day", boxTitleCloseFgOver }};
  904. }
  905. storyMentionSize: 80px;
  906. storyMentionUnreadSkipTwice: 8px;
  907. storyMentionUnreadStrokeTwice: 6px;
  908. storyMentionReadSkipTwice: 7px;
  909. storyMentionReadStrokeTwice: 3px;
  910. storyMentionButtonSkip: 5px;
  911. chatGiveawayWidth: 292px;
  912. chatGiveawayStickerTop: -16px;
  913. chatGiveawayStickerPadding: margins(14px, -2px, 14px, 14px);
  914. chatGiveawayWinnersTopSkip: 25px;
  915. chatGiveawayBadgeFont: font(12px bold);
  916. chatGiveawayBadgeTop: 118px;
  917. chatGiveawayBadgePadding: margins(7px, 1px, 5px, 3px);
  918. chatGiveawayBadgeStroke: 2px;
  919. chatGiveawayPrizesTitleMargin: margins(11px, 16px, 11px, 4px);
  920. chatGiveawayPrizesMargin: margins(11px, 0px, 11px, 0px);
  921. chatGiveawayPrizesWithPadding: margins(22px, 2px, 22px, 2px);
  922. chatGiveawayPrizesWithSkip: 8px;
  923. chatGiveawayPrizesWithLineTop: 9px;
  924. chatGiveawayParticipantsMargin: margins(11px, 0px, 11px, 6px);
  925. chatGiveawayNoCountriesTitleMargin: margins(11px, 6px, 11px, 4px);
  926. chatGiveawayEndDateMargin: margins(11px, 0px, 11px, 16px);
  927. chatGiveawayPeerSize: 32px;
  928. chatGiveawayPeerPadding: margins(5px, 7px, 12px, 0px);
  929. chatGiveawayPeerSkip: 8px;
  930. chatGiveawayCreditsIconHeight: 19px;
  931. chatSimilarRadius: 12px;
  932. chatSimilarArrowSize: 6px;
  933. chatSimilarTitle: semiboldFont;
  934. chatSimilarTitlePosition: point(15px, 9px);
  935. chatSimilarPadding: margins(8px, 32px, 8px, 4px);
  936. chatSimilarChannelPadding: margins(8px, 5px, 8px, 37px);
  937. chatSimilarChannelPhoto: 50px;
  938. chatSimilarBadgePadding: margins(2px, 0px, 3px, 1px);
  939. chatSimilarBadgeTop: 43px;
  940. chatSimilarBadgeIcon: icon{{ "chat/mini_subscribers", premiumButtonFg }};
  941. chatSimilarBadgeIconPosition: point(0px, 1px);
  942. chatSimilarLockedIcon: icon{{ "chat/mini_lock", premiumButtonFg }};
  943. chatSimilarLockedIconPosition: point(0px, 1px);
  944. chatSimilarBadgeFont: font(10px bold);
  945. chatSimilarNameTop: 59px;
  946. chatSimilarName: TextStyle(defaultTextStyle) {
  947. font: font(12px);
  948. lineHeight: 14px;
  949. }
  950. chatSimilarWidthMax: 424px;
  951. chatSimilarSkip: 12px;
  952. premiumRequiredWidth: 186px;
  953. premiumRequiredIcon: icon{{ "chat/large_lockedchat", msgServiceFg }};
  954. premiumRequiredCircle: 60px;
  955. repliesEmptyIcon: icon{{ "chat/large_quickreply", msgServiceFg }};
  956. greetingEmptyIcon: icon{{ "chat/large_greeting", msgServiceFg }};
  957. awayEmptyIcon: icon{{ "chat/large_away", msgServiceFg }};
  958. repliesEmptyWidth: 264px;
  959. repliesEmptySkip: 16px;
  960. repliesEmptyPadding: margins(10px, 20px, 10px, 16px);
  961. repliesComposeControls: ComposeControls(defaultComposeControls) {
  962. tabbedHeightMin: 220px;
  963. }
  964. boostMessageIcon: icon {{ "stories/boost_mini", windowFg }};
  965. boostMessageIconPadding: margins(0px, 2px, 0px, 0px);
  966. boostsMessageIcon: icon {{ "stories/boosts_mini", windowFg }};
  967. boostsMessageIconPadding: margins(0px, 2px, 0px, 0px);
  968. historyIvIcon: icon{{ "boosts/boost_mini2", windowFg }};
  969. historyIvIconPadding: margins(2px, 2px, 2px, 0px);
  970. chatIntroStickerSize: 96px;
  971. chatIntroWidth: 224px;
  972. chatIntroTitleMargin: margins(11px, 16px, 11px, 4px);
  973. chatIntroMargin: margins(11px, 0px, 11px, 0px);
  974. chatIntroStickerPadding: margins(10px, 8px, 10px, 16px);
  975. liveLocationLongInIcon: icon {{ "chat/live_location_long", msgInServiceFg }};
  976. liveLocationLongInIconSelected: icon {{ "chat/live_location_long", msgInServiceFgSelected }};
  977. liveLocationLongOutIcon: icon {{ "chat/live_location_long", msgOutServiceFg }};
  978. liveLocationLongOutIconSelected: icon {{ "chat/live_location_long", msgOutServiceFgSelected }};
  979. liveLocationRemainingSize: 28px;
  980. previewMenu: PopupMenu(defaultPopupMenu) {
  981. scrollPadding: margins(0px, 0px, 0px, 0px);
  982. menu: Menu(defaultMenu) {
  983. widthMin: 380px;
  984. widthMax: 380px;
  985. }
  986. maxHeight: 420px;
  987. radius: boxRadius;
  988. shadow: boxRoundShadow;
  989. animation: PanelAnimation(defaultPanelAnimation) {
  990. shadow: boxRoundShadow;
  991. }
  992. }
  993. previewTop: PeerListItem(defaultPeerListItem) {
  994. height: 52px;
  995. photoPosition: point(10px, 6px);
  996. namePosition: point(60px, 9px);
  997. statusPosition: point(60px, 27px);
  998. photoSize: 40px;
  999. }
  1000. previewMarkRead: FlatButton(historyComposeButton) {
  1001. height: 39px;
  1002. textTop: 10px;
  1003. }
  1004. previewName: FlatLabel(defaultFlatLabel) {
  1005. style: semiboldTextStyle;
  1006. textFg: windowFg;
  1007. maxHeight: 30px;
  1008. }
  1009. previewStatus: FlatLabel(defaultFlatLabel) {
  1010. textFg: windowSubTextFg;
  1011. }
  1012. previewUserpic: UserpicButton(defaultUserpicButton) {
  1013. size: size(40px, 40px);
  1014. photoSize: 40px;
  1015. }
  1016. effectPreviewSend: FlatButton(previewMarkRead) {
  1017. bgColor: transparent;
  1018. overBgColor: transparent;
  1019. }
  1020. effectPreviewPromoLabel: FlatLabel(defaultFlatLabel) {
  1021. minWidth: 64px;
  1022. align: align(top);
  1023. textFg: windowSubTextFg;
  1024. style: TextStyle(defaultTextStyle) {
  1025. font: font(11px);
  1026. }
  1027. }
  1028. effectPreviewPromoPadding: margins(4px, 6px, 4px, 6px);
  1029. effectPreviewLoading: InfiniteRadialAnimation(defaultInfiniteRadialAnimation) {
  1030. thickness: 2px;
  1031. }
  1032. factcheckFooterSkip: 16px;
  1033. factcheckFooterStyle: TextStyle(defaultTextStyle) {
  1034. font: font(11px);
  1035. }
  1036. factcheckPage: QuoteStyle(historyPagePreview) {
  1037. padding: margins(10px, 5px, 22px, 7px);
  1038. expand: icon {{ "intro_country_dropdown", historyPeer1NameFg }};
  1039. expandPosition: point(6px, 4px);
  1040. collapse: icon {{ "intro_country_dropdown-flip_vertical", historyPeer1NameFg }};
  1041. collapsePosition: point(6px, 4px);
  1042. }
  1043. factcheckField: InputField(defaultInputField) {
  1044. textBg: transparent;
  1045. textMargins: margins(0px, 0px, 0px, 4px);
  1046. placeholderFg: placeholderFg;
  1047. placeholderFgActive: placeholderFgActive;
  1048. placeholderFgError: placeholderFgActive;
  1049. placeholderMargins: margins(2px, 0px, 2px, 0px);
  1050. placeholderScale: 0.;
  1051. placeholderFont: normalFont;
  1052. heightMin: 24px;
  1053. style: defaultTextStyle;
  1054. }
  1055. purchasedTagPadding: margins(3px, 2px, 6px, 2px);
  1056. msgSelectionCheck: RoundCheckbox(defaultPeerListCheck) {
  1057. bgActive: boxTextFgGood;
  1058. }
  1059. sponsoredMessageBarMaxHeight: 156px;
  1060. botEmojiStatusPreviewHeight: 148px;
  1061. botEmojiStatusTitle: FlatLabel(boxTitle) {
  1062. style: TextStyle(defaultTextStyle) {
  1063. font: font(16px semibold);
  1064. lineHeight: 20px;
  1065. }
  1066. minWidth: 256px;
  1067. maxHeight: 0px;
  1068. align: align(top);
  1069. }
  1070. botEmojiStatusText: FlatLabel(defaultFlatLabel) {
  1071. style: boxTextStyle;
  1072. minWidth: 256px;
  1073. maxHeight: 0px;
  1074. align: align(top);
  1075. }
  1076. botEmojiStatusUserpic: UserpicButton(defaultUserpicButton) {
  1077. size: size(chatGiveawayPeerSize, chatGiveawayPeerSize);
  1078. photoSize: chatGiveawayPeerSize;
  1079. }
  1080. botEmojiStatusName: FlatLabel(defaultFlatLabel) {
  1081. minWidth: 32px;
  1082. maxHeight: 20px;
  1083. }
  1084. botEmojiStatusEmoji: FlatLabel(botEmojiStatusName) {
  1085. margin: margins(4px, 4px, 4px, 4px);
  1086. textFg: profileVerifiedCheckBg;
  1087. }
  1088. botDownloadLabel: boxLabel;
  1089. botDownloadProgress: FlatLabel(defaultFlatLabel) {
  1090. textFg: windowSubTextFg;
  1091. style: TextStyle(defaultTextStyle) {
  1092. font: ttlItemTimerFont;
  1093. }
  1094. }
  1095. botDownloadCancel: IconButton {
  1096. width: 20px;
  1097. height: 20px;
  1098. icon: smallCloseIcon;
  1099. iconOver: smallCloseIconOver;
  1100. iconPosition: point(-1px, -1px);
  1101. rippleAreaPosition: point(0px, 0px);
  1102. rippleAreaSize: 20px;
  1103. ripple: defaultRippleAnimationBgOver;
  1104. }
  1105. chatUniqueGiftBorder: 4px;
  1106. chatUniqueStickerPadding: margins(10px, 30px, 10px, 9px);
  1107. chatUniquePreviewPadding: margins(10px, 30px, 10px, 32px);
  1108. chatUniqueTitle: TextStyle(defaultTextStyle) {
  1109. font: font(16px semibold);
  1110. }
  1111. chatUniqueTitlePadding: margins(12px, 12px, 12px, 2px);
  1112. chatUniqueTextPadding: margins(12px, 2px, 12px, 8px);
  1113. chatUniqueTableSkip: 9px;
  1114. chatUniqueRowSkip: 4px;
  1115. chatUniqueButtonPadding: margins(12px, 4px, 12px, 16px);
  1116. markupWebview: icon {{ "chat/markup_webview", windowFg }};
  1117. newPeerTitleMargin: margins(11px, 16px, 11px, 6px);
  1118. newPeerSubtitleMargin: margins(11px, 0px, 11px, 16px);
  1119. newPeerNonOfficial: IconEmoji {
  1120. icon: icon{{ "chat/mini_info_alert", windowFg }};
  1121. padding: margins(0px, 2px, 0px, 0px);
  1122. }
  1123. newPeerUserpics: GroupCallUserpics {
  1124. size: 16px;
  1125. shift: 5px;
  1126. stroke: 1px;
  1127. align: align(left);
  1128. }
  1129. newPeerUserpicsPadding: margins(0px, 3px, 0px, 0px);
  1130. newPeerWidth: 320px;
  1131. swipeBackSize: 150px;