emaction 是一个标准 web component,可以用在任何 html 页面中。
只需两行代码,即可为页面添加 emoji reaction 功能。
省流(Newsletter):有关行业📱、代码👨💻、科研🔬的有趣内容,每个工作日更新。 点此订阅
<script type="module" src="https://cdn.jsdelivr.net/gh/emaction/[email protected]/bundle.js"></script>
然后
<emoji-reaction></emoji-reaction>
就 Ok 啦!
npm install emaction
你可以通过 availableArrayString
属性指定自定义的 emoji
<emoji-reaction availableArrayString="👍,thumbs-up;😄,smile-face;🎉,party-popper;😕,confused-face;❤️,red-heart;🚀,rocket;👀,eyes;"></emoji-reaction>
你可以通过 css 变量来指定背景颜色、字体颜色、边界颜色等,像下面这样:
<style>
.reactions {
--start-smile-border-color: #d0d7de;
--start-smile-border-color-hover: #bbb;
--start-smile-bg-color: #f6f8fa;
--start-smile-svg-fill-color: #656d76;
--reaction-got-not-reacted-bg-color: #fff;
--reaction-got-not-reacted-bg-color-hover: #eaeef2;
--reaction-got-not-reacted-border-color: #d0d7de;
--reaction-got-not-reacted-text-color: #656d76;
--reaction-got-reacted-bg-color: #ddf4ff;
--reaction-got-reacted-bg-color-hover: #b6e3ff;
--reaction-got-reacted-border-color: #0969da;
--reaction-got-reacted-text-color: #0969da;
--reaction-available-popup-bg-color: #fff;
--reaction-available-popup-border-color: #d0d7de;
--reaction-available-popup-box-shadow: #8c959f33 0px 8px 24px 0px;
--reaction-available-emoji-reacted-bg-color: #ddf4ff;
--reaction-available-emoji-bg-color-hover: #f3f4f6;
--reaction-available-emoji-z-index: 100;
--reaction-available-mask-z-index: 80;
}
</style>
<emoji-reaction class="reactions"></emoji-reaction>
其中,start-smile
是指最左侧的那个小笑脸(点击它会弹出可选的 reaction),reaction-got
是指当前网页已经获得的 reaction,reacted
指当前用户针对当前网页点过的 reaction,not-reacted
则相反。reaction-available
是指当前页面支持的 reaction。
你可以通过 theme
属性来指定深/浅色主题,有dark
,light
,system
三种选项,默认是 light
。
你可以参考 这个 后端仓库,来构建自己的后端服务,以存储自己的数据,并通过 endpoint
属性来指定后端接口地址。
目标 id 用来标识 reaction 所针对的目标(一般是所在页面)。一般情况下,你不需要指定目标 id,因为 emaction 会查找 canonical meta 来确定当前页面内容对应的规范链接。如果你确实需要自定义目标 id(比如想为页面内每个评论都添加 reaction),可以通过属性 reactionTargetId
来指定。