基礎

Theme Provider

ライト・ダーク・OS 連動の表示モードを管理する部品。選んだモードを <html> の data-theme 属性に反映し、localStorage に保存して次回の表示にも引き継ぎます。アプリ全体のテーマ色の上書きもここで指定します。React と Vue 向けで、Web Components では属性と CSS 変数を直接使います。

ReactVue
Storybook で見る

プレイグラウンド

使用例

<ThemeProvider
  defaultMode="system"
  colors={{ primary: '#115e59', 'on-primary': '#ffffff' }}
>
  <App />
</ThemeProvider>

設定できる項目

名前 既定値 説明
children 必須 ReactNode
defaultMode ThemeMode Initial mode before any stored preference is read.
enablePersistence boolean Persist the user's choice to localStorage. Default: true.
storageKey string localStorage key. Default: `lily-theme`.
colors ThemeColorOverrides App-wide color-token overrides applied in both schemes.
light ThemeColorOverrides App-wide color-token overrides applied only in the light scheme.
dark ThemeColorOverrides App-wide color-token overrides applied only in the dark scheme.

アクセシビリティ

  • 文字と背景の明るさの差をしっかり取り、読みやすくしています。ライトでもダークでも、見やすさの国際基準 WCAG の最高ランク AAA(明るさの差が 7:1 以上)を満たします。
  • マウスがなくても、キーボードだけですべての操作ができます。
  • いまどこを操作しているかを示す枠(フォーカスの囲み)が、常にはっきり見えます。
  • 利用者が「画面の動きを減らす」設定にしているときは、過剰なアニメーションを止めます。

どのコンポーネントも、だれにとっても使いやすいように、見やすさの国際基準 WCAG の最高ランク AAA(WCAG 2.1 AAA)を満たすよう作っています。