Web ComponentsのUIライブラリ「Ionic Framework」を解説──既存のデザインシステムを活用する方法とは?
再利用性とカプセル化のためのWeb Componentsを基礎から学ぶ 第5回
ダウンロード サンプルファイル (2.6 KB)
Web Componentsを使うことで、再利用可能なUI部品を自作できますが、特にデザインにこだわりがない場合は他人が作ったUI部品を使って楽をしたいケースもあります。今回は、Web Componentsで開発されたUI部品のライブラリであるIonic Frameworkについて解説します。
対象読者
- 再利用可能なHTMLやCSSを整備したいJavaScriptエンジニア
前提環境
筆者の検証環境は以下の通りです。
- macOS Ventura 13.0.1
- Google Chrome 110.0.5481.100
- @ionic/core 6.5.4
Web Componentsとデザインシステム
これまでの連載で、Web Componentsの仕組みを使うことで、再利用可能、かつスタイルや振る舞いを内包したHTML要素(カスタム要素)を自作できることがわかりました。Web Components技術を組み合わせながらWebサイトやWebアプリケーションを開発するイメージも、しやすくなってきたのではないでしょうか。
さて、技術的な要素としてはWeb Componentsという強力な武器を手に入れましたが、これで美しいUIを作れるかと言うと話は別です。今度はデザインの話になっていきますね。どんな色の組み合わせで作るかを定義したカラーパレットや、ボタンなどの大きさ・余白の付け方のための長さのルールづくり、画面内で使ってもいいフォントサイズやフォントウェイトのルールづくりなど、統一感のあるページを作るためには、考えるべきデザイン仕様がたくさんあります。
デザイナーの方々は、Figmaのようなデザインツールでそういったデザイン仕様を管理し、UIデザインの基礎となる画面部品をデザインツールの中に用意していることがあります。こういった画面部品を、デザイナーが扱う粒度をそのままに、実装の段階でも利用できたら便利そうです。
Web Componentsを使うだけで綺麗なUIを作ることはできませんが、そういった画面部品のデザイン仕様をUIへ落とし込むための道具として、Web Componentsはとても役に立ちます。デザイン仕様を忠実にスタイルや振る舞いへ落とし込んだ画面部品を事前に作っておくことで、それらを組み合わせる形でUIを構築できるようになります。そうして作られたUIは、自然とデザイン仕様が反映されたものになるのです。
統一感を持たせるためのデザイン仕様と、デザインツール上でデザイナーが適切な粒度に切り分けた画面部品、そして、その粒度に沿ってWeb Componentsなどの技術で作られた実装用の画面部品。これらを整備することで、デザインと実装という二つの作業は柔軟かつ効率よく進められるようになるといわれています。このような取り組みのことを、本連載では「デザインシステム」と定義します。
デザインシステムを自分で作るのは大変
これまで学んできたWeb Componentsは、デザインシステムの一要素を構築する上で役に立ちそうです。とはいっても、デザインシステムを自力で構築するには、かなりの労力が必要になります。独自性が高いデザインの、中〜大規模なシステムを構築するのであれば、デザインシステムを完全に自作する旨みもあるのかもしれませんが、多くの場合はそこまでの労力を払う価値はありません。
自分のプロジェクトを効率化するためにデザインシステムを活用する手法としては、既存のデザインシステムを拝借して、そのまま使ったり、簡単にカスタマイズして使ったりするのが一般的です。一般公開されているデザインシステムが提供しているUIライブラリの多くは、カラーパレットの変更などのカスタマイズにも対応しているため、ある程度の独自性を出すこともできます。
本記事では、Web Componentsの知識を活かして、既存のデザインシステムを活用する方法を学んでみましょう。
Web Componentsで提供されているデザインシステム
デザインシステムのUIライブラリは、ReactやVue、Angularといった流行りのフレームワーク向けに提供されている場合がほとんどで、Web Components向けに提供されているものは多くはありません。選択肢の多さを求めるのであれば、ReactなどのフレームワークでUIを作成する必要がありますが、その一方で、Web Componentsで利用する分には最低限のセットアップに必要な知識が比較的少ないというメリットもあります。
デザインシステムのUIライブラリがWeb Components形式でも配布されているものは、次のようなものがあります。
Ionic Frameworkは同名のデザインシステムのUIライブラリです。モバイル向けのUI構築に特に強みがあります。Material Webは、Google製デザインシステムであるマテリアルデザインのUIライブラリで、GoogleのサービスっぽいUIが作れますが、本記事の執筆時点ではインストールのためにNPMが必須です。Spectrum Web Componentsは、Adobe製デザインシステムであるSpectrumのUIライブラリです。こちらもAdobeのWebサイトっぽいUIが作れます。
本記事では、この中でも特に活発に開発されているIonic Frameworkを紹介します。
この記事は参考になりましたか?
- 再利用性とカプセル化のためのWeb Componentsを基礎から学ぶ連載記事一覧
- この記事の著者
-
WINGSプロジェクト 中川 幸哉(ナカガワ ユキヤ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
