Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ダークモードに対応したい #62

Open
0si43 opened this issue May 5, 2024 · 0 comments
Open

ダークモードに対応したい #62

0si43 opened this issue May 5, 2024 · 0 comments

Comments

@0si43
Copy link
Owner

0si43 commented May 5, 2024

こんな感じらしい


Webサイトをダークモードに対応させるには、いくつかの方法があります。以下に主な手順を説明します。

  1. CSSを使用してダークモードのスタイルを定義する:

    • ダークモード用のカラースキームを決定し、背景色、テキスト色、ボーダー色などを定義します。
    • ダークモード用のCSSクラス(例: .dark-mode)を作成し、必要なスタイルを適用します。
  2. ダークモードの切り替え機能を実装する:

    • JavaScriptを使用して、ダークモードの切り替えボタンやトグルスイッチを実装します。
    • ボタンがクリックされたときに、ダークモードのCSSクラスをHTML要素に追加または削除します。
  3. ユーザーの設定を保存する:

    • ローカルストレージやクッキーを使用して、ユーザーのダークモードの設定を保存します。
    • ページが読み込まれたときに、保存された設定を読み取り、適切なモードを適用します。
  4. システムのダークモード設定を検出する(オプション):

    • window.matchMedia()を使用して、システムのダークモード設定を検出できます。
    • ユーザーのシステム設定に基づいて、自動的にダークモードを適用することができます。

以下は、ダークモードを実装する簡単なサンプルコードです:

<!DOCTYPE html>
<html>
<head>
  <style>
    body {
      background-color: white;
      color: black;
    }

    .dark-mode {
      background-color: black;
      color: white;
    }
  </style>
</head>
<body>
  <h1>ダークモードの例</h1>
  <p>これはダークモードのデモです。</p>
  <button id="toggleButton">ダークモードの切り替え</button>

  <script>
    const toggleButton = document.getElementById('toggleButton');
    const body = document.body;

    toggleButton.addEventListener('click', () => {
      body.classList.toggle('dark-mode');
      localStorage.setItem('darkMode', body.classList.contains('dark-mode'));
    });

    // 保存された設定を読み取り、適用する
    if (localStorage.getItem('darkMode') === 'true') {
      body.classList.add('dark-mode');
    }
  </script>
</body>
</html>

上記のコードでは、ボタンをクリックするとダークモードが切り替わり、設定がローカルストレージに保存されます。ページが読み込まれたときに、保存された設定が読み取られ、適切なモードが適用されます。

これは基本的な例ですが、実際のWebサイトでは、より洗練されたデザインやより複雑な機能が必要になる場合があります。また、CSSの変数や、CSSフレームワークのダークモード機能を利用することもできます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant