retrospring/app/helpers/theme_helper.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

45 lines
1,019 B
Ruby
Raw Normal View History

2022-11-15 00:32:54 +01:00
# frozen_string_literal: true
2015-07-29 18:54:33 +02:00
module ThemeHelper
2024-09-04 22:43:13 +02:00
def render_theme = nil
def get_color_for_key(key, color)
hex = get_hex_color_from_theme_value(color)
if key.include?("text") || key.include?("placeholder") || key.include?("rgb")
get_decimal_triplet_from_hex(hex)
else
"##{hex}"
end
end
2024-09-04 22:43:13 +02:00
def theme_color = "#5e35b1"
2021-08-06 00:36:20 +02:00
2024-09-04 22:43:13 +02:00
def mobile_theme_color = "#f0edf4"
def get_hex_color_from_theme_value(value)
2022-11-15 00:32:54 +01:00
"0000000#{value.to_s(16)}"[-6, 6]
end
def get_decimal_triplet_from_hex(value)
2022-11-15 00:32:54 +01:00
hexes = value.split(/(.{2})/).reject(&:empty?)
hexes.map(&:hex).join(", ")
end
def rgb_values_from_hex(value)
[
(value & 0xFF0000) >> 16, # R
(value & 0x00FF00) >> 8, # G
value & 0x0000FF # B
]
end
def rgb_to_hex(rgb_values)
2022-11-15 00:32:54 +01:00
rgb_values.map.with_index { |v, i| v << ((2 - i) * 8) }.reduce(&:+).to_s(16)
end
def lighten(value, amount = 0.25)
2022-11-15 00:32:54 +01:00
rgb_to_hex(rgb_values_from_hex(value).map { |v| [(v + (255 * amount)).round, 255].min })
end
2015-07-29 18:54:33 +02:00
end