/*! * stringcolor * Generate a consistent color from any string. * * Source: * https://github.com/erming/stringcolor * * Version 0.2.0 */ (function($) { /** * Generate hex color code from a string. * * @param {String} string */ $.stringcolor = function(string) { return "#" + stringcolor(string); }; /** * Set one or more CSS properties for the set of matched elements. * * @param {String|Array} property * @param {String} string */ $.fn.stringcolor = function(property, string) { if (!property || !string) { throw new Error("$(selector).string_to_color() takes 2 arguments"); } return this.each(function() { var props = [].concat(property); var $this = $(this); $.map(props, function(p) { $this.css(p, $.stringcolor(string)); }); }); }; })(jQuery); /*! * Name: string_to_color * Author: Brandon Corbin [code@icorbin.com] * Website: http://icorbin.com */ function string_to_color(str) { // Generate a Hash for the String var hash = function(word) { var h = 0; for (var i = 0; i < word.length; i++) { h = word.charCodeAt(i) + ((h << 5) - h); } return h; }; // Change the darkness or lightness var shade = function(color, prc) { var num = parseInt(color, 16), amt = Math.round(2.55 * prc), R = (num >> 16) + amt, G = (num >> 8 & 0x00FF) + amt, B = (num & 0x0000FF) + amt; return (0x1000000 + (R < 255 ? R < 1 ? 0 : R : 255) * 0x10000 + (G < 255 ? G < 1 ? 0 : G : 255) * 0x100 + (B < 255 ? B < 1 ? 0 : B : 255)) .toString(16) .slice(1); }; // Convert init to an RGBA var int_to_rgba = function(i) { var color = ((i >> 24) & 0xFF).toString(16) + ((i >> 16) & 0xFF).toString(16) + ((i >> 8) & 0xFF).toString(16) + (i & 0xFF).toString(16); return color; }; console.log("YEAH"); return shade( int_to_rgba(hash(str)), -10 ); } var cache = {}; function stringcolor(str) { return cache[str] = cache[str] || string_to_color(str); }