Class: BulmaPhlex::Level
- Inherits:
-
Base
- Object
- Base
- BulmaPhlex::Level
- Defined in:
- lib/bulma_phlex/level.rb
Overview
Renders the Bulma level component.
A flexible horizontal layout system. Items can be placed in the left section, the
right section, or centered as standalone items. Content in each section is
provided via left, right, and item block methods on the yielded component.
Example:
render BulmaPhlex::Level.new do |level|
level.left do
(class: "button") { "Left" }
end
level.right do
(class: "button") { "Right" }
end
level.right do
(class: "button") { "Right 2" }
end
end
Class Method Summary collapse
-
.new(**html_attributes) ⇒ Object
Parameters.
Instance Method Summary collapse
-
#initialize(**html_attributes) ⇒ Level
constructor
A new instance of Level.
-
#item(&content) ⇒ Object
Adds a centered item to the level.
-
#left(&content) ⇒ Object
Adds an item to the left section of the level.
-
#right(&content) ⇒ Object
Adds an item to the right section of the level.
- #view_template ⇒ Object
Constructor Details
#initialize(**html_attributes) ⇒ Level
Returns a new instance of Level.
32 33 34 35 36 37 |
# File 'lib/bulma_phlex/level.rb', line 32 def initialize(**html_attributes) @html_attributes = html_attributes @items = [] @left = [] @right = [] end |
Class Method Details
.new(**html_attributes) ⇒ Object
Parameters
**html_attributes— Additional HTML attributes for the level element
28 29 30 |
# File 'lib/bulma_phlex/level.rb', line 28 def self.new(**html_attributes) super end |
Instance Method Details
#item(&content) ⇒ Object
Adds a centered item to the level. Can be called multiple times.
Expects a block that renders the item content.
58 59 60 |
# File 'lib/bulma_phlex/level.rb', line 58 def item(&content) @items << content end |
#left(&content) ⇒ Object
Adds an item to the left section of the level. Can be called multiple times.
Expects a block that renders the item content.
65 66 67 |
# File 'lib/bulma_phlex/level.rb', line 65 def left(&content) @left << content end |
#right(&content) ⇒ Object
Adds an item to the right section of the level. Can be called multiple times.
Expects a block that renders the item content.
72 73 74 |
# File 'lib/bulma_phlex/level.rb', line 72 def right(&content) @right << content end |
#view_template ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/bulma_phlex/level.rb', line 39 def view_template(&) vanish(&) div(**mix({ class: "level" }, @html_attributes)) do div(class: "level-left") do @left.each { |item| level_item(item) } end @items.each { |item| level_item(item) } div(class: "level-right") do @right.each { |item| level_item(item) } end end end |