Module: ColorMath
- Defined in:
- lib/color_math.rb
Defined Under Namespace
Modules: Converters
Class Method Summary collapse
-
.brightness(color) ⇒ Object
Equivalent to dc-color-brightness() in variables.scss.
-
.dark_light_diff(adjusted_color, comparison_color, lightness, darkness) ⇒ Object
Equivalent to dark-light-diff() in variables.scss.
-
.scale_color_lightness(color, adjustment) ⇒ Object
Equivalent to scale_color(color, lightness: ) in sass.
Class Method Details
.brightness(color) ⇒ Object
Equivalent to dc-color-brightness() in variables.scss
5 6 7 8 |
# File 'lib/color_math.rb', line 5 def self.brightness(color) rgb = Converters.hex_to_rgb(color) (rgb[0].to_i * 299 + rgb[1].to_i * 587 + rgb[2].to_i * 114) / 1000.0 end |
.dark_light_diff(adjusted_color, comparison_color, lightness, darkness) ⇒ Object
Equivalent to dark-light-diff() in variables.scss
11 12 13 14 15 16 17 |
# File 'lib/color_math.rb', line 11 def self.dark_light_diff(adjusted_color, comparison_color, lightness, darkness) if brightness(adjusted_color) < brightness(comparison_color) scale_color_lightness(adjusted_color, lightness) else scale_color_lightness(adjusted_color, darkness) end end |
.scale_color_lightness(color, adjustment) ⇒ Object
Equivalent to scale_color(color, lightness: ) in sass
20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/color_math.rb', line 20 def self.scale_color_lightness(color, adjustment) rgb = Converters.hex_to_rgb(color) h, s, l = Converters.rgb_to_hsl(*rgb) l = if adjustment > 0 l + (100 - l) * adjustment else l + l * adjustment end rgb = Converters.hsl_to_rgb(h, s, l) Converters.rgb_to_hex(rgb) end |