2021年11月29日
デザイン
Tailwind CSSの概要と導入のメリット
はじめに
本記事では、Tailwind CSSについてまとめています。
すでにbagelee内でTailwind CSSについて言及されている記事があるため、今回はなぜTailwind CSSを推奨する話があるのかについて深掘りしたいと思います。
bageleeの運営会社、palanでもTailwind CSSを積極的に使っていきたいと考えているので、少しでも興味のある方は一緒に学んでいきましょう!
過去のTailwind CSSについての記事はこちら↓
Tailwind CSSとは
Tailwind CSSは、デザインシステムを簡単に作るためのユーティリティフレームワークです。
ここのユーティリティは、FLOCSSのオブジェクト内のUtility(細かい調整のためのスタイル)と近い意味であり、Tailwind CSSの1つのクラスは、1つのスタイルを持ちます。
HTMLにクラスを追加する行為が、スタイルを追加することになるので、CSSのファイルを開く必要がなくなります。
スタイル追加の例
上の画像のように、作りたいスタイルに合わせてHTMLに直接Tailwind CSSのutility classを付けていきます。
最初はクラス名を一つひとつ確認する必要がありますが、一度覚えてしまえばスムーズに記述できそうです。ホバーやレスポンシブ化のためのutility classもあります。
ポイント
utility classにないものを追加したい場合は、CSSにutilityを追加することで対応可能です。
Tailwind CSSは、デザインの自由度も高いといえます。
導入することで解決する課題
デザインと実装の見た目が一致している状態を理想とすると、「デザインと実装の同期が簡単にできる状態」「デザイン、実装側に共通のルールがある状態」が必要になります。
つまり、それぞれのプロジェクトでデザインシステムがある状態がベストです。
とはいえ、毎回デザインシステムを0から作成するのはコストがかかりすぎるため現実的ではありません。また、0からではなく、従来の思想を取り入れながら作成しようとすると課題があります。
例えば、atomic designを用いようとした場合。
atomic designとは、最小のパーツであるatom(原子)からmolecules(分子)、organisms(生体)、templates(テンプレート)、pages(ページ)とコンポーネントを作成していくことで統一性のあるUIデザインが可能になる手法です。
(引用元:Atomic Design Methodology)
小さな単位からオブジェクト化するため、変更が容易になりデザインと実装の見た目も一致しやすくなります。どの粒度までを一つのコンポーネントにするかを考えるフレームワークとしても有名ですが、毎回のプロジェクトでチーム内の共通認識を作るのは、フローが定着するまでが難しく、課題といえます。実装でコンポーネントの粒度が変わってしまうと、CSSの構造とAtomicの構造が一致しなくなり理想の状態を維持することが出来ません。
似たような課題として、CSSの命名規則であるBEMが挙げられます。
どこまでをblock(一つのコンポーネント)とするか、デザイナーとエンジニアでの粒度が異なってくるため認識のすり合わせが必要です。
utility classを基盤として自分たちでデザインシステムを作ることができるTailwind CSSでは、上記の課題をクリアすることができ、柔軟性を維持したまま統一性のあるデザインが可能になると考えられます。
期待している未来
palanでは、disrupt markup (マークアップ作業を極力減らすこと)を目指しています。
デザインツールとして主にFigmaを使用しているので、 プラグインのfigma to codeなどを社内でテスト運用しています。精度はまだ低いのですが、将来的にutilityの設定やコンポーネント、HTMLやReactなどのコードもそのまま書き出せるようになれば、デザインと実装の見た目が常に一致している状態に近づけるのではないかと期待しています!
まとめ
Tailwind CSSはデザインシステムの補助となる、ユーティリティフレームワークです。
従来のデザインシステムに不満がある一方で、自分で新しくデザインシステム作ることにハードルを感じている方にはおすすめです!
デザイナーでどんなスタイルがあるのか気になった方は、Figma内のCommunityにあるTailwind CSSのUI Fileを見てみるのもいいかもしれません。(アップデートは終了しています)
CSSのお仕事に関するご相談
Bageleeの運営会社、palanではCSSに関するお仕事のご相談を無料で承っております。
zoomなどのオンラインミーティング、お電話、貴社への訪問、いずれも可能です。
ぜひお気軽にご相談ください。
この記事は
参考になりましたか?
1
1
関連記事
2021年12月5日
【CSS】CSSだけでアコーディオンを作る方法
2021年11月29日
Tailwind CSSの概要と導入のメリット
2021年6月7日
FLOCSSとBEMを理解する
2020年12月24日
【CSS】:not否定擬似クラスの使い方とできること
2020年12月21日
デザイン制作・コーディングツール「Hadron」を使ってみた
2018年12月9日
【CSS】3D transformsでコロッとなるエフェクトを作る
簡単に自分で作れるWebAR
「palanAR」はオンラインで簡単に作れるWebAR作成ツールです。WebARとはアプリを使用せずに、Webサイト上でARを体験できる新しい技術です。
palanARへpalanでは一緒に働く仲間を募集しています
正社員や業務委託、アルバイトやインターンなど雇用形態にこだわらず、
ベテランの方から業界未経験の方まで様々なかたのお力をお借りしたいと考えております。
運営メンバー
Eishi Saito 総務
SIerやスタートアップ、フリーランスを経て2016年11月にpalan(旧eishis)を設立。 マーケター・ディレクター・エンジニアなど何でも屋。 COBOLからReactまで色んなことやります。
sasakki デザイナー
アメリカの大学を卒業後、日本、シンガポールでデザイナーとして活動。
やまかわたかし デザイナー
フロントエンドデザイナー。デザインからHTML / CSS、JSの実装を担当しています。最近はReactやReact Nativeをよく触っています。
Sayaka Osanai デザイナー
Sketchだいすきプロダクトデザイナー。シンプルだけどちょっとかわいいデザインが得意。 好きな食べものは生ハムとお寿司とカレーです。
はらた エンジニア
サーバーサイドエンジニア Ruby on Railsを使った開発を行なっています
こぼり ともろう エンジニア
サーバーサイドエンジニア。SIerを経て2019年7月に入社。日々学習しながらRuby on Railsを使った開発を行っています。
ささい エンジニア
フロントエンドエンジニア WebGLとReactが強みと言えるように頑張ってます。
Damien
WebAR/VRの企画・開発をやっています。森に住んでいます。
ゲスト bagelee
かっきー
まりな
suzuki
miyagi
ogawa
雑食デザイナー。UI/UXデザインやコーディング、時々フロントエンドやってます。最近はARも。
いわもと
デザイナーをしています。 好きな食べ物はラーメンです。
taishi kobari
フロントエンドの開発を主に担当してます。Blitz.js好きです。
kubota shogo
サーバーサイドエンジニア。Ruby on Railsを使った開発を行いつつ月500kmほど走っています!
nishi tomoya
aihara
グラフィックデザイナーから、フロントエンドエンジニアになりました。最近はWebAR/VRの開発や、Blender、Unityを触っています。モノづくりとワンコが好きです。
nagao
SIerを経てアプリのエンジニアに。xR業界に興味があり、unityを使って開発をしたりしています。
Kainuma
サーバーサイドエンジニア Ruby on Railsを使った開発を行なっています
sugimoto
asama
ando
iwasawa ayane
oshimo
異業界からやってきたデザイナー。 palanARのUIをメインに担当してます。 これからたくさん吸収していきます!