Post
2026年2月22日 上午12:06

補充一下挑選Emoji字體的方式以及rule out某些字體的原因。

Survey階段的條件是:

  1. 至少支援到Emoji v15。
  2. 提供向量圖檔,字體更好,並且能夠有效支援各瀏覽器。
  3. Open Source。
  4. 有動畫版本方案(nice to have)

列出來之後選擇就不多了:

Noto Color Emoji

  • ✅支援到Emoji v17
  • ✅有向量字體
  • ✅有動畫版本
  • ❓風格看起來不是很舒適,那個超橢圓⋯⋯跟文字一起排列有嚴重不協調感
  • ❌標準字體檔案(COLRv1)不支援Safari,SVG fallback非常肥
  • ❌漸層設計不可能輸出COLRv0,Safari無法有效使用

OpenMoji

  • ✅支援到Emoji v16
  • ✅有向量字體
  • ✅線條風格獨特,個人很喜歡
  • ❌線條太粗了,配合文字大小排版線條會擠在一起
  • ❌貓的emoji⋯⋯為什麼會有兩種風格⋯⋯

Fluent Emoji

  • ✅支援到Emoji v16
  • ✅有動畫版本
  • ❓生物的臉都是方形的⋯⋯???
  • ❌沒有國旗
  • ❌漸層設計不可能輸出COLRv0,Safari無法有效使用

Twemoji

  • ✅支援到Emoji v14,社群分支支援到Emoji v17
  • ✅Discord的Emoji方案,目前除了原生字體外最廣為人知的設計
  • ✅設計夠簡潔,跟文字共同排列不突兀
  • ❓Mozilla的字體檔案停在v14,社群分支只有SVG跟PNG
  • 💀版權被轉移到X身上之後一片混亂
  • ☠️最活躍的分支(jdecked/twemoji)只提供JavaScript lib替換頁面上的Emoji
  • 🫠只要自己下苦工就可以輸出COLRv0 & COLRv1兩種字體,只是很累

綜合考量之下選擇了很累但勉強可以提供支援的Twemoji🫠🫠🫠

研究一輪相關技術後也對之後設計Mosir自己的Emoji有一點點概念了,一點點🤏,實際的勞力還是要交給以後的自己。

還沒有人留言。想成為第一個嗎?
相關留言

附註:如果作業系統本身尚未支援Emoji v17,使用時還是可能會在系統本身的介面內看到類似這樣的漏字問題,這個是正常現象。請稍候作業系統廠商提供更新。(大部分預測iOS/iPadOS/macOS會在26.4提供支援,其他廠商可能會更晚一點)

Mosir 開發筆記14 篇文章
歡迎所有互動

突然想到沒有公開過,這個是隨機emoji大頭貼的完整列表:

😀😃😄😊😁😍😇🥰🤗🥳🤠😺🥹😮‍💨🥲😯😲🫥🫨🥵🥶🥴😬🫠😶‍🌫️😶🐶🐱🐭🐰🦊🐻🦁🐼🦄🐷🐵🐸🐧🐤🐮🐯🦉🐨🦥🦦🦫🦨🦢🐔🐦🦜🦋🐝🦀🦑🐙🐬🐳🐢🦓🦒🦔🐹🦝🦎🐍🦚🦩🐑🐐🐎🦙🐫🦘🐘🦛🦏🐊🐅🐆🦌🍎🍌🍉🍞🍔🍕🍰🍇🍒🥑🍩🍿🍪🎃🥇🏆📚💡🕶️🎈🎲🧸🪁🧊🪐🏵️🌺🌴🍂🍁🌙⭐⚡🪨🏔️🏖️🛁🛏️🪆🧺🪴🧭🧱🪣🪜⏰🕰️🧯🪞🪟🚪🛎️🪑🛋️🕯️🗿🪅🪩🌞🌝🌻🌲🌵🌼🌷🌈🪻🪷🌑💎

歡迎所有互動

好像沒有說過,這邊記錄一下也當作正式公告。

Mosir上傳影片時使用的音訊軌格式是 AAC-LC 192kbps,比起純聲音的AAC-LC 512kbps音質會稍微差一點點。

歡迎所有互動

因為某些原因想記錄一下mosir目前的圖片載入機制。

mosir的圖片載入有三個階段:

  1. 模糊迷你圖(28 Bytes純文字):用BlurHash產生的模糊版本,把圖片壓縮到極致放進網址本身,瀏覽器在知道網址的瞬間就載入完成。
  2. 縮圖(平均80KB AVIF):圖片縮小到1,000x1,000的小圖,用來在點開大圖前顯示,可以提供HiDPI 2x左右的裝置看不到像素鋸齒(極保守估計,實際上我的3x裝置還沒看到過肉眼可見的鋸齒)。有線網路大約0.01~0.02秒內可以載完。
  3. 大圖(平均700KB AVIF):最接近原圖的版本,解析度8,192x8,192以內。在點開大圖之後才會載入,有線網路載入需要約0.1~0.2秒。

BlurHash稍微有點爭議,生成的模糊圖效果也不算理想,但我自己是覺得視覺效果還是比Skeleton好一點。

AVIF是好東西,日常圖片通常可以壓縮到WebP的50%,png的5%。

拜託寫圖片上傳服務的各位大大不要再輸出成WebP了那個又慢又肥又吃瀏覽器CPU拜託

歡迎所有互動

昨天半夜不睡覺做的事情:搜尋引擎升級兼換硬碟

步驟是這樣的:

  1. 修改部署yaml檔到更新後狀態:修改版本號參數、PVC從standard-rwo(混合碟)換成premium-rwo(純SSD)
  2. git commit & push到repo上,同時apply argo application資源進叢集(版本號不能從git repo直接讀)
  3. Argo這時候會卡在版本升級後資料不相容,而且硬碟不能用魔法變成SSD,不過沒關係,這是為什麼要半夜不睡覺
  4. 因為要把部署跟硬碟砍光。刪除STS跟PVC,然後Argo Sync讓Argo發現服務跟硬碟都不見了,去拿個新的。
  5. 此時搜尋引擎可以正常開啟但是空的。把準備好的search-sync job apply到cluster上,從main db把資料撈出來放進搜尋引擎
  6. 為了偷一點時間,同步作業會從最新的資料開始。同步的同時確認搜尋可以找到東西,這個時候系統就部分恢復上線了,只是舊資料還找不到而已
  7. 大約四分鐘以後同步作業完成。檢查request latency確認SSD跟新版本有符合預期效果
  8. 然後把手邊的燒酌喝完去睡覺

喔對,為了確保中間不會出什麼意外,在這之前同樣的步驟有在測試叢集跑過一遍。