/* This file is part of Telegram Desktop, the official desktop application for the Telegram messaging service. For license and copyright information please follow this link: https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ using "ui/basic.style"; using "boxes/boxes.style"; using "ui/widgets/widgets.style"; using "ui/chat/chat.style"; // GroupCallUserpics. using "dialogs/dialogs.style"; // dialogsDateFont. InfoToggle { color: color; duration: int; size: pixels; skip: pixels; stroke: pixels; rippleAreaPadding: pixels; } InfoPeerBadge { verified: icon; premium: icon; premiumFg: color; position: point; sizeTag: int; } InfoTopBar { height: pixels; back: IconButton; title: FlatLabel; titlePosition: point; titleWithSubtitle: FlatLabel; titleWithSubtitlePosition: point; subtitle: FlatLabel; subtitlePosition: point; bg: color; mediaCancel: IconButton; mediaActionsSkip: pixels; mediaForward: IconButton; mediaDelete: IconButton; storiesSave: IconButton; storiesArchive: IconButton; storiesPin: IconButton; storiesUnpin: IconButton; search: IconButton; searchRow: SearchFieldRow; highlightBg: color; highlightDuration: int; radius: pixels; } infoMediaHeaderFg: windowFg; infoToggle: InfoToggle { color: menuIconFg; duration: slideWrapDuration; size: 24px; skip: 5px; stroke: 2px; rippleAreaPadding: 8px; } infoMediaSearch: SearchFieldRow { height: 44px; padding: margins(8px, 6px, 8px, 6px); field: defaultMultiSelectSearchField; fieldIcon: icon {{ "box_search-flip_horizontal", menuIconFg, point(6px, 8px) }}; fieldIconSkip: 36px; fieldCancel: defaultMultiSelectSearchCancel; fieldCancelSkip: 40px; } infoLayerMediaSearch: SearchFieldRow(infoMediaSearch) { height: 46px; fieldIcon: icon {{ "box_search-flip_horizontal", menuIconFg, point(9px, 9px) }}; fieldIconSkip: 34px; fieldCancel: CrossButton(defaultMultiSelectSearchCancel) { width: 50px; cross: CrossAnimation { size: 38px; skip: 12px; stroke: 1.5; minScale: 0.3; } crossPosition: point(3px, 4px); } fieldCancelSkip: 46px; } infoTopBarSearchRow: SearchFieldRow(infoLayerMediaSearch) { height: 52px; padding: margins(0px, 12px, 8px, 10px); fieldCancel: CrossButton(defaultMultiSelectSearchCancel) { width: 51px; height: 52px; cross: CrossAnimation { size: 42px; skip: 14px; stroke: 1.5; minScale: 0.3; } crossPosition: point(1px, 6px); } } infoSlideDuration: 0; infoTopBarBackIcon: icon {{ "info/info_back", boxTitleCloseFg }}; infoTopBarBackIconOver: icon {{ "info/info_back", boxTitleCloseFgOver }}; infoTopBarHeight: 54px; infoTopBarBack: IconButton(defaultIconButton) { width: 60px; height: infoTopBarHeight; icon: infoTopBarBackIcon; iconOver: infoTopBarBackIconOver; iconPosition: point(11px, -1px); rippleAreaPosition: point(6px, 6px); rippleAreaSize: 42px; ripple: RippleAnimation(defaultRippleAnimation) { color: windowBgOver; } } infoTopBarTitle: FlatLabel(defaultFlatLabel) { textFg: windowBoldFg; maxHeight: 20px; style: TextStyle(defaultTextStyle) { font: font(14px semibold); } } infoTopBarMediaCancel: IconButton(infoTopBarBack) { width: infoTopBarHeight; icon: icon {{ "info/info_close", boxTitleCloseFg }}; iconOver: icon {{ "info/info_close", boxTitleCloseFgOver }}; } infoTopBarClose: IconButton(infoTopBarMediaCancel) { width: 48px; iconPosition: point(5px, -1px); rippleAreaPosition: point(0px, 6px); } infoTopBarSearch: IconButton(infoTopBarBack) { width: 56px; icon: icon {{ "top_bar_search", boxTitleCloseFg }}; iconOver: icon {{ "top_bar_search", boxTitleCloseFgOver }}; } infoTopBarMenu: IconButton(infoTopBarBack) { width: 48px; icon: icon {{ "title_menu_dots", boxTitleCloseFg }}; iconOver: icon {{ "title_menu_dots", boxTitleCloseFgOver }}; iconPosition: point(18px, -1px); rippleAreaPosition: point(1px, 6px); } infoTopBarCall: IconButton(infoTopBarMenu) { width: 42px; icon: icon {{ "top_bar_call", boxTitleCloseFg }}; iconOver: icon {{ "top_bar_call", boxTitleCloseFgOver }}; iconPosition: point(5px, -1px); rippleAreaPosition: point(0px, 6px); } infoTopBarForward: IconButton(infoTopBarBack) { width: 46px; icon: icon {{ "info/info_media_forward", boxTitleCloseFg }}; iconOver: icon {{ "info/info_media_forward", boxTitleCloseFgOver }}; iconPosition: point(10px, -1px); rippleAreaPosition: point(1px, 6px); } infoTopBarDelete: IconButton(infoTopBarForward) { icon: icon {{ "info/info_media_delete", boxTitleCloseFg }}; iconOver: icon {{ "info/info_media_delete", boxTitleCloseFgOver }}; } infoTopBarSaveStories: IconButton(infoTopBarForward) { icon: icon {{ "info/info_stories_to_profile", boxTitleCloseFg }}; iconOver: icon {{ "info/info_stories_to_profile", boxTitleCloseFgOver }}; } infoTopBarArchiveStories: IconButton(infoTopBarForward) { icon: icon {{ "info/info_stories_to_archive", boxTitleCloseFg }}; iconOver: icon {{ "info/info_stories_to_archive", boxTitleCloseFgOver }}; } infoTopBarPinStories: IconButton(infoTopBarForward) { icon: icon {{ "menu/pin", boxTitleCloseFg }}; iconOver: icon {{ "menu/pin", boxTitleCloseFgOver }}; } infoTopBarUnpinStories: IconButton(infoTopBarForward) { icon: icon {{ "menu/unpin", boxTitleCloseFg }}; iconOver: icon {{ "menu/unpin", boxTitleCloseFgOver }}; } infoTopBar: InfoTopBar { height: infoTopBarHeight; back: infoTopBarBack; title: infoTopBarTitle; titlePosition: point(24px, 17px); titleWithSubtitle: FlatLabel(infoTopBarTitle) { style: semiboldTextStyle; } titleWithSubtitlePosition: point(16px, 8px); subtitle: FlatLabel(defaultFlatLabel) { textFg: windowSubTextFg; } subtitlePosition: point(16px, 28px); bg: windowBg; mediaCancel: infoTopBarMediaCancel; mediaActionsSkip: 4px; mediaForward: infoTopBarForward; mediaDelete: infoTopBarDelete; storiesSave: infoTopBarSaveStories; storiesArchive: infoTopBarArchiveStories; storiesPin: infoTopBarPinStories; storiesUnpin: infoTopBarUnpinStories; search: infoTopBarSearch; searchRow: infoTopBarSearchRow; highlightBg: windowBgOver; highlightDuration: 240; radius: 0px; } infoTopBarScale: 0.7; infoTopBarDuration: 150; infoLayerTopMinimal: 20px; infoLayerTopMaximal: 40px; infoLayerTopBarHeight: 56px; infoLayerTopBarBackIcon: icon {{ "info/info_back", boxTitleCloseFg }}; infoLayerTopBarBackIconOver: icon {{ "info/info_back", boxTitleCloseFgOver }}; infoLayerTopBarBack: IconButton(infoTopBarBack) { width: 60px; height: infoLayerTopBarHeight; iconPosition: point(10px, -1px); icon: infoLayerTopBarBackIcon; iconOver: infoLayerTopBarBackIconOver; rippleAreaSize: 40px; rippleAreaPosition: point(6px, 8px); } infoLayerTopBarMediaCancel: IconButton(infoLayerTopBarBack) { width: 48px; icon: icon {{ "info/info_close", boxTitleCloseFg }}; iconOver: icon {{ "info/info_close", boxTitleCloseFgOver }}; } infoLayerTopBarClose: IconButton(infoLayerTopBarMediaCancel) { iconPosition: point(4px, -1px); rippleAreaPosition: point(0px, 8px); } infoLayerTopBarMenu: IconButton(infoLayerTopBarClose) { width: 40px; icon: icon {{ "title_menu_dots", boxTitleCloseFg }}; iconOver: icon {{ "title_menu_dots", boxTitleCloseFgOver }}; iconPosition: point(16px, -1px); } infoLayerTopBarCall: IconButton(infoLayerTopBarMenu) { icon: icon {{ "top_bar_call", boxTitleCloseFg }}; iconOver: icon {{ "top_bar_call", boxTitleCloseFgOver }}; iconPosition: point(3px, -1px); } infoLayerTopBarForward: IconButton(infoLayerTopBarBack) { width: 45px; icon: icon {{ "info/info_media_forward", boxTitleCloseFg }}; iconOver: icon {{ "info/info_media_forward", boxTitleCloseFgOver }}; iconPosition: point(11px, -1px); rippleAreaPosition: point(3px, 8px); } infoLayerTopBarDelete: IconButton(infoLayerTopBarForward) { icon: icon {{ "info/info_media_delete", boxTitleCloseFg }}; iconOver: icon {{ "info/info_media_delete", boxTitleCloseFgOver }}; } infoLayerTopBarSaveStories: IconButton(infoLayerTopBarForward) { icon: icon {{ "info/info_stories_to_profile", boxTitleCloseFg }}; iconOver: icon {{ "info/info_stories_to_profile", boxTitleCloseFgOver }}; } infoLayerTopBarArchiveStories: IconButton(infoLayerTopBarForward) { icon: icon {{ "info/info_stories_to_archive", boxTitleCloseFg }}; iconOver: icon {{ "info/info_stories_to_archive", boxTitleCloseFgOver }}; } infoLayerTopBarPinStories: IconButton(infoLayerTopBarForward) { icon: icon {{ "menu/pin", boxTitleCloseFg }}; iconOver: icon {{ "menu/pin", boxTitleCloseFgOver }}; } infoLayerTopBarUnpinStories: IconButton(infoLayerTopBarForward) { icon: icon {{ "menu/unpin", boxTitleCloseFg }}; iconOver: icon {{ "menu/unpin", boxTitleCloseFgOver }}; } infoLayerTopBar: InfoTopBar(infoTopBar) { height: infoLayerTopBarHeight; back: infoLayerTopBarBack; title: boxTitle; titlePosition: point(24px, 17px); titleWithSubtitlePosition: point(16px, 9px); subtitlePosition: point(16px, 30px); bg: boxBg; mediaCancel: infoLayerTopBarMediaCancel; mediaActionsSkip: 6px; mediaForward: infoLayerTopBarForward; mediaDelete: infoLayerTopBarDelete; storiesSave: infoLayerTopBarSaveStories; storiesArchive: infoLayerTopBarArchiveStories; storiesPin: infoLayerTopBarPinStories; storiesUnpin: infoLayerTopBarUnpinStories; search: infoTopBarSearch; searchRow: infoTopBarSearchRow; radius: boxRadius; } infoLayerTopBarMenuPosition: point(40px, 37px); infoMinimalWidth: 324px; infoDesiredWidth: 392px; infoMinimalLayerMargin: 48px; InfoProfileCover { height: pixels; photo: UserpicButton; photoLeft: pixels; photoTop: pixels; name: FlatLabel; nameLeft: pixels; nameTop: pixels; status: FlatLabel; statusLeft: pixels; statusTop: pixels; showLastSeen: RoundButton; showLastSeenPosition: point; showLastSeenVisible: bool; rightSkip: pixels; } infoProfilePhotoInnerSize: 72px; infoProfilePhotoSize: size( infoProfilePhotoInnerSize, infoProfilePhotoInnerSize); infoProfileStatus: FlatLabel(defaultFlatLabel) { maxHeight: 18px; textFg: windowSubTextFg; } infoProfileCover: InfoProfileCover { height: 108px; photo: UserpicButton(defaultUserpicButton) { size: infoProfilePhotoSize; photoSize: infoProfilePhotoInnerSize; } photoLeft: 19px; photoTop: 18px; name: FlatLabel(defaultFlatLabel) { maxHeight: 24px; textFg: windowBoldFg; style: TextStyle(defaultTextStyle) { font: font(16px semibold); } } nameLeft: 109px; nameTop: 32px; status: infoProfileStatus; statusLeft: 109px; statusTop: 58px; showLastSeen: RoundButton(defaultActiveButton) { textFg: windowSubTextFg; textFgOver: windowSubTextFg; textBg: windowBgOver; textBgOver: windowBgOver; width: -12px; height: 18px; textTop: 0px; font: font(12px); ripple: defaultRippleAnimation; } showLastSeenPosition: point(3px, 58px); showLastSeenVisible: true; rightSkip: 20px; } infoProfileMegagroupCover: InfoProfileCover(infoProfileCover) { status: FlatLabel(infoProfileStatus) { palette: TextPalette(defaultTextPalette) { linkFg: windowSubTextFg; } } } infoTopicCover: InfoProfileCover(infoProfileMegagroupCover) { height: 77px; photo: UserpicButton(defaultUserpicButton) { size: size(36px, 36px); } photoLeft: 22px; photoTop: 18px; nameLeft: 79px; nameTop: 14px; statusLeft: 79px; statusTop: 38px; } infoEditContactCover: InfoProfileCover(infoProfileCover) { nameTop: 33px; statusTop: 57px; } infoEditContactPersonalLeft: 6px; infoProfileInaccessibleUserpic: icon {{ "info/inaccessible_userpic", historyPeerUserpicFg }}; infoVerifiedCheckPosition: point(4px, 2px); infoVerifiedCheck: icon { { "profile_verified_star", profileVerifiedCheckBg }, { "profile_verified_check", profileVerifiedCheckFg } }; infoPremiumStar: icon {{ "profile_premium", profileVerifiedCheckBg }}; infoPeerBadge: InfoPeerBadge { verified: infoVerifiedCheck; premium: infoPremiumStar; premiumFg: profileVerifiedCheckBg; position: infoVerifiedCheckPosition; sizeTag: 1; // Large } infoIconFg: windowBoldFg; infoProfileSkip: 7px; infoProfileLabeledPadding: margins(79px, 9px, 30px, 7px); infoProfileLabeledUsernamePadding: margins(79px, 9px, 20px, 7px); infoProfileSeparatorPadding: margins( 77px, infoProfileSkip, 0px, infoProfileSkip); infoProfileLabeledButtonCopy: IconButton(defaultIconButton) { width: 34px; height: 34px; icon: icon {{ "menu/copy", infoIconFg }}; iconOver: icon {{ "menu/copy", infoIconFg }}; rippleAreaPosition: point(0px, 0px); rippleAreaSize: 34px; ripple: defaultRippleAnimation; } infoIconInformation: icon {{ "info/info_information", infoIconFg }}; infoIconAddMember: icon {{ "info/info_add_member", infoIconFg }}; infoIconNotifications: icon {{ "info/info_notifications", infoIconFg }}; infoIconMediaPhoto: icon {{ "info/info_media_photo", infoIconFg }}; infoIconMediaVideo: icon {{ "info/info_media_video", infoIconFg }}; infoIconMediaGif: icon {{ "info/info_media_gif", infoIconFg }}; infoIconMediaFile: icon {{ "info/info_media_file", infoIconFg }}; infoIconMediaAudio: icon {{ "info/info_media_audio", infoIconFg }}; infoIconMediaLink: icon {{ "info/info_media_link", infoIconFg }}; infoIconMediaGroup: icon {{ "info/info_common_groups", infoIconFg }}; infoIconMediaChannel: icon {{ "menu/channel", infoIconFg, point(4px, 4px) }}; infoIconMediaVoice: icon {{ "info/info_media_voice", infoIconFg }}; infoIconMediaStories: icon {{ "info/info_media_stories", infoIconFg }}; infoIconMediaSaved: icon {{ "info/info_media_saved", infoIconFg }}; infoIconMediaStoriesArchive: icon {{ "info/info_stories_archive", infoIconFg }}; infoIconMediaStoriesRecent: icon {{ "info/info_stories_recent", infoIconFg }}; infoIconShare: icon {{ "info/info_share", infoIconFg }}; infoIconEdit: icon {{ "info/info_edit", infoIconFg }}; infoIconDelete: icon {{ "info/info_delete", infoIconFg }}; infoIconDeleteRed: icon {{ "info/info_delete", attentionButtonFg }}; infoIconReport: icon {{ "info/info_report", attentionButtonFg }}; infoIconLeave: icon {{ "info/info_leave", infoIconFg }}; infoIconBlock: icon {{ "info/info_block", attentionButtonFg }}; infoIconMembers: icon {{ "info/info_members", infoIconFg }}; infoInformationIconPosition: point(25px, 12px); infoNotificationsIconPosition: point(20px, 5px); infoSharedMediaButtonIconPosition: point(20px, 3px); infoGroupMembersIconPosition: point(20px, 10px); infoChannelMembersIconPosition: point(20px, 19px); infoPersonalChannelIconPosition: point(25px, 20px); infoPersonalChannelNameLabel: FlatLabel(infoProfileStatus) { textFg: windowBoldFg; style: semiboldTextStyle; maxHeight: 20px; } infoPersonalChannelDateSkip: 22px; infoPersonalChannelDateLabel: FlatLabel(infoProfileStatus) { textFg: dialogsDateFg; style: TextStyle(semiboldTextStyle) { font: dialogsDateFont; } maxHeight: 20px; } infoPersonalChannelUserpicSkip: 3px; infoPersonalChannelUserpic: UserpicButton(defaultUserpicButton) { size: size(42px, 42px); photoSize: 42px; } infoBlockHeaderLabel: FlatLabel(infoProfileStatus) { textFg: windowBoldFg; style: TextStyle(defaultTextStyle) { font: semiboldFont; } } infoBlockHeaderPosition: point(79px, 17px); infoProfileToggle: Toggle(defaultToggle) { untoggledFg: menuIconFg; } infoProfileToggleOver: Toggle(infoProfileToggle) { untoggledFg: menuIconFgOver; } infoProfileButton: SettingsButton(defaultSettingsButton) { style: defaultTextStyle; padding: margins(79px, 10px, 8px, 8px); iconLeft: 22px; toggle: infoProfileToggle; toggleOver: infoProfileToggleOver; toggleSkip: 20px; } infoNotificationsButton: SettingsButton(infoProfileButton) { padding: margins(79px, 13px, 8px, 9px); } infoMainButton: SettingsButton(infoProfileButton) { textFg: lightButtonFg; textFgOver: lightButtonFgOver; style: semiboldTextStyle; } infoMainButtonAttention: SettingsButton(infoMainButton) { textFg: attentionButtonFg; textFgOver: attentionButtonFgOver; } infoSharedMediaButton: infoProfileButton; infoSharedMediaBottomSkip: 12px; infoBlockButton: SettingsButton(infoProfileButton) { textFg: attentionButtonFg; textFgOver: attentionButtonFgOver; } infoCreateLinkedChatButton: SettingsButton(infoProfileButton) { padding: margins(74px, 10px, 8px, 8px); textFg: lightButtonFg; textFgOver: lightButtonFgOver; } infoUnlinkChatButton: SettingsButton(infoCreateLinkedChatButton) { textFg: attentionButtonFg; textFgOver: attentionButtonFgOver; } infoBlockButtonSkip: 8px; infoMembersHeader: 56px; infoMembersList: PeerList(defaultPeerList) { item: PeerListItem(defaultPeerListItem) { photoPosition: point(18px, 6px); namePosition: point(79px, 11px); statusPosition: point(79px, 31px); checkbox: RoundImageCheckbox(defaultPeerListCheckbox) { selectExtendTwice: 1px; imageRadius: 21px; imageSmallRadius: 19px; check: RoundCheckbox(defaultPeerListCheck) { size: 0px; } } nameFgChecked: contactsNameFg; } } infoMembersButtonPosition: point(12px, 0px); infoMembersButton: IconButton(defaultIconButton) { width: 38px; height: 38px; iconPosition: point(-1px, -1px); rippleAreaPosition: point(0px, 0px); rippleAreaSize: 38px; ripple: defaultRippleAnimation; } infoMembersAddMember: IconButton(infoMembersButton) { icon: icon {{ "info/info_add_member", windowBoldFg }}; iconOver: icon {{ "info/info_add_member", windowBoldFg }}; } infoMembersSearch: IconButton(infoMembersButton) { icon: icon {{ "info/info_search", windowBoldFg }}; iconOver: icon {{ "info/info_search", windowBoldFg }}; } infoMembersSearchField: InputField(defaultMultiSelectSearchField) { } infoMembersCancelSearch: CrossButton { width: 44px; height: 44px; cross: CrossAnimation { size: 44px; skip: 16px; stroke: 1.5; minScale: 0.3; } crossFg: menuIconFg; crossFgOver: menuIconFgOver; crossPosition: point(0px, 0px); duration: 150; loadingPeriod: 1000; ripple: RippleAnimation(defaultRippleAnimation) { color: windowBgOver; } } infoMembersSearchTop: 15px; infoMediaHeaderStyle: TextStyle(semiboldTextStyle) { } infoMediaHeaderHeight: 28px; infoMediaHeaderPosition: point(14px, 6px); infoMediaSkip: 2px; infoMediaLeft: 3px; infoMediaMargin: margins(0px, 6px, 0px, 2px); infoMediaMinGridSize: 90px; infoCommonGroupsMargin: margins(0px, 2px, 0px, 2px); infoCommonGroupsListItem: PeerListItem(defaultPeerListItem) { height: 52px; photoSize: 40px; photoPosition: point(16px, 6px); namePosition: point(71px, 15px); nameStyle: TextStyle(defaultTextStyle) { font: font(14px semibold); } statusPosition: point(79px, 31px); } infoCommonGroupsList: PeerList(infoMembersList) { item: infoCommonGroupsListItem; } managePeerButton: SettingsCountButton { button: SettingsButton(infoProfileButton) { padding: margins(76px, 12px, 76px, 10px); } iconPosition: point(20px, 5px); label: FlatLabel(defaultFlatLabel) { textFg: windowActiveTextFg; } labelPosition: point(25px, 12px); } peerPermissionsButton: SettingsCountButton(managePeerButton) { button: SettingsButton(infoProfileButton) { padding: margins(22px, 12px, 24px, 10px); } iconPosition: point(24px, 5px); } manageGroupButtonInner: SettingsButton(infoProfileButton) { padding: margins(60px, 10px, 24px, 8px); } manageGroupButton: SettingsCountButton(managePeerButton) { button: manageGroupButtonInner; labelPosition: point(22px, 10px); iconPosition: point(20px, 4px); } manageGroupTopButtonWithText: SettingsCountButton(manageGroupButton) { iconPosition: point(0px, 0px); } manageGroupTopicsButton: SettingsCountButton(manageGroupTopButtonWithText) { button: SettingsButton(manageGroupButtonInner) { toggle: Toggle(infoProfileToggle) { lockIcon: icon {{ "info/info_rights_lock", menuIconFg }}; } toggleOver: Toggle(infoProfileToggleOver) { lockIcon: icon {{ "info/info_rights_lock", menuIconFgOver }}; } } } managePeerColorsButton: SettingsButton(infoProfileButton) { padding: margins(60px, 10px, 48px, 8px); } manageGroupNoIconButtonInner: SettingsButton(infoProfileButton) { padding: margins(25px, 11px, 24px, 8px); } manageGroupNoIconButton: SettingsCountButton(manageGroupTopButtonWithText) { button: manageGroupNoIconButtonInner; labelPosition: point(22px, 11px); iconPosition: point(0px, 0px); } manageDeleteGroupButton: SettingsCountButton(manageGroupNoIconButton) { button: SettingsButton(manageGroupNoIconButtonInner) { textFg: attentionButtonFg; textFgOver: attentionButtonFg; } } manageGroupReactions: IconButton(defaultIconButton) { width: 24px; height: 36px; icon: icon{{ "info/edit/stickers_add", historyComposeIconFg }}; iconOver: icon{{ "info/edit/stickers_add", historyComposeIconFgOver }}; } manageGroupReactionsField: InputField(defaultInputField) { textMargins: margins(1px, 12px, 24px, 8px); placeholderFg: placeholderFg; placeholderFgActive: placeholderFgActive; placeholderFgError: placeholderFgActive; placeholderMargins: margins(1px, 0px, 7px, 0px); placeholderAlign: align(topleft); placeholderScale: 0.; placeholderFont: normalFont; placeholderShift: -50px; style: defaultTextStyle; heightMin: 36px; heightMax: 158px; } manageGroupReactionsFieldPadding: margins(0px, 0px, 0px, -9px); manageGroupReactionsTextSkip: 16px; manageGroupReactionsMaxSubtitlePadding: margins(0px, 0px, 0px, -3px); infoEmptyFg: windowSubTextFg; infoEmptyPhoto: icon {{ "info/info_media_photo_empty", infoEmptyFg }}; infoEmptyVideo: icon {{ "info/info_media_video_empty", infoEmptyFg }}; infoEmptyAudio: icon {{ "info/info_media_audio_empty", infoEmptyFg }}; infoEmptyFile: icon {{ "info/info_media_file_empty", infoEmptyFg }}; infoEmptyVoice: icon {{ "info/info_media_voice_empty", infoEmptyFg }}; infoEmptyLink: icon {{ "info/info_media_link_empty", infoEmptyFg }}; infoEmptyStories: icon {{ "info/info_media_story_empty", infoEmptyFg }}; infoEmptyIconTop: 120px; infoEmptyLabelTop: 40px; infoEmptyLabelSkip: 20px; infoEmptyLabel: FlatLabel(defaultFlatLabel) { minWidth: 220px; textFg: windowSubTextFg; } infoStoriesAboutArchive: FlatLabel(defaultFlatLabel) { minWidth: 245px; align: align(top); textFg: windowSubTextFg; style: defaultTextStyle; } infoStoriesAboutArchivePadding: margins(22px, 12px, 22px, 12px); editPeerBottomButtonsLayoutMargins: margins(0px, 7px, 0px, 0px); editPeerTopButtonsLayoutSkip: 5px; editPeerTopButtonsLayoutSkipToBottom: 5px; editPeerTopButtonsLayoutSkipCustomBottom: 5px; editPeerHistoryVisibilityTopSkip: 8px; editPeerPhotoMargins: margins(22px, 8px, 22px, 8px); editPeerTitle: defaultInputField; editPeerTitleMargins: margins(27px, 13px, 22px, 8px); editPeerTitleEmojiPosition: point(0px, 23px); editPeerTitleField: InputField(defaultInputField) { textMargins: margins(0px, 28px, 30px, 4px); } editPeerDescription: InputField(defaultInputField) { textBg: transparent; textMargins: margins(0px, 7px, 0px, 7px); placeholderFg: placeholderFg; placeholderFgActive: placeholderFgActive; placeholderFgError: placeholderFgActive; placeholderMargins: margins(2px, 0px, 2px, 0px); placeholderScale: 0.; placeholderFont: normalFont; border: 0px; borderActive: 0px; heightMin: 32px; } editPeerDescriptionMargins: margins(22px, 3px, 22px, 2px); editPeerPrivaciesMargins: margins(15px, 7px, 22px, 0px); editPeerPrivacyBottomSkip: 16px; editPeerPrivacyLabel: FlatLabel(defaultFlatLabel) { minWidth: 220px; textFg: windowSubTextFg; } editPeerPrivacyBoxCheckbox: Checkbox(defaultBoxCheckbox) { margin: margins(0px, 8px, 0px, 8px); style: boxTextStyle; } editPeerPrivacyLabelMargins: margins(42px, 0px, 34px, 0px); editPeerPreHistoryLabelMargins: margins(34px, 0px, 34px, 0px); editPeerUsernameFieldMargins: margins(22px, 0px, 22px, 0px); editPeerUsername: setupChannelLink; editPeerUsernameGood: FlatLabel(defaultFlatLabel) { textFg: boxTextFgGood; style: boxTextStyle; } editPeerReactionsPreview: 24px; editPeerReactionsIconLeft: 21px; historyTopBarBack: IconButton(infoTopBarBack) { width: 52px; } topBarHeight: 54px; topBarMenuPosition: point(-6px, 45px); topBarMenuGroupCallSkip: 20px; topBarBack: icon {{ "title_back", lightButtonFg }}; topBarArrowPadding: margins(39px, 8px, 17px, 8px); topBarNameRightPadding: 3px; topBarButton: RoundButton(defaultLightButton) { width: -18px; padding: margins(0px, 10px, 12px, 10px); } topBarClearButton: RoundButton(defaultLightButton) { width: -18px; } topBarSearch: IconButton { width: 40px; height: topBarHeight; icon: icon {{ "top_bar_search", menuIconFg }}; iconOver: icon {{ "top_bar_search", menuIconFgOver }}; iconPosition: point(4px, 11px); rippleAreaPosition: point(0px, 7px); rippleAreaSize: 40px; ripple: RippleAnimation(defaultRippleAnimation) { color: windowBgOver; } } topBarCloseChoose: IconButton(topBarSearch) { width: 56px; icon: icon {{ "info/info_close", boxTitleCloseFg }}; iconOver: icon {{ "info/info_close", boxTitleCloseFgOver }}; iconPosition: point(10px, -1px); rippleAreaPosition: point(7px, 7px); } topBarSkip: -5px; topBarCallSkip: -1px; topBarMenuToggle: IconButton(topBarSearch) { width: 44px; icon: menuToggleIcon; iconOver: menuToggleIconOver; iconPosition: point(16px, 17px); rippleAreaPosition: point(0px, 7px); } topBarCall: IconButton(topBarSearch) { icon: icon {{ "top_bar_call", menuIconFg }}; iconOver: icon {{ "top_bar_call", menuIconFgOver }}; } topBarGroupCall: IconButton(topBarSearch) { icon: icon {{ "top_bar_group_call", menuIconFg }}; iconOver: icon {{ "top_bar_group_call", menuIconFgOver }}; iconPosition: point(4px, 12px); } topBarInfo: IconButton(topBarSearch) { icon: icon {{ "top_bar_profile", menuIconFg }}; iconOver: icon {{ "top_bar_profile", menuIconFgOver }}; } topBarInfoActive: icon {{ "top_bar_profile", windowActiveTextFg }}; topBarActionSkip: 10px; topBarInfoButtonSize: size(52px, topBarHeight); topBarInfoButtonInnerSize: 42px; topBarInfoButtonInnerPosition: point(2px, -1px); topBarInfoButton: UserpicButton(defaultUserpicButton) { size: topBarInfoButtonSize; photoSize: topBarInfoButtonInnerSize; photoPosition: topBarInfoButtonInnerPosition; } topBarConnectingPosition: point(2px, 5px); topBarConnectingSkip: 6px; topBarConnectingAnimation: InfiniteRadialAnimation(defaultInfiniteRadialAnimation) { color: windowSubTextFg; thickness: 1px; size: size(8px, 8px); } inviteLinkTitleRight: FlatLabel(defaultSubsectionTitle) { minWidth: 0px; } inviteLinkFieldRadius: 5px; inviteLinkFieldHeight: 42px; inviteLinkFieldMargin: margins(14px, 12px, 36px, 9px); inviteLinkThreeDotsIcon: icon {{ "info/edit/dotsmini", dialogsMenuIconFg }}; inviteLinkThreeDotsIconOver: icon {{ "info/edit/dotsmini", dialogsMenuIconFgOver }}; inviteLinkThreeDots: IconButton(defaultIconButton) { width: 36px; height: 44px; icon: inviteLinkThreeDotsIcon; iconOver: inviteLinkThreeDotsIconOver; iconPosition: point(-1px, -1px); rippleAreaSize: 0px; } inviteLinkFieldPadding: margins(22px, 7px, 22px, 14px); inviteLinkFieldLabel: FlatLabel(defaultFlatLabel) { align: align(center); } inviteLinkButton: RoundButton(defaultActiveButton) { height: 36px; textTop: 9px; radius: 6px; } inviteLinkButtonsPadding: margins(22px, 0px, 22px, 0px); inviteLinkButtonsSkip: 10px; inviteLinkCopy: RoundButton(inviteLinkButton) { icon: icon {{ "info/edit/links_copy", activeButtonFg }}; iconOver: icon {{ "info/edit/links_copy", activeButtonFgOver }}; iconPosition: point(-1px, 2px); } inviteLinkShare: RoundButton(inviteLinkCopy) { icon: icon {{ "info/edit/links_share", activeButtonFg }}; iconOver: icon {{ "info/edit/links_share", activeButtonFgOver }}; } inviteLinkReactivate: RoundButton(inviteLinkCopy) { icon: icon {{ "info/edit/links_reactivate", activeButtonFg }}; iconOver: icon {{ "info/edit/links_reactivate", activeButtonFgOver }}; } inviteLinkDelete: RoundButton(inviteLinkCopy) { icon: icon {{ "info/edit/links_delete", activeButtonFg }}; iconOver: icon {{ "info/edit/links_delete", activeButtonFgOver }}; } inviteLinkUserpics: GroupCallUserpics { size: 28px; shift: 6px; stroke: 2px; align: align(left); } inviteLinkUserpicsSkip: 8px; inviteLinkJoinedFont: font(14px); inviteLinkJoinedRowPadding: margins(0px, 18px, 0px, 8px); inviteLinkCreateSkip: 10px; inviteLinkCreate: SettingsButton(defaultSettingsButton) { textFg: lightButtonFg; textFgOver: lightButtonFgOver; textBg: windowBg; textBgOver: windowBgOver; style: semiboldTextStyle; height: 20px; padding: margins(60px, 7px, 12px, 5px); toggle: infoProfileToggle; toggleOver: infoProfileToggleOver; toggleSkip: 22px; ripple: defaultRippleAnimation; } inviteLinkCreateIcon: icon {{ "info/edit/roundbtn_plus", windowFgActive }}; inviteLinkCreateIconSize: 18px; inviteLinkListItem: PeerListItem(defaultPeerListItem) { button: OutlineButton(defaultPeerListButton) { font: normalFont; padding: margins(11px, 5px, 11px, 5px); } height: 52px; photoPosition: point(9px, 4px); namePosition: point(60px, 6px); statusPosition: point(60px, 26px); photoSize: 44px; } inviteLinkList: PeerList(defaultPeerList) { item: inviteLinkListItem; padding: margins(0px, 4px, 0px, 0px); } inviteLinkChatList: PeerList(peerListBox) { padding: margins(0px, 4px, 0px, 6px); } inviteLinkAdminsList: PeerList(inviteLinkList) { item: PeerListItem(inviteLinkListItem) { photoPosition: point(16px, 9px); namePosition: point(62px, 6px); statusPosition: point(62px, 26px); photoSize: 34px; } padding: margins(0px, 5px, 0px, 6px); } inviteLinkIconSkip: 7px; inviteLinkIconStroke: 2px; inviteLinkIcon: icon {{ "info/edit/links_link", mediaviewFileExtFg }}; inviteLinkRevokedIcon: icon {{ "info/edit/links_revoked", mediaviewFileExtFg }}; inviteLinkThreeDotsSkip: 12px; inviteLinkRevokedTitlePadding: margins(22px, 16px, 10px, 4px); inviteLinkLimitMargin: margins(22px, 8px, 22px, 8px); inviteLinkQrPixel: 8px; inviteLinkQrSkip: 24px; inviteLinkQrMargin: margins(0px, 0px, 0px, 13px); inviteLinkQrValuePadding: margins(22px, 0px, 22px, 12px); usernamesReorderIcon: icon {{ "stickers_reorder", dialogsMenuIconFg }}; infoAboutGigagroup: FlatLabel(defaultFlatLabel) { minWidth: 274px; } infoScrollDateHideTimeout: historyScrollDateHideTimeout; infoDateFadeDuration: historyDateFadeDuration; shortInfoWidth: 304px; shortInfoLabeledPadding: margins(24px, 16px, 24px, 0px); shortInfoScroll: ScrollArea(defaultScrollArea) { deltat: 3px; deltab: 0px; round: 1px; width: 8px; deltax: 3px; duration: 150; hiding: 1000; } ShortInfoCover { size: pixels; radius: pixels; name: FlatLabel; namePosition: point; status: FlatLabel; statusPosition: point; linePadding: pixels; lineSkip: pixels; line: pixels; shadowHeight: pixels; radialAnimation: InfiniteRadialAnimation; } shortInfoCover: ShortInfoCover { size: shortInfoWidth; radius: boxRadius; name: FlatLabel(defaultFlatLabel) { textFg: groupCallVideoTextFg; maxHeight: 19px; style: TextStyle(defaultTextStyle) { font: font(15px semibold); } } namePosition: point(25px, 37px); status: FlatLabel(defaultFlatLabel) { textFg: groupCallVideoSubTextFg; maxHeight: 18px; } statusPosition: point(25px, 14px); linePadding: 8px; lineSkip: 4px; line: 2px; shadowHeight: 80px; radialAnimation: InfiniteRadialAnimation(defaultInfiniteRadialAnimation) { color: radialFg; thickness: 2px; } } permissionsExpandIcon: icon{{ "info/edit/expand_arrow_small", windowBoldFg }}; similarChannelsLockOverlap: 58px; similarChannelsLockFade: 58px; similarChannelsLock: RoundButton(defaultActiveButton) { height: 44px; textTop: 12px; font: font(13px semibold); } similarChannelsLockLabel: FlatLabel(defaultFlatLabel) { textFg: premiumButtonFg; style: semiboldTextStyle; } similarChannelsLockPadding: margins(12px, 12px, 12px, 12px); similarChannelsLockAbout: FlatLabel(defaultFlatLabel) { textFg: windowSubTextFg; align: align(top); minWidth: 128px; } similarChannelsLockAboutPadding: margins(12px, 12px, 12px, 12px); infoHoursState: FlatLabel(infoLabeled) { minWidth: 0px; } infoHoursValue: FlatLabel(infoHoursState) { textFg: windowSubTextFg; align: align(topright); } infoHoursDayLabel: infoHoursState; infoHoursOuter: RoundButton(defaultActiveButton) { textBg: transparent; textBgOver: transparent; ripple: RippleAnimation(defaultRippleAnimation) { color: windowBgOver; } } infoHoursOuterMargin: margins(8px, 4px, 8px, 4px); infoHoursDaySkip: 6px;