Class: EasyAdmin::Layouts::Nodes::Grid
- Defined in:
- lib/easy_admin/layouts/nodes/grid.rb
Overview
Grid layout node for responsive column layouts
Instance Attribute Summary
Attributes inherited from BaseNode
#attributes, #children, #metadata, #visible_if
Instance Method Summary collapse
- #columns ⇒ Object
- #css_class ⇒ Object
- #gap ⇒ Object
-
#grid_classes ⇒ Object
Generate Tailwind grid classes.
-
#initialize(attributes = {}) ⇒ Grid
constructor
A new instance of Grid.
- #responsive? ⇒ Boolean
Methods inherited from BaseNode
#[], #[]=, #accept, #add_child, #children?, #node_type, #visible?
Constructor Details
#initialize(attributes = {}) ⇒ Grid
Returns a new instance of Grid.
6 7 8 9 10 11 12 |
# File 'lib/easy_admin/layouts/nodes/grid.rb', line 6 def initialize(attributes = {}) super @attributes[:columns] ||= 2 @attributes[:gap] ||= 4 # Tailwind gap size @attributes[:responsive] ||= true @attributes[:css_class] ||= nil end |
Instance Method Details
#columns ⇒ Object
14 15 16 |
# File 'lib/easy_admin/layouts/nodes/grid.rb', line 14 def columns @attributes[:columns] end |
#css_class ⇒ Object
26 27 28 |
# File 'lib/easy_admin/layouts/nodes/grid.rb', line 26 def css_class @attributes[:css_class] end |
#gap ⇒ Object
18 19 20 |
# File 'lib/easy_admin/layouts/nodes/grid.rb', line 18 def gap @attributes[:gap] end |
#grid_classes ⇒ Object
Generate Tailwind grid classes
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/easy_admin/layouts/nodes/grid.rb', line 31 def grid_classes classes = [] if responsive? # Responsive grid classes case columns when 1 classes << "grid-cols-1" when 2 classes << "grid-cols-1 md:grid-cols-2" when 3 classes << "grid-cols-1 md:grid-cols-2 lg:grid-cols-3" when 4 classes << "grid-cols-1 md:grid-cols-2 lg:grid-cols-4" else classes << "grid-cols-#{columns}" end else classes << "grid-cols-#{columns}" end classes << "gap-#{gap}" classes << css_class if css_class classes.join(' ') end |
#responsive? ⇒ Boolean
22 23 24 |
# File 'lib/easy_admin/layouts/nodes/grid.rb', line 22 def responsive? @attributes[:responsive] end |