辞書プロジェクトで複数のWebアプリケーション(ダッシュボード、SystemHub、TeamHub、Logbookビューアなど)を開発するうちに、デザインの一貫性を保つことが課題になってきた。そこで、StyleCoreという統一デザインライブラリを構築することにした。

StyleCoreの設計思想は、スタイリングを3つの明確なレイヤーに分離することだ。第一層のCore(getThemeCss())は色、タイポグラフィ、スペーシングなどの基本変数を定義する。第二層のLayout(getFullpageLayoutCss()getSidebarLayoutCss())はページ全体のレイアウトパターンを提供する。第三層のLocalはアプリ固有のスタイルを記述する。

この分離により、大きなメリットが得られた。たとえばダッシュボードのカラースキームを変更したい場合、CoreのCSS変数を一箇所修正するだけで、すべてのコンポーネント(ボタン、カード、モーダル、フォームなど)に変更が反映される。

実装にあたっては、Google Apps Scriptの特殊な環境を考慮する必要があった。通常のWebアプリと違い、GASではCSSファイルを.css.htmlという拡張子で保存し、<?!= include('StyleCore') ?>という特殊な構文でインクルードする。この仕組みを理解するまで、試行錯誤を重ねた。

現在、StyleCoreはダッシュボード、SystemHub、TeamHubで実装済みだ。次はLogbookビューアとTraditional Mongolian Script Viewerにも適用する予定だ。デザインの統一は、単なる見た目の問題ではなく、開発効率の向上とメンテナンスコストの削減に直結する。