ダークモード対応

日記

公開日時:2024/05/03

ダークモードに対応。

公式ドキュメントに方法が載ってたのでそのまま使用。

https://docs.astro.build/ja/tutorial/6-islands/2/

:root に変数としてカラーを定義しているのでそれを崩さないようにする。

Astroではコンポーネント毎にstyleを書いてコンポーネント内でのみ使用するようにできるので、globalでは全体的なテーマカラーのみを定義する。

global.css

:root {
  --accent: #2337ff;
  --accent-dark: #000d8a;
  --black: 15, 18, 25;
  --gray: 96, 115, 159;
  --gray-light: 199, 200, 203;
  --gray-dark: 34, 41, 57;
  --gray-gradient: rgba(var(--gray-light), 50%), #fff;
  --box-shadow: 0 2px 6px rgba(var(--gray), 25%),
    0 8px 24px rgba(var(--gray), 33%), 0 16px 32px rgba(var(--gray), 33%);
}

html.dark h1,
html.dark h2,
html.dark h3,
html.dark h4,
html.dark h5,
html.dark h6 {
  color: rgb(var(--gray-light));
}

html.dark body {
  background: #1a202c;
  color: rgb(var(--gray-light));
}