require 'squib'

Squib::Deck.new(width: 825, height: 1125, cards: 1) do
  background color: :white

  y = 0
  text color: '#f00', str: '3-hex', x: 50, y: y+=50
  text color: '#f00', str: '3-hex (alpha)', x: 50, y: y+=50
  text color: '#ff0000', str: '6-hex', x: 50, y: y+=50
  text color: '#ff000099', str: '8-hex(alpha)', x: 50, y: y+=50
  text color: '#ffff00000000', str: '12-hex', x: 50, y: y+=50
  text color: '#ffff000000009999', str: '12-hex (alpha)', x: 50, y: y+=50
  text color: :burnt_orange, str: 'Symbols of constants too', x: 50, y: y+=50
  text color: '(0,0)(400,0) blue@0.0 red@1.0', str: 'Linear gradients!', x: 50, y: y+=50
  text color: '(200,500,10)(200,500,100) blue@0.0 red@1.0', str: 'Radial gradients!', x: 50, y: y+=50
  # see gradients.rb sample for more on gradients

  save_png prefix: 'colors_'
end

# This script generates a table of the built-in constants
Squib::Deck.new(width: 3000, height: 1500) do
  colors = (Cairo::Color.constants - %i(HEX_RE Base RGB CMYK HSV X11))
  colors.sort_by! {|c| Cairo::Color.parse(c).to_s}
  x,y,w,h = 0,0,300,50
  colors.each_with_index do |color, i|
    rect x: x, y: y, width: w, height: h, fill_color: color
    text str: color.to_s, x: x + 5, y: y+13, font: 'Sans Bold 16',
         color: (Cairo::Color.parse(color).to_hsv.v > 0.9) ? '#000': '#fff'
    y += h
    if y > @height
      x += w
      y = 0
    end
  end
  save_png prefix: 'color_constants_'
end
