diff --git a/images/emoji-sheet-32.webp b/images/emoji-sheet-32.webp
new file mode 100644
index 0000000000..0539a4a6a1
Binary files /dev/null and b/images/emoji-sheet-32.webp differ
diff --git a/images/emoji-sheet-64.webp b/images/emoji-sheet-64.webp
new file mode 100644
index 0000000000..72e80f4c73
Binary files /dev/null and b/images/emoji-sheet-64.webp differ
diff --git a/package.json b/package.json
index cddb3b1cbc..7cda9b6c0b 100644
--- a/package.json
+++ b/package.json
@@ -90,6 +90,9 @@
"build:release": "cross-env SIGNAL_ENV=production pnpm run build:electron --config.directories.output=release",
"build:release-win32-all": "pnpm run build:release --arm64 --x64",
"build:preload-cache": "node ts/scripts/generate-preload-cache.js",
+ "build:emoji": "run-p build:emoji:32 build:emoji:64",
+ "build:emoji:32": "cwebp -progress -mt -preset icon -alpha_filter best -alpha_q 20 -pass 10 -q 75 ./node_modules/emoji-datasource-apple/img/apple/sheets-clean/32.png -o ./images/emoji-sheet-32.webp",
+ "build:emoji:64": "cwebp -progress -mt -preset icon -alpha_filter best -alpha_q 20 -pass 10 -q 75 ./node_modules/emoji-datasource-apple/img/apple/sheets-clean/64.png -o ./images/emoji-sheet-64.webp",
"verify": "run-p --print-label verify:*",
"verify:ts": "tsc --noEmit",
"electron:install-app-deps": "electron-builder install-app-deps",
@@ -581,10 +584,7 @@
"!node_modules/emoji-datasource/emoji_pretty.json",
"!node_modules/emoji-datasource/**/*.png",
"!node_modules/emoji-datasource-apple/emoji_pretty.json",
- "!node_modules/emoji-datasource-apple/img/apple/sheets-*.png",
- "!node_modules/emoji-datasource-apple/img/apple/sheets/*.png",
- "node_modules/emoji-datasource-apple/img/apple/sheets/32.png",
- "node_modules/emoji-datasource-apple/img/apple/sheets/64.png",
+ "!node_modules/emoji-datasource-apple/img/apple/sheets*",
"!node_modules/spellchecker/vendor/hunspell/**/*",
"!node_modules/@formatjs/intl-displaynames/**/*",
"!node_modules/@formatjs/intl-listformat/**/*",
diff --git a/sticker-creator/package.json b/sticker-creator/package.json
index d8be95fbf1..693404e043 100644
--- a/sticker-creator/package.json
+++ b/sticker-creator/package.json
@@ -17,7 +17,6 @@
"eslint": "eslint --cache .",
"prettier:format": "prettier --list-different --cache --write .",
"prettier:check": "prettier --cache --check .",
- "build:emoji": "cwebp -progress -mt -preset icon -alpha_filter best -alpha_q 20 -pass 10 -q 50 ./node_modules/emoji-datasource-apple/img/apple/sheets-clean/64.png -o ./src/assets/emoji.webp",
"build:protos": "pbjs --target static-module --force-number --no-typeurl --no-delimited --no-verify --no-create --no-convert --wrap es6 --out src/util/protos.js ./protos/*.proto && pbts --out src/util/protos.d.ts src/util/protos.js",
"test": "vitest"
},
diff --git a/sticker-creator/src/assets/emoji.webp b/sticker-creator/src/assets/emoji.webp
deleted file mode 100644
index 456d249c0b..0000000000
Binary files a/sticker-creator/src/assets/emoji.webp and /dev/null differ
diff --git a/sticker-creator/src/components/ArtFrame.tsx b/sticker-creator/src/components/ArtFrame.tsx
index e3bc2e1f56..d64d1f7594 100644
--- a/sticker-creator/src/components/ArtFrame.tsx
+++ b/sticker-creator/src/components/ArtFrame.tsx
@@ -22,7 +22,6 @@ import { useI18n } from '../contexts/I18n';
import { assert } from '../util/assert';
import { ArtType } from '../constants';
import type { EmojiData } from '../types.d';
-import EMOJI_SHEET from '../assets/emoji.webp';
import EmojiPicker from './EmojiPicker';
export type Mode = 'removable' | 'pick-emoji' | 'add';
@@ -53,7 +52,12 @@ function Emoji({ name, sheetX, sheetY }: EmojiData): JSX.Element {
}
};
return (
-
+
);
}
diff --git a/sticker-creator/src/components/EmojiPicker.tsx b/sticker-creator/src/components/EmojiPicker.tsx
index 08666fa5e4..48ec8b04be 100644
--- a/sticker-creator/src/components/EmojiPicker.tsx
+++ b/sticker-creator/src/components/EmojiPicker.tsx
@@ -8,7 +8,6 @@ import RealEmojiPicker, {
EmojiStyle,
Theme,
} from '@indutny/emoji-picker-react';
-import EMOJI_SHEET from '../assets/emoji.webp';
import { useI18n } from '../contexts/I18n';
@@ -19,7 +18,7 @@ export type EmojiPickerProps = Readonly<{
}>;
function getEmojiUrl() {
- return EMOJI_SHEET;
+ return '../../images/emoji-sheet-64.webp';
}
export default function EmojiPicker({
diff --git a/stylesheets/components/fun/FunEmoji.scss b/stylesheets/components/fun/FunEmoji.scss
index 685cced015..d6dfcf52f4 100644
--- a/stylesheets/components/fun/FunEmoji.scss
+++ b/stylesheets/components/fun/FunEmoji.scss
@@ -11,7 +11,7 @@
.FunEmoji--Size16 {
width: 16px;
height: 16px;
- background-image: url('../node_modules/emoji-datasource-apple/img/apple/sheets/32.png');
+ background-image: url('../images/emoji-sheet-32.webp');
background-size: 1054px;
background-position-x: calc(var(--fun-emoji-sheet-x) * -17px - 0.5px);
background-position-y: calc(var(--fun-emoji-sheet-y) * -17px - 0.5px);
@@ -20,7 +20,7 @@
.FunEmoji--Size32 {
width: 32px;
height: 32px;
- background-image: url('../node_modules/emoji-datasource-apple/img/apple/sheets/64.png');
+ background-image: url('../images/emoji-sheet-64.webp');
background-size: 2046px;
background-position-x: calc(var(--fun-emoji-sheet-x) * -33px - 0.5px);
background-position-y: calc(var(--fun-emoji-sheet-y) * -33px - 0.5px);