Module: ColorMath

Defined in:
lib/color_math.rb

Defined Under Namespace

Modules: Converters

Class Method Summary collapse

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