Method: Sass::Script::Functions#rgba
- Defined in:
- lib/sass/script/functions.rb
#rgba($red, $green, $blue, $alpha) ⇒ Sass::Script::Value::Color #rgba($color, $alpha) ⇒ Sass::Script::Value::Color
Creates a Color from red, green, blue, and alpha values.
713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 |
# File 'lib/sass/script/functions.rb', line 713
def rgba(*args)
case args.size
when 1
return unquoted_string("rgba(#{args.first})") if var?(args.first)
raise ArgumentError.new("wrong number of arguments (1 for 4)")
when 2
color, alpha = args
if var?(color)
return unquoted_string("rgba(#{color}, #{alpha})")
elsif var?(alpha)
if color.is_a?(Sass::Script::Value::Color)
return unquoted_string("rgba(#{color.red}, #{color.green}, #{color.blue}, #{alpha})")
else
return unquoted_string("rgba(#{color}, #{alpha})")
end
end
assert_type color, :Color, :color
if special_number?(alpha)
unquoted_string("rgba(#{color.red}, #{color.green}, #{color.blue}, #{alpha})")
else
assert_type alpha, :Number, :alpha
color.with(:alpha => percentage_or_unitless(alpha, 1, "alpha"))
end
when 3
if var?(args[0]) || var?(args[1]) || var?(args[2])
unquoted_string("rgba(#{args.join(', ')})")
else
raise ArgumentError.new("wrong number of arguments (3 for 4)")
end
when 4
red, green, blue, alpha = args
if special_number?(red) || special_number?(green) ||
special_number?(blue) || special_number?(alpha)
unquoted_string("rgba(#{red}, #{green}, #{blue}, #{alpha})")
else
rgba(rgb(red, green, blue), alpha)
end
else
raise ArgumentError.new("wrong number of arguments (#{args.size} for 4)")
end
end
|