stories/basics/Color01.svelte (174 lines of code) (raw):
<script>
const families = [
{ color: 'blue-slate', role: 'primary', d: 'toolbar / sidebar' },
{
color: 'digital-blue',
role: 'secondary',
d: 'accessible buttons / links',
},
{ color: 'pantone-red', role: 'error', d: 'dialogs, button states' },
{
color: 'bright-yellow',
role: 'warning / alert',
d: 'warning messages, etc.',
},
{ color: 'cool-gray', role: 'UX Grays', d: 'bodies, lines, text' },
{ color: 'pond-green', role: 'success', d: 'success buttons, etc.' },
];
const tintsAndShades = (color) => {
const vals = [
100, 150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 650, 700, 750, 800,
850, 900,
];
return vals.map((v) => ({
c: `${color}-${v}`,
v,
}));
};
</script>
<style>
.description {
padding-left: var(--space-base);
padding-right: var(--space-base);
font-style: italic;
font-weight: normal;
width: calc(var(--increment) * 3);
height: var(--increment);
font-size: 0.875rem;
color: var(--cool-gray-600);
}
.color.role {
font-weight: 900;
text-transform: uppercase;
color: var(--cool-gray-800);
}
.swatches {
display: flex;
flex-wrap: row-wrap;
font-size: 0.85rem;
margin-bottom: var(--space-8x);
}
.color {
height: var(--increment);
width: calc(var(--increment) * 3);
display: grid;
align-content: center;
padding-left: var(--space-base);
padding-right: var(--space-base);
font-weight: 100;
}
.dark {
color: white;
}
</style>
<div class="story">
<h1 class="story__title">Color Palette for Telemetry</h1>
<div class="swatches">
{#each families as { color, role, d }, i}
<div>
<div class="color role">{role}</div>
<div class="description">{d}</div>
{#each tintsAndShades(color) as { c, v }, j}
<div>
<div
style="
background-color: var(--{c});
display:grid;
grid-template-columns: var(--space-4x) max-content ;
align-items: baseline;
grid-column-gap: var(--space-2x);
"
class="color
{c.includes('light') ? '' : 'dark'}"
>
<div
style="
background-color: var(--{color}-100);
width:max-content;
padding: var(--space-1h);
color:var(--{color}-700);
border-radius: var(--space-1h);
font-size:12px;
font-weight:900;"
>
{v}
</div>
{#if v === 100}
<div
style="
color: var(--{color}-900)"
>
{color}
</div>
{/if}
{#if v === 900}
<div
style="
color: var(--{color}-100)"
>
{color}
</div>
{/if}
</div>
</div>
{/each}
</div>
{/each}
</div>
<h1 class="story__title">Color Shorthands</h1>
<div class="swatches">
<div>
<div class="color role">UX Gray Shorts</div>
<div class="description">based on UX grays above</div>
<div
style="background-color: var(--bg-gray-01); color: var(--body-gray-01);"
class="color"
>
bg-gray-01
</div>
<div
style="background-color: var(--line-gray-01); color: var(--body-gray-01);"
class="color"
>
line-gray-01
</div>
<div
style="background-color: var(--bg-gray-02); color: var(--body-gray-02);"
class="color"
>
bg-gray-02
</div>
<div
style="background-color: var(--line-gray-02); color: var(--body-gray-02);"
class="color"
>
line-gray-02
</div>
<div
style="background-color: var(--subhead-gray-01); color: var(--bg-gray-01);"
class="color dark"
>
subhead-gray-01
</div>
<div
style="background-color: var(--subhead-gray-02); color: var(--bg-gray-01);"
class="color dark"
>
subhead-gray-02
</div>
<div
style="background-color: var(--body-gray-01); color: var(--line-gray-01);"
class="color
dark"
>
body-gray-01
</div>
<div
style="background-color: var(--body-gray-02); color: var(--line-gray-01);"
class="color dark"
>
body-gray-02
</div>
</div>
</div>
</div>