tdesktop/Telegram/SourceFiles/chat_helpers/chat_helpers.style

1344 lines
37 KiB
Plaintext

/*
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/layers/layers.style";
using "ui/widgets/widgets.style";
using "ui/menu_icons.style";
using "ui/effects/premium.style";
GroupCallUserpics {
size: pixels;
shift: pixels;
stroke: pixels;
align: align;
}
TabbedSearch {
outer: color;
bg: color;
bgActive: color;
fg: color;
fgActive: color;
fadeLeft: icon;
fadeRight: icon;
field: InputField;
search: IconButton;
back: IconButton;
cancel: CrossButton;
defaultFieldWidth: pixels;
groupWidth: pixels;
groupSkip: pixels;
height: pixels;
}
ComposeIcons {
settings: icon;
recent: icon;
recentActive: icon;
people: icon;
peopleActive: icon;
nature: icon;
natureActive: icon;
food: icon;
foodActive: icon;
activity: icon;
activityActive: icon;
travel: icon;
travelActive: icon;
objects: icon;
objectsActive: icon;
symbols: icon;
symbolsActive: icon;
menuFave: icon;
menuUnfave: icon;
menuStickerSet: icon;
menuRecentRemove: icon;
menuGifAdd: icon;
menuGifRemove: icon;
menuMute: icon;
menuSchedule: icon;
menuWhenOnline: icon;
menuSpoiler: icon;
menuSpoilerOff: icon;
stripBubble: icon;
stripExpandPanel: icon;
stripExpandDropdown: icon;
}
EmojiSuggestions {
dropdown: InnerDropdown;
bg: color;
overBg: color;
textFg: color;
fadeLeft: icon;
fadeRight: icon;
}
EmojiPan {
margin: margins;
padding: margins;
showAnimation: PanelAnimation;
desiredSize: pixels;
verticalSizeSub: pixels;
header: pixels;
headerLeft: pixels;
headerLockLeft: pixels;
headerLockedLeft: pixels;
headerTop: pixels;
footer: pixels;
iconSkip: pixels;
iconWidth: pixels;
iconArea: pixels;
bg: color;
headerFg: color;
trendingHeaderFg: color;
trendingSubheaderFg: color;
trendingUnreadFg: color;
overBg: color;
pathBg: color;
pathFg: color;
textFg: color;
categoriesBg: color;
categoriesBgOver: color;
fadeLeft: icon;
fadeRight: icon;
menu: PopupMenu;
expandedSeparator: MenuSeparator;
tabs: SettingsSlider;
search: TabbedSearch;
searchMargin: margins;
colorAll: IconButton;
colorAllLabel: FlatLabel;
removeSet: IconButton;
boxLabel: FlatLabel;
icons: ComposeIcons;
about: FlatLabel;
aboutPadding: margins;
autocompleteBottomSkip: pixels;
}
MessageBar {
title: TextStyle;
titleFg: color;
text: TextStyle;
textFg: color;
textPalette: TextPalette;
duration: int;
}
EmojiButton {
inner: IconButton;
bg: color;
lineFg: color;
lineFgOver: color;
}
SendButton {
inner: IconButton;
record: icon;
recordOver: icon;
sendDisabledFg: color;
}
RecordBarLock {
ripple: RippleAnimation;
originTop: icon;
originBottom: icon;
originBody: icon;
shadowTop: icon;
shadowBottom: icon;
shadowBody: icon;
arrow: icon;
fg: color;
}
RecordBar {
radius: pixels;
bg: color;
durationFg: color;
cancel: color;
cancelActive: color;
cancelRipple: RippleAnimation;
lock: RecordBarLock;
remove: IconButton;
}
ComposeFiles {
check: Check;
checkbox: Checkbox;
menu: IconButton;
caption: InputField;
emoji: EmojiButton;
confirmBg: color;
buttonFile: IconButton;
buttonFileEdit: icon;
buttonFileDelete: icon;
iconBg: color;
iconPlay: icon;
iconImage: icon;
iconDocument: icon;
nameFg: color;
statusFg: color;
}
ComposeControls {
bg: color;
radius: pixels;
field: InputField;
send: SendButton;
attach: IconButton;
emoji: EmojiButton;
like: IconButton;
liked: icon;
suggestions: EmojiSuggestions;
tabbed: EmojiPan;
tabbedHeightMin: pixels;
tabbedHeightMax: pixels;
record: RecordBar;
files: ComposeFiles;
premium: PremiumLimits;
boxField: InputField;
restrictionLabel: FlatLabel;
premiumRequired: ComposePremiumRequired;
}
ReportBox {
button: SettingsButton;
label: FlatLabel;
field: InputField;
spam: icon;
fake: icon;
violence: icon;
children: icon;
pornography: icon;
copyright: icon;
drugs: icon;
personal: icon;
other: icon;
}
WhoRead {
userpics: GroupCallUserpics;
photoLeft: pixels;
photoSize: pixels;
photoSkip: pixels;
nameLeft: pixels;
iconPosition: point;
itemPadding: margins;
}
defaultWhoRead: WhoRead {
userpics: GroupCallUserpics {
size: 22px;
shift: 8px;
stroke: 4px;
align: align(right);
}
photoLeft: 13px;
photoSize: 30px;
photoSkip: 5px;
nameLeft: 57px;
iconPosition: point(15px, 7px);
itemPadding: margins(44px, 9px, 17px, 7px);
}
whenReadStyle: TextStyle(defaultTextStyle) {
font: font(12px);
}
whenReadPadding: margins(34px, 3px, 17px, 4px);
whenReadIconPosition: point(8px, 0px);
whenReadSkip: 3px;
whenReadShowPadding: margins(6px, 0px, 6px, 2px);
switchPmButton: RoundButton(defaultBoxButton) {
width: 320px;
height: 34px;
textTop: 7px;
}
stickersRestrictedLabel: FlatLabel(defaultFlatLabel) {
minWidth: 200px;
align: align(center);
textFg: noContactsColor;
}
stickersTrendingHeader: 56px;
stickersTrendingSkip: 4px;
stickersTrendingHeaderFont: semiboldFont;
stickersTrendingHeaderFg: windowFg;
stickersTrendingHeaderTop: 11px;
stickersTrendingSubheaderFont: normalFont;
stickersTrendingSubheaderFg: windowSubTextFg;
stickersTrendingSubheaderTop: 31px;
emojiPanButtonRight: 7px;
emojiPanButtonTop: 8px;
emojiPanButton: RoundButton(defaultActiveButton) {
width: -24px;
height: 23px;
textTop: 2px;
}
emojiPanExpand: RoundButton(defaultActiveButton) {
font: font(12px bold);
width: -8px;
height: 19px;
textTop: 1px;
}
stickersTrendingAddTop: 14px;
stickersTrendingAdd: RoundButton(defaultActiveButton) {
width: -16px;
height: 26px;
textTop: 4px;
}
stickersTrendingInstalled: RoundButton(stickersTrendingAdd) {
textFg: activeButtonBg;
textFgOver: activeButtonBgOver;
textBg: lightButtonBgOver;
textBgOver: lightButtonBgOver;
ripple: RippleAnimation(defaultRippleAnimation) {
color: activeButtonSecondaryFg;
}
}
stickersRemove: IconButton(defaultIconButton) {
width: 40px;
height: 40px;
icon: icon {{ "info/info_media_delete", menuIconFg }};
iconOver: icon {{ "info/info_media_delete", menuIconFgOver }};
rippleAreaSize: 40px;
rippleAreaPosition: point(0px, 0px);
ripple: RippleAnimation(defaultRippleAnimation) {
color: windowBgOver;
}
}
stickersUndoRemove: RoundButton(defaultLightButton) {
width: -16px;
height: 26px;
textTop: 4px;
}
stickersRemoveSkip: 4px;
stickersReorderIcon: icon {{ "stickers_reorder", menuIconFg }};
stickersReorderSkip: 18px;
stickersTabs: defaultTabsSlider;
stickersRowItem: PeerListItem(defaultPeerListItem) {
height: 52px;
photoSize: 32px;
photoPosition: point(18px, 10px);
namePosition: point(66px, 7px);
statusPosition: point(66px, 26px);
button: OutlineButton(defaultPeerListButton) {
textBg: contactsBg;
textBgOver: contactsBgOver;
ripple: defaultRippleAnimation;
}
statusFg: contactsStatusFg;
statusFgOver: contactsStatusFgOver;
statusFgActive: contactsStatusFgOnline;
}
stickerEmojiSkip: 5px;
stickersFeaturedBadgeFont: font(12px bold);
stickersFeaturedBadgeSize: 15px;
stickersFeaturedBadgeTextTop: -1px;
stickersFeaturedBadgePadding: 4px;
stickersFeaturedBadgeSkip: 4px;
stickersFeaturedBadgeTop: 9px;
stickersFeaturedUnreadBg: msgFileInBg;
stickersFeaturedUnreadSize: 5px;
stickersFeaturedUnreadSkip: 5px;
stickersFeaturedUnreadTop: 7px;
stickersMaxHeight: 320px;
stickersPadding: margins(19px, 13px, 19px, 13px);
stickersSize: size(64px, 64px);
emojiSetPadding: margins(12px, 0px, 12px, 0px);
emojiSetMaxHeight: 197px;
emojiSetSize: size(42px, 39px);
stickersScroll: ScrollArea(boxScroll) {
deltat: 19px;
deltab: 9px;
}
stickersRowDisabledOpacity: 0.4;
stickersRowDuration: 200;
emojiStatusDefault: icon {{ "emoji/stickers_premium", emojiIconFg }};
filtersRemove: IconButton(stickersRemove) {
ripple: defaultRippleAnimation;
}
emojiPanMargins: margins(10px, 10px, 10px, 10px);
emojiTabs: defaultTabsSlider;
emojiCategoryIconTop: 6px;
emojiPanAnimation: PanelAnimation(defaultPanelAnimation) {
fadeBg: emojiPanBg;
shadow: boxRoundShadow;
}
emojiPanWidth: 345px;
emojiPanMinHeight: 278px;
emojiPanMaxHeight: 640px;
emojiPanHeightRatio: 0.75;
emojiPanShowDuration: 200;
emojiPanDuration: 200;
emojiPanHover: windowBgOver;
emojiPanSlideDuration: 200;
emojiPanArea: size(34px, 32px);
emojiPanRadius: 8px;
defaultTabbedSearchCancel: CrossButton {
width: 33px;
height: 33px;
cross: CrossAnimation {
size: 27px;
skip: 8px;
stroke: 1.;
minScale: 0.3;
}
crossFg: menuIconFg;
crossFgOver: menuIconFg;
crossPosition: point(1px, 3px);
duration: 150;
loadingPeriod: 1000;
ripple: emptyRippleAnimation;
}
defaultTabbedSearchField: InputField(defaultMultiSelectSearchField) {
textMargins: margins(2px, 7px, 2px, 0px);
}
defaultTabbedSearchButton: IconButton(defaultIconButton) {
width: 33px;
height: 33px;
icon: icon{{ "emoji/emoji_search_input", emojiIconFg }};
iconOver: icon{{ "emoji/emoji_search_input", emojiIconFg }};
iconPosition: point(7px, -1px);
ripple: emptyRippleAnimation;
}
defaultTabbedSearchBack: IconButton(defaultIconButton) {
width: 33px;
height: 33px;
icon: icon{{ "emoji/emoji_back", menuIconFg }};
iconOver: icon{{ "emoji/emoji_back", menuIconFg }};
iconPosition: point(7px, -1px);
ripple: emptyRippleAnimation;
}
defaultTabbedSearch: TabbedSearch {
outer: emojiPanBg;
bg: emojiPanHover;
bgActive: windowBgRipple;
fg: emojiIconFg;
fgActive: emojiSubIconFgActive;
fadeLeft: icon {{ "fade_horizontal-flip_horizontal", emojiPanHover }};
fadeRight: icon {{ "fade_horizontal", emojiPanHover }};
field: defaultTabbedSearchField;
search: defaultTabbedSearchButton;
back: defaultTabbedSearchBack;
cancel: defaultTabbedSearchCancel;
defaultFieldWidth: 103px;
groupWidth: 30px;
groupSkip: 2px;
height: 33px;
}
inlineResultsMinHeight: 278px;
inlineResultsMaxHeight: 640px;
emojiPanHeaderFont: semiboldFont;
emojiPanRemoveSkip: 10px;
emojiPanRemoveTop: 10px;
emojiPanColorAllSkip: 9px;
emojiColorsPadding: 5px;
emojiColorsSep: 1px;
emojiColorsSepColor: shadowFg;
emojiIconSelectSkip: 3px;
emojiPremiumRequired: icon{{ "emoji/premium_lock", windowSubTextFg }};
hashtagClose: IconButton {
width: 30px;
height: 30px;
icon: smallCloseIcon;
iconOver: smallCloseIconOver;
iconPosition: point(10px, 10px);
rippleAreaPosition: point(5px, 5px);
rippleAreaSize: 20px;
ripple: RippleAnimation(defaultRippleAnimation) {
color: windowBgOver;
}
}
stickerPanWidthMin: 64px;
stickerPanSize: size(stickerPanWidthMin, stickerPanWidthMin);
stickerPanPadding: 11px;
stickerPanDeleteIconBg: icon {{ "emoji/emoji_delete_bg", stickerPanDeleteBg }};
stickerPanDeleteIconFg: icon {{ "emoji/emoji_delete", stickerPanDeleteFg }};
stickerPanDeleteOpacityBg: 0.3;
stickerPanDeleteOpacityBgOver: 0.5;
stickerPanDeleteOpacityFg: 0.8;
stickerPanDeleteOpacityFgOver: 1.;
stickerPanRemoveSet: IconButton(hashtagClose) {
width: 20px;
height: 20px;
iconPosition: point(-1px, -1px);
rippleAreaPosition: point(0px, 0px);
}
stickerIconMove: 400;
stickerPreviewDuration: 150;
stickerPreviewMin: 0.1;
emojiPanColorAll: IconButton(stickerPanRemoveSet) {
width: 24px;
height: 24px;
rippleAreaSize: 24px;
icon: icon {{ "emoji/emoji_skin", smallCloseIconFg }};
iconOver: icon {{ "emoji/emoji_skin", smallCloseIconFgOver }};
}
emojiPanColorAllLabel: FlatLabel(defaultFlatLabel) {
textFg: windowSubTextFg;
align: align(top);
minWidth: 40px;
style: TextStyle(defaultTextStyle) {
font: font(12px);
}
}
emojiPanColorAllPadding: margins(10px, 6px, 10px, -1px);
stickerGroupCategorySize: 28px;
stickerGroupCategoryAbout: defaultTextStyle;
stickerGroupCategoryAddMargin: margins(0px, 10px, 0px, 5px);
stickerGroupCategoryAdd: stickersTrendingAdd;
stickersToast: Toast(defaultToast) {
minWidth: 340px;
maxWidth: 340px;
padding: margins(16px, 13px, 16px, 12px);
}
stickersEmpty: icon {{ "stickers_empty", windowSubTextFg }};
emojiEmpty: icon {{ "emoji_empty", windowSubTextFg }};
editMediaButtonSize: 32px;
editMediaButtonIconFile: icon {{ "send_media/send_media_replace", menuIconFg }};
editMediaButton: IconButton(defaultIconButton) {
width: editMediaButtonSize;
height: editMediaButtonSize;
icon: editMediaButtonIconFile;
rippleAreaSize: editMediaButtonSize;
ripple: defaultRippleAnimation;
}
sendBoxAlbumGroupEditInternalSkip: 8px;
sendBoxAlbumGroupSkipRight: 5px;
sendBoxAlbumGroupSkipTop: 5px;
sendBoxAlbumGroupRadius: 4px;
sendBoxAlbumGroupSize: size(62px, 25px);
sendBoxAlbumGroupSizeVertical: size(30px, 50px);
sendBoxAlbumSmallGroupSize: size(30px, 25px);
sendBoxFileGroupSkipTop: 2px;
sendBoxFileGroupSkipRight: 5px;
sendBoxFileGroupEditInternalSkip: -1px;
sendBoxAlbumGroupButtonFile: IconButton(editMediaButton) {
ripple: RippleAnimation(defaultRippleAnimation) {
color: windowBgRipple;
}
}
sendBoxAlbumGroupEditButtonIconFile: editMediaButtonIconFile;
sendBoxAlbumGroupDeleteButtonIconFile: icon {{ "send_media/send_media_delete", menuIconFg }};
sendBoxAlbumButtonMediaEdit: icon {{ "send_media/send_media_replace", roundedFg }};
sendBoxAlbumGroupButtonMediaEdit: icon {{ "send_media/send_media_replace", roundedFg, point(4px, 1px) }};
sendBoxAlbumGroupButtonMediaDelete: icon {{ "send_media/send_media_delete", roundedFg }};
defaultComposeIcons: ComposeIcons {
settings: icon {{ "emoji/emoji_settings", emojiIconFg }};
recent: icon {{ "emoji/emoji_recent", emojiIconFg }};
recentActive: icon {{ "emoji/emoji_recent", emojiSubIconFgActive }};
people: icon {{ "emoji/emoji_smile", emojiIconFg }};
peopleActive: icon {{ "emoji/emoji_smile", emojiSubIconFgActive }};
nature: icon {{ "emoji/emoji_nature", emojiIconFg }};
natureActive: icon {{ "emoji/emoji_nature", emojiSubIconFgActive }};
food: icon {{ "emoji/emoji_food", emojiIconFg }};
foodActive: icon {{ "emoji/emoji_food", emojiSubIconFgActive }};
activity: icon {{ "emoji/emoji_activities", emojiIconFg }};
activityActive: icon {{ "emoji/emoji_activities", emojiSubIconFgActive }};
travel: icon {{ "emoji/emoji_travel", emojiIconFg }};
travelActive: icon {{ "emoji/emoji_travel", emojiSubIconFgActive }};
objects: icon {{ "emoji/emoji_objects", emojiIconFg }};
objectsActive: icon {{ "emoji/emoji_objects", emojiSubIconFgActive }};
symbols: icon {{ "emoji/emoji_love", emojiIconFg }};
symbolsActive: icon {{ "emoji/emoji_love", emojiSubIconFgActive }};
menuFave: menuIconFave;
menuUnfave: menuIconUnfave;
menuStickerSet: menuIconStickers;
menuRecentRemove: menuIconDelete;
menuGifAdd: menuIconGif;
menuGifRemove: menuIconDelete;
menuMute: menuIconMute;
menuSchedule: menuIconSchedule;
menuWhenOnline: menuIconWhenOnline;
menuSpoiler: menuIconSpoiler;
menuSpoilerOff: menuIconSpoilerOff;
stripBubble: icon{
{ "chat/reactions_bubble_shadow", windowShadowFg },
{ "chat/reactions_bubble", windowBg },
};
stripExpandPanel: icon{
{ "chat/reactions_round_big", windowBgRipple },
{ "chat/reactions_expand_panel", windowSubTextFg },
};
stripExpandDropdown: icon{
{ "chat/reactions_round_small", windowBgRipple },
{ "chat/reactions_expand_panel", windowSubTextFg },
};
}
defaultEmojiPanAbout: FlatLabel(defaultFlatLabel) {
minWidth: 10px;
align: align(top);
textFg: windowSubTextFg;
style: TextStyle(defaultTextStyle) {
font: font(11px);
}
}
defaultEmojiPan: EmojiPan {
margin: margins(7px, 0px, 7px, 0px);
padding: margins(7px, 0px, 4px, 7px);
showAnimation: emojiPanAnimation;
desiredSize: 37px;
verticalSizeSub: 1px;
header: 33px;
headerLeft: 14px;
headerLockLeft: 7px;
headerLockedLeft: 26px;
headerTop: 10px;
footer: 36px;
iconSkip: 3px;
iconWidth: 30px;
iconArea: 28px;
bg: emojiPanBg;
headerFg: emojiPanHeaderFg;
trendingHeaderFg: stickersTrendingHeaderFg;
trendingSubheaderFg: stickersTrendingSubheaderFg;
trendingUnreadFg: stickersFeaturedUnreadBg;
overBg: emojiPanHover;
pathBg: windowBgRipple;
pathFg: windowBgOver;
textFg: windowFg;
categoriesBg: emojiPanCategories;
categoriesBgOver: windowBgRipple;
fadeLeft: icon {{ "fade_horizontal-flip_horizontal", emojiPanCategories }};
fadeRight: icon {{ "fade_horizontal", emojiPanCategories }};
menu: popupMenuWithIcons;
expandedSeparator: MenuSeparator(defaultMenuSeparator) {
padding: margins(0px, 4px, 0px, 4px);
width: 6px;
}
tabs: emojiTabs;
search: defaultTabbedSearch;
searchMargin: margins(1px, 11px, 2px, 5px);
colorAll: emojiPanColorAll;
colorAllLabel: emojiPanColorAllLabel;
removeSet: stickerPanRemoveSet;
boxLabel: boxLabel;
icons: defaultComposeIcons;
about: defaultEmojiPanAbout;
aboutPadding: margins(12px, 2px, 12px, 2px);
autocompleteBottomSkip: 0px;
}
statusEmojiPan: EmojiPan(defaultEmojiPan) {
categoriesBg: windowBg;
categoriesBgOver: windowBgOver;
fadeLeft: icon {{ "fade_horizontal-flip_horizontal", windowBg }};
fadeRight: icon {{ "fade_horizontal", windowBg }};
}
backgroundEmojiPan: EmojiPan(defaultEmojiPan) {
padding: margins(7px, 7px, 4px, 0px);
}
inlineBotsScroll: ScrollArea(defaultSolidScroll) {
deltat: stickerPanPadding;
deltab: stickerPanPadding;
}
gifsPadding: margins(9px, 5px, 3px, 9px);
emojiSuggestionsDropdown: InnerDropdown(defaultInnerDropdown) {
scrollMargin: margins(0px, emojiColorsPadding, 0px, emojiColorsPadding);
scrollPadding: margins(0px, 0px, 0px, 0px);
}
emojiSuggestionSize: 40px;
emojiSuggestionsScrolledWidth: 240px;
emojiSuggestionsPadding: margins(emojiColorsPadding, 0px, emojiColorsPadding, 0px);
emojiSuggestionsFadeAfter: 20px;
defaultEmojiSuggestions: EmojiSuggestions {
dropdown: emojiSuggestionsDropdown;
bg: menuBg;
overBg: emojiPanHover;
textFg: windowFg;
fadeLeft: icon {{ "fade_horizontal-flip_horizontal", boxBg }};
fadeRight: icon {{ "fade_horizontal", boxBg }};
}
mentionHeight: 40px;
mentionPadding: margins(8px, 5px, 8px, 5px);
mentionTop: 11px;
mentionFont: linkFont;
mentionNameFg: windowFg;
mentionNameFgOver: windowFgOver;
mentionPhotoSize: 33px;
mentionBg: windowBg;
mentionBgOver: windowBgOver;
mentionFg: windowSubTextFg;
mentionFgOver: windowSubTextFgOver;
mentionFgActive: windowActiveTextFg;
mentionFgOverActive: windowActiveTextFg;
autocompleteSearchPadding: margins(16px, 5px, 16px, 5px);
autocompleteRowPadding: margins(16px, 5px, 16px, 5px);
autocompleteRowTitle: semiboldTextStyle;
autocompleteRowKeys: defaultTextStyle;
autocompleteRowAnswer: defaultTextStyle;
manageEmojiPreview: 22px;
manageEmojiPreviewWidth: 48px;
manageEmojiPreviewHeight: 48px;
manageEmojiPreviewPadding: margins(22px, 9px, 19px, 9px);
manageEmojiMarginRight: 21px;
manageEmojiNameTop: 3px;
manageEmojiStatusTop: 25px;
inlineRadialSize: 44px;
inlineFileSize: 44px;
inlineResultsLeft: 11px;
inlineResultsSkip: 3px;
inlineMediaHeight: 96px;
inlineThumbSize: 64px;
inlineThumbSkip: 10px;
inlineTitleFg: windowFg;
inlineDescriptionFg: windowSubTextFg;
inlineRowMargin: 6px;
inlineRowBorder: 1px;
inlineRowBorderFg: shadowFg;
inlineRowFileNameTop: 2px;
inlineRowFileDescriptionTop: 23px;
inlineResultsMinWidth: 48px;
inlineDurationMargin: 3px;
stickersPremiumLock: icon{{ "emoji/premium_lock", premiumButtonFg }};
reactStripExtend: margins(21px, 49px, 39px, 0px);
reactStripHeight: 40px;
reactStripSize: 32px;
reactStripMinWidth: 60px;
reactStripImage: 26px;
reactStripSkip: 7px;
reactStripBubbleRight: 20px;
userpicBuilderEmojiPan: EmojiPan(statusEmojiPan) {
margin: margins(reactStripSkip, 0px, reactStripSkip, 0px);
padding: margins(reactStripSkip, 0px, reactStripSkip, reactStripSkip);
desiredSize: reactStripSize;
verticalSizeSub: 0px;
overBg: transparent;
search: TabbedSearch(defaultTabbedSearch) {
defaultFieldWidth: 88px;
}
}
reactPanelEmojiPan: EmojiPan(userpicBuilderEmojiPan) {
searchMargin: margins(1px, 10px, 2px, 6px);
}
emojiScroll: ScrollArea(defaultSolidScroll) {
deltat: 3px;
deltab: 3px;
round: -1px;
width: 7px;
deltax: 2px;
hiding: 0;
}
reactPanelScroll: ScrollArea(emojiScroll) {
deltab: 7px;
}
choosePeerGroupIcon: icon {{ "info/edit/create_group", lightButtonFg }};
choosePeerChannelIcon: icon {{ "info/edit/create_channel", lightButtonFg }};
choosePeerCreateIconLeft: 25px;
historyRequestsUserpics: GroupCallUserpics {
size: 22px;
shift: 8px;
stroke: 4px;
align: align(left);
}
historyRequestsHeight: 33px;
historySlowmodeCounterMargins: margins(0px, 0px, 10px, 0px);
historyComposeAreaPalette: TextPalette(defaultTextPalette) {
linkFg: historyComposeAreaFgService;
}
defaultMessageBar: MessageBar {
title: semiboldTextStyle;
titleFg: windowActiveTextFg;
text: defaultTextStyle;
textFg: historyComposeAreaFg;
textPalette: historyComposeAreaPalette;
duration: 160;
}
historyComposeButton: FlatButton {
color: windowActiveTextFg;
overColor: windowActiveTextFg;
bgColor: historyComposeButtonBg;
overBgColor: historyComposeButtonBgOver;
width: -32px;
height: 46px;
textTop: 14px;
font: semiboldFont;
overFont: semiboldFont;
ripple: RippleAnimation(defaultRippleAnimation) {
color: historyComposeButtonBgRipple;
}
}
historyUnblock: FlatButton(historyComposeButton) {
color: attentionButtonFg;
overColor: attentionButtonFgOver;
}
historyContactStatusButton: FlatButton(historyComposeButton) {
height: 49px;
textTop: 16px;
overBgColor: historyComposeButtonBg;
ripple: RippleAnimation(defaultRippleAnimation) {
color: historyComposeButtonBgOver;
}
}
historyContactStatusBlock: FlatButton(historyContactStatusButton) {
color: attentionButtonFg;
overColor: attentionButtonFg;
}
historyContactStatusLabel: FlatLabel(defaultFlatLabel) {
minWidth: 240px;
}
historyEmojiStatusInfoLabel: FlatLabel(historyContactStatusLabel) {
align: align(top);
textFg: windowSubTextFg;
}
historyContactStatusMinSkip: 16px;
historyReplyCancelIcon: icon {{ "box_button_close", historyReplyCancelFg }};
historyReplyCancelIconOver: icon {{ "box_button_close", historyReplyCancelFgOver }};
historyReplySkip: 53px;
historyReplyNameFg: windowActiveTextFg;
historyReplyHeight: 49px;
historyReplyIconPosition: point(7px, 7px);
historyReplyIcon: icon {{ "chat/input_reply_settings", historyReplyIconFg }};
historyLinkIcon: icon {{ "chat/input_link_settings", historyReplyIconFg }};
historyQuoteIcon: icon {{ "chat/input_reply_quote", historyReplyIconFg }};
historyForwardIcon: icon {{ "chat/input_forward", historyReplyIconFg }};
historyEditIcon: icon {{ "chat/input_edit", historyReplyIconFg }};
historyReplyCancel: IconButton {
width: 49px;
height: 49px;
icon: historyReplyCancelIcon;
iconOver: historyReplyCancelIconOver;
iconPosition: point(-1px, -1px);
rippleAreaPosition: point(4px, 4px);
rippleAreaSize: 40px;
ripple: RippleAnimation(defaultRippleAnimation) {
color: windowBgOver;
}
}
historyPinnedShowAll: IconButton(historyReplyCancel) {
icon: icon {{ "pinned_show_all", historyReplyCancelFg }};
iconOver: icon {{ "pinned_show_all", historyReplyCancelFgOver }};
}
historyPinnedBotButton: RoundButton(defaultActiveButton) {
width: -34px;
height: 30px;
textTop: 6px;
padding: margins(2px, 10px, 10px, 9px);
}
historyPinnedBotButtonMaxWidth: 150px;
historyToDownPosition: point(12px, 10px);
historyToDownAbove: icon {{ "history_down_arrow", historyToDownFg }};
historyToDownAboveOver: icon {{ "history_down_arrow", historyToDownFgOver }};
historyToDownPaddingTop: 10px;
historyToDownBelow: icon {
{ "history_down_shadow", historyToDownShadow },
{ "history_down_circle", historyToDownBg },
};
historyToDownBelowOver: icon {
{ "history_down_shadow", historyToDownShadow },
{ "history_down_circle", historyToDownBgOver },
};
historyToDown: TwoIconButton {
width: 52px;
height: 62px;
iconBelow: historyToDownBelow;
iconBelowOver: historyToDownBelowOver;
iconAbove: historyToDownAbove;
iconAboveOver: historyToDownAboveOver;
iconPosition: point(0px, historyToDownPaddingTop);
rippleAreaPosition: point(5px, 15px);
rippleAreaSize: 42px;
ripple: RippleAnimation(defaultRippleAnimation) {
color: historyToDownBgRipple;
}
}
historyToDownBadgeFont: semiboldFont;
historyToDownBadgeSize: 22px;
historyToDownShownAfter: 480px;
historyToDownDuration: 150;
dialogsToUpAbove: icon {{ "history_down_arrow-flip_vertical", historyToDownFg, point(0px, 1px) }};
dialogsToUpAboveOver: icon {{ "history_down_arrow-flip_vertical", historyToDownFgOver, point(0px, 1px) }};
dialogsToUp: TwoIconButton(historyToDown) {
iconAbove: dialogsToUpAbove;
iconAboveOver: dialogsToUpAboveOver;
}
historyUnreadMentions: TwoIconButton(historyToDown) {
iconAbove: icon {{ "history_unread_mention", historyToDownFg }};
iconAboveOver: icon {{ "history_unread_mention", historyToDownFgOver }};
}
historyUnreadReactions: TwoIconButton(historyToDown) {
iconAbove: icon {{ "history_unread_reaction", historyToDownFg }};
iconAboveOver: icon {{ "history_unread_reaction", historyToDownFgOver }};
}
historyUnreadThingsSkip: 4px;
historyComposeField: InputField(defaultInputField) {
font: normalFont;
textMargins: margins(0px, 0px, 0px, 0px);
textAlign: align(left);
textFg: historyComposeAreaFg;
textBg: historyComposeAreaBg;
heightMin: 36px;
heightMax: 72px;
placeholderFg: placeholderFg;
placeholderFgActive: placeholderFgActive;
placeholderFgError: placeholderFgActive;
placeholderMargins: margins(7px, 5px, 7px, 5px);
placeholderAlign: align(topleft);
placeholderScale: 0.;
placeholderFont: normalFont;
placeholderShift: -50px;
border: 0px;
borderActive: 0px;
duration: 100;
}
historyComposeFieldMaxHeight: 224px;
historyComposeFieldFadeHeight: 8px;
// historyMinHeight: 56px;
historyAttach: IconButton(defaultIconButton) {
width: 44px;
height: 46px;
icon: icon {{ "chat/input_attach", historyComposeIconFg }};
iconOver: icon {{ "chat/input_attach", historyComposeIconFgOver }};
rippleAreaPosition: point(2px, 3px);
rippleAreaSize: 40px;
ripple: RippleAnimation(defaultRippleAnimation) {
color: windowBgOver;
}
}
historyMessagesTTL: IconButtonWithText {
iconButton: IconButton(historyAttach) {
icon: icon {{ "chat/input_autodelete", historyComposeIconFg }};
iconOver: icon {{ "chat/input_autodelete", historyComposeIconFgOver }};
}
textFg: historyComposeIconFg;
textFgOver: historyComposeIconFgOver;
textPadding: margins(21px, 20px, 3px, 7px);
textAlign: align(left);
font: font(10px semibold);
}
historyReplaceMedia: IconButton(historyAttach) {
icon: icon {{ "chat/input_replace", windowBgActive }};
iconOver: icon {{ "chat/input_replace", windowBgActive }};
ripple: RippleAnimation(defaultRippleAnimation) {
color: lightButtonBgOver;
}
}
historyAttachEmojiActive: icon {{ "chat/input_smile_face", windowBgActive }};
historyEmojiCircle: size(20px, 20px);
historyEmojiCircleLine: 1.5;
historyEmojiCircleFg: historyComposeIconFg;
historyEmojiCircleFgOver: historyComposeIconFgOver;
historyBotKeyboardShow: IconButton(historyAttach) {
icon: icon {{ "chat/input_bot_keyboard", historyComposeIconFg }};
iconOver: icon {{ "chat/input_bot_keyboard", historyComposeIconFgOver }};
}
historyBotKeyboardHide: IconButton(historyAttach) {
icon: icon {{ "chat/input_bot_keyboard_hide", historyComposeIconFg }};
iconOver: icon {{ "chat/input_bot_keyboard_hide", historyComposeIconFgOver }};
}
historyBotCommandStart: IconButton(historyAttach) {
icon: icon {{ "chat/input_bot_command", historyComposeIconFg }};
iconOver: icon {{ "chat/input_bot_command", historyComposeIconFgOver }};
}
historyScheduledToggle: IconButton(historyAttach) {
icon: icon {
{ "chat/input_scheduled", historyComposeIconFg },
{ "chat/input_scheduled_dot", attentionButtonFg }
};
iconOver: icon {
{ "chat/input_scheduled", historyComposeIconFgOver },
{ "chat/input_scheduled_dot", attentionButtonFg }
};
}
historyAttachEmojiInner: IconButton(historyAttach) {
icon: icon {{ "chat/input_smile_face", historyComposeIconFg }};
iconOver: icon {{ "chat/input_smile_face", historyComposeIconFgOver }};
}
historyAttachEmoji: EmojiButton {
inner: historyAttachEmojiInner;
bg: historyComposeAreaBg;
lineFg: historyEmojiCircleFg;
lineFgOver: historyEmojiCircleFgOver;
}
boxAttachEmoji: EmojiButton(historyAttachEmoji) {
inner: IconButton(historyAttachEmojiInner) {
width: 30px;
height: 30px;
rippleAreaSize: 0px;
}
}
boxAttachEmojiTop: 20px;
historySendIcon: icon {{ "chat/input_send", historySendIconFg }};
historySendIconOver: icon {{ "chat/input_send", historySendIconFgOver }};
historySendIconPosition: point(10px, 11px);
historySendSize: size(44px, 46px);
historyScheduleIcon: icon {{ "chat/input_schedule", historyComposeAreaBg }};
historyScheduleIconPosition: point(7px, 8px);
historyEditSaveIcon: icon {{ "chat/input_save", historySendIconFg }};
historyEditSaveIconOver: icon {{ "chat/input_save", historySendIconFgOver }};
historyEditMediaBg: videoPlayIconBg;
historyEditMedia: icon{{ "chat/input_draw", videoPlayIconFg }};
historyMessagesTTLPickerHeight: 200px;
historyMessagesTTLPickerItemHeight: 40px;
historyMessagesTTLLabel: FlatLabel(defaultFlatLabel) {
minWidth: 200px;
align: align(topleft);
textFg: windowSubTextFg;
}
historyCharsLimitationLabel: FlatLabel(defaultFlatLabel) {
// The same as a width of the historySendSize.
minWidth: 44px;
align: align(center);
textFg: attentionButtonFg;
}
historyRecordVoiceFg: historyComposeIconFg;
historyRecordVoiceFgOver: historyComposeIconFgOver;
historyRecordVoiceFgInactive: attentionButtonFg;
historyRecordVoiceFgActive: windowBgActive;
historyRecordVoiceFgActiveIcon: windowFgActive;
historyRecordVoiceShowDuration: 120;
historyRecordVoiceDuration: 120;
historyRecordVoice: icon {{ "chat/input_record", historyRecordVoiceFg }};
historyRecordVoiceOver: icon {{ "chat/input_record", historyRecordVoiceFgOver }};
historyRecordVoiceOnceBg: icon {{ "voice_lock/audio_once_bg", historySendIconFg }};
historyRecordVoiceOnceBgOver: icon {{ "voice_lock/audio_once_bg", historySendIconFgOver }};
historyRecordVoiceOnceFg: icon {{ "voice_lock/audio_once_number", windowFgActive }};
historyRecordVoiceOnceFgOver: icon {{ "voice_lock/audio_once_number", windowFgActive }};
historyRecordVoiceOnceInactive: icon {{ "chat/audio_once", windowSubTextFg }};
historyRecordVoiceActive: icon {{ "chat/input_record_filled", historyRecordVoiceFgActiveIcon }};
historyRecordSendIconPosition: point(2px, 0px);
historyRecordVoiceRippleBgActive: lightButtonBgOver;
historyRecordSignalRadius: 5px;
historyRecordCancel: windowSubTextFg;
historyRecordCancelActive: historySendIconFg;
historyRecordFont: font(13px);
historyRecordDurationSkip: 12px;
historyRecordDurationFg: historyComposeAreaFg;
historyRecordTTLLineWidth: 2px;
historyRecordMainBlobMinRadius: 23px;
historyRecordMainBlobMaxRadius: 37px;
historyRecordMinorBlobMinRadius: 40px;
historyRecordMinorBlobMaxRadius: 47px;
historyRecordMajorBlobMinRadius: 43px;
historyRecordMajorBlobMaxRadius: 50px;
historyRecordTextStyle: TextStyle(defaultTextStyle) {
font: historyRecordFont;
}
historyRecordTextWidthForWrap: 210px;
historyRecordTextLeft: 15px;
historyRecordTextRight: 25px;
historyRecordLockShowDuration: historyToDownDuration;
historyRecordLockSize: size(75px, 133px);
historyRecordLockIconSize: size(14px, 17px);
historyRecordLockIconBottomHeight: 9px;
historyRecordLockIconLineHeight: 2px;
historyRecordLockIconLineSkip: 3px;
historyRecordLockIconLineWidth: 2px;
historyRecordLockIconArcHeight: 4px;
historyRecordStopIconWidth: 12px;
historyRecordLockTopShadow: icon {{ "voice_lock/record_lock_top_shadow", historyToDownShadow }};
historyRecordLockTop: icon {{ "voice_lock/record_lock_top", historyToDownBg }};
historyRecordLockBottomShadow: icon {{ "voice_lock/record_lock_bottom_shadow", historyToDownShadow }};
historyRecordLockBottom: icon {{ "voice_lock/record_lock_bottom", historyToDownBg }};
historyRecordLockBodyShadow: icon {{ "voice_lock/record_lock_body_shadow", historyToDownShadow }};
historyRecordLockBody: icon {{ "voice_lock/record_lock_body", historyToDownBg }};
historyRecordLockMargin: margins(4px, 4px, 4px, 4px);
historyRecordLockArrow: icon {{ "voice_lock/voice_arrow", historyToDownFg }};
historyRecordLockInput: icon {{ "voice_lock/input_mic_s", historyToDownFg }};
historyRecordLockRippleMargin: margins(6px, 6px, 6px, 6px);
historyRecordDelete: IconButton(historyAttach) {
icon: icon {{ "voice_lock/recorded_delete", historyComposeIconFg }};
iconOver: icon {{ "voice_lock/recorded_delete", historyComposeIconFgOver }};
iconPosition: point(10px, 11px);
}
historyRecordWaveformRightSkip: 10px;
historyRecordWaveformBgMargins: margins(5px, 8px, 5px, 9px);
historyRecordWaveformBar: 3px;
historyRecordLockPosition: point(1px, 22px);
historyRecordCancelButtonWidth: 100px;
historyRecordCancelButtonFg: lightButtonFg;
historyRecordTooltip: ImportantTooltip(defaultImportantTooltip) {
padding: margins(4px, 4px, 4px, 4px);
radius: 11px;
arrow: 6px;
}
historySilentToggle: IconButton(historyBotKeyboardShow) {
icon: icon {{ "chat/input_silent", historyComposeIconFg }};
iconOver: icon {{ "chat/input_silent", historyComposeIconFgOver }};
}
historySilentToggleOn: icon {{ "chat/input_silent_on", historyComposeIconFg }};
historySilentToggleOnOver: icon {{ "chat/input_silent_on", historyComposeIconFgOver }};
defaultRecordBarLock: RecordBarLock {
ripple: defaultRippleAnimation;
originTop: historyRecordLockTop;
originBottom: historyRecordLockBottom;
originBody: historyRecordLockBody;
shadowTop: historyRecordLockTopShadow;
shadowBottom: historyRecordLockBottomShadow;
shadowBody: historyRecordLockBodyShadow;
arrow: historyRecordLockArrow;
fg: historyToDownFg;
}
defaultRecordBar: RecordBar {
bg: historyComposeAreaBg;
durationFg: historyRecordDurationFg;
cancel: historyRecordCancel;
cancelActive: historyRecordCancelActive;
cancelRipple: RippleAnimation(defaultRippleAnimation) {
color: lightButtonBgRipple;
}
lock: defaultRecordBarLock;
remove: historyRecordDelete;
}
historySend: SendButton {
inner: IconButton(historyAttach) {
icon: historySendIcon;
iconOver: historySendIconOver;
}
record: historyRecordVoice;
recordOver: historyRecordVoiceOver;
sendDisabledFg: historyComposeIconFg;
}
defaultComposeFilesMenu: IconButton(defaultIconButton) {
width: 48px;
height: 54px;
icon: icon {{ "title_menu_dots", boxTitleCloseFg }};
iconOver: icon {{ "title_menu_dots", boxTitleCloseFgOver }};
iconPosition: point(18px, -1px);
rippleAreaPosition: point(1px, 6px);
rippleAreaSize: 42px;
ripple: RippleAnimation(defaultRippleAnimation) {
color: windowBgOver;
}
}
defaultComposeFilesField: InputField(defaultInputField) {
textMargins: margins(1px, 26px, 31px, 4px);
heightMax: 158px;
}
defaultComposeFiles: ComposeFiles {
check: defaultCheck;
checkbox: defaultBoxCheckbox;
menu: defaultComposeFilesMenu;
caption: defaultComposeFilesField;
emoji: boxAttachEmoji;
confirmBg: windowBgOver;
buttonFile: sendBoxAlbumGroupButtonFile;
buttonFileEdit: sendBoxAlbumGroupEditButtonIconFile;
buttonFileDelete: sendBoxAlbumGroupDeleteButtonIconFile;
iconBg: msgFileInBg;
iconPlay: icon {{ "history_file_play", historyFileInIconFg }};
iconImage: icon {{ "history_file_image", historyFileInIconFg }};
iconDocument: icon {{ "history_file_document", historyFileInIconFg }};
nameFg: historyFileNameInFg;
statusFg: mediaInFg;
}
defaultRestrictionLabel: FlatLabel(defaultFlatLabel) {
minWidth: 12px;
textFg: placeholderFg;
align: align(top);
}
defaultComposeControls: ComposeControls {
bg: historyComposeAreaBg;
radius: 0px;
field: historyComposeField;
send: historySend;
attach: historyAttach;
emoji: historyAttachEmoji;
suggestions: defaultEmojiSuggestions;
tabbed: defaultEmojiPan;
tabbedHeightMin: emojiPanMinHeight;
tabbedHeightMax: emojiPanMaxHeight;
record: defaultRecordBar;
files: defaultComposeFiles;
premium: defaultPremiumLimits;
boxField: defaultInputField;
restrictionLabel: defaultRestrictionLabel;
}
moreChatsBarHeight: 48px;
moreChatsBarTextPosition: point(12px, 4px);
moreChatsBarStatusPosition: point(12px, 24px);
moreChatsBarClose: IconButton(defaultIconButton) {
width: 48px;
height: 48px;
icon: boxTitleCloseIcon;
iconOver: boxTitleCloseIconOver;
iconPosition: point(12px, -1px);
rippleAreaPosition: point(0px, 4px);
rippleAreaSize: 40px;
ripple: RippleAnimation(defaultRippleAnimation) {
color: windowBgOver;
}
}
reportReasonTopSkip: 8px;
reportReasonButton: SettingsButton(defaultSettingsButton) {
style: boxTextStyle;
padding: margins(62px, 7px, 8px, 7px);
iconLeft: 22px;
}
defaultReportBox: ReportBox {
button: reportReasonButton;
label: boxLabel;
field: newGroupDescription;
spam: menuIconDelete;
fake: menuIconFake;
violence: menuIconViolence;
children: menuIconBlock;
pornography: menuIconPorn;
copyright: menuIconCopyright;
drugs: menuIconDrugs;
personal: menuIconPersonal;
other: menuIconReport;
}
dragFont: font(27px semibold);
dragSubfont: font(19px semibold);
dragColor: windowSubTextFg;
dragDropColor: windowActiveTextFg;
dragMargin: margins(0px, 10px, 0px, 10px);
dragPadding: margins(20px, 10px, 20px, 10px);
dragHeight: 72px;
ttlMediaImportantTooltipLabel: FlatLabel(defaultImportantTooltipLabel) {
style: TextStyle(defaultTextStyle) {
font: font(14px);
}
}
ttlMediaButton: RoundButton(defaultActiveButton) {
textBg: shadowFg;
textBgOver: shadowFg;
ripple: universalRippleAnimation;
height: 31px;
textTop: 6px;
}
ttlMediaButtonBottomSkip: 14px;
editTagAbout: FlatLabel(defaultFlatLabel) {
minWidth: 256px;
}
editTagField: InputField(defaultInputField) {
textBg: transparent;
textMargins: margins(24px, 10px, 32px, 2px);
placeholderFg: placeholderFg;
placeholderFgActive: placeholderFgActive;
placeholderFgError: placeholderFgActive;
placeholderMargins: margins(2px, 0px, 2px, 0px);
placeholderScale: 0.;
heightMin: 36px;
}
editTagLimit: FlatLabel(defaultFlatLabel) {
textFg: windowSubTextFg;
}