<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
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.