カスタム Discourse リアクション

こんにちは、

Discourse Reactions Plugin に対して CSS の変更を加えました。これにより、Facebook のリアクションボタンに似た見た目になりました。

ここでは、デフォルトの :heart: を含む 6 つのリアクションボタンを設定しています。

COMMON / SCSS
以下のコードを共通 CSS セクションに追加してください。
重要なお知らせ: ラベル上の絵文字は、content: 'Love it!'content: 'Beautiful' などの行を編集して変更できます。もちろん、お好みのリアクションを自由に設定可能です。これらは単にリアクションの上に表示されるラベルです。

.discourse-reactions-picker {
  .discourse-reactions-picker-container {
    width: 330px;
    height: 50px;
    max-width: calc(100vw - 2em);
    border: 1px solid var(--primary-low) !important;
    border-radius: 50px;
    .pickable-reaction {
      max-width: 100% !important;
      margin: 0 !important;
      padding: 0 !important;
    }
  }
  .pickable-reaction {
    background: transparent !important;
    .emoji {
      height: 40px;
      width: 40px;
      padding: 0 !important;
      transform: scale(0.9);
    }
    &.is-used {
      transform: scale(1.3);
      transform-origin: bottom;
      border: none !important;
    }
    &:hover {
      transform-origin: bottom;
    }
    &:hover:after {
      position: absolute;
      font-size: 10px;
      top: -15px;
      background: var(--secondary-low);
      color: var(--secondary);
      padding: 2px 5px;
      border-radius: 20px;
    }
    &:first-child {
      &:hover:after {
        content: 'Love it!';
      }
    }
    &:nth-child(2) {
      &:hover:after {
        content: 'Beautiful';
      }
    }
    &:nth-child(3) {
      &:hover:after {
        content: 'Hug';
      }
    }
    &:nth-child(4) {
      &:hover:after {
        content: 'Congrats!!';
      }
    }
    &:nth-child(5) {
      &:hover:after {
        content: 'Hmm...';
      }
    }
    &:nth-child(6) {
      &:hover:after {
        content: 'Wooow!';
      }
    }
  }
}

react-buttons


モバイル版

モバイルでは、リアクションピッカーの位置を position: fixed に設定しています。
これにより、以下のような奇妙な動作を防ぐことができます。 :arrow_down:
raction-no-fixed

このように表示されます :arrow_down:
reactions-fixed

リアクションピッカーと同じ問題が、モバイル上のステータスパネルでも発生しているため、こちらも position: fixed を使用しています。

Mobile / SCSS

.discourse-reactions-picker {
  position: fixed;
  .pickable-reaction {
    &:hover:after {
      font-size: 12px;
      top: -8px;
    }
    &.is-used {
      &:hover:after {
        transform: scale(0.8);
        top: -15px;
      }
    }
  }
}

.discourse-reactions-state-panel {
  position: fixed;
}

デフォルトの「いいねした人」セクションを非表示にする

COMMON / CSS

リアクションステータスパネルにも同じ情報が表示されるため、デフォルトの「いいねした人」セクションを非表示にしています。

.who-liked {
  display: none;
}
「いいね!」 25

とても気に入っています :love_you_gesture:

「いいね!」 5

素晴らしい、本当にうまくいきますね。共有いただきありがとうございます
:clinking_beer_mugs::smiling_face_with_sunglasses::+1::sparkles:

「いいね!」 4

インストール済みで、とても気に入っています。

ご質問です:

あの黒いホバーを削除することは可能でしょうか?

「いいね!」 2

こんにちは、パウリナさん

気に入っていただけてとても嬉しいです :heart: ありがとうございます!

ホバー時のダークなユーザーリストパネルを非表示にするには、以下のコードを使用してください :slightly_smiling_face:

.discourse-reactions-list .reactions .user-list {
  display: none;
}
「いいね!」 4

私にはうまくいきました!見た目も素敵で、本当にありがとうございます。:heart:

「いいね!」 2

こんにちは、ドンさん

カスタマイズ、とても気に入っています。素晴らしい仕事、ありがとうございます!:heart:
ただ、一つ質問があります。このように黒いホバー表示を消すにはどうすればよいでしょうか?

Selection_060

「いいね!」 3

こんにちは、Neo さん。

ありがとうございます :heart:

残念ながら、CSS で title 属性を非表示にすることはできませんが、/admin/customize/site_texts にある js.discourse_reactions.picker.react_with のテキストを編集して、少し短くすることは可能です。

「いいね!」 3

ありがとうございます、完了しました!これで見た目も良くなりました!:wave:

「いいね!」 3

これは素晴らしいですね、@Don。本当にありがとうございます。

これを私のDiscourseセットアップで使用することを検討していますが、現在、リアクションオプションが2行(1行あたり6つの絵文字、合計12個の絵文字)あります。

私はCSSについて最低限の知識しかなく、得意ではありません。

このコードを、そのような配置で機能するように調整するのはどのくらい難しいでしょうか?

(かなり遅れてしまいましたが!)共有していただき、本当に感謝しています。

「いいね!」 3

JRさん、ありがとうございます:slightly_smiling_face: これをテーマコンポーネント化して、リアクションへの適用や修正などを容易にできるようにしたいと思います。来週には作成する予定です。

「いいね!」 6

ありがとうございます、ドンさん!それは素晴らしいことで、大変ありがたい追加となります。ぜひ楽しみにしています。

「いいね!」 3

Happy So Excited GIF

「いいね!」 2

こんにちは。

これをもとにテーマコンポーネントを作成しました。より簡単になると思います。:slightly_smiling_face:

@manuel さんの以前作成されたテーマコンポーネント Category List with Banners のおかげで、リアクションラベルにリスト設定を簡単に実装できます。ありがとうございます :heart:

修正といくつかの設定を追加しました。

  1. reactions_label
    セミコロン ; で区切ります。
    リアクション名;リアクションラベル
    May-29-2022 17-02-05

  2. reactions picker rounding
    リアクションピッカー(border-radius)の角の丸み。px、em などが使用できます。
    デフォルトは 1em です。

より丸くしたり、丸みを少なくしたい場合は、この設定を変更してください。
以前のバージョンは 2em でした。

  1. state panel rounding
    リアクションステートパネル(border-radius)の角の丸み。px、em などが使用できます。

  2. user list rounding
    リアクションユーザーリスト(border-radius)の角の丸み。px、em などが使用できます。

  3. hide user list heading
    このオプションは、パネルのユーザーリストの見出しを非表示にします。この画像では、見出しは smiley です。

  4. hide user list
    このオプションは、ユーザーリストパネルを非表示にします。これはダークホバーパネルです。

  5. hide who liked
    このオプションは、デフォルトの「誰がいいねしたか」セクションを非表示にします。

このコンポーネントには、さらにいくつかの計画があり、後で追加する予定です。:slightly_smiling_face:

「いいね!」 17