Skip to content

Instantly share code, notes, and snippets.

@nyancodeid
Last active December 29, 2019 17:17
Show Gist options
  • Select an option

  • Save nyancodeid/8697a6d42fd8834f606d9351cef03a60 to your computer and use it in GitHub Desktop.

Select an option

Save nyancodeid/8697a6d42fd8834f606d9351cef03a60 to your computer and use it in GitHub Desktop.
Lighten and Dark Color Generator
class Color {
constructor (color) {
this.color = color
}
_transform(color, percent) {
var R = parseInt(color.substring(1,3),16);
var G = parseInt(color.substring(3,5),16);
var B = parseInt(color.substring(5,7),16);
R = parseInt(R * (100 + percent) / 100);
G = parseInt(G * (100 + percent) / 100);
B = parseInt(B * (100 + percent) / 100);
R = ((R<255)?R:255).toString(16);
G = ((G<255)?G:255).toString(16);
B = ((B<255)?B:255).toString(16);
var RR = ((R.length==1)?"0"+R:R);
var GG = ((G.length==1)?"0"+G:G);
var BB = ((B.length==1)?"0"+B:B);
return "#"+RR+GG+BB;
}
darken(percent) {
return this._transform(this.color, -(percent))
}
lighten(percent) {
return this._transform(this.color, percent)
}
darkenShade(level = 5) {
return new Array(level).fill(null).map((val, index) => this.darken((index+1) * 10))
}
lightenShade(level = 5) {
return new Array(level).fill(null).map((val, index) => this.lighten((index+1) * 10))
}
}
module.exports = Color
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment