ナビゲーションボタンハイライターコンポーネント - 動作中

JavaScriptバージョンが安定しなかったため、純粋なCSSコンポーネントとして再構築する必要がありました。目的は、ユーザーに特定の経路を強調表示させることです。

リンク: https://github.com/focallocal/nav-buttons-highlighter

これは、ほとんどのユーザーが数ヶ月メンバーになっていても、特にモバイルユーザーがどこにあるかわからないKanbanボードプラグインをインストールして強調表示したものです。

デスクトップ:

モバイル:

Nav Buttons Highlighter

ユーザーを特定の経路や機能に誘導するためにナビゲーションボタンを強調表示し、モバイルのドロップダウンメニューをより明確で視覚的にわかりやすくするためのDiscourseテーマコンポーネントです。

目的

このコンポーネントは、以下の点で役立ちます。

  • ユーザーを誘導する: 重要なナビゲーションリンク(タスクボード、ドキュメント、主要カテゴリなど)を強調表示します。
  • モバイルUXを改善する: ドロップダウンナビゲーションボタンを目立たせます。
  • ナビゲーションバーに視覚的な階層を作成する

機能

  • グラデーション、影、ホバー効果を備えた3Dボタンのスタイリング
  • モバイルレスポンシブ - モバイルで「最新」ドロップダウンのトグルボタンを強調表示し、ユーザーがクリックできること/すべきであることをより明確にします。
  • デフォルトでDiscourse Kanbanプラグイン用に事前設定済み
  • CSSのみの実装 - 信頼性が高く軽量
  • カスタマイズが容易

デフォルト設定

デフォルトでは、このコンポーネントは Discourse Kanban プラグインを 青色 で強調表示するように設定されています。ただし、任意のナビゲーションリンクを任意の色の強調表示に変更することも容易です。

インストール

  1. Discourse管理コンソールで、カスタマイズ > テーマ > コンポーネント に移動し、インストール をクリックします。

  2. Gitリポジトリリンクからコピーして貼り付けます:

    https://github.com/focallocal/nav-buttons-highlighter
    
  3. インストールしたら、コンポーネントをアクティブなテーマに追加します。

カスタマイズ方法

CSSファイルの検索

このコンポーネントには管理設定パネルはありません - すべてのカスタマイズは、リポジトリ内のCSSファイルを直接編集することで行われます。

CSSファイルは次の場所にあります:

common/common.scss

編集方法:

オプション1: GitHubで編集 (最も簡単)

  1. このリポジトリのバージョンをフォークしてインストールします。
  2. common/common.scss に移動します。
  3. 鉛筆アイコンをクリックして編集します。
  4. 変更を加えてコミットします。
  5. Discourse管理 > カスタマイズ > コンポーネント で、Nav Buttons Highlighter コンポーネントの「アップデートを確認」をクリックします。

オプション2: ローカルで編集

  1. リポジトリをコンピュータにクローンします。
  2. 任意のテキストエディタで common/common.scss を編集します。
  3. 変更をコミットしてプッシュします。
  4. Discourse管理 > カスタマイズ > コンポーネント で、「アップデートを確認」をクリックします。

注:

  • このコンポーネントは、有効になっているすべてのテーマで動作します(特定のテーマに依存しません)。
  • CSSファイルには、変更すべき内容を正確に説明する詳細なインラインコメントが含まれています。
  • 変更後は、Discourse管理でコンポーネントを更新する必要があります。

CSSファイルコメントの説明:

  • どのセレクターを変更するか(例: a.kanban-nav)で、異なるリンクを強調表示します。
  • 異なる色の値を更新します。
  • モバイルドロップダウンの強調表示を追加/削除する方法。

色を青から緑に変更

ボタンは3つの青の濃淡を使用してグラデーション効果を作成しています。

  • 明るい青: #5ca3ff (グラデーションの上部)
  • 中間の青: #4285F4 (グラデーションの中央)
  • 暗い青: #3a75e4 (下部/影)

緑に変更するには、common/common.scss でこれらの値を見つけて置き換えます。

現在の青 緑に置き換え
#5ca3ff #5cb860
#4285F4 #4CAF50
#3a75e4 #45a049
rgba(66, 133, 244 rgba(76, 175, 80

別のナビゲーションリンクの強調表示

セレクター a.kanban-nav をターゲットリンクに置き換えます。

例:

  • a[href=“/c/category-name”] - 特定のカテゴリを強調表示
  • a[href=“/tags/tag-name”] - 特定のタグを強調表示
  • a[href=“/my-custom-page”] - カスタムリンクを強調表示
  • #navigation-bar > li:nth-child(2) > a - 2番目のナビゲーションボタンを強調表示

セレクターの検索方法:

  1. ブラウザでフォーラムを開きます。
  2. 強調表示したいリンクを右クリックします。
  3. 「要素を検証」を選択します。
  4. HTML内のクラス名(例: class=“kanban-nav”)またはhref値を探します。

モバイルドロップダウンの強調表示を無効にする

/ \* Latest dropdown button on mobile \*/ というラベルのセクションを見つけて、以下のいずれかを行います。

  • セクション全体を削除する。
  • / \* … \*/ で囲んでコメントアウトする。

モバイルドロップダウン内のリンクの強調表示

既存のスタイルの後に、このCSSブロックを追加します。

.fk-d-menu-modal a.kanban-nav {
background: linear-gradient(135deg, #5ca3ff 0%, #4285F4 50%, #3a75e4 100%) !important;
color: #fff !important;
padding: 8px 16px !important;
border-radius: 8px !important;
}

a.kanban-nav を目的のセレクターに置き換えます。

開発

このリポジトリには以下が含まれます:

  • common/common.scss - すべてのボタンのスタイリングと詳細なカスタマイズガイド
  • assets/javascripts/discourse/api-initializers/nav-buttons-highlighter.js - 最小限のイニシャライザー(Discourseに必要)
  • about.json - コンポーネントメタデータ

トラブルシューティング

*Q: 変更が反映されない*
A: 編集後、「保存」をクリックし、フォーラムページをハードリフレッシュしてください(Ctrl+F5 または Cmd+Shift+R)。

*Q: 複数のボタンを強調表示したい*
A: ボタンのCSSブロック全体をコピーし、既存のCSSルールの下に貼り付け、セレクターと必要に応じて色を変更します。

ライセンス

MIT Public Happiness Movement

「いいね!」 1

奇妙なマークダウンは何ですか?

それを#theme-componentに移動するようにフラグを立てましたか?

ありがとうございます。GithubのREADMEから直接コピー&ペーストしました。投稿後も更新しています。

テーマコンポーネントに移動するようフラグを立てましたか?

いいえ、まずフィードバックを得て、すべて問題ないか確認したかったのです。

「いいね!」 1

Discourse がファイルをキャッシュするという奇妙な問題が発生しました。おそらく about.json ファイルだったと思いますが、編集しても更新も再インストールもできませんでした。変更がまったくビルドされない理由を突き止めるのに永遠にかかりました。

ライブサイトではなく、コンポーネントをテストするより良い方法はありますか?

@Drew-ART Have you looked at Objects type for theme setting? Perhaps then it can be used to add many CSS rules, perhaps using nesting to add things like background color and padding to each rule. SCSS has a each loop that you may be able to use.

Perhaps this may help?

「いいね!」 1

@NateDhaliwalさん、ありがとうございます。それは私の最初のやり方でしたが、上記の500エラーに遭遇し、しばらくそれを乗り越えられなかったので、CSSのみのアプローチに戻りました。

500エラーの対処法がわかった今、その断念した試みに戻って、ロードできるか試してみることもできます。やってみます。

「いいね!」 1

いいえ、全く動作しません。

管理設定で設定し、正しく読み込まれない場合はCSSにフォールバックするようにしていますが、何かキャッチできないものが原因で完全に機能しなくなっています。