示例#1
0
文件: gradient.py 项目: roddux/rucss
def nOrMoreColourStops(n=1):
    #if ri(0,1) == 1 or n == 1:
    #	return rc(colourStop)
    #else:
    #	return "".join((lambda: rc(colourStop))()+", " for x in range(0,ri(n,10))) + rc(colourStop)
    return "".join((lambda: rc(colourStop))() + ", "
                   for x in range(0, ri(n, 10))) + rc(colourStop)
示例#2
0
文件: gradient.py 项目: roddux/rucss
def gradient():
    ret = ""
    if ri(0, 2) == 2:
        ret = "repeating-"
    return ret + rc((linearGradient, radialGradient))()
示例#3
0
文件: gradient.py 项目: roddux/rucss
def linearGradient():
    return "linear-gradient({}, {})".format(
        rc((angle(), "to " + rc((rc(("left", "right")), rc(
            ("top", "bottom")))))), nOrMoreColourStops(2))
示例#4
0
文件: gradient.py 项目: roddux/rucss
def radialGradient():
    return rc(radials)()
示例#5
0
文件: gradient.py 项目: roddux/rucss
# Generate a series of colour stops
def nOrMoreColourStops(n=1):
    #if ri(0,1) == 1 or n == 1:
    #	return rc(colourStop)
    #else:
    #	return "".join((lambda: rc(colourStop))()+", " for x in range(0,ri(n,10))) + rc(colourStop)
    return "".join((lambda: rc(colourStop))() + ", "
                   for x in range(0, ri(n, 10))) + rc(colourStop)


radials = (
    lambda: "radial-gradient(at {}, {})".format(position(
    ), nOrMoreColourStops(2)), lambda: "radial-gradient({} {}, {})".format(
        rc((rc(
            ("circle", "ellipse")) + " " + rc(extents), rc(extents) + " " + rc(
                ("circle", "ellipse")))), rc(
                    ("at " + position(), "")), nOrMoreColourStops(2)),
    lambda: "radial-gradient({} {}, {})".format(
        rc(("ellipse",
            rc((length(allowNeg=False) + " " + length(allowNeg=False),
                percent(allowNeg=False) + " " + percent(allowNeg=False))),
            rc((length(allowNeg=False) + " " + length(allowNeg=False),
                percent(allowNeg=False) + " " + percent(allowNeg=False))) +
            " ellipse", "ellipse",
            rc((length(allowNeg=False) + " " + length(allowNeg=False),
                percent(allowNeg=False) + " " + percent(allowNeg=False))))),
        rc(("at " + position(), "")), nOrMoreColourStops(2)),
    lambda: "radial-gradient({} {}, {})".format(
        rc((rc(("circle", length(allowNeg=False))), "circle " + length(
            allowNeg=False), length(allowNeg=False) + " circle")),
示例#6
0
文件: position.py 项目: roddux/rucss
def position(): return rc(positions)()
示例#7
0
文件: position.py 项目: roddux/rucss
#!/usr/bin/env python3
from common import percent, length, rc, ri

positions = (
	lambda: "{}".format(
		rc( ("left", "center", "right", "top", "bottom", percent(), length()) )
	),
	lambda: "{} {}".format(
		rc( ("left", "center", "right", percent(), length()) ),
		rc( ("top", "center", "bottom", percent(), length()) )
	),
	rc((
		lambda: "{} {}".format(
			rc( ( "center", rc(("left","right")) ) ),
			rc( ( "", rc( ( percent(), length() ) ) ) )
		),
		lambda: "{} {}".format(
			rc( ( "center", rc(("top","bottom")) ) ),
			rc( ( "", rc( ( percent(), length() ) ) ) )
		)
	))
)

# Generate a position
# TODO: Implement optional ordering of keywords
# TODO: Investigate invalid generations for radial-gradient
def position(): return rc(positions)()
示例#8
0
 def __str__(self):
     return rc(self.colours)()
示例#9
0
class colourC():
    # Mozilla specific colours taken from MDN
    moz = ("-moz-ButtonDefault", "-moz-ButtonHoverFace",
           "-moz-ButtonHoverText", "-moz-CellHighlight",
           "-moz-CellHighlightText", "-moz-Combobox", "-moz-ComboboxText",
           "-moz-Dialog", "-moz-DialogText", "-moz-dragtargetzone",
           "-moz-EvenTreeRow", "-moz-Field", "-moz-FieldText",
           "-moz-html-CellHighlight", "-moz-html-CellHighlightText",
           "-moz-MenuHover", "-moz-MenuHoverText", "-moz-MenuBarText",
           "-moz-MenuBarHoverText", "-moz-nativehyperlinktext",
           "-moz-OddTreeRow", "-moz-win-communicationstext",
           "-moz-win-mediatext")

    # 'Deprecated' colours taken from MDN
    deprecated = ("ActiveBorder", "ActiveCaption", "AppWorkspace",
                  "Background", "ButtonFace", "ButtonShadow", "ButtonText",
                  "CaptionText", "GrayText", "Highlight", "HighlightText",
                  "InactiveBorder", "InactiveCaption", "InactiveCaptionText",
                  "InfoBackground", "InfoText", "Menu", "MenuText",
                  "Scrollbar", "ThreeDDarkShadow", "ThreeDFace",
                  "ThreeDHighlight", "ThreeDLightShadow", "ThreeDShadow",
                  "Window", "WindowFrame", "WindowText", "ButtonHighlight")

    # Named colours
    named = ("black", "silver", "gray", "white", "maroon", "red", "purple",
             "fuchsia", "green", "lime", "olive", "yellow", "navy", "blue",
             "teal", "aqua", "orange", "aliceblue", "antiquewhite",
             "aquamarine", "azure", "beige", "bisque", "blanchedalmond",
             "blueviolet", "brown", "burlywood", "cadetblue", "chartreuse",
             "chocolate", "coral", "cornflowerblue", "cornsilk", "crimson",
             "darkblue", "darkcyan", "darkgoldenrod", "darkgray", "darkgreen",
             "darkgrey", "darkkhaki", "darkmagenta", "darkolivegreen",
             "darkorange", "darkorchid", "darkred", "darksalmon",
             "darkseagreen", "darkslateblue", "darkslategray", "darkslategrey",
             "darkturquoise", "darkviolet", "deeppink", "deepskyblue",
             "dimgray", "dimgrey", "dodgerblue", "firebrick", "floralwhite",
             "forestgreen", "gainsboro", "ghostwhite", "gold", "goldenrod",
             "greenyellow", "grey", "lightseagreen", "lightskyblue",
             "lightslategray", "lightslategrey", "lightsteelblue",
             "lightyellow", "limegreen", "linen", "mediumaquamarine",
             "mediumblue", "mediumorchid", "mediumpurple", "mediumseagreen",
             "mediumslateblue", "mediumspringgreen", "mediumturquoise",
             "mediumvioletred", "midnightblue", "mintcream", "mistyrose",
             "moccasin", "navajowhite", "oldlace", "olivedrab", "orangered",
             "orchid", "palegoldenrod", "palegreen", "paleturquoise",
             "palevioletred", "papayawhip", "peachpuff", "peru", "pink",
             "plum", "powderblue", "rosybrown", "royalblue", "saddlebrown",
             "salmon", "sandybrown", "seagreen", "seashell", "sienna",
             "skyblue", "slateblue", "slategray", "slategrey", "snow",
             "springgreen", "steelblue", "tan", "thistle", "tomato",
             "turquoise", "violet", "wheat", "whitesmoke", "yellowgreen",
             "rebeccapurple")

    colours = (rc((lambda: "rgb({},{},{})".format(
        integer(),
        integer(),
        integer(),
    ), lambda: "rgb({},{},{})".format(
        percent(),
        percent(),
        percent(),
    ))),
               rc((
                   lambda: "rgba({},{},{},{})".format(integer(), integer(),
                                                      integer(), number()),
                   lambda: "rgba({},{},{},{})".format(percent(), percent(),
                                                      percent(), number()),
               )),
               lambda: "hsl({},{},{})".format(number(), percent(), percent()),
               lambda: "hsla({},{},{},{})".format(
                   number(),
                   percent(),
                   percent(),
                   number(),
               ), lambda: hexcol(rc((3, 6))), lambda: rc(colourC.named),
               lambda: rc(colourC.deprecated), lambda: rc(colourC.moz),
               lambda: rc(("currentcolor", "transparent")))

    # Generate a random colour
    def __str__(self):
        return rc(self.colours)()
示例#10
0
def hexcol(n=6):
    return "#" + "".join(rc("ABCDEF") for j in range(0, n))