Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
HeadlessなUIライブラリを利用する価値
Search
curtis / yuito.kawashima
May 30, 2024
Programming
74
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
HeadlessなUIライブラリを利用する価値
curtis / yuito.kawashima
May 30, 2024
Other Decks in Programming
See All in Programming
Event is what happens
moro
2
770
Domain-Driven Transformation
hschwentner
2
2.3k
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
180
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
640
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
golang-bob.pdf
iwatsukayura
0
130
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
220
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
410
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
380
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
220
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
460
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
200
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
4k
My Coaching Mixtape
mlcsv
0
360
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
320
Paper Plane
katiecoart
PRO
5
54k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
エンジニアに許された特別な時間の終わり
watany
109
250k
Documentation Writing (for coders)
carmenintech
77
5.6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
RailsConf 2023
tenderlove
30
1.6k
First, design no harm
axbom
PRO
2
1.3k
Transcript
1 ɹɹʛɹɹ© 2024 PLAID Inc. Headlessな UIライブラリを利⽤する価値 yuitokawashima
⾃⼰紹介 2 ɹɹʛɹɹ© 2024 PLAID Inc. ⾃⼰紹介 Yuito Kawashima プロダクトマネージャー
& ソフトウェアエンジニア ‧ PdM、 フロン トエンド領域にて スタートアップを中⼼に多くの企業をサポート ‧ Webを中⼼に受託開発事業を運営 企画、 デザイン、 開発すべての⼯程を⾏う ‧ プレイドでKARTE Webのプロダク トマネジメン ト yuitokawashima
3 ɹɹʛɹɹ© 2020 PLAID Inc. ① What is Headless ?
4 ɹɹʛɹɹ© 2020 PLAID Inc. What is Headless ? HeadlessなUIライブラリって
使ったこと、 聞いたことありますか?
What is Headless ? 5 ɹɹʛɹɹ© 2024 PLAID Inc. Headless
UIライブラリ
6 ɹɹʛɹɹ© 2020 PLAID Inc. What is Headless ? ひとことで⾔うと…
スタイル以外の "振る舞い" を提供するライブラリ
7 ɹɹʛɹɹ© 2020 PLAID Inc. What is Headless ? 今回はradix-vueを使って
例を⾒ていきます
8 ɹɹʛɹɹ© 2020 PLAID Inc. What is Headless ? 例えば
Dropdown MyDropdown.vue スタイルはないけど、 Dropdownの動作をします ※ speakerdeck版ではサンプルの動画を静⽌画に変更しています
9 ɹɹʛɹɹ© 2020 PLAID Inc. What is Headless ? カスタマイズする
MyDropdown.vue (radix-vue + tailwind) スタイルを付与するだけでよ くみるDropdownが完成 ※ speakerdeck版ではサンプルの動画を静⽌画に変更しています
What is Headless ? 10 ɹɹʛɹɹ© 2024 PLAID Inc. この例からわかる
"振る舞い" とは? ‧ クリ ックでメニューの表⽰を切り替え ‧ タブやキーボード操作で移動 ‧ 選択 ‧ 状態や適合するARIAの制御 動作 アクセシビリティ ‧ Outer Clickでメニュー要素を⾮表⽰
11 ɹɹʛɹɹ© 2020 PLAID Inc. ② これまでのUI開発における選択肢
これまでのUI開発における選択肢 12 ɹɹʛɹɹ© 2024 PLAID Inc. UIライブラリを使う スクラッチで書く or
‧ 既存スタイルの打ち消し ‧ 上書きって 実現可能性の判断含めめっちゃ⼤変 ‧ 既存スタイルはないから打ち消し不要 ‧ DOM構造が変更できず
オリジナルUIの適⽤が難しい… これまでのUI開発における選択肢 13 ɹɹʛɹɹ© 2024 PLAID Inc. ‧ ↑の結果 『脱{{ライブラリ名}}』 みたいのは じまる 「UIライブラリを使う」 との⽐較 ‧ 振る舞い (品質) を担保したまま デザインリニューアルができる ‧ 構造もカスタムできるから オリジナルUIの適⽤OK
これまでのUI開発における選択肢 14 ɹɹʛɹɹ© 2024 PLAID Inc. ‧ 時間かかるしスクラッチで書ける⼈いない ‧ ⾒た⽬や動作レベルでは書けても、
アクセシビリティ考慮は茨の道 ‧ 新UIを試したいけどコスト的に 既存コンポーネン トを使おうとなりがち ‧ スタイル書くだけで超早い 「スクラッチで書く」 との⽐較 ‧ アクセシビリティも考慮される ‧ 最⼩コストで開発できるから試しやすい
15 ɹɹʛɹɹ© 2020 PLAID Inc. ③ Headlessである価値
16 ɹɹʛɹɹ© 2020 PLAID Inc. Headlessである価値 ひとことで⾔うと… オリジナルUI の アクセシブル
な UIコンポーネントが 爆速で作れる
Headlessである価値 17 ɹɹʛɹɹ© 2024 PLAID Inc. 組織に与える価値 ‧ 低い開発コストで品質担保できるから
意思決定がしやすい ‧ ⺠間事業者もアクセシビリティが努⼒義務に。 より採択/信頼を得やすいプロダクトに ‧ マークアップスキルのみでも複雑なUIが つくれるので分業しやすい
18 ɹɹʛɹɹ© 2020 PLAID Inc. ④ プレイドでの導⼊事例
19 ɹɹʛɹɹ© 2020 PLAID Inc. プレイドは新デザインシステム 「Sour」 の構築を進めています
プレイドでの導⼊事例 20 ɹɹʛɹɹ© 2020 PLAID Inc. KARTE Webチーム KARTEのベース機能を開発しているチーム 5-6年前く
らいからある機能が多く ほぼすべてが Vue 2 x 旧デザイン ‧ 新機能は新UIにしたい ! ‧ 機能のリニューアルでも 既存のロジックを使いたい !! ‧ ついでにVue 3 にもしたい !!!
プレイドでの導⼊事例 21 ɹɹʛɹɹ© 2024 PLAID Inc. Sour for Vue 3
radix-vue を使ってSourに対応した UIコンポーネン トライブラリを開発
プレイドでの導⼊事例 22 ɹɹʛɹɹ© 2024 PLAID Inc. 実際のコンポーネントを ⼀部公開 !
‧ オリジナルデザインに合わせて構造を組んでいく ‧ asChildを付与するとDOMの実体は⼦要素に ‧ ↑によりTriggerをクリ ックしたらmenuが開く のような挙動も引き継がれる
‧ 中⾝のDOM構造含めて カスタマイズ可能なことがわかります プレイドでの導⼊事例 23 ɹɹʛɹɹ© 2024 PLAID Inc.
⼦コンポーネントは こんな感じ ‧ Slotを使って柔軟なコンポーネン トに なんてことも簡単です
‧ 複雑なハンドリングやカスタマイズなしで ほぼスタイリングするだけで完結 24 ɹɹʛɹɹ© 2020 PLAID Inc. プレイドでの導⼊事例
実際に作成された Dropdownコンポーネント ‧ スクラッチで書くのに近いレベルの柔軟性が 実現可能
25 ɹɹʛɹɹ© 2020 PLAID Inc. Headlessである価値 Headless UIライブラリ 検討してみてはいかがでし ょ
うか?
26 ɹɹʛɹɹ© 2020 PLAID Inc. 最後にお知らせ
27 ɹɹʛɹɹ© 2020 PLAID Inc. What is Headless ? 以下のイベントでプレイドはブースを出展します
来場予定の⽅はぜひブースへ遊びに来てください
28 ɹɹʛɹɹ© 2020 PLAID Inc. ありがとうございました ! 以上で終了となります