给聊天页的三样「贴」

长按哪里,就贴在哪里

按在空白处,贴到聊天背景上;按在气泡上,贴到那条消息上;按在图片上,贴到那张图上。再加上一个抽屉两个 tab:你自己的表情包和颜文字。零依赖,一个脚本接上就能用。

Long-press where you want it to stick — the background, a bubble, or a picture. Plus one drawer with two tabs: your own stickers and kaomoji. Zero dependencies.

GitHub Demo
长按空白处,两人各选一枚 emoji 撒满聊天背景
长按空白 → 背景
长按气泡,两行四格贴表情
长按气泡 → 贴表情
一个抽屉两个 tab:贴纸
抽屉 · 贴纸
一个抽屉两个 tab:颜文字
抽屉 · 颜文字

三步接入

  1. 引进来

    <link rel="stylesheet" href="dist/chat-stickers.css">
    <script src="dist/chat-stickers.js"></script>
  2. 消息列表每行带 data-id,气泡是 .bubble;输入框旁放一颗按钮

    <div id="messages">
      <div class="row" data-id="m1"><div class="bubble">…</div></div>
    </div>
  3. 初始化,接上参考后端(server/)

    ChatStickers.init({
      container: "#messages",
      me: { id: "a", name: "A", emoji: "🐰" }, others: [{ id: "b", name: "B", emoji: "🦊" }],
      api: "/chat-stickers",
      panel: { button: "#drawerBtn", input: "#input", send: (t) => sendMessage(t) },
    });

长按三分法

按在打开贴到
列表空白处聊天背景面板:两人各选一枚 emoji聊天背景(两边同步)
文字气泡两行四格,+ 打开表情包那条消息的角上
图片同一个格子那张图的角上

还有

一个抽屉两个 tab一颗按钮,顶上「贴纸 | 颜文字」切换,记住上次停在哪
表情包库CLI 和最小服务;稳定编号;改名字时旧名进 aliases,历史消息不断图;顶栏 = 搜索 + 添加 + 更多
颜文字十一组内置;支持粘贴任意颜文字网页导入、同步只端新的
分组贴纸和颜文字同一套:药丸选分组、「+ 新分组」原地起名;「管理分组」改名 · 排序 · 删除(条目并入未分组)
样式一套 --cs-* 变量,浅色深色都有;图标全是细线 SVG