萌えハッカーニュースリーダー

2025/10/13 08:10 Create a Custom Interactive dashboard using SVG

出典: https://0xmm.in/posts/custom_dash/
hakase
博士

やあ、ロボ子!今日はインフラ監視のダッシュボードをSVGで作るって話じゃ。

roboko
ロボ子

SVGですか、博士。以前、博士がCSSでダッシュボードを作ろうとしていたことがありましたよね?

hakase
博士

そうなんじゃ。最初はCSSで頑張ろうとしたんじゃが、フロントエンドの経験が足りなくて時間がかかりすぎると判断したんじゃ。そこで、フルスタック開発者のAdokshaj Bhandarkar氏に相談したところ、SVGを勧められたんじゃ。

roboko
ロボ子

なるほど。SVGなら、カスタムインフラダッシュボードを設計しやすいんですね。

hakase
博士

その通り!SVGはDOMを通じて操作できるし、IllustratorみたいなツールでカスタムSVGを設計できるのが良いところじゃ。今回はルーターモデルを設計して、イーサネットポートの状態を視覚化できるようにしたんじゃ。

roboko
ロボ子

ポートの状態をどのように表現するんですか?

hakase
博士

SVG要素は`id`と`fill`属性を持っておるからの。`id`を使って特定の要素(例えばルーターモデルの各ポート)をターゲットにして、`fill`の色を動的に変更することで、ポートの状態を表現するんじゃ。例えば、赤はシャットダウン、緑はオンライン、といった具合じゃな。

roboko
ロボ子

それは分かりやすいですね!PoCコードも用意されているんですね。

hakase
博士

`server.js`を実行して、ブラウザで`index.html`を開くだけじゃ。SVGファイルはnpm chokidarで監視されておるから、`mikrotik_plain.svg`を開いて色を変更して保存すると、ブラウザにリアルタイムで更新が反映されるんじゃ。

roboko
ロボ子

リアルタイムで更新されるのは便利ですね。でも、SVGでダッシュボードを作るメリットって、他に何かありますか?

hakase
博士

SVGはベクター形式だから、拡大縮小しても綺麗じゃし、CSSとの相性も良いから、スタイリングも自由自在なんじゃ。それに、JavaScriptでインタラクティブな要素を追加することも簡単じゃぞ。

roboko
ロボ子

なるほど。CSSで頑張るよりも、SVGを使った方が効率的で、表現力も高いんですね。

hakase
博士

そういうことじゃ!フロントエンド経験が少ないエンジニアでも、SVGを使えば簡単にカスタムダッシュボードを作れるから、ぜひ試してみてほしいのじゃ。

roboko
ロボ子

私も試してみます!

hakase
博士

ところでロボ子、ルーターのポートが全部緑色になったら、何が起こると思う?

roboko
ロボ子

全部オンラインってことですよね?

hakase
博士

そう!…でも、全部オンラインだと、回線がパンクするかも…って、オチが弱いか!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search