Skip to content

Instantly share code, notes, and snippets.

@phoenixenero
Created February 1, 2015 09:18
Show Gist options
  • Save phoenixenero/0824a1aba84f4511220b to your computer and use it in GitHub Desktop.
Save phoenixenero/0824a1aba84f4511220b to your computer and use it in GitHub Desktop.
Natural color shades and tints
<p>An experiment on natural color shades.</p>
<table>
<thead>
<tr>
<td>Base Color</td>
</tr>
</thead>
<tbody class="demo-table">
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>

Natural color shades and tints

An experiment on natural color shades. NOTE: doesn't work with pure gray tones at the moment.

A Pen by Phoenix Enero on CodePen.

License.

$base-color: #79d86f;
@function natural-colors($base-color, $steps: 8, $hue-shade: hue(#00f), $hue-tint: hue(#ff0), $saturation-factor: (1 / 3), $hue-factor: (1/5)) {
$natural-colors-result: ($base-color);
$natural-colors-l: ($steps / 2);
@for $i from 1 through $steps {
@if $i > ($steps / 2) {
$natural-colors-color: mix(#fff, $base-color, (($i - $natural-colors-l) / $natural-colors-l * 100%));
$natural-colors-color: saturate($natural-colors-color, (lightness($natural-colors-color) - 50%) * 2 * $saturation-factor);
$natural-colors-color: change-color($natural-colors-color, $hue: hue($natural-colors-color) * (1 - $hue-factor) + (lightness($natural-colors-color))*2/100% * $hue-tint * ($hue-factor));
$natural-colors-result: append($natural-colors-result, $natural-colors-color);
} @else {
$natural-colors-color: mix($base-color, #000, ($i / $natural-colors-l * 100%));
$natural-colors-color: saturate($natural-colors-color, (100% - lightness($natural-colors-color)) * 2 * $saturation-factor);
$natural-colors-color: change-color($natural-colors-color, $hue: hue($natural-colors-color) * (1 - $hue-factor) + (100% - lightness($natural-colors-color))*2/100% * $hue-shade * ($hue-factor));
$natural-colors-result: append($natural-colors-result, $natural-colors-color);
}
}
@return $natural-colors-result;
}
$palette: natural-colors($base-color);
td {
padding: 0.5em;
}
.demo-table {
td {
height: 2em;
min-width: 3em;
@for $i from 1 through length($palette) {
&:nth-child(#{$i}) {
background-color: nth($palette, $i);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment