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

日経電子版を支えていく Kasane Design System/fec_fukuoka

日経電子版を支えていく Kasane Design System/fec_fukuoka

2026/09/12開催の Frontend Conference Fukuoka (#fec_fukuoka) において
デジタル編成ユニット Webチーム 田中 泰斗 / Taito Tanaka さんが発表。発表タイトルは
日経電子版を支えていく Kasane Design System です

More Decks by 日本経済新聞社 エンジニア採用事務局

Other Decks in Technology

Transcript

  1. ⽇経電⼦版を⽀えていく Kasane Design System デジタル編成ユニット Webチーム ⽥中 泰⽃ / Taito

    Tanaka Frontend Conference Fukuoka 2026/09/12 Webチーム - もっといいメディア、もっといいウェブをつくる © Nikkei Inc.
  2. ⾃⼰紹介 ⽥中 泰⽃ / Taito Tanaka (@taitotnk) • デジタル編成ユニット Web

    チーム 所属 • 2023 年新卒⼊社 • ⽇経電⼦版 Web の開発、Design System の構築 • アクセシビリティ、サッカー (J リーグ) Better insights for a better world © Nikkei Inc.
  3. ⽇経電⼦版 • www.nikkei.com • 2010 年 3 ⽉創刊 • 有料会員:

    106 万⼈ (2026 年 1 ⽉時点) • Navigation Request: 約 3000 万/⽇ (Web のみ) • 新しい記事の投稿: 1000 /⽇ ※ 資料公開⽤に画像を⾮表⽰にしています Better insights for a better world © Nikkei Inc.
  4. 新しいデザインシステム • アクセシビリティのボトムアップ • AI 活⽤ • ダークモードへシームレスに対応したい • ⾃分たちの拠り所を整備しておきたい

    • ⾞輪の再発明を避けて⼀貫性を担保 • デザインと実装のブレをなくす • デザインと実装の⺠主化 Better insights for a better world © Nikkei Inc.
  5. 命名理由 • 重ね合わせ / 積み重ねる • 活版印刷の技法の「重ね刷り」 • 新聞が積み重なっているイメージ •

    コンポーネントを重ねて⼤きなものを構築 • 廃れないように積み重ねていきたい願い Better insights for a better world © Nikkei Inc.
  6. ⽇経の最初のデザインシステム (2016) • 全社的に使うことを想定していた • Origami の思想も組み込まれていた • 当時の技術的制約の中でよく考えられた設計 ◦

    Nikkei UI Sass, Handlebars, Vanilla JS, Fractal ▪ 今のような便利な CSS プロパティは なかった ▪ Better insights for a better world IE も考慮する必要があった © Nikkei Inc.
  7. ⽇経の最初のデザインシステム (2016) • 全社的に使うことを想定していた • Origami の思想も組み込まれていた • 当時の技術的制約の中でよく考えられた設計 ◦

    Nikkei UI Sass, Handlebars, Vanilla JS, Fractal ▪ 今のような便利な CSS プロパティは なかった ▪ Better insights for a better world 続かなかった… IE も考慮する必要があった © Nikkei Inc.
  8. 続かなかった理由 • 事業要件の複雑化 ◦ アプリケーションの数が肥⼤化し、チームのリソースにも限界があった • 組織の再編によりチームが解散した ◦ リテラシーが⾼いメンバーがメンテナンスする前提で作られていた ◦

    意思決定などのコンテキストもコアメンバーの脳内に留まっていた • 技術のパラダイムシフトに追従できなかった ◦ メンバーの世代交代で Sass を書くのが当たり前ではなくなった ◦ プロダクト側の 2 回の基盤移⾏の技術刷新に取り残された Better insights for a better world © Nikkei Inc.
  9. 最⼩限の⼈数で集中的に取り組む エンジニア × 2 デザイナー × 2 週 1 の定例と⾮同期の議論

    意思決定がしやすい⼈数 & モチベーションの⾼いメンバーで編成 Better insights for a better world © Nikkei Inc.
  10. コンテキストを残す LLM Wiki の活⽤ • https://gist.github.com/karpathy/442a6bf 555914893e9891c11519de94f • /kasane-wiki-ingest: ⼀次情報を取り込む

    • /kasane-wiki-query: 経緯を調べ、Wiki を 育てる • /kasane-wiki-lint: 内部の整合性を検査する Better insights for a better world © Nikkei Inc.
  11. Web 標準に寄せる • 基盤移⾏で Sass を剥がすことに苦労した • 世の中的に Sass は使われなくなった

    ◦ 特定の技術にベットしていた代償 ◦ 今の CSS はかなり便利になった • → Web 標準に極⼒寄せる ◦ 後⽅互換性が配慮され続け、⻑く残る ◦ Vanilla CSS, Web Components, DTCG Spec など Better insights for a better world © Nikkei Inc.
  12. Kasane Design System の取り組み • 設計思想 • 設計原則 • デザインシステムの全体構成

    • 外⾒に関する⽅針の⾒直し ◦ ⾊ ◦ フォント Better insights for a better world © Nikkei Inc.
  13. Kasane Design System の取り組み • 設計思想 • 設計原則 • デザインシステムの全体構成

    • 外⾒に関する⽅針の⾒直し ◦ ⾊ ◦ フォント Better insights for a better world © Nikkei Inc.
  14. 堅さ―⽇経らしい堅さを⼤切にする 開発者 エンドユーザー Better insights for a better world •

    制約により⽇経のブランドイメージを 守ることができる • 堅実さや信頼感を感じられる • 使っていることが誇らしく感じられる © Nikkei Inc.
  15. 快適さ―不快な思いを与えない 開発者 エンドユーザー Better insights for a better world •

    快適さが保証される • アクセシビリティが保証される • 混乱する UI を⽬にしない • 個々の特性に依存せず使える © Nikkei Inc.
  16. 明快さ―意思決定に迷いを与えない 開発者 エンドユーザー Better insights for a better world •

    標準的な表⽰や挙動が保証される • 洗練された⾃由度 • 整備されたドキュメント • ⽇経特有の⽂脈が不要 • 直観的に操作可能 © Nikkei Inc.
  17. Kasane Design System の取り組み • 設計思想 • 設計原則 • デザインシステムの全体構成

    • 外⾒に関する⽅針の⾒直し ◦ ⾊ ◦ フォント Better insights for a better world © Nikkei Inc.
  18. 設計原則 ― 快適さ • WCAG 2.2 AA 準拠 • パフォーマンスを考慮する

    • アニメーションは必要最⼩限にする Better insights for a better world © Nikkei Inc.
  19. 設計原則 ― 明快さ • 選択肢を最⼩限にする ◦ 例: props による選択肢を極⼒抑える •

    新しい機能を⾜すときは同時に削られるものを考える • 新しい独⾃の⾔葉を⽣み出さない ◦ 例: 社内でしか通じない⾔葉で命名しない ◦ 例: label props → aria-label ? innerText ? ▪ aria-label props, <XxxLabel /> として定義すべき • 標準仕様を必ず守る • 世間の UI 慣習を⼤切にする • 些細なことでもドキュメントに残す Better insights for a better world © Nikkei Inc.
  20. Kasane Design System の取り組み • 設計原則 • 設計思想 • デザインシステムの全体構成

    • 外⾒に関する⽅針の⾒直し ◦ ⾊ ◦ フォント Better insights for a better world © Nikkei Inc.
  21. 全体構成 • TypeScript • Vitest, Chromatic, Storybook • Oxlint, Oxfmt,

    Stylelint • Changesets • pnpm workspace によるモノレポ ◦ kasane-tokens: デザイントークン ◦ kasane-icons: アイコンアセット ◦ kasane-css: ベーススタイル/コンポーネントライブラリの CSS ◦ kasane-react: React コンポーネントライブラリ ◦ kasane-web-components: ウェブコンポーネントライブラリ Better insights for a better world © Nikkei Inc.
  22. kasane-tokens • デザイントークンを集約するパッケージ • Design Tokens Community Group が策定 する

    Design Tokens Specification に準拠 ◦ Color ◦ Typography ◦ Spacing ◦ Shadow ◦ Corner Radius ◦ Width/Height Better insights for a better world https://www.designtokens.org/tr/2025.10/ © Nikkei Inc.
  23. Color の Design Token の構造 意味を持たず、⾊相と明度のみで命名された カラーパレット UI 上の役割‧⽤途に基づいて意味付けされた コンポーネント横断で使う汎⽤カラートークン

    特定コンポーネントのバリアント‧状態に紐づいた コンポーネント固有のカラートークン Better insights for a better world © Nikkei Inc.
  24. Semantic/Component Token のグルーピング • Text: 通常テキスト • Background: 背景⾊ •

    Shape: アイコンや装飾など、テキスト以外のオブジェクト • Border: 区切り線 塗る場所でグルーピングすると、⼈間にも AI にもフレンドリーに Better insights for a better world © Nikkei Inc.
  25. kasane-css • ベース/コンポーネントスタイルを集約 • Vanilla CSS を採⽤ • ◦ React

    と Web Components の両⽅で利⽤ ◦ kasane-tokens の Custom Properties を参照 ◦ 現代の技術なら⼗分戦える @layer kasane で利⽤側との詳細度の衝突を避け る設計 ◦ “layering” = “kasane” だけに... Better insights for a better world © Nikkei Inc.
  26. なぜ web-components? • ⽇経電⼦版の中で全てのアプリケーションが React で作られているわけではない ◦ ⼀部のページでは Java +

    JSP の世代も残って いる • 今は kasane-react と成⻑中 Better insights for a better world © Nikkei Inc.
  27. Kasane Design System の取り組み • 設計原則 • 設計思想 • デザインシステムの全体構成

    • 外⾒に関する⽅針の⾒直し ◦ ⾊ ◦ フォント Better insights for a better world © Nikkei Inc.
  28. カラースペース • OKLCH を採⽤ • LCH の改善版 ◦ OK の意味

    ▪ “It is called the Oklab color space, because it is an OK Lab color space.” ▪ • https://bottosson.github.io/posts/oklab/ Lightness (明度), Chroma (彩度), Hue (⾊相) Better insights for a better world © Nikkei Inc.
  29. カラースペース 旧カラーパレット: HSL 新カラーパレット: OKLCH Green 90 Blue 90 Red

    90 Green 120 Blue 120 Red 120 3.21 : 1 Lc 64 5.66 : 1 Lc 80 5.53 : 1 Lc 81 5.1 : 1 Lc 80 5.13 : 1 Lc 80 5.48 : 1 Lc 80 同じ明度であれば⾊相が異なってもコントラスト⽐が概ね揃う → WCAG 2.2 と APCA の両⽅を担保しやすい Better insights for a better world © Nikkei Inc.
  30. コントラスト⽐ Light/Dark 共通で WCAG2.2 AA と APCA Bronze Level で評価

    ボディテキスト要素 テキスト要素 テキスト以外 (アイコン等) 4.5 : 1 以上 4.5 : 1 以上 3 : 1 以上 かつ かつ かつ Lc 75 以上 Lc 60 以上 Lc 45 以上 例外としてオレンジ⾊は APCA 基準のみで評価 Better insights for a better world テキスト要素 テキスト以外 (アイコン等) Lc 60 以上 Lc 60 以上 © Nikkei Inc.
  31. APCA (Accessible Perceptual Contrast Algorithm) • ⼈間が知覚するコントラストに近い • 単位は Lc

    (Lightness contrast) • 同じ⾊の組み合わせでもどちらが前⾯に 来るかで Lc が変わる • フォントファミリー、サイズ、ウェイト によって必要な Lc の基準値が変わる • WCAG 3 に採⽤される流れがあったが、 現在はドラフトから削除 Better insights for a better world https://apcacontrast.com/ © Nikkei Inc.
  32. Kasane Design System の取り組み • 設計原則 • 設計思想 • デザインシステムの全体構成

    • 外⾒に関する⽅針の⾒直し ◦ ⾊ ◦ フォント Better insights for a better world © Nikkei Inc.
  33. font-family の⾒直し Before -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu,

    Cantarell, Noto Sans, Helvetica Neue, Helvetica, Hiragino Kaku Gothic ProN, Meiryo, sans-serif; After "Hiragino Sans JP", -apple-system, BlinkMacSystemFont, "Noto Sans JP", "Noto Sans CJK JP", "Segoe UI", Meiryo, sans-serif; iOS/macOS での和⽂表⽰⽤に、独⾃ font-face “Hiragino Sans JP” を定義し、欧⽂と合うようにウェイトを調整 Better insights for a better world © Nikkei Inc.
  34. 統⼀感のある和欧混植を実現 Before • 和⽂: Hiragino Kaku Gothic ProN ◦ •

    欧⽂: San Francisco ◦ • • → 和⽂ W3 (=300) / 欧⽂ 400 font-weight: bold ◦ Better insights for a better world バリアブルフォント (100-900) font-weight: normal ◦ 欧⽂のウェイトが和⽂より若⼲太い W3, W6 のみ → 和⽂ W6 (=600) / 欧⽂ 700 ※ 資料公開⽤に画像を⾮表⽰にしています © Nikkei Inc.
  35. 統⼀感のある和欧混植を実現 • 和⽂を Hiragino Sans に変更 ◦ • After W0-W9

    (ProN に無い W4/W7 を使⽤可能) @font-face の unicode-range を使⽤し 和⽂に限定 ◦ 欧⽂は含めず San Francisco にフォールバックさせる • font-weight: normal では W4 を指定 ◦ • font-weight: bold では W7 を指定 ◦ • → 欧⽂ 400 と揃う → 欧⽂ 700 と揃う すべてのブラウザで和欧のウェイトが揃う ⽂字が少し鮮明になり読みやすくなる アンチエイリアス指定で太さは緩和 Better insights for a better world ※ 資料公開⽤に画像を⾮表⽰にしています © Nikkei Inc.
  36. font-family の⾒直し Before -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu,

    Cantarell, Noto Sans, Helvetica Neue, Helvetica, Hiragino Kaku Gothic ProN, Meiryo, sans-serif; After "Hiragino Sans JP", -apple-system, BlinkMacSystemFont, "Noto Sans JP", "Noto Sans CJK JP", "Segoe UI", Meiryo, sans-serif; パフォーマンスを重視し Web フォントは使⽤せず、 Windows/Android 標準搭載の Noto Sans JP を優先指定。Windows ではメイリオよりも優先。 Better insights for a better world © Nikkei Inc.
  37. Meiryo から Noto Sans JP へ (Windows) Before After Meiryo

    Noto Sans JP 丸く横⻑な字形、滲んで⾒える 癖がなく整った字形で、すっきり Better insights for a better world © Nikkei Inc.
  38. “Noto Sans JP” は何が良い? Meiryo 出典 [3] Noto Sans JP

    出典 [4] 2007年に Windows Vista に同梱された 2014年、Google, Adobe が共同開発。 古いフォント。電⼦版で2019年から採⽤。 ⾼品質を売りにした新しいフォントで、 昔の低解像度な画⾯で「明瞭」に⾒える、 柔軟な字詰めに対応するなど⾼機能。 可読性を重視した書体。 2025年に Windows 10/11 に搭載。 横⻑で丸みが強くカジュアルな雰囲気で、 美しく整っており癖のない字形で、 現代の⾼解像度だと癖が⽬⽴つ。 ニュートラルな印象を与える。 Better insights for a better world © Nikkei Inc.
  39. Meiryo 廃⽌は⽂字表現充実の第⼀歩 ⾼度な⽂字表現に対応した現代的フォント 変更前 Meiryo Noto Sans JP ヒラギノ⾓ゴシック +

    San Fransisco OSごとの電⼦版へのアクセス数 Windows 変更後 Android macOS iOS 古い端末がなくなれば 100% に • 字詰め等の⾼度な⽂字表現は Meiryo では実現できない • Noto Sans JP への移⾏により、 すべての環境で字詰め等の最新機能が適⽤できるように Better insights for a better world © Nikkei Inc.
  40. font-family の⾒直し Before -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu,

    Cantarell, Noto Sans, Helvetica Neue, Helvetica, Hiragino Kaku Gothic ProN, Meiryo, sans-serif; After "Hiragino Sans JP", -apple-system, BlinkMacSystemFont, "Noto Sans JP", "Noto Sans CJK JP", "Segoe UI", Meiryo, sans-serif; 近いうちに変更予定 Better insights for a better world © Nikkei Inc.
  41. 参考⽂献 [1] Origami design principles at the Financial Times, Medium,

    2015 https://medium.com/@kaelig/origami-design-principles-at-the-financial-times-a76a14d24050 [2] 第1回 デジタルコンテンツの視認性と WCAG2 のコントラスト⽐の課題, 技術評論社, 2023 https://gihyo.jp/article/2023/08/apca-01 [3] マイクロソフト、 Vista の新フォント「メイリオ」について説明 〜可読性の高いフォントで生産性も向上 , PC Watch, 2006 https://pc.watch.impress.co.jp/docs/2006/0516/ms.htm [4] アドビ、⽇中韓ほか多⾔語対応したオープンソースフォント「Source Han Sans」発表, マイナビニュース, 2014 https://news.mynavi.jp/techplus/article/20140716-a388/ Better insights for a better world © Nikkei Inc.