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

【当日用】Money Forward UIの紹介 / Introducing Money Fo...

Taiga KIYOKAWA
September 20, 2024

【当日用】Money Forward UIの紹介 / Introducing Money Forward UI

https://techday.moneyforward-dev.jp/2024/sessions/talk-04/

Webプロダクト向けの共通UIライブラリ「Money Forward UI (MFUI)」の取り組みや展望を紹介します。MFUIは、我々が主要な機能に集中し、UI の不整合を減らし、車輪の再発明を避けることを目的としています。また、MFUIの利用によって、リソースや知識を集約させることで、フロントエンド開発を効率化してユーザーにより早く価値を提供することができます。

Taiga KIYOKAWA

September 20, 2024
Tweet

Other Decks in Design

Transcript

  1. • Joined Money Forward in 2020 • Leader of Frontend

    Forward Group • Develop MFUI & Improve accessibility Taiga Kiyokawa \ Follow me! / @taigakiyokawa
  2. Money Forward UI とは What is Money Forward UI? Content

    What is MFUI? Resources Teamwork Visions Summary
  3. 技術スタックもプロダクトごとにバラバラなことが多い Also, the tech stacks often vary from product to

    product マネーフォワード クラウドのUIの現状 Current situation of the UI in Money Forward Cloud React Vue.js mui etc.
  4. マネーフォワード クラウド全体での使用感の差をなくし、 併用体験を向上させたい We want to improve the experience for

    users using multiple products by reducing inconsistencies of UI across all Money Forward Cloud products 見た目や振る舞いの差異 Differences in appearance and behavior
  5. MFC UI Design Standard (UIDS) Figma Components, Specs, Guidelinesの3つの要素からなる It

    consists of 3 elements: Figma Components, Specs, and Guidelines Components Design Data Documents Specs Guidelines Anatomy, interactions, etc. How to design
  6. Web Content Accessibility Guidelines (WCAG) 2.2 Level Aの 達成基準を満たすためのガイドライン MFC

    Accessibility Guidelines Guidelines to meet the Success Criteria for Web Content Accessibility Guidelines (WCAG) 2.2 Level A
  7. MFUI Packages 4つのnpmパッケージを、GitHub Packagesで社内に展開 We provide 4 npm packages internally

    via GitHub Packages mfui-components mfui-icons mfui-design-tokens SVG React
  8. mfui-components ビルド時に1枚のCSSファイルを出力することで、 アプリケーション側での利用時にはPanda CSSに依存しない By outputting a single CSS file

    at build time, the application side will not depend on Panda CSS when using components @import url('@moneyforward/mfui-components/styles.css');
  9. mfui-icons Icons are provided as React components & SVG files

    ReactコンポーネントとSVGファイルで提供
  10. 他のトークンのエイリアスとして定義したりもする デザイントークンとは What are design tokens? A token also can

    be defined as an alias of another token "color": { "black": { "$value": "#000", "$type": "color" }, } "text": { "main": { "$value": "{color.black}", "$type": "color" }, }
  11. mfui-design-tokens Figma Variablesからデザイントークン用のJSONファイルを出力 Generate JSON files for design tokens from

    Figma Variables "color": { "black": { "$value": "#000", "$type": "color" }, } Variables Export
  12. mfui-design-tokens CSS変数、SCSS変数とES Modulesで提供 Tokens are provided as CSS variables, SCSS

    variables, & ES Modules Style Dictionary --mfui-color-black: #000; $mfui-color-black: #000; MfuiColorBlack = "#000"; "color": { "black": { "$value": "#000", "$type": "color" }, }
  13. mfui-design-tokens mfui-components用に、Panda CSSのプリセットも生成 Presets of Panda CSS are also generated

    for mfui-components Style Dictionary mfuiPandaCSSPresets = definPreset({ // ... "mfui.color.black": { "value": "#000" } // ... }) "color": { "black": { "$value": "#000", "$type": "color" }, }
  14. ADRとは 「Architectural Decision Record」の略称 意思決定に関する背景を簡潔に記したドキュメントのこと What is an ADR? It

    stands for “Architectural Decision Record” It is a document that concisely describes the background of a decision
  15. JSDoc とは JavaScript用のAPIドキュメントジェネレータ ソースコードに直接記述し、アノテーションを追加する What is JSDoc? JSDoc is an

    API documentation generator for JavaScript It adds annotations by being written in a source code directly /** * This function is for … * @returns bar - a boolean whether … */ export foo = () => {
  16. JSDoc を書く コンポーネントをはじめ、exportするモジュールには必ず書く Writing JSDoc Including components, JSDocs are always

    written for exported modules /** * This function is for … * @returns bar - a boolean whether … */ export foo = () => {
  17. JSDoc を書く コンポーネントのpropsの型定義では、 プロパティごとに記述する Writing JSDoc In the type definition

    of the component’s props, JSDoc is written for each property export type ButtonProps = { ... /** * The size of the button. * @default 'medium' */ size?: 'small' | 'medium' | 'large'; ... }
  18. JSDoc からStorybookのDocsを生成する Generate Storybook docs from JSDoc export type ButtonProps

    = { ... /** * The size of the button. * @default 'medium' */ size?: 'small' | 'medium' | 'large'; ... } JSDoc
  19. JSDoc からStorybookのDocsを生成する Storybookを見てもソースコードを見ても同じ情報にアクセスできる Generate Storybook docs from JSDoc Developers can

    access the same information from both Storybook and source code /** * The size of the button. * @default 'medium' */ size?: 'small' | 'medium' | 'large';
  20. MFUI Packages 4つのnpmパッケージを、GitHub Packagesで社内に展開 We provide 4 npm packages internally

    via GitHub Packages mfui-components mfui-icons mfui-design-tokens SVG React
  21. 3チームによるコラボレーション! UI Design Standardを整備するデザイナーと、 Money Forward Vietnamのエンジニアとの協業 We collaborate with

    UIDS designers and engineers in Money Forward Vietnam A collaboration by 3 teams! UIDS Designers Frontend Forward Money Forward Vietnam
  22. 他ドメインにも展開していくため、 「Money Forward Cloud UI」ではなく「Money Forward UI」 マネーフォワード クラウド以外への展開 Expand

    MFUI to products other than Money Forward Cloud Because we want to extend it into other domains, we didn’t name it “Money Forward Cloud UI”, but “Money Forward UI”