§21-01
フォロー / アンフォロー
相手をフォローして投稿を受け取る状態を切り替える。
興味のある相手の更新だけを自分のフィードに集められる。投稿者とのつながりが継続利用の軸になるサービスに向く。
実装のポイントトグルは aria-pressed で状態を伝え、楽観更新でカウントを即反映して失敗時に戻す。ボタン幅を min-width で固定し、ラベル切替でレイアウトが揺れないようにする。
- 楽観的更新
- 状態管理
§21
Social
§21-01
相手をフォローして投稿を受け取る状態を切り替える。
興味のある相手の更新だけを自分のフィードに集められる。投稿者とのつながりが継続利用の軸になるサービスに向く。
実装のポイントトグルは aria-pressed で状態を伝え、楽観更新でカウントを即反映して失敗時に戻す。ボタン幅を min-width で固定し、ラベル切替でレイアウトが揺れないようにする。
§21-02
相互にフォローしている関係を印で示す。
相手が自分をフォローしているかを一目で確かめる。フォロー返しや DM 可否の判断材料として、プロフィールや一覧に添える。
実装のポイント相互関係は自分→相手と相手→自分の 2 つのフラグを別々に持ち、「フォローされています」は名前の近くに控えめなラベルで添える。
§21-05
投稿への返信を親の下にぶら下げて表示する。
誰がどの発言に答えたかが追え、話題ごとの流れを読める。コメント欄や議論が長く続くコミュニティで使う。
実装のポイント返信は親投稿の下に字下げと縦線でぶら下げ、深い入れ子は数段で打ち切って「続きを表示」に畳む。件数は親側にも出して展開前に規模を伝える。
デモはスレッド discussionと共通です。
§21-06
投稿に 1 回の操作で評価や反応を付ける。
投稿への反応を最小の手間で集める。閲覧だけで終わる利用者に参加のきっかけを作り、投稿者に反応を返す。
実装のポイント押下を楽観更新で即時反映し、連打は最後の状態だけ送るようデバウンスする。アイコンだけのボタンには aria-pressed と aria-label を付ける。
デモはLike / heartと共通です。
§21-07
他人の投稿を自分のフォロワーに再共有する。
気に入った投稿を自分の言葉を添えずに広められる。投稿が他の利用者に届く経路になり、投稿者の動機にもなる。
実装のポイントリポストは誤操作が拡散に直結するため、即実行ではなく「リポスト / 引用」のメニューを挟む設計が多い。状態は aria-pressed で公開する。
§21-08
元の投稿を引用してコメントを添えて投稿する。
他人の投稿を自分の文脈で紹介し、元の内容を見せながら意見を加えられる。返信と違い自分のフォロワーに届くので、話題を広げる役を持つ。
実装のポイント引用元は枠付きのカードとして入れ子にし、元投稿が削除・非公開になった場合の代替表示を最初から設計しておく。
§21-09
特定の相手の投稿を非表示にしたり関わりを遮断する。
不快な相手から距離を取り、安心して使い続けられる。利用者同士がやり取りする場には必ず用意する。
実装のポイントミュートは相手に通知されない片方向の非表示、ブロックは双方向の遮断と意味が違うので、実行前に影響範囲を一文で説明する。
§21-10
不適切な投稿を理由付きで運営に報告する。
利用者がコミュニティの問題を運営に知らせる手段を用意する。不快な投稿を見た人が黙って離脱するのを防ぐ。
実装のポイント理由は radio で単一選択にして同じ name でグループ化し、送信後は受付完了と次に起きることを示す。通報者の匿名性も明記する。
§21-12
貼り付けた URL をタイトルと画像付きのカードにする。
URL だけの投稿にタイトルと画像を添え、開く前に中身を判断できるようにする。リンク共有が多いチャットやタイムラインでクリック率を上げる。
実装のポイントOGP の取得はサーバー側で行い、タイムアウトとキャッシュを入れる。og:image がない場合のフォールバックで、カード高さが崩れないようにする。
§21-13
外部の投稿や動画をページ内に埋め込んで表示する。
外部の内容をリンク先へ移動させずにその場で見せられる。記事やまとめページで、引用元の投稿をそのまま示したいときに使う。
実装のポイント埋め込みは oEmbed で HTML を取得し、iframe は loading=lazy と sandbox で隔離する。先に aspect-ratio で枠を確保してレイアウトシフトを防ぐ。