Latest commit

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

colorCode.js

A color conversion class with support for 4 and 8 digit CSS4 HEX rgb + alpha codes.

Conversion tool example: https://ravk.nl/colorcode

Basic Usage Example

A simple example using the colorCode class to convert a color to a hex value:

varcolor=newcolorCode(162,222,208,0.9);returncolor.hex();
'#a2ded0e5'// return

Modifying Channels

Besides using the hex() and rgb() methods to set new colors, the color can also be modified by directly editing the object properties. The following example sets the color using an rgba() string, and then changes each of the channels individually.

// creating colorCode instancevarcolor=newcolorCode().rgb('rgba(162,222,208,0.9)');// setting RGB valuescolor.red=185;color.green=255;color.blue=160;console.log(color.hex());// setting opacity to 50%color.alpha=0.5;console.log(color.hex());
'#b9ffa0e5'// rgba(185, 255, 160, 0.9)'#b9ffa07f'// rgba(185, 255, 160, 0.5)

The alpha value can be 'removed' by setting it to undefined. The hex() and rgb() methods will then return a six digit code and an rgb() string respectively.

color.alpha=undefined;

constructor(red, green, blue, alpha)

When creating an instance of the colorCode class, you have the option of setting the RGB and A channels.

varcolor=newcolorCode(162,222,208,0.5);

Alternatively, another method can be chained to the constructor to immediately parse a string instead.

varcolor=newcolorCode().hex('#a2ded0');

The constructor is equivalent to the set() method.

color.set(162,222,208,0.5);

hex(string)

To set or get the color in hex format, use the hex() method.

Setter

When a value is provided to the method, it parses the hex string to set the color. Using a pound symbol is optional and not required. The method supports both six (standard) and eight (with alpha channel) digit hex codes.

color.hex('#a2ded07f');

In addition to six and eight digit hex codes, three (standard) and four (with alpha channel) codes are also supported.

color.hex('#aed7');

Getter

When no value is provided, the hex() method returns the hex code of the object's color. When no alpha channel is set, the function returns a six digit hex string. When an alpha value is set the method returns an eight digit hex string.

returncolor.hex();
'#a2ded07f'// return

rgb(string)

To set or get the color in rgb format, use the rgb() method.

Setter

When a value is provided to the method, it parses the CSS rgb or rgba string to set the color.

color.rgb('rgba(162,222,208,0.5)');

Getter

When no value is provided, the rgb() method returns a CSS rgb or rgba string of the object's color. When no alpha channel is set, the function returns a CSS rgb() string. When an alpha value is set the method returns a CSS rgba() string.

returncolor.rgb();
'rgba(162,222,208,0.5)'// return

Comparing two colors

When converting a design into code, you might want it to be as dynamic as possible. Often you might have two similar colors that are relative two eachother, but are unsure how to get from one to the other, meaning you cannot arrive at color B from color A through color operations in SCSS. The method .hslDeltaTo(object) allows you to get the required change in percentage for hue, saturation and lightness (HSL) to arrive at the given color. For example:

varcolorA=newcolorCode('#3e45f9');varcolorB=newcolorCode('#6b55fa');// get percentage values required to transform color A into color B with HSL operationscolorA.hslDifference(colorB);

returns:

["4.545454545454546%","0%","8.19672131147541%"]

This means in order to get from colorA to colorB, you must:

  • Increase hue by ~4.55%
  • Saturation remains the same
  • Increase lightness by ~8.2%

This can be used to write SCSS that will automatically derive colorB from colorA, making these two colors fully dynamic even without additional information from the designer.

Compare script

For ease of use, there is also a separate compare.js file that can be executed in node.js:

node node/compare.js

or using the batch file:

compare

This will prompt for two hex values and return Hue, Sat, Lit percentages, as well as a generated scss line that will convert color A into color B.

About

Javascript class for converting CSS4 HEX and RGBA codes

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

colorCode.js

A color conversion class with support for 4 and 8 digit CSS4 HEX rgb + alpha codes.

Conversion tool example: https://ravk.nl/colorcode

Basic Usage Example

A simple example using the colorCode class to convert a color to a hex value:

varcolor=newcolorCode(162,222,208,0.9);returncolor.hex();
'#a2ded0e5'// return

Modifying Channels

Besides using the hex() and rgb() methods to set new colors, the color can also be modified by directly editing the object properties. The following example sets the color using an rgba() string, and then changes each of the channels individually.

// creating colorCode instancevarcolor=newcolorCode().rgb('rgba(162,222,208,0.9)');// setting RGB valuescolor.red=185;color.green=255;color.blue=160;console.log(color.hex());// setting opacity to 50%color.alpha=0.5;console.log(color.hex());
'#b9ffa0e5'// rgba(185, 255, 160, 0.9)'#b9ffa07f'// rgba(185, 255, 160, 0.5)

The alpha value can be 'removed' by setting it to undefined. The hex() and rgb() methods will then return a six digit code and an rgb() string respectively.

color.alpha=undefined;

constructor(red, green, blue, alpha)

When creating an instance of the colorCode class, you have the option of setting the RGB and A channels.

varcolor=newcolorCode(162,222,208,0.5);

Alternatively, another method can be chained to the constructor to immediately parse a string instead.

varcolor=newcolorCode().hex('#a2ded0');

The constructor is equivalent to the set() method.

color.set(162,222,208,0.5);

hex(string)

To set or get the color in hex format, use the hex() method.

Setter

When a value is provided to the method, it parses the hex string to set the color. Using a pound symbol is optional and not required. The method supports both six (standard) and eight (with alpha channel) digit hex codes.

color.hex('#a2ded07f');

In addition to six and eight digit hex codes, three (standard) and four (with alpha channel) codes are also supported.

color.hex('#aed7');

Getter

When no value is provided, the hex() method returns the hex code of the object's color. When no alpha channel is set, the function returns a six digit hex string. When an alpha value is set the method returns an eight digit hex string.

returncolor.hex();
'#a2ded07f'// return

rgb(string)

To set or get the color in rgb format, use the rgb() method.

Setter

When a value is provided to the method, it parses the CSS rgb or rgba string to set the color.

color.rgb('rgba(162,222,208,0.5)');

Getter

When no value is provided, the rgb() method returns a CSS rgb or rgba string of the object's color. When no alpha channel is set, the function returns a CSS rgb() string. When an alpha value is set the method returns a CSS rgba() string.

returncolor.rgb();
'rgba(162,222,208,0.5)'// return

Comparing two colors

When converting a design into code, you might want it to be as dynamic as possible. Often you might have two similar colors that are relative two eachother, but are unsure how to get from one to the other, meaning you cannot arrive at color B from color A through color operations in SCSS. The method .hslDeltaTo(object) allows you to get the required change in percentage for hue, saturation and lightness (HSL) to arrive at the given color. For example:

varcolorA=newcolorCode('#3e45f9');varcolorB=newcolorCode('#6b55fa');// get percentage values required to transform color A into color B with HSL operationscolorA.hslDifference(colorB);

returns:

["4.545454545454546%","0%","8.19672131147541%"]

This means in order to get from colorA to colorB, you must:

  • Increase hue by ~4.55%
  • Saturation remains the same
  • Increase lightness by ~8.2%

This can be used to write SCSS that will automatically derive colorB from colorA, making these two colors fully dynamic even without additional information from the designer.

Compare script

For ease of use, there is also a separate compare.js file that can be executed in node.js:

node node/compare.js

or using the batch file:

compare

This will prompt for two hex values and return Hue, Sat, Lit percentages, as well as a generated scss line that will convert color A into color B.

About

Javascript class for converting CSS4 HEX and RGBA codes

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

colorCode.js

A color conversion class with support for 4 and 8 digit CSS4 HEX rgb + alpha codes.

Conversion tool example: https://ravk.nl/colorcode

Basic Usage Example

A simple example using the colorCode class to convert a color to a hex value:

varcolor=newcolorCode(162,222,208,0.9);returncolor.hex();
'#a2ded0e5'// return

Modifying Channels

Besides using the hex() and rgb() methods to set new colors, the color can also be modified by directly editing the object properties. The following example sets the color using an rgba() string, and then changes each of the channels individually.

// creating colorCode instancevarcolor=newcolorCode().rgb('rgba(162,222,208,0.9)');// setting RGB valuescolor.red=185;color.green=255;color.blue=160;console.log(color.hex());// setting opacity to 50%color.alpha=0.5;console.log(color.hex());
'#b9ffa0e5'// rgba(185, 255, 160, 0.9)'#b9ffa07f'// rgba(185, 255, 160, 0.5)

The alpha value can be 'removed' by setting it to undefined. The hex() and rgb() methods will then return a six digit code and an rgb() string respectively.

color.alpha=undefined;

constructor(red, green, blue, alpha)

When creating an instance of the colorCode class, you have the option of setting the RGB and A channels.

varcolor=newcolorCode(162,222,208,0.5);

Alternatively, another method can be chained to the constructor to immediately parse a string instead.

varcolor=newcolorCode().hex('#a2ded0');

The constructor is equivalent to the set() method.

color.set(162,222,208,0.5);

hex(string)

To set or get the color in hex format, use the hex() method.

Setter

When a value is provided to the method, it parses the hex string to set the color. Using a pound symbol is optional and not required. The method supports both six (standard) and eight (with alpha channel) digit hex codes.

color.hex('#a2ded07f');

In addition to six and eight digit hex codes, three (standard) and four (with alpha channel) codes are also supported.

color.hex('#aed7');

Getter

When no value is provided, the hex() method returns the hex code of the object's color. When no alpha channel is set, the function returns a six digit hex string. When an alpha value is set the method returns an eight digit hex string.

returncolor.hex();
'#a2ded07f'// return

rgb(string)

To set or get the color in rgb format, use the rgb() method.

Setter

When a value is provided to the method, it parses the CSS rgb or rgba string to set the color.

color.rgb('rgba(162,222,208,0.5)');

Getter

When no value is provided, the rgb() method returns a CSS rgb or rgba string of the object's color. When no alpha channel is set, the function returns a CSS rgb() string. When an alpha value is set the method returns a CSS rgba() string.

returncolor.rgb();
'rgba(162,222,208,0.5)'// return

Comparing two colors

When converting a design into code, you might want it to be as dynamic as possible. Often you might have two similar colors that are relative two eachother, but are unsure how to get from one to the other, meaning you cannot arrive at color B from color A through color operations in SCSS. The method .hslDeltaTo(object) allows you to get the required change in percentage for hue, saturation and lightness (HSL) to arrive at the given color. For example:

varcolorA=newcolorCode('#3e45f9');varcolorB=newcolorCode('#6b55fa');// get percentage values required to transform color A into color B with HSL operationscolorA.hslDifference(colorB);

returns:

["4.545454545454546%","0%","8.19672131147541%"]

This means in order to get from colorA to colorB, you must:

  • Increase hue by ~4.55%
  • Saturation remains the same
  • Increase lightness by ~8.2%

This can be used to write SCSS that will automatically derive colorB from colorA, making these two colors fully dynamic even without additional information from the designer.

Compare script

For ease of use, there is also a separate compare.js file that can be executed in node.js:

node node/compare.js

or using the batch file:

compare

This will prompt for two hex values and return Hue, Sat, Lit percentages, as well as a generated scss line that will convert color A into color B.

About

Javascript class for converting CSS4 HEX and RGBA codes

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

colorCode.js

A color conversion class with support for 4 and 8 digit CSS4 HEX rgb + alpha codes.

Conversion tool example: https://ravk.nl/colorcode

Basic Usage Example

A simple example using the colorCode class to convert a color to a hex value:

varcolor=newcolorCode(162,222,208,0.9);returncolor.hex();
'#a2ded0e5'// return

Modifying Channels

Besides using the hex() and rgb() methods to set new colors, the color can also be modified by directly editing the object properties. The following example sets the color using an rgba() string, and then changes each of the channels individually.

// creating colorCode instancevarcolor=newcolorCode().rgb('rgba(162,222,208,0.9)');// setting RGB valuescolor.red=185;color.green=255;color.blue=160;console.log(color.hex());// setting opacity to 50%color.alpha=0.5;console.log(color.hex());
'#b9ffa0e5'// rgba(185, 255, 160, 0.9)'#b9ffa07f'// rgba(185, 255, 160, 0.5)

The alpha value can be 'removed' by setting it to undefined. The hex() and rgb() methods will then return a six digit code and an rgb() string respectively.

color.alpha=undefined;

constructor(red, green, blue, alpha)

When creating an instance of the colorCode class, you have the option of setting the RGB and A channels.

varcolor=newcolorCode(162,222,208,0.5);

Alternatively, another method can be chained to the constructor to immediately parse a string instead.

varcolor=newcolorCode().hex('#a2ded0');

The constructor is equivalent to the set() method.

color.set(162,222,208,0.5);

hex(string)

To set or get the color in hex format, use the hex() method.

Setter

When a value is provided to the method, it parses the hex string to set the color. Using a pound symbol is optional and not required. The method supports both six (standard) and eight (with alpha channel) digit hex codes.

color.hex('#a2ded07f');

In addition to six and eight digit hex codes, three (standard) and four (with alpha channel) codes are also supported.

color.hex('#aed7');

Getter

When no value is provided, the hex() method returns the hex code of the object's color. When no alpha channel is set, the function returns a six digit hex string. When an alpha value is set the method returns an eight digit hex string.

returncolor.hex();
'#a2ded07f'// return

rgb(string)

To set or get the color in rgb format, use the rgb() method.

Setter

When a value is provided to the method, it parses the CSS rgb or rgba string to set the color.

color.rgb('rgba(162,222,208,0.5)');

Getter

When no value is provided, the rgb() method returns a CSS rgb or rgba string of the object's color. When no alpha channel is set, the function returns a CSS rgb() string. When an alpha value is set the method returns a CSS rgba() string.

returncolor.rgb();
'rgba(162,222,208,0.5)'// return

Comparing two colors

When converting a design into code, you might want it to be as dynamic as possible. Often you might have two similar colors that are relative two eachother, but are unsure how to get from one to the other, meaning you cannot arrive at color B from color A through color operations in SCSS. The method .hslDeltaTo(object) allows you to get the required change in percentage for hue, saturation and lightness (HSL) to arrive at the given color. For example:

varcolorA=newcolorCode('#3e45f9');varcolorB=newcolorCode('#6b55fa');// get percentage values required to transform color A into color B with HSL operationscolorA.hslDifference(colorB);

returns:

["4.545454545454546%","0%","8.19672131147541%"]

This means in order to get from colorA to colorB, you must:

  • Increase hue by ~4.55%
  • Saturation remains the same
  • Increase lightness by ~8.2%

This can be used to write SCSS that will automatically derive colorB from colorA, making these two colors fully dynamic even without additional information from the designer.

Compare script

For ease of use, there is also a separate compare.js file that can be executed in node.js:

node node/compare.js

or using the batch file:

compare

This will prompt for two hex values and return Hue, Sat, Lit percentages, as well as a generated scss line that will convert color A into color B.

About

Javascript class for converting CSS4 HEX and RGBA codes

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

colorCode.js

A color conversion class with support for 4 and 8 digit CSS4 HEX rgb + alpha codes.

Conversion tool example: https://ravk.nl/colorcode

Basic Usage Example

A simple example using the colorCode class to convert a color to a hex value:

varcolor=newcolorCode(162,222,208,0.9);returncolor.hex();
'#a2ded0e5'// return

Modifying Channels

Besides using the hex() and rgb() methods to set new colors, the color can also be modified by directly editing the object properties. The following example sets the color using an rgba() string, and then changes each of the channels individually.

// creating colorCode instancevarcolor=newcolorCode().rgb('rgba(162,222,208,0.9)');// setting RGB valuescolor.red=185;color.green=255;color.blue=160;console.log(color.hex());// setting opacity to 50%color.alpha=0.5;console.log(color.hex());
'#b9ffa0e5'// rgba(185, 255, 160, 0.9)'#b9ffa07f'// rgba(185, 255, 160, 0.5)

The alpha value can be 'removed' by setting it to undefined. The hex() and rgb() methods will then return a six digit code and an rgb() string respectively.

color.alpha=undefined;

constructor(red, green, blue, alpha)

When creating an instance of the colorCode class, you have the option of setting the RGB and A channels.

varcolor=newcolorCode(162,222,208,0.5);

Alternatively, another method can be chained to the constructor to immediately parse a string instead.

varcolor=newcolorCode().hex('#a2ded0');

The constructor is equivalent to the set() method.

color.set(162,222,208,0.5);

hex(string)

To set or get the color in hex format, use the hex() method.

Setter

When a value is provided to the method, it parses the hex string to set the color. Using a pound symbol is optional and not required. The method supports both six (standard) and eight (with alpha channel) digit hex codes.

color.hex('#a2ded07f');

In addition to six and eight digit hex codes, three (standard) and four (with alpha channel) codes are also supported.

color.hex('#aed7');

Getter

When no value is provided, the hex() method returns the hex code of the object's color. When no alpha channel is set, the function returns a six digit hex string. When an alpha value is set the method returns an eight digit hex string.

returncolor.hex();
'#a2ded07f'// return

rgb(string)

To set or get the color in rgb format, use the rgb() method.

Setter

When a value is provided to the method, it parses the CSS rgb or rgba string to set the color.

color.rgb('rgba(162,222,208,0.5)');

Getter

When no value is provided, the rgb() method returns a CSS rgb or rgba string of the object's color. When no alpha channel is set, the function returns a CSS rgb() string. When an alpha value is set the method returns a CSS rgba() string.

returncolor.rgb();
'rgba(162,222,208,0.5)'// return

Comparing two colors

When converting a design into code, you might want it to be as dynamic as possible. Often you might have two similar colors that are relative two eachother, but are unsure how to get from one to the other, meaning you cannot arrive at color B from color A through color operations in SCSS. The method .hslDeltaTo(object) allows you to get the required change in percentage for hue, saturation and lightness (HSL) to arrive at the given color. For example:

varcolorA=newcolorCode('#3e45f9');varcolorB=newcolorCode('#6b55fa');// get percentage values required to transform color A into color B with HSL operationscolorA.hslDifference(colorB);

returns:

["4.545454545454546%","0%","8.19672131147541%"]

This means in order to get from colorA to colorB, you must:

  • Increase hue by ~4.55%
  • Saturation remains the same
  • Increase lightness by ~8.2%

This can be used to write SCSS that will automatically derive colorB from colorA, making these two colors fully dynamic even without additional information from the designer.

Compare script

For ease of use, there is also a separate compare.js file that can be executed in node.js:

node node/compare.js

or using the batch file:

compare

This will prompt for two hex values and return Hue, Sat, Lit percentages, as well as a generated scss line that will convert color A into color B.

About

Javascript class for converting CSS4 HEX and RGBA codes

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

colorCode.js

A color conversion class with support for 4 and 8 digit CSS4 HEX rgb + alpha codes.

Conversion tool example: https://ravk.nl/colorcode

Basic Usage Example

A simple example using the colorCode class to convert a color to a hex value:

varcolor=newcolorCode(162,222,208,0.9);returncolor.hex();
'#a2ded0e5'// return

Modifying Channels

Besides using the hex() and rgb() methods to set new colors, the color can also be modified by directly editing the object properties. The following example sets the color using an rgba() string, and then changes each of the channels individually.

// creating colorCode instancevarcolor=newcolorCode().rgb('rgba(162,222,208,0.9)');// setting RGB valuescolor.red=185;color.green=255;color.blue=160;console.log(color.hex());// setting opacity to 50%color.alpha=0.5;console.log(color.hex());
'#b9ffa0e5'// rgba(185, 255, 160, 0.9)'#b9ffa07f'// rgba(185, 255, 160, 0.5)

The alpha value can be 'removed' by setting it to undefined. The hex() and rgb() methods will then return a six digit code and an rgb() string respectively.

color.alpha=undefined;

constructor(red, green, blue, alpha)

When creating an instance of the colorCode class, you have the option of setting the RGB and A channels.

varcolor=newcolorCode(162,222,208,0.5);

Alternatively, another method can be chained to the constructor to immediately parse a string instead.

varcolor=newcolorCode().hex('#a2ded0');

The constructor is equivalent to the set() method.

color.set(162,222,208,0.5);

hex(string)

To set or get the color in hex format, use the hex() method.

Setter

When a value is provided to the method, it parses the hex string to set the color. Using a pound symbol is optional and not required. The method supports both six (standard) and eight (with alpha channel) digit hex codes.

color.hex('#a2ded07f');

In addition to six and eight digit hex codes, three (standard) and four (with alpha channel) codes are also supported.

color.hex('#aed7');

Getter

When no value is provided, the hex() method returns the hex code of the object's color. When no alpha channel is set, the function returns a six digit hex string. When an alpha value is set the method returns an eight digit hex string.

returncolor.hex();
'#a2ded07f'// return

rgb(string)

To set or get the color in rgb format, use the rgb() method.

Setter

When a value is provided to the method, it parses the CSS rgb or rgba string to set the color.

color.rgb('rgba(162,222,208,0.5)');

Getter

When no value is provided, the rgb() method returns a CSS rgb or rgba string of the object's color. When no alpha channel is set, the function returns a CSS rgb() string. When an alpha value is set the method returns a CSS rgba() string.

returncolor.rgb();
'rgba(162,222,208,0.5)'// return

Comparing two colors

When converting a design into code, you might want it to be as dynamic as possible. Often you might have two similar colors that are relative two eachother, but are unsure how to get from one to the other, meaning you cannot arrive at color B from color A through color operations in SCSS. The method .hslDeltaTo(object) allows you to get the required change in percentage for hue, saturation and lightness (HSL) to arrive at the given color. For example:

varcolorA=newcolorCode('#3e45f9');varcolorB=newcolorCode('#6b55fa');// get percentage values required to transform color A into color B with HSL operationscolorA.hslDifference(colorB);

returns:

["4.545454545454546%","0%","8.19672131147541%"]

This means in order to get from colorA to colorB, you must:

  • Increase hue by ~4.55%
  • Saturation remains the same
  • Increase lightness by ~8.2%

This can be used to write SCSS that will automatically derive colorB from colorA, making these two colors fully dynamic even without additional information from the designer.

Compare script

For ease of use, there is also a separate compare.js file that can be executed in node.js:

node node/compare.js

or using the batch file:

compare

This will prompt for two hex values and return Hue, Sat, Lit percentages, as well as a generated scss line that will convert color A into color B.

About

Javascript class for converting CSS4 HEX and RGBA codes

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

colorCode.js

A color conversion class with support for 4 and 8 digit CSS4 HEX rgb + alpha codes.

Conversion tool example: https://ravk.nl/colorcode

Basic Usage Example

A simple example using the colorCode class to convert a color to a hex value:

varcolor=newcolorCode(162,222,208,0.9);returncolor.hex();
'#a2ded0e5'// return

Modifying Channels

Besides using the hex() and rgb() methods to set new colors, the color can also be modified by directly editing the object properties. The following example sets the color using an rgba() string, and then changes each of the channels individually.

// creating colorCode instancevarcolor=newcolorCode().rgb('rgba(162,222,208,0.9)');// setting RGB valuescolor.red=185;color.green=255;color.blue=160;console.log(color.hex());// setting opacity to 50%color.alpha=0.5;console.log(color.hex());
'#b9ffa0e5'// rgba(185, 255, 160, 0.9)'#b9ffa07f'// rgba(185, 255, 160, 0.5)

The alpha value can be 'removed' by setting it to undefined. The hex() and rgb() methods will then return a six digit code and an rgb() string respectively.

color.alpha=undefined;

constructor(red, green, blue, alpha)

When creating an instance of the colorCode class, you have the option of setting the RGB and A channels.

varcolor=newcolorCode(162,222,208,0.5);

Alternatively, another method can be chained to the constructor to immediately parse a string instead.

varcolor=newcolorCode().hex('#a2ded0');

The constructor is equivalent to the set() method.

color.set(162,222,208,0.5);

hex(string)

To set or get the color in hex format, use the hex() method.

Setter

When a value is provided to the method, it parses the hex string to set the color. Using a pound symbol is optional and not required. The method supports both six (standard) and eight (with alpha channel) digit hex codes.

color.hex('#a2ded07f');

In addition to six and eight digit hex codes, three (standard) and four (with alpha channel) codes are also supported.

color.hex('#aed7');

Getter

When no value is provided, the hex() method returns the hex code of the object's color. When no alpha channel is set, the function returns a six digit hex string. When an alpha value is set the method returns an eight digit hex string.

returncolor.hex();
'#a2ded07f'// return

rgb(string)

To set or get the color in rgb format, use the rgb() method.

Setter

When a value is provided to the method, it parses the CSS rgb or rgba string to set the color.

color.rgb('rgba(162,222,208,0.5)');

Getter

When no value is provided, the rgb() method returns a CSS rgb or rgba string of the object's color. When no alpha channel is set, the function returns a CSS rgb() string. When an alpha value is set the method returns a CSS rgba() string.

returncolor.rgb();
'rgba(162,222,208,0.5)'// return

Comparing two colors

When converting a design into code, you might want it to be as dynamic as possible. Often you might have two similar colors that are relative two eachother, but are unsure how to get from one to the other, meaning you cannot arrive at color B from color A through color operations in SCSS. The method .hslDeltaTo(object) allows you to get the required change in percentage for hue, saturation and lightness (HSL) to arrive at the given color. For example:

varcolorA=newcolorCode('#3e45f9');varcolorB=newcolorCode('#6b55fa');// get percentage values required to transform color A into color B with HSL operationscolorA.hslDifference(colorB);

returns:

["4.545454545454546%","0%","8.19672131147541%"]

This means in order to get from colorA to colorB, you must:

  • Increase hue by ~4.55%
  • Saturation remains the same
  • Increase lightness by ~8.2%

This can be used to write SCSS that will automatically derive colorB from colorA, making these two colors fully dynamic even without additional information from the designer.

Compare script

For ease of use, there is also a separate compare.js file that can be executed in node.js:

node node/compare.js

or using the batch file:

compare

This will prompt for two hex values and return Hue, Sat, Lit percentages, as well as a generated scss line that will convert color A into color B.

About

Javascript class for converting CSS4 HEX and RGBA codes

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

colorCode.js

A color conversion class with support for 4 and 8 digit CSS4 HEX rgb + alpha codes.

Conversion tool example: https://ravk.nl/colorcode

Basic Usage Example

A simple example using the colorCode class to convert a color to a hex value:

varcolor=newcolorCode(162,222,208,0.9);returncolor.hex();
'#a2ded0e5'// return

Modifying Channels

Besides using the hex() and rgb() methods to set new colors, the color can also be modified by directly editing the object properties. The following example sets the color using an rgba() string, and then changes each of the channels individually.

// creating colorCode instancevarcolor=newcolorCode().rgb('rgba(162,222,208,0.9)');// setting RGB valuescolor.red=185;color.green=255;color.blue=160;console.log(color.hex());// setting opacity to 50%color.alpha=0.5;console.log(color.hex());
'#b9ffa0e5'// rgba(185, 255, 160, 0.9)'#b9ffa07f'// rgba(185, 255, 160, 0.5)

The alpha value can be 'removed' by setting it to undefined. The hex() and rgb() methods will then return a six digit code and an rgb() string respectively.

color.alpha=undefined;

constructor(red, green, blue, alpha)

When creating an instance of the colorCode class, you have the option of setting the RGB and A channels.

varcolor=newcolorCode(162,222,208,0.5);

Alternatively, another method can be chained to the constructor to immediately parse a string instead.

varcolor=newcolorCode().hex('#a2ded0');

The constructor is equivalent to the set() method.

color.set(162,222,208,0.5);

hex(string)

To set or get the color in hex format, use the hex() method.

Setter

When a value is provided to the method, it parses the hex string to set the color. Using a pound symbol is optional and not required. The method supports both six (standard) and eight (with alpha channel) digit hex codes.

color.hex('#a2ded07f');

In addition to six and eight digit hex codes, three (standard) and four (with alpha channel) codes are also supported.

color.hex('#aed7');

Getter

When no value is provided, the hex() method returns the hex code of the object's color. When no alpha channel is set, the function returns a six digit hex string. When an alpha value is set the method returns an eight digit hex string.

returncolor.hex();
'#a2ded07f'// return

rgb(string)

To set or get the color in rgb format, use the rgb() method.

Setter

When a value is provided to the method, it parses the CSS rgb or rgba string to set the color.

color.rgb('rgba(162,222,208,0.5)');

Getter

When no value is provided, the rgb() method returns a CSS rgb or rgba string of the object's color. When no alpha channel is set, the function returns a CSS rgb() string. When an alpha value is set the method returns a CSS rgba() string.

returncolor.rgb();
'rgba(162,222,208,0.5)'// return

Comparing two colors

When converting a design into code, you might want it to be as dynamic as possible. Often you might have two similar colors that are relative two eachother, but are unsure how to get from one to the other, meaning you cannot arrive at color B from color A through color operations in SCSS. The method .hslDeltaTo(object) allows you to get the required change in percentage for hue, saturation and lightness (HSL) to arrive at the given color. For example:

varcolorA=newcolorCode('#3e45f9');varcolorB=newcolorCode('#6b55fa');// get percentage values required to transform color A into color B with HSL operationscolorA.hslDifference(colorB);

returns:

["4.545454545454546%","0%","8.19672131147541%"]

This means in order to get from colorA to colorB, you must:

  • Increase hue by ~4.55%
  • Saturation remains the same
  • Increase lightness by ~8.2%

This can be used to write SCSS that will automatically derive colorB from colorA, making these two colors fully dynamic even without additional information from the designer.

Compare script

For ease of use, there is also a separate compare.js file that can be executed in node.js:

node node/compare.js

or using the batch file:

compare

This will prompt for two hex values and return Hue, Sat, Lit percentages, as well as a generated scss line that will convert color A into color B.

About

Javascript class for converting CSS4 HEX and RGBA codes

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages