UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Design System】Pixivのデザインシステム(その2)

Pixivさんのデザインシステムの記事の後編がでたので読んだメモ

inside.pixiv.blog

前回読んでのメモは以下

【Design System】pixivのデザインシステム - UGA Boxxx

前編では、デザインシステム作成の背景や設計思想についてで、今回はより具体的な実装の話

デザインシステムの実装に関する6つのパッケージがモノレポで管理されているみたい

以下のような感じで三層に分けているの参考になる

pixiv-elements

  • Components
    • @pixiv-elements/react
    • @pixiv-elements/icons
  • Utilities
    • @pixiv-elements/tailwind-config
    • @pixiv-elements/styled
  • Constants
    • @pixiv-elements/theme
    • @pixiv-elements/foundation

themeには主に色を定義している

気をつけているのは色の命名で、具体的すぎる名前にせず、シンプルに、セマンティクスは最低限にしているとのこと

funcationにはガイドラインに定数を定義

tailwind-configはその名の通りtailwindのconfig

styledはすでにstyled-componentsでスタイリングをしているプロダクト用に基本的にはtailwindと同じことを実現するユーティリティ

あとは、Componentsレイヤーでよく頻出するロジックをコンポーネントとして提供する(ButtonやPagerなど)

iconsはCIを用いてfigmaからSVGファイルのダウンロードする作業を自動化しているいみたいで、定期的にfigmaを監視して、変更があったらGitlabに自動でMRが立つしくみは興味深い

Figma でアイコンを更新したら GitLab に勝手に MR が作られるやつ - pixiv inside

Tailwindが良いかは吟味中だが、はやりutility first で制約していくのは良さそう