JSFiddle - React, Tailwind, and code Playground

by kangismet

HTML

<!doctype html>
<html ⚡>
<head>
  <meta charset="utf-8">
  <title> Hello Dark Mode</title>
  <script async src="https://cdn.ampproject.org/v0.js"></script>
  <link rel="canonical" href=".">
  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
  <style amp-custom>
    :root {
	  --heading-color: red;
      --text-color: black;
      --background-color: white;
      --image-filter: grayscale(0%);    
    }
    #dark-mode:checked ~ label::before {
      content: "☀️";
    }
    #dark-mode:checked ~ * {
      --heading-color: turquoise;
	    --text-color: white;
      --background-color: black;
      --image-filter: grayscale(50%);
      
      color: white;
    }
    label[for="dark-mode"]::before {
      content: "🌒";
    }
    #dark-mode, label[for="dark-mode"] {
      color: black;
      position: absolute;
      top: 1rem;
      right: 0.25rem;
    }
    body, html {
      font-family: sans-serif;
      overflow: hidden;
    }
    body, html, .wrapper {
      color: var(--text-color);
      background-color: var(--background-color);
      height: 100vh;
      width: 100vw;      
    }
    .wrapper {
      padding: 0.25rem;
    }
    h1 {
      color: var(--heading-color);
    }
    amp-img {
      filter: var(--image-filter);
    }
    .visually-hidden {
      position: absolute;
      overflow: hidden;
      clip: rect(0 0 0 0);
      width: 1px;
      height: 1px;
      margin: -1px;
      padding: 0;
      border: 0;
      white-space: nowrap; /* 1. */
    }
  </style>
</head>
<body>
  <input id="dark-mode" class="visually-hidden" type="checkbox">
  <label for="dark-mode">Switch Theme</label>
  <div class="wrapper">
    <h1>Hello World!</h1>
    <amp-img src="https://preview.amp.dev/static/samples/img/amp.jpg" width="1080" height="610" layout="responsive"></amp-img>
  </div>
</body>
</html>