class Bamboo::Grid
Public Class Methods
modular(columns = 2, scale = Bamboo::GOLDEN_RATIO)
click to toggle source
# File lib/bamboo/grid.rb, line 40 def self.modular(columns = 2, scale = Bamboo::GOLDEN_RATIO) column_widths = [] used_width = 0 available_width = Bamboo::TOTAL_WIDTH columns.times do |index| if index == columns - 1 # last column should use all remaining width column_widths.push available_width else width = available_width / scale column_widths.push width available_width = available_width - width used_width = used_width + width end end { column_widths: column_widths, css: column_css(column_widths) } end
scaffold_css(max_width = "100%")
click to toggle source
# File lib/bamboo/grid.rb, line 3 def self.scaffold_css(max_width = "100%") css = %{ *, *::before, *::after { box-sizing: border-box; } .container { max-width: #{max_width} } .row::after { content: "."; visibility: hidden; display: block; height: 0; clear: both; } [class^=col-] { display: inline-block; float: left; } } css.gsub(/[\s]/,"") end
uniform(columns = 12)
click to toggle source
# File lib/bamboo/grid.rb, line 32 def self.uniform(columns = 12) column_widths = [] single_width = Bamboo::TOTAL_WIDTH / Float(columns) columns.times { |index| column_widths.push single_width * (index + 1) } { column_widths: column_widths, css: column_css(column_widths) } end
Private Class Methods
column_css(columns)
click to toggle source
# File lib/bamboo/grid.rb, line 59 def self.column_css(columns) template = %{ <% columns.map.with_index do |width, index| %> .col-<%= index + 1 %> { width: <%= width %>% } <% end %> } ERB.new(template).result(binding).gsub(/[\s]/,"") end