2019-05-28に更新

Atomic Designでランディングページを作ったので、作成手順とかまとめました。

eyecatch.png

こんにちは、@ktmoukです。時間を管理できるアプリ「Hackaru(測る)」を一人で開発しています。

最近、ユーザが最初に訪れるページ、いわゆるランディングページをリニューアルしました。Atomic Designを参考に、Vueのコンポーネントを分割しています。

本稿では、個人開発でAtomic Designを使うときの作成手順をまとめてみました。Web制作の参考になれば幸いです。

0.jpeg

ランディングページ: https://www.hackaru.app

その前にAtomic Designとは?

Atomic Designは、UIのパーツを「原子(Atom)」「分子(Molecule)」「有機体(Organism)」「テンプレート(Template)」「ページ(Page)」に分類しようという考え方です。分類することでパーツが再利用しやすくなります。

詳しくは、DeNA DESIGN BLOGの記事 や Atomic Design Methodology が参考になります。

1.png

引用元: Atomic Design Methodology

1. 簡単なワイヤーフレームを作る。

Atomic Designとは逸れるのですが、コーディングに入る前にワイヤーフレームを作るようにしています。

ワイヤーフレームとは、ざっくりとした外観と、画像や文章のようなパーツの位置を整理した設計図のことです。ワイヤーフレームを作ることで、頭の中で考えているイメージが本当に実現できるか確認できます。

ワイヤーフレームを作らずにコーディングを始めると、「このパーツを入れるスペースがない!」とか、「次何するんだっけ?」という感じで、手戻りや長考する時間ができてしまうんですよね。

ワイヤーフレームはFigmaなどのソフトを使うこともできますし、紙とペンでも作成できます。私はノートにざっくり描きました。

2.jpeg

ポイントとして、色やイラストのような見た目を書かないようにしています。「何を置くか」と「どこに置くか」を整理できれば十分です。ざっくり書くように意識しています。所要時間は、1ページあたり10分〜15分くらいを目安にしています。

2. とりあえず、1ファイルに全部書く。

ワイヤーフレームが出来たら、コーディングをします。ポイントとして、最初は分割せず、1ファイルに1ページ分のHTMLとCSSを全部書いてしまいます。完成させてから整理したほうが効率が良いからです。

Atomic Designを意識してボタンやラベルなどのAtomから作りたくなりますが、もしかすると不要なパーツが出てくるかもしれません。一旦完成させてから整理すれば、手戻りを避けることができます。

というわけで、1ファイルに全部書いてみました。
コードはGitHubから見ることが出来ます。

3.png

3. 重複している箇所をAtomic Designでまとめる。

完成させたら、パーツを分類していきます。私は分類の基準を以下のように決めています。Templateは使っていません。

Atom 分割できない小さなパーツ。ボタンやラベルなど。
Molecule 検索欄やメニューのような小〜中くらいのパーツ。
Organism ヘッダーやフッターのような大きなパーツ。
Pages 最終的にユーザが見るもの。完成品。

Atom

Atomは、ボタンと言語のセレクトボックスにしました。

4.png

Molecule

Moleculeは、機能の説明部分と、「その他の機能」にある4要素にしました。

5.png

Organism

Organismはヘッダーとフッター、主要機能とその他の機能の部分にしました。Organismの中にAtomとMoleculeが含まれています。

6.png

適度に分割しよう。

分割するときのポイントとして、なるべく「再利用する必要がないもの」は分割しないようにしています。

たとえば、⚡マークのロゴはAtomに分割できるかもしれません。ただ、今の所、使用しているのはヘッダーの1箇所だけです。そのため、ヘッダーのOrganismに直書きしています。ロゴを別の箇所でも使いたい、となったタイミングで分割するつもりです。

または、再利用はしないけど、複雑なものは分割しています。今回でいうところの言語のセレクトボックスです。内部にI18nを変更するスクリプトが含まれています。分割したほうがメンテナンスがしやすいためです。

とくにAtomとMoleculeはいくらでも分割できてしまうので、適度に分割するのがいいかもしれませんね。

7.png

Atomをたくさん分割してみました。

GitHubでソースコードを公開しています。

題材にしたランディングページは、GitHubにソースコードを公開しています。 また、ランディングページも実際に見れますので、よろしければ覗いてみてください。本稿がみなさんのお役に立てれば幸いです。それでは。

ランディングページ:  https://www.hackaru.app

GitHub
公式のTwiiter
開発者のTwitter

Originally published at note.mu
ツイッターでシェア
みんなに共有、忘れないようにメモ

ktmouk

アプリ作るのが好き。個人でオープンソースのタイムトラッキングアプリ「Hackaru」を開発しています。 主にアプリ開発で溜まった知識や、新機能のお知らせを投稿していきます。 https://www.hackaru.app

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント