-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
148 lines (129 loc) · 6.87 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta property="og:image" content="https://erictheise.com/sinclairyola/images/preview.png" />
<meta property="og:image.width" content="1200" />
<meta property="og:image.height" content="628" />
<title>Sinclairyola 🖍 CSS Color Names Cubed</title>
<link rel="stylesheet" href="dist/foundation.min.css">
<script type="text/javascript" src="dist/jquery.slim.js"></script>
<script type="text/javascript" src="dist/what-input.min.js"></script>
<script type="text/javascript" src="dist/foundation.js"></script>
<script type="text/javascript" src="dist/vis-graph3d.min.js"></script>
<script type="text/javascript" src="dist/chroma.min.js"></script>
<link rel="stylesheet" href="dist/app.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-QQWEZ83VS0"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-QQWEZ83VS0');
</script>
</head>
<body>
<div class="reveal" id="about" data-reveal>
<button class="close-button" data-close aria-label="Close modal" type="button">
<span aria-hidden="true">×</span>
</button>
<h2>About Sinclairyola</h2>
<p>
The name <em>Sinclairyola</em> is a combination of <em>Sinclair</em>
& <em>Crayola</em>, two companies whose color names found their
way into the set of CSS named colors. <a
href="https://juliannetveten.com/">Julianne Tveten</a>'s <a
href="https://arstechnica.com/information-technology/2015/10/tomato-versus-ff6347-the-tragicomic-history-of-css-color-names/">“Tomato”
versus “#FF6347”—the tragicomic history of CSS color names</a>
is a thorough yet compact recounting of that awkward and
unfortunate journey.
</p>
<p>
I've been working on a project where, conceptually, using named
colors is the right thing to do. I've often found the names
opaque and baffling, frustrating and counterintuitive, so I
created this little scratchpad as a way to visualize the named
colors in a spinnable, zoomable color cube and to find the
nearest named color to any arbitrary color.
</p>
<p>
I'm grateful to <a href="https://visjs.org/">vis.js</a>' <a
href="https://visjs.github.io/vis-graph3d/docs/graph3d/">Graph3d</a>
and Gregor Aisch's <a
href="https://gka.github.io/chroma.js/">Chroma.js</a> projects
for making Sinclairyola simple and straightforward to assemble.
Its code <a href="https://github.com/erictheise/sinclairyola">
is available on GitHub</a> with a few outstanding issues and
directions.
</p>
<p class="float-right">
– <a href="https://erictheise.com/">Eric Theise</a>
</p>
</div>
<div class="top-bar">
<div class="top-bar-left">
<ul class="dropdown menu" data-dropdown-menu>
<li class="menu-text"><h1>Sinclairyola<small> Exploring CSS Color Names</small></h1></li>
</ul>
</div>
<div class="top-bar-right">
<a href="https://github.com/erictheise/sinclairyola" class="github-corner" aria-label="View source on GitHub"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>
</div>
</div>
<div class="grid-container">
<div class="grid-x grid-margin-x">
<div class="cell small-12 medium-9">
<div id="graph"></div>
</div>
<div class="cell small-12 medium-3">
<div id="panel">
<form action="#">
<fieldset>
<legend>Color scratchpad</legend>
<div class="grid-x grid-margin-x">
<div class="cell small-4">
<div id="r-slider" class="slider vertical" data-slider data-initial-start="128" data-end="255"
data-vertical="true">
<span class="slider-handle" data-slider-handle role="slider" tabindex="1" aria-controls="r"></span>
<span class="slider-fill" data-slider-fill></span>
</div>
<label><input type="number" id="r" name="r">R</label>
</div>
<div class="cell small-4">
<div id="g-slider" class="slider vertical" data-slider data-initial-start="128" data-end="255"
data-vertical="true">
<span class="slider-handle" data-slider-handle role="slider" tabindex="1" aria-controls="g"></span>
<span class="slider-fill" data-slider-fill></span>
</div>
<label><input type="number" id="g" name="g">G</label>
</div>
<div class="cell small-4">
<div id="b-slider" class="slider vertical" data-slider data-initial-start="128" data-end="255"
data-vertical="true">
<span class="slider-handle" data-slider-handle role="slider" tabindex="1" aria-controls="b"></span>
<span class="slider-fill" data-slider-fill></span>
</div>
<label><input type="number" id="b" name="b">B</label>
</div>
</div>
<div class="grid-x grid-margin-x">
<div id="patch" class="cell small-12 patch"></div>
</div>
<h3>
Nearest three
</h3>
<div id="nearest-three"></div>
</fieldset>
</form>
<div>
<p class="float-right">
<a href="#" data-open="about">About</a>
</p>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="dist/app.js"></script>
</body>
</html>