リアクション機能をいい感じにした
shinkai.me の記事ページで、押しても気持ちのいいリアクション UI を組んだ。やったことを軽く残しておく。
何が変わったか
これまで記事末にあったのは「拍手」ボタンとシェアアイコン。シンプルでよかったけれど、もう少し読み終えたあとの体温を残したかったので拡張した。
4種類のリアクション
押せるのは 4 種類:
- 👏 Clap — 良かったよの気持ち
- ❤️ Love — もう一度読みたい
- 💡 Insightful — 視点が増えた
- 🎉 Celebrate — おめでとうの気持ち
各リアクションは独立にカウントされる。1人あたり 20 回まで押せる。Medium の clap と同じく、連打すると微妙にうれしい。
シェアもカウント
シェアアイコンは独立した1つで、押すとドロップダウンが開いて X とリンクコピーが出る。それぞれを発火するとサーバ側のカウンタが回る。「読んで終わり」じゃない流通が見えるとうれしい。
上限のサイン
20 回に達するとカウントが max の表示に切り替わる。気づかずにポチポチ押してると、軽くアイコンが揺れる。これも控えめにある。
どう作ったか
KV のキーは:
claps:<slug>(既存をそのまま流用)reactions:<slug>:<type>(新規)shares:<slug>(新規)
API もそれぞれ最小実装。クライアント側は localStorage に自分の押下数を持って、永続化する。
モチベーション
データを集めたいというよりも、「読み手の手触り」をできるだけ消さないでおきたかった。完全な無音より、押せて変わる方が記事を書く側の張り合いも続く。
次にやりたいこと
- 各リアクションが多い記事を /stats から拾えるようにする
- 上限到達時の小さなお祝い演出を入れる
- リアクション付きの月次まとめを生成してみる
このあたりは、実際に運用してから決めようと思う。