module Sigmund::Liquid::Filters::Color

Public Instance Methods

css_gradient(input) click to toggle source
# File lib/sigmund/liquid/filters/color.rb, line 5
def css_gradient(input)
  
  css = ""
  if input.blank? 
    return css
  end
  
  if colors = input.match(/#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})/i)
    red, green, blue = colors.captures
    explorerShit = '#00' + red + green + blue
    red = red.hex.to_s
    green = green.hex.to_s
    blue = blue.hex.to_s

    css << "background: -moz-linear-gradient(left, rgba(#{red}, #{green}, #{blue}, 0) 0%, rgba(#{red}, #{green}, #{blue}, 0.8) 70%, #{input} 100%);"
    css << "background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(#{red}, #{green}, #{blue}, 0)), color-stop(70%, rgba(#{red}, #{green}, #{blue}, 0.8)), color-stop(100%, #{input}));"
    css << "background: -webkit-linear-gradient(left, rgba(#{red}, #{green}, #{blue}, 0) 0%, rgba(#{red}, #{green}, #{blue}, 0.8) 70%, #{input} 100%);"
    css << "background: -o-linear-gradient(left, rgba(#{red}, #{green}, #{blue}, 0) 0%, rgba(#{red}, #{green}, #{blue}, 0.8) 70%, #{input} 100%);"
    css << "background: -ms-linear-gradient(left, rgba(#{red}, #{green}, #{blue}, 0) 0%, rgba(#{red}, #{green}, #{blue}, 0.8) 70%, #{input} 100%);"
    css << "background: linear-gradient(to right, rgba(#{red}, #{green}, #{blue}, 0) 0%, rgba(#{red}, #{green}, #{blue}, 0.8) 70%, #{input} 100%);"
    css << "filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#{explorerShit}, endColorstr='#{input}',GradientType=1 );"
  end          
  css
end