ユーザーロール/グループに基づくカスタムCSS

ユーザーの役割やグループに基づいてCSSをカスタマイズすることは可能ですか?

例えば、メインページにあるトピック数の統計情報を非表示にしたいのですが、これはテーマのCSSに次を追加することで比較的簡単に行えました。

.topics {
    display: none;

しかし、本当にやりたいのは、管理者とモデレーター以外の全員に対してこれを非表示にすることです。管理者グループとモデレーターグループには表示させたいのです。

CSSカスタマイズの目的で、ユーザーがグループに属しているかどうかを判断することは可能ですか?

このテーマコンポーネントをインストールすると、CSSでユーザーグループを対象にすることができます。

次のように使用します。

body.group-<your-group-name> .some-page-element-class {
    display: none;
}

コンポーネントなしでも、次のように使用できます。

.something {
  display: none;
}
.staff .something {
   display: block;
}
「いいね!」 5

管理者とモデレーターの場合、デフォルトでドキュメント本文に staff クラスが追加されます。したがって、それだけでよければ、そのまま body.staff を使用できます。

「いいね!」 2

ありがとうございます。参考までに、CSSで(staff以外に)ネイティブで対処できる他のCSSグループは何ですか?匿名(ログインしていない)ユーザーや管理者(モデレーターなし)向けのものはありますか?

.anon はすべての匿名ユーザーを指します。コンポーネントをインストールしない限り、.admins.moderators は機能しないと思います。コード量は少なく、他のコンポーネントに簡単に追加できます。私は関連するテーマコンポーネントでこれを行っているので、両方をインストールする必要はありません。このグループ CSS コンポーネントの素晴らしい点は、信頼レベルをターゲットにすることもできることです。

私のテーマコンポーネントの 1 つで .staff.anon をどのように使用しているかは、こちらで確認できます。

「いいね!」 1

素晴らしい、ありがとうございます。テーマコンポーネントのページに、Discourseに組み込まれている標準のグループ/ロール/信頼の名前のセットをリストすることは可能でしょうか。それは素晴らしい参照資料になると思います。もしご存知でしたら、ここにリストしていただけますでしょうか。

グループCSSコンポーネントをインストールすると、admin-users-groupページでデフォルトのグループと信頼レベル、および作成したカスタムグループをすべて使用できます。

「いいね!」 2

ありがとうございます。これは私にとって素晴らしいです。

「いいね!」 1