Class: Dedalus::PatternLibrary::LibrarySectionTab

Inherits:
Molecule show all
Defined in:
lib/dedalus/pattern_library/molecules/library_section_tab.rb

Instance Attribute Summary collapse

Attributes inherited from Element

#color, #height_percent, #margin, #offset, #padding, #position, #shown, #width, #width_percent, #z_order

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Element

#big_font, #code_font, #draw_bounding_box, #font, #huge_font, #initialize, #record?, #tiny_font, #view, #window

Constructor Details

This class inherits a constructor from Dedalus::Element

Instance Attribute Details

#descriptionObject

Returns the value of attribute description.



4
5
6
# File 'lib/dedalus/pattern_library/molecules/library_section_tab.rb', line 4

def description
  @description
end

#highlightObject

Returns the value of attribute highlight.



4
5
6
# File 'lib/dedalus/pattern_library/molecules/library_section_tab.rb', line 4

def highlight
  @highlight
end

#iconObject

Returns the value of attribute icon.



4
5
6
# File 'lib/dedalus/pattern_library/molecules/library_section_tab.rb', line 4

def icon
  @icon
end

#nameObject

Returns the value of attribute name.



4
5
6
# File 'lib/dedalus/pattern_library/molecules/library_section_tab.rb', line 4

def name
  @name
end

#scaleObject

Returns the value of attribute scale.



4
5
6
# File 'lib/dedalus/pattern_library/molecules/library_section_tab.rb', line 4

def scale
  @scale
end

#section_colorObject

Returns the value of attribute section_color.



4
5
6
# File 'lib/dedalus/pattern_library/molecules/library_section_tab.rb', line 4

def section_color
  @section_color
end

Class Method Details

.descriptionObject



47
48
49
# File 'lib/dedalus/pattern_library/molecules/library_section_tab.rb', line 47

def self.description
  "navigational tab"
end

.example_dataObject



51
52
53
54
55
56
57
58
59
# File 'lib/dedalus/pattern_library/molecules/library_section_tab.rb', line 51

def self.example_data
  {
    icon: :house,
    name: "Welcome",
    description: "Hello world (links to Welcome)",
    highlight: false,
    section_color: 'gray'
  }
end

Instance Method Details

#background_colorObject



18
19
20
21
# File 'lib/dedalus/pattern_library/molecules/library_section_tab.rb', line 18

def background_color
  bg = Palette.decode_color(section_color)
  self.highlight ? bg.lighten : bg
end

#clickObject



23
24
25
# File 'lib/dedalus/pattern_library/molecules/library_section_tab.rb', line 23

def click
  view.route_to(name)
end

#description_elementObject



43
44
45
# File 'lib/dedalus/pattern_library/molecules/library_section_tab.rb', line 43

def description_element
  TinyText.new(text: description)
end

#heightObject



31
32
33
# File 'lib/dedalus/pattern_library/molecules/library_section_tab.rb', line 31

def height
  @height ||= 80
end

#hoverObject



14
15
16
# File 'lib/dedalus/pattern_library/molecules/library_section_tab.rb', line 14

def hover
  self.scale = 1.05
end

#icon_elementObject



35
36
37
# File 'lib/dedalus/pattern_library/molecules/library_section_tab.rb', line 35

def icon_element
  Elements::Icon.for(icon, padding: 10)
end

#showObject



6
7
8
9
10
11
12
# File 'lib/dedalus/pattern_library/molecules/library_section_tab.rb', line 6

def show
  Container.new(
    [[icon_element, [ title_element, description_element ]]],
    padding: 16,
    scale: scale
  )
end

#title_elementObject



39
40
41
# File 'lib/dedalus/pattern_library/molecules/library_section_tab.rb', line 39

def title_element
  Elements::Heading.new(text: name, scale: scale)
end