Class: Tramway::BadgeComponent

Inherits:
BaseComponent
  • Object
show all
Includes:
ColorsMethods
Defined in:
app/components/tramway/badge_component.rb

Overview

Default Tramway badge

Constant Summary collapse

DEFAULT_BADGE_CLASSES =
%w[
  inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors
  focus:outline-none focus:ring-2 focus:ring-zinc-400 focus:ring-offset-2 focus:ring-offset-zinc-950
].freeze

Constants included from ColorsMethods

ColorsMethods::TYPE_COLOR_MAP

Constants included from Helpers::ViewsHelper

Helpers::ViewsHelper::FORM_SIZES

Instance Method Summary collapse

Methods included from ColorsMethods

#normalized_type, #resolved_color, #type_color

Methods included from Helpers::ViewsHelper

#tramway_back_button, #tramway_badge, #tramway_button, #tramway_cell, #tramway_chat, #tramway_container, #tramway_flash, #tramway_form_for, #tramway_header, #tramway_main_container, #tramway_row, #tramway_table, #tramway_title, #tramway_tooltip

Methods included from Helpers::ComponentHelper

#component

Methods included from Helpers::DecorateHelper

#tramway_decorate

Instance Method Details

#accent_color_classesObject



49
50
51
52
53
54
55
56
# File 'app/components/tramway/badge_component.rb', line 49

def accent_color_classes
  [
    "border-#{resolved_color}-800",
    "bg-#{resolved_color}-900/30",
    "text-#{resolved_color}-400",
    "hover:bg-#{resolved_color}-900"
  ]
end

#classesObject



18
19
20
# File 'app/components/tramway/badge_component.rb', line 18

def classes
  (DEFAULT_BADGE_CLASSES + color_classes).join(' ')
end

#color_classesObject



22
23
24
25
26
# File 'app/components/tramway/badge_component.rb', line 22

def color_classes
  return accent_color_classes if color.present?

  mapped_color_classes || accent_color_classes
end

#default_color_classesObject



37
38
39
# File 'app/components/tramway/badge_component.rb', line 37

def default_color_classes
  %w[border-transparent bg-zinc-50 text-zinc-950 shadow hover:bg-zinc-200]
end

#inverse_color_classesObject



45
46
47
# File 'app/components/tramway/badge_component.rb', line 45

def inverse_color_classes
  %w[border-zinc-800 bg-zinc-950 text-zinc-50 shadow hover:bg-zinc-900]
end

#mapped_color_classesObject



28
29
30
31
32
33
34
35
# File 'app/components/tramway/badge_component.rb', line 28

def mapped_color_classes
  {
    default: default_color_classes,
    life: default_color_classes,
    secondary: secondary_color_classes,
    inverse: inverse_color_classes
  }[normalized_type]
end

#secondary_color_classesObject



41
42
43
# File 'app/components/tramway/badge_component.rb', line 41

def secondary_color_classes
  %w[border-transparent bg-zinc-800 text-zinc-50 shadow hover:bg-zinc-800/80]
end