Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
カオナビデザインシステムのこれまでとこれから
Search
shinbey221
February 24, 2022
0
42
カオナビデザインシステムのこれまでとこれから
shinbey221
February 24, 2022
Tweet
Share
More Decks by shinbey221
See All by shinbey221
開発者フレンドリーなデザインシステムを支える技術
shinji_bekki
0
160
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Designing Experiences People Love
moore
138
23k
A Tale of Four Properties
chriscoyier
156
23k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
Scaling GitHub
holman
458
140k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Transcript
カオナビデザインシステム の これまでとこれから 株式会社カオナビ プロダクト本部 サービス開発部 別城慎治
今日話すこと 1. これまでのカオナビデザインシステム 2. これからのカオナビデザインシステム ・カオナビデザインシステム構築経緯 ・構築〜運用までの話 ・これから取り組みたいこと ・カオナビデザインシステムが目指すもの ※
以降カオナビデザインシステムは KDSと省略します
自己紹介 ・フロントエンドエンジニア 別城 慎治(bekki shinji) @shinji_becky ページリニューアル案件やデザインシステム構築を経て現在は新 規機能開発などに携わっています ・趣味 アニメ、サッカー(最近は見る専門)、旅行
2019年11月入社
KDS構築の経緯は? ?
KDS構築の経緯 KDS構築前(2~3年前)のコンポーネントの話 カオナビ本体のリポジトリに「共通コンポーネント」という形で存 在していた
AtomicDesign コンポーネントを 「Atoms」 「Molecules」 「Organisms」 「Pages」 の4つのディレクトリで構成
・Atoms、Molecules、Organismsの分類判断 1. 運用の難しさ 存在していた課題 当時はまだ React を導入し始めたばかりで社内に React 開発のナレッジが蓄積されて おらず
Atomic Design を取り入れるのは時期尚だった ・適切な設計
2. UIの一貫性の欠如 存在していた課題 共通コンポーネントの実装フローにデザイナーチェックが存在し ていなかった テキストサイズが違うなどデザインと違うコンポーネントなどが存在していた
3. 共通認識の持ちづらさ 存在していた課題 エンジニアだけではなくデザイナーにもAtomicDesignに準拠し てもらう必要があった
KDSの構築
KDSの構築 〜 デザイン・開発・リリースまでのフロー整備 〜
デザイン・開発・リリースまでのフロー整備 KDS専用のカンバンボードでチケット管理 デザイン変更やコンポーネント追加などはデザイナー主導で行うように整備 → エンジニア判断で変更を加えるとデザインとの整合性がとれなくなる
None
None
None
Figma カオナビではデザインツールにFigmaを採用 FigmaにKDSに必要な コンポーネントを洗い出してもらい、 スタイルガイドやUIパターンなどを定義 これを正としてエンジニアはコンポーネントを実装 していく
None
None
エンジニアレビュー デザイナーがFigma上で変更箇所の デザイン修正後、エンジニアにデザインをレビューす るフローを設けています ▪ 目的 エンジニアが実装する前に不明点はないか、デ ザインの一貫性が担保されているかなどをチェッ クするため
None
None
None
None
実装後のStorybookレビュー 実装者はコンポーネントの修正(もしくは追加) 対応後、デザイナーにStorybook上で該当のコ ンポーネントレビューを依頼 ▪ 目的 ・Figmaのデザインと相違がないか ・パターンが網羅できているか をチェックする
None
KDSの新バージョンリリース バージョンアップの作業フローはざっくり3 Step
Step 1. リリースブランチをmasterマージ KDSの新バージョンリリース バージョンアップの作業フローはざっくり3 Step
Step 1. リリースブランチをmasterマージ Step 2. Tagの作成(リリースノート ) KDSの新バージョンリリース バージョンアップの作業フローはざっくり3 Step
作成したバージョニングガイドラインに準拠
Step 1. リリースブランチをmasterマージ Step 3. カオナビ本体のKDSバージョンアップ KDSの新バージョンリリース バージョンアップの作業フローはざっくり3 Step Step
2. Tagの作成(リリースノート ) 作成したバージョニングガイドラインに準拠
KDSの構築編 〜 技術スタックについて 〜
・React + TypeScript ・styled-components ・Storybook ・Jest + React Testing Library
・REG SUIT ・Webpack ・GitLab 技術スタック
コンポーネントライブラリとしてのKDS ・GitLabのPackageRegistryを利用 KDS カオナビ本体 ・プライベートなnpmパッケージとして本体側で利用する
ディレクトリ構成
Storybook
REG SUIT
GitLab ブランチごとにStorybookを確認できるようにbuildジョブのアーティファクト からStorybook確認できるように整備
KDS構築の恩恵 ✅ 本体と切り離すことによる開発スピードの向上 ✅ デザイン・開発・リリースまでのフロー整備による作業効率化 ✅ 一貫性のあるUI/UX ✅ プロダクトブランディングの一部となる
KDSの運用
構築に関してはチームで対応 運用体制 運用はチーム体制ではなく 自分 + テックリードを中心にフロントエンドメンバーで対応
毎週火曜日に「KDSを考える会」を開催 課題の洗い出しや課題に対する対応をしています 運用体制
運用改善例 - KDSの新バージョンリリース SlackのKDSチャンネルでリリースワークフローを作成 Step by Stepでリリース作業が行えるように仕組み化
運用改善例 - リリースノートの自動投稿 以前はKDSのリリースを行った際にリリースしたことを Slackで共有するフローがあった PackgeRegistryのpublish後、リリースノートを自動投稿するように対応
KDSのこれから
これから取り組みたいこと ・アクセシビリティ対応 カオナビ 本体と共に考えなければなりませんが、 ガイドラインの策定・アクセシブルなコンポーネントを目指す ・エンジニアのデザイン体験 エンジニアがデザイナー目線を持ってKDSに向き合えるような取り組みをし ていきたい
KDSが目指すこと
最後に
最後に 技術的なことよりデザイナーとエンジニアがスムーズに作業を進めるための フローを作るところが難しい スムーズにいかないフローをどう仕組み化して円滑に回せるようにするかを 考えるのはとてもいい経験になっている
ご静聴ありがとうございました!