index.html 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset='utf-8'>
  5. <title>TinyColor - Fast, small color manipulation in JavaScript</title>
  6. <link rel="stylesheet" href="demo/demo.css" type="text/css" media="screen" />
  7. <script type='text/javascript' src='demo/jquery-1.9.1.js'></script>
  8. <script type='text/javascript' src='tinycolor.js'></script>
  9. <script type='text/javascript'>
  10. function colorChange(color) {
  11. var tiny = tinycolor(color);
  12. var output = [
  13. "hex:\t" + tiny.toHexString(),
  14. "hex8:\t" + tiny.toHex8String(),
  15. "rgb:\t" + tiny.toRgbString(),
  16. "hsl:\t" + tiny.toHslString(),
  17. "hsv:\t" + tiny.toHsvString(),
  18. "name:\t" + (tiny.toName() || "none"),
  19. "format:\t" + (tiny.getFormat()),
  20. "format string:\t" + tiny.toString(),
  21. ].join("\n");
  22. $("#code-output").text(output).css("border-color", tiny.toHexString());
  23. var filters = $("#filter-output").toggleClass("invisible", !tiny.isValid());
  24. filters.find(".lighten").css("background-color",
  25. tinycolor(color).lighten(20).toHexString()
  26. );
  27. filters.find(".darken").css("background-color",
  28. tinycolor(color).darken(20).toHexString()
  29. );
  30. filters.find(".saturate").css("background-color",
  31. tinycolor(color).saturate(20).toHexString()
  32. );
  33. filters.find(".desaturate").css("background-color",
  34. tinycolor(color).desaturate(20).toHexString()
  35. );
  36. filters.find(".greyscale").css("background-color",
  37. tinycolor(color).greyscale().toHexString()
  38. );
  39. filters.find(".brighten").css("background-color",
  40. tinycolor(color).brighten(20).toHexString()
  41. );
  42. var allColors = [];
  43. for (var i in tinycolor.names) {
  44. allColors.push(i);
  45. }
  46. var mostReadable = tinycolor.mostReadable(color, allColors);
  47. $("#mostReadable").css("background-color",
  48. mostReadable.toHexString()
  49. );
  50. var combines = $("#combine-output").toggleClass("invisible", !tiny.isValid());
  51. function colorArrayToHTML(arr) {
  52. return $.map(arr, function(e) {
  53. return '<span style="background:'+e.toHexString()+'"></span>'
  54. }).join('');
  55. }
  56. var triad = tiny.triad();
  57. combines.find(".triad").html(colorArrayToHTML(triad));
  58. console.log(triad.map(function(f) {return f.toHexString();}));
  59. var tetrad = tiny.tetrad();
  60. combines.find(".tetrad").html(colorArrayToHTML(tetrad));
  61. var mono = tiny.monochromatic();
  62. combines.find(".mono").html(colorArrayToHTML(mono));
  63. var analogous = tiny.analogous();
  64. combines.find(".analogous").html(colorArrayToHTML(analogous));
  65. var splitcomplement = tiny.splitcomplement();
  66. combines.find(".sc").html(colorArrayToHTML(splitcomplement));
  67. }
  68. $(function() {
  69. $("#color").bind("keyup change", function() {
  70. colorChange($(this).val());
  71. });
  72. colorChange({r: 150, g: 0, b: 100});
  73. $("#inputter a").click(function() {
  74. $("#color").val($(this).text()).trigger("change");
  75. return false;
  76. });
  77. });
  78. </script>
  79. </head>
  80. <body>
  81. <div id="container">
  82. <h1>TinyColor</h1>
  83. <h2>Fast, small color manipulation and conversion for JavaScript</h2>
  84. <p>
  85. <a href="https://github.com/bgrins/TinyColor">TinyColor</a> is a micro framework for inputting colors and outputting colors as different formats.
  86. Input is meant to be as permissive as possible.
  87. </p>
  88. <h3>Usage Documentation</h3>
  89. <p>Read all the documentation on the <a href='https://github.com/bgrins/TinyColor'>TinyColor project page</a> on github.</p>
  90. <h3>Code</h3>
  91. <p><a href='docs/tinycolor.html'>View the annotated source code</a> or <a href='https://github.com/bgrins/TinyColor/blob/master/tinycolor.js'>see the full source on github</a>.</p>
  92. <h3>Tests</h3>
  93. <p><a href='test/'>View the QUnit Tests</a>.</p>
  94. <h3>Demo</h3>
  95. <div id='demo'>
  96. <div id='inputter'>
  97. <p>
  98. Enter a color: <input type="text" placeholder="any color." id='color' />
  99. </p>
  100. <p>
  101. Or try these:
  102. <a href="#">red</a>
  103. <a href="#">0f0</a>
  104. <a href="#">rgb 255 128 128</a>
  105. <a href='#'>hsl(0, 100%, 50%)</a>
  106. <a href='#'>hsv 0, 100%, 50%</a>
  107. </p>
  108. <p>And I'll tell you what I know about it:</p>
  109. </div>
  110. <pre id='code-output'></pre>
  111. <div id='filter-output'>
  112. <table>
  113. <tr>
  114. <th>Lighten</th>
  115. <td><div class='lighten'></div></td>
  116. </tr>
  117. <tr>
  118. <th>Darken</th>
  119. <td><div class='darken'></div></td>
  120. </tr>
  121. <tr>
  122. <th>Saturate</th>
  123. <td><div class='saturate'></div></td>
  124. </tr>
  125. <tr>
  126. <th>Desaturate</th>
  127. <td><div class='desaturate'></div></td>
  128. </tr>
  129. <tr>
  130. <th>Greyscale</th>
  131. <td><div class='greyscale'></div></td>
  132. </tr>
  133. <tr>
  134. <th>Brighten</th>
  135. <td><div class='brighten'></div></td>
  136. </tr>
  137. <tr>
  138. <th>Most Readable</th>
  139. <td><div id='mostReadable'></div></td>
  140. </tr>
  141. </table>
  142. </div>
  143. <div id='combine-output'>
  144. <table>
  145. <tr>
  146. <th>Triad</th> <td><div class='triad'></div></td>
  147. </tr>
  148. <tr>
  149. <th>Tetrad</th> <td><div class='tetrad'></div></td>
  150. </tr>
  151. <tr>
  152. <th>Monochromatic</th> <td><div class='mono'></div></td>
  153. </tr>
  154. <tr>
  155. <th>Analogous</th> <td><div class='analogous'></div></td>
  156. </tr>
  157. <tr>
  158. <th>Split Complements</th> <td><div class='sc'></div></td>
  159. </tr>
  160. </table>
  161. </div>
  162. </div>
  163. <h3>Credit</h3>
  164. <p>
  165. Developed by <a href='http://briangrinstead.com'>Brian Grinstead</a>. Big thanks to the following places:
  166. </p>
  167. <ul>
  168. <li><a href='https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js'>less.js</a> for some of the modification functions</li>
  169. <li><a href='https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js'>jQuery xColor</a> for some of the combination functions</li>
  170. <li><a href='http://www.w3.org/TR/css3-color/#svg-color'>w3.org</a> for the color list and parsing rules</li>
  171. <li><a href='http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript'>mjijackson.com</a> for the first stab at RGB / HSL / HSV converters</li>
  172. </ul>
  173. </div>
  174. </body>
  175. </html>