Last active
April 12, 2016 04:03
-
-
Save andymeneely/fac2f4a16a23c2bada126e93d6523971 to your computer and use it in GitHub Desktop.
Squib: demonstrating colors
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
_output/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'squib' | |
Squib::Deck.new do | |
# Just about anywhere Squib takes in a color it can also take in a gradient too | |
# The x-y coordinates on the card itself, | |
# and then color stops are defined between 0 and 1 | |
background color: '(0,0)(0,1125) #ccc@0.0 #111@1.0' | |
line stroke_color: '(0,0)(825,0) #111@1.0 #ccc@0.0', | |
x1: 0, y1: 600, x2: 825, y2: 600, | |
stroke_width: 15 | |
# Radial gradients look like this | |
circle fill_color: '(425,400,2)(425,400,120) #ccc@0.0 #111@1.0', | |
x: 415, y: 415, radius: 100, stroke_color: '#0000' | |
triangle fill_color: '(650,400,2)(650,400,120) #ccc@0.0 #111@1.0', | |
stroke_color: '#0000', | |
x1: 650, y1: 360, | |
x2: 550, y2: 500, | |
x3: 750, y3: 500 | |
# Gradients are also good for beveling effects: | |
rect fill_color: '(0,200)(0,600) #111@0.0 #ccc@1.0', | |
x: 30, y: 350, width: 150, height: 150, | |
radius: 15, stroke_color: '#0000' | |
rect fill_color: '(0,200)(0,600) #111@1.0 #ccc@0.0', | |
x: 40, y: 360, width: 130, height: 130, | |
radius: 15, stroke_color: '#0000' | |
# Alpha transparency can be used too | |
text str: 'Hello, world!', x: 75, y: 700, font: 'Sans Bold 72', | |
color: '(0,0)(825,0) #000f@0.0 #0000@1.0' | |
save_png prefix: 'gradient_' | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment