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

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

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

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

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

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

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

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

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

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

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

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

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

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

私も試してみます!

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

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

そう!…でも、全部オンラインだと、回線がパンクするかも…って、オチが弱いか!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
