Jump to content
Search Community

convert hexadecimal number color values to strings for css

Carl test
Moderator Tag

Warning: Please note

This thread was started before GSAP 3 was released. Some information, especially the syntax, may be out of date for GSAP 3. Please see the GSAP 3 migration guide and release notes for more information about how to update the code to GSAP 3's syntax. 

Recommended Posts

I was recently converting a Flash project over to JS.

This project involves colorizing objects based on Kuler Themes.

 

Sample of the js version: http://snorkl.tv/dev/kulerLooper/

 

In ActionScript I stored my color values in a massive array like this:

 

 

var kulers:Array = [
[0x468966, 0xFFF0A5, 0xFFB03B, 0xB64926, 0x8E2800],
[0x2E0927, 0xD90000, 0xFF2D00, 0xFF8C00, 0x04756F],
[0x96CA2D, 0xB5E655, 0xEDF7F2, 0x4BB5C1, 0x7FC6BC],
[0x225378, 0x1695A3, 0xACF0F2, 0xF3FFE2, 0xEB7F00],
[0xFFD393, 0x9C9B7A, 0xFFD393, 0xFF974F, 0xF54F29],
[0xF54F29, 0x1F8A70, 0xBEDB39, 0xFFE11A, 0xFD7400]
]

 

For people who have used Flash, the preceeding 0x will be familiar for hex numbers.

With css we need our colors formatted as strings "#FF0000" with the pound sign

 

Once I copied my array into my js file I realized that the formatting didn't work with css.

My array has literally hundreds of color values and I needed an easy way to convert them.

 

Just incase anyone finds themselves in a similar boat, I came across a color conversion function on stackoverflow : http://stackoverflow...ings-vice-versa which I trimmed down to the core functionality that I needed:

 

function parseColor(color) {

if (typeof color === 'number') {
	//make sure our hexadecimal number is padded out
	color = '#' + ('00000' + (color | 0).toString(16)).substr(-6);
}

return color;

};

 

to convert 0xFF000 to "#FF0000" simply do:

 

parseColor(0xFF000);  // returns "#FF0000";

 

I'm wondering if it makes sense to have the CSSPlugin detect 0x numbers and do the conversion behind the scenes? Or is it too much of an edge-case?

 

Either way, I hope others will find the function above helpful.

 

-Carl

  • Like 1
Link to comment
Share on other sites

You could just search/replace "#" for "0x" in your original code, although I guess you'd also need to surround the values in quotes. I can see the benefit of having CSSPlugin recognize those numeric values so I just posted a new version of CSSPlugin that should do it. Vwalla! Giver 'er a shot.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...