CSS Nite in Kobe, vol.55「モダンコーディング:XDで作られたデータを元に実装工程のセミハンズオン」に参加してきました

先日開催されたCSS Nite in Kobe vol.55「モダンコーディング:XDで作られたデータを元に実装工程のセミハンズオン」に参加してきました。
vol.54の続きで、前回に作成したビジュアルデザインを元に、コーディングを行っていきます。
今回の登壇者
登壇者は株式会社ICSの鹿野 壮さんです。
ICS MEDIAでも数多くの記事を書いているインタラクションデザイナーの方です。
今回はXDでできたビジュアルデザインを確認しながら、XDで進行するウェブサイト制作フロー3回のうちの最後の回でした。
XDでは簡単にプロトタイプモードでアニメーションを付けたりできますが、最終的に実装するときはコードで実装する必要があります。
また、デザイン時にせっかくアセット機能を使って便利に管理していたとしても、コーディング側が知らずに実装していてはすごくもったいないです。
最近のCSSに触れつつ、XDのデザインカンプを見ながらコーディングのセミハンズオンを行いました。
CSSのレイアウト
ウェブのCSSレイアウトは2020年現在で下記3つの方法があります。
| レイアウト方法 | 特徴 | 備考 |
|---|---|---|
| float | 要素を回り込ませる役割 | レイアウトとしてはレスポンシブ対応が面倒なので、 現在は「テキストの回り込み」の本来の役割としての使用が良さそう |
| Flexbox | 指定した要素の直下にある要素を レイアウトする | 要素の中央揃えも簡単に実現できる 直線には強いが、複数行のレイアウトには弱い |
| CSS Grid | 列(column)と行(row)を指定して、 その中に要素を配置していく | 複数行のレイアウトに強く、HTMLの並びに依存しない自由なレイアウトが可能 ただし、書き方が特殊で初心者が見ると混乱しそう |
個人的には「どれが良い」というわけではなく、ケースバイケースでそれぞれの長所を活かして、目的の実装をするのが1番です。
使い分け
例外ももちろんありますが、自分の場合は下記のような考え方で使い分けています。
まず、CSS Gridの特徴は複数行のレイアウトに強かったり、かなり柔軟なレイアウトができるので、大枠のレイアウト作成や「カード」などが複数行になって並べられている場合はCSS Gridを使用します。
それ以外の横並びレイアウトはFlexboxを使用、テキストの回り込みが必要な場合はfloatを使用します。
- 「大枠のレイアウト」や「複数行に並べられるカード」はCSS Grid
- それ以外の普通の横並びレイアウトはFlexbox
- テキストの回り込みが必要な場合はfloat
XDのトランジション
XDのアニメーション時に設定するイージングは、下記のCSS Transitionに相当します。
| XD | CSS |
|---|---|
| なし | transition: 0.3s linear; |
| イーズイン | transition: 0.3s ease-in; |
| イーズアウト | transition: 0.3s ease-out; |
| イーズイン/アウト | transition: 0.3s ease-in-out; |
「スナップ」と「ワインドアップ」はEasing Functions Cheat Sheetで似たもので対応できますが、「バウンス」は完璧に再現しようとすると時間がかかってしまうので、あらかじめデザイナーさんと話し合っておく必要があります。
CSS関連の話
最新のCSSに関しても触れましたが、面白かったのがCSS変数です。
下記の記述方法で定義して使います。
--main-color: #fff;使うときはvar()関数で呼び出します。
element {
background-color: var(--main-color);
}もともと存在は知っていましたが、Sassの変数を使わずCSSの変数を使うメリットがいまいちピンと来ていませんでした。
(Sassの変数の場合は$を付けて定義・呼び出しができるので、記述量も少なくて済む)
ただ、ダークモードの対応のためにCSS変数を使えば、色をかなりラクに管理できそうです。
@media (prefers-color-scheme: dark) {
--main-color: #333;
}新しい技術を知っておかないと、いつの間にか視野が狭くなって「いままでのままでいいじゃん!」と何も考えずに面倒な方法に縛られることになります。
ブラウザ対応状況などの理由から最新の技術は使えなかったとしても、たまに目を通すのは大切だと改めて感じました。



CSS Nite in Kobe, vol.54「XDで作ったワイヤーフレームを元に制作するウェブビジュアルデザインと精度の高いプロトタイプをコーダーに渡すときのポイントのセミハンズオン」に参加してきました
売れるウェブサイトは戦略を映している【CSS Nite in Kobe】
CSS Nite in Kobe, vol.40「クライアントとのより良い関係性を築くためのコミュニケーション手法」に参加してきました
Adobe初のUI/UXデザインツール「AdobeXD」の使い方を見てきました!【CSS Nite in Kobe】
CSS Nite in KOBE, Vol.37 Adobe Creative Cloud 使い倒しテクニック集中講座に参加してきました
CSS Nite in Kobe, vol.48「ウェブサイトの課題発見とアイデア創出の方法を学ぶワークショップ」に参加してきました
CSS Nite in Kobe, vol.50「今、企業が取り組むべきウェブ動画マーケティング」に参加してきました
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
macOS CatalinaでもQuick Lookのサードパーティー製プラグインを使う方法
Spreadsheetでランダムな数字や文字列を作成する方法
macOSのシステム環境設定「アクセシビリティ」内にあるVoiceOverの設定見直し
ツイエバを使ってTwitterのいいねやツイート履歴をEvernoteに保存する方法
Client Folder Makerをショートカットキーからすぐ実行できるようにする
gulpでPostCSSを使う方法
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)
Visual Studio Codeでパス補完機能を細かく設定して自分好みにできる拡張機能「Path Autocomplete」
Macでアプリごとに音量を調節できるアプリ「Background Music」
Figmaのパス周りの基本操作|基本的な描画方法からペンツールと直線ツールの細かい違いまで