Upgrade to Pro — share decks privately, control downloads, hide ads and more …

大規模ECサイトを支えるデザインシステム

Kevin McCoy
December 26, 2019

 大規模ECサイトを支えるデザインシステム

急成長の大規模なECサイトを展開する企業において、デザインとUIの側面ではそのスピードを維持するためにいくつかのトレードオフがありました。例えば、再利用に向かないUIのスポット開発を繰り返してきたため、近年ではデザインとコードの負債が目立つようになってきました。

古いサイトデザインを刷新するために、Adobe XDやSass/BEMの技術を活用しながら、大規模なECサイトにふさわしい「デザインシステム」の開発を始めました。企画や社内調整から、XDを用いたデザインとコーディングまで、私たちのデザインチームが実践したことと、その経験から得られたノウハウを共有します。

Kevin McCoy

December 26, 2019
Tweet

Other Decks in Design

Transcript

  1. デザイナーのスキルセット • 他社なら、このような分業かもしれません 12 デザイナー バックエンド エンジニア フロントエンド エンジニア UI

    のデザイン コードは書かない Photoshop, Illustrator, XD, etc. UI 部分の実装 HTML/CSS/JS 先端的な会社なら React/Vueなど高度 なFE開発 サーバサイド技術 データベース連携 ビジネスロジックの 実装
  2. デザインシステムの企画が始まる 16 Atomic Design Design Systems Storybook Responsive Design Component

    Based UI React and Vue.js 最初は情報量に圧倒される気持ちになりました… どうやって選んでいけばいいのか…
  3. ③ 社内調整が始まる 27 デザインキーワード • 答えが出ないなら、競合他社との比較を行い、差別化 できる案を提案すると良いかもしれません • Is Not

    / Is のペアがあると、分かりやすいです × やわらかい ◎しっかりしている、丈夫な × 阪神タイガース ◎ 侍ジャパン
  4. ③ 社内調整が始まる 28 社内調整をより円滑にするためには • 必ず責任者・承認する人と調整すること ◦ モノタロウでは、部門長と社長でした ◦ 前例の無い取り組みなら、Bottom-up

    よりも Top-down になる と、やりやすい場合もあります ▪ いわゆる「デザイン経営」が知られる時代、関心を持っている 人が多くなってきています
  5. ③ 社内調整が始まる 29 社内調整を、より円滑にするためには • 毎回、目的 (期待) を最初に伝える • 話す内容の抽象度を相手に合わせて上げる・下げる

    ◦ 相手の地位を目安に ▪ 社長なら「抽象度高め」にして、全体像について話す ▪ 担当エンジニアなら「具体的に」Detail 込みで話す
  6. ミニ世界 34 What's a ミニ世界? • 「よくあるUI」が集まるデザインサンプル ◦ ECサイトなら: ボタン、入力フォーム、価格、商

    品写真、テキストリンク • パーツの相性を確認しながらデザインできるのが利点 • Adobe XD はこの段階から使用 • ミニ世界を使って、デザインを提案しました
  7. XD で UI デザイン 42 • 1つの UI : 1つのアー

    トボード • 主要なバリエーショ ンを示す • 仕様の言語化 下: モバイル版のマスターファイル
  8. XD で UI デザイン 43 • 1つの UI : 1つのアー

    トボード • 主要なバリエーショ ンを示す • 仕様の言語化
  9. XD で UI デザイン 44 • 1つの UI : 1つのアー

    トボード • 主要なバリエーショ ンを示す • 仕様の言語化
  10. XD で UI デザイン 45 • 1つの UI : 1つのアー

    トボード • 主要なバリエーショ ンを示す • 仕様の言語化
  11. XD で UI デザイン: 振返り 46 • 助かりました ◦ Alt

    + マウスオーバーでサイズをpx単位で測る ◦ グリッドレイアウト ◦ Adobe Fonts (源ノ角ゴシック) ◦ 制限された機能によるプロセスの加速化 • 特に困らなかったが、気になる ◦ InVisionのDSMみたいなドキュメンテーション ツール (自作することにしたため)
  12. XD で UI デザイン: 振返り 47 • あのときあれば使いたかった ◦ 2019/11

    に登場した機能 ▪ 同時編集 (今はまだBeta) ▪ Component States ▪ Hover States • 本当に困った ◦ XDでテキストのレンダリングがブラウザ (HTML/CSS)と違う、手動でテキスト要素を配置
  13. コードの要件をまとめる 49 • 3~5年後まで、大規模ECサイトの開発と運用に耐え れる設計 • 色や余白などルール化した原則は、値を手打ちしたく ない ⇒ Sass

    • Scoped CSS, CSS in JS は、PythonとJSを書く人ま で影響するので、見送る • BEMは、大規模サイトに向いており、特別な技術に依 存しないのが魅力的
  14. BEMについて 50 • BEMを採用することにしました • Block__Element--Modifier という標準的な書き方 • ネスト制限: Block__Element__Element

    禁止 所感: BEMのネーミングは、みんなが騒ぐほど難しくないです。慣れた ら、普通にできます。
  15. Sass設計 51 • SMACSS, FLOCSS, OOCSS 調査 ⇒ いいとこ取り •

    Sassの使える機能をきちんと定義 ◦ @extend 禁止 (ややこしくなりそうだったため) ◦ 学習コストをコントロール • 変数の命名規則からz-indexの与え方まで、本当に細 部の細部まで決めて、開発規則のドキュメンテーショ ンをきっちり作りました ◦ 手戻りを無くして、開発を加速させる
  16. 58 たどり着いたのは Vuepress テキスト • 記事は Markdown • Vue Router

    など、標準で 付いてきます • npm run build ⇒ サーバに 置くだけで公開できます • UIの使用例は、カスタム Vue コンポーネントを開発 して対応しました
  17. 03 02 04 01 62 プロセスを俯瞰して見る 01 プロジェクトの必要性とス コープ・要件を決める 02

    XDを用いたUIデザイン。複 数人が制作、全体でデザイ ンレビュー。 04 最終的に公開するアウト プットのドキュメントを仕 上げて、社内公開。 03 決めた設計をベースに HTML/CSS/JSの開発を行う。 コードレビューは欠かせない。 開発 ドキュメント作成 企画・調整 デザイン作業
  18. よくある課題 • デザインシステムを作りたいけど ◦ 話がまとまらない ◦ 周囲の人が理解してくれない ▪ 説得力のある、具体的な案を作る •

    モノタロウは、ミニ世界でした • まだ無いものを、あるかのように見せれるのはデザイ ナーの強み! 66
  19. 追い風と逆風 (モノタロウ事例) • レガシーコードとの戦い • IE8サポート • 前例の無い取り組み (不安、懸念、リスク) •

    人的リソースの制約 決して、Silicon Valley的な、なんでも自由に作れる環境と は言えません。 67