Discourse: CSSでSVGアイコンと絵文字を簡単に

<div data-theme-toc="true"> </div>

こんにちは :wave:

このトピックには2つのテーマコンポーネントが含まれています。

Discourse Easy SVG Icon CSS

:warning: このテーマコンポーネントはテンプレートとして機能します。Githubでフォークするか、コードをプロジェクトで使用してください。SCSSからSVGアイコンコードを削除し、実際に使用するものだけを残すことができます… mixin ファイルを common.scss ファイルにインポートしたので、その行の下、またはデスクトップまたはモバイルセクションに個別にコードを追加できます。

このコンポーネントは、SVGアイコンを保守可能でCSSで簡単に編集できるようにする機能を追加します。コンポーネントには、ここで見つかるすべてのSVGアイコンが含まれています: discourse/vendor/assets/svg-icons/fontawesome at main · discourse/discourse · GitHub



使用方法?

固定パラメータ:

$icon-set: brands, regular, solid
$icon-name: アイコン名
$icon-color: アイコンの色 (currentColor、16進数またはカラー変数)
$width および $height: 追加するアイコンのサイズ

次のように表示されます:

@include svg-icon($icon-set, $icon-name, $icon-color, $width, $height);

currentColor を使用する
以下は、Latest ナビゲーションバー項目の前にソリッドロケットアイコンを追加する例です。

#navigation-bar {
  li.nav-item {
    &_latest {
      a {      
        gap: 0.5em;
        &:before {
          content: "";
          @include svg-icon(solid, rocket, currentColor, 1em, 1em);
        }
      }
    }
  }
}

add-icon-to-latest


var(--gold) カラー変数を使用する
以下は、Top ナビゲーションバー項目の前にレギュラーゴールドスターアイコンを追加する例です。

#navigation-bar {
  li.nav-item {
    &_top {
      a {      
        gap: 0.5em;
        &:before {
          content: "";
          @include svg-icon(regular, star, var(--gold), 1em, 1em);
        }
      }
    }
  }
}

add-star-to-top


アイコンセット、色、さらにはホバー時のアイコンなども簡単に変更できます…見てみましょう!

ここで、ボタンをホバーしたときにレギュラーアイコンをソリッドに変更します。

#navigation-bar {
  li.nav-item {
    &_top {
      a {      
        gap: 0.5em;
        &:hover,
        &:focus,
        &.active {
          &:before {
            @include svg-icon(solid, star, currentColor, 1em, 1em);
          }
        }
        &:before {
          content: "";
          @include svg-icon(regular, star, currentColor, 1em, 1em);
        }
      }
    }
  }
}

change-icon-set


Discourse Easy Emoji CSS

:warning: このテーマコンポーネントはテンプレートとして機能します。Githubでフォークするか、コードをプロジェクトで使用してください。mixin ファイルを common.scss ファイルにインポートしたので、その行の下、またはデスクトップまたはモバイルセクションに個別にコードを追加できます。

使用方法?

使い方はSVGバージョンと似ています。

固定パラメータ:

$emoji-set: apple, google, twitter, win10, google_classic, facebook_messenger
$emoji-name: 絵文字名
$width および $height: 追加する絵文字のサイズ

@include emoji($emoji-set, $emoji-name, $width, $height);

以下は、Latest の前に facebook_messengerrocket 絵文字を、Top の前に twitterstar 絵文字を追加する例です。

#navigation-bar {
  li.nav-item {
    &_latest {
      a {      
        gap: 0.5em;
        &:before {
          content: "";
          @include emoji(facebook_messenger, rocket, 1em, 1em);
        }
      }
    }
    &_top {
      a {      
        gap: 0.5em;
        &:before {
          content: "";
          @include emoji(twitter, star, 1em, 1em);
        }
      }
    }
  }
}

Screenshot 2024-03-25 at 5.26.26

「いいね!」 13

おはようございます、@Don様

あなたの作品を熱心にフォローしており、あなたのすべての作品をフォーラムに組み込んだと信じています。しかし、この特定の項目については確信が持てません。ディスコースのアップグレード以来、私の頭は混乱しており、これらのCSSコードをどこに実装すればよいか思い出せません。GitHubのコードをテーマに統合しましたが、何も表示されません。

「いいね!」 1

テーマは、あなたが作業するための編集可能なベースであるべきだと思います。

そのため、テンプレートはそれ自体ではほとんど、あるいはまったく機能しないため、インストールしても何も表示されなかった理由が説明できます。

「いいね!」 1

これは私たちにも見えるべきではありませんか?

または

いいえ、リモートテーマであるため、GitHubからダウンロードしてインスタンスにzipとしてアップロードするか、GitHubリポジトリをフォークしてそこで変更を行う必要があります。

「いいね!」 1

確かに、これは私にとって全く新しい概念です。しかし、あなたの言いたいことは理解できます。毎日が学びの機会であり、迅速なご対応に感謝いたします。

「いいね!」 2

@Aaron_Walsh さん、こんにちは :waving_hand: 最終的にうまくいきましたか? これを使用したい特定のユースケースはありますか? 詳細を共有していただければ、設定で簡単に変更できるテーマコンポーネントを別途作成できます。

おはようございます。

この取り組みは成功したでしょう。しかし、編集目的でWindowsラップトップをもう持っていません。代わりに、Samsung Galaxy S9 Ultraを使用することにしました。これは今となっては少し後悔している決断です😅。

アップロードして編集することで、ホスティングサーバー(cPanel)を使用してこのタスクを実行する方法があります。しかし、残念ながら、あなたが作成した作業は一部の人々にとって複雑である可能性があることを指摘しなければなりません。

したがって、もしよろしければ、

9e9f0a12fb60537533c141e18e145f7d98eecb9c

このデザインは私が賞賛しているもので、特に惹かれているものです!

「いいね!」 1

ええ、それが#devカテゴリに配置された理由ですが、心配しないでください。このユースケースのために#theme-componentを作成します。:slightly_smiling_face:

「いいね!」 3

申し訳ありません、私の見落としでした!しかし、今後はこの点についてより詳しく知るようにします。

こんにちは :waving_hand: この Theme component は完了しました。:white_check_mark:

素晴らしい!ありがとうございます!

「いいね!」 1