<main>
  <table>
    <caption>Colors built from CSS Variables</caption>
    <tbody>
      <tr data-theme="color-1">
        <td class="bg-1">180,100%,10%</td>
        <td class="bg-2">180,100%,15%</td>
        <td class="bg-3">180,100%,20%</td>
        <td class="bg-4">180,100%,25%</td>
        <td class="bg-5">180,100%,30%</td>
        <td class="bg-6">180,100%,35%</td>
      </tr>
      <tr data-theme="color-2">
        <td class="bg-1">300,100%,10%</td>
        <td class="bg-2">300,100%,15%</td>
        <td class="bg-3">300,100%,20%</td>
        <td class="bg-4">300,100%,25%</td>
        <td class="bg-5">300,100%,30%</td>
        <td class="bg-6">300,100%,35%</td>
      </tr>
    </tbody>
  </table>
</main>
// variable definitions
[data-theme="color-1"] {
  --shade-1: hsl(180, 100%, 10%);
  --shade-2: hsl(180, 100%, 15%);
  --shade-3: hsl(180, 100%, 20%);
  --shade-4: hsl(180, 100%, 25%);
  --shade-5: hsl(180, 100%, 30%);
  --shade-6: hsl(180, 100%, 35%);
}

[data-theme="color-2"] {
  --shade-1: hsl(300, 100%, 10%);
  --shade-2: hsl(300, 100%, 15%);
  --shade-3: hsl(300, 100%, 20%);
  --shade-4: hsl(300, 100%, 25%);
  --shade-5: hsl(300, 100%, 30%);
  --shade-6: hsl(300, 100%, 35%);
}

.bg-1 {
  background: var(--shade-1);
}

.bg-2 {
  background: var(--shade-2);
}

.bg-3 {
  background: var(--shade-3);
}

.bg-4 {
  background: var(--shade-4);
}

.bg-5 {
  background: var(--shade-5);
}

.bg-6 {
  background: var(--shade-6);
}



/* basic styling */
body {
  background: #1d1e22;
  color: white;
  font: 16px sans-serif
}

// Basic set-up for article
// Themes with CSS variables and hsl()
main {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

table {
  border: none;
  border-collapse: collapse;
}

td[class^="bg-"] {
  font: 1.2rem var(--monospace-font);
  text-align: center;
  vertical-align: middle;
  min-width: 11rem;
  height: 6rem;
}

caption {
  text-align: left;
  padding: 1rem;
}


@import url("https://fonts.googleapis.com/css?family=Roboto|Roboto+Mono&display=swap");

:root {
  --background-color: hsl(228, 8%, 12%);
  --text-color: hsl(0, 0%, 85%);
  --border-color: hsl(228, 8%, 20%);
  --transparency-bg: url(data:image/gif;base64,R0lGODlhDAAMAHAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQICgAAACwAAAAADAAMAIDX19f///8CFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==);
  --border-radius: .3rem;
  --regular-font: Roboto, sans-serif;
  --monospace-font: 'Roboto Mono', monospace;
  --form-field-bg: hsl(0, 0%, 95%);
  --form-field-color: hsl(228, 8%, 12%);
  --link-color: hsl(206, 89%, 45%);
}

html {
  font-size: 62.5%;
  box-sizing: border-box;
}

a {
  color: var(--link-color);
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

body {
  font: 1.4rem/1.5 var(--regular-font);
  background: var(--background-color);
  color: var(--text-color);
  margin: 0;
}

h1 {
  font-size: 2.4rem;
}

input, textarea, pre, select, [data-preview] {
  background: var(--form-field-bg);
  color: var(--form-field-color);
}

code, input, textarea, pre, select, [data-preview] {
  font-family: var(--monospace-font);  
}

input, textarea, pre, select, fieldset, [data-preview] {
  border: .1rem var(--border-color) solid;
}

pre {
  color: hsl(0, 0%, 15%);
  background: hsl(0, 0%, 85%);
  padding: 1rem;
  max-height: calc(100vh - 40px);
  overflow: auto;
}
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.