Sha256: ffa9beb8d2d934d04eec4766ecccc9a24f9a7dad57681e8f8e9c9f4438fdbc3c
Contents?: true
Size: 1.5 KB
Versions: 5
Compression:
Stored size: 1.5 KB
Contents
module Lookbook class Theme BASE_THEMES = { indigo: { favicon_light_mode: "#4F46E5", favicon_dark_mode: "#818CF8" }, zinc: { favicon_light_mode: "#52525b", favicon_dark_mode: "#E4E4E7" }, blue: { favicon_light_mode: "#2563EB", favicon_dark_mode: "#60A5FA" }, green: { favicon_light_mode: "#16a34a", favicon_dark_mode: "#66E093" }, rose: { favicon_light_mode: "#E11D48", favicon_dark_mode: "#FFA0B5" } } def initialize(base_theme, overrides = {}) @base_theme = base_theme @overrides = overrides @css = nil end def favicon_light_mode @overrides[:favicon_light_mode].presence || @overrides[:favicon].presence || BASE_THEMES[@base_theme.to_sym][:favicon_light_mode] end def favicon_dark_mode @overrides[:favicon_dark_mode].presence || @overrides[:favicon].presence || BASE_THEMES[@base_theme.to_sym][:favicon_dark_mode] end def to_css return @css unless @css.nil? @css ||= if @overrides.present? styles = [":root {"] styles << @overrides.reject { |key| key.to_s.start_with?("favicon") }.map do |key, value| " --lookbook-#{key.to_s.underscore.tr("_", "-")}: #{value};" end styles.push "}" styles.join("\n") else "" end end def self.valid_theme?(name) BASE_THEMES.key? name.to_sym end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
lookbook-2.3.4 | lib/lookbook/theme.rb |
lookbook-2.3.3 | lib/lookbook/theme.rb |
lookbook-2.3.2 | lib/lookbook/theme.rb |
lookbook-2.3.0 | lib/lookbook/theme.rb |
lookbook-2.2.2 | lib/lookbook/theme.rb |