
scalacss.Values.scala Maven / Gradle / Ivy
package scalacss
import ValueT._
/** A ''typed'' literal. */
abstract class Literal(final val value: Value) {
override def toString = s"Literal($value)"
}
/** Gets merged into [[Dsl]]. */
trait TypedLiteralAliases {
import Literal.Typed
import scalacss.Literal.Typed.TimingFunctionDirection
final def inherit = Typed.inherit
final def initial = Typed.initial
final def unset = Typed.unset
final def `0` = Typed.`0`
final def auto = Typed.auto
final def hanging = Typed.hanging
final def eachLine = Typed.eachLine
final def thin = Typed.thin
final def medium = Typed.medium
final def thick = Typed.thick
final def none = Typed.none
final def hidden = Typed.hidden
final def dotted = Typed.dotted
final def dashed = Typed.dashed
final def solid = Typed.solid
final def double = Typed.double
final def groove = Typed.groove
final def ridge = Typed.ridge
final def inset = Typed.inset
final def outset = Typed.outset
final def start = Typed.start
final def end = Typed.end
final def cubicBezier(x1: Double, y1: Double, x2: Double, y2: Double) = new Typed.cubicBezier(x1, y1, x2, y2)
final def steps(steps: Int, direction: TimingFunctionDirection) = new Typed.steps(steps, direction)
final def linear = Typed.linear
final def ease = Typed.ease
final def easeIn = Typed.easeIn
final def easeInOut = Typed.easeInOut
final def easeOut = Typed.easeOut
final def stepStart = Typed.stepStart
final def stepEnd = Typed.stepEnd
}
/**
* Most literals here are just strings.
* Type-safety is usually provided by the TypedAttr methods.
*
* In some cases literals need to be typed to be part of a [[ValueClass]] so that they can be used as typed args.
* Eg. `auto` in `margin(12 px, auto)`.
*
* For that reason exists the dichotomy between [[Literal]] with its untyped [[Value]]s, and [[Literal.Typed]] with its
* subclassed [[Literal]]s.
*/
object Literal extends TypedLiteralAliases {
object Typed {
final val `0` = Length(0, LengthUnit.px)
class count(n: Int) extends Literal(n.toString)
object auto extends Literal("auto")
object hanging extends Literal("hanging")
object eachLine extends Literal("each-line")
// any
sealed trait Anywhere
object inherit extends Literal("inherit") with Anywhere
object initial extends Literal("initial") with Anywhere
object unset extends Literal("unset") with Anywhere
//
sealed trait BrWidth
object thin extends Literal("thin") with BrWidth
object medium extends Literal("medium") with BrWidth
object thick extends Literal("thick") with BrWidth
//
sealed trait BrStyle
object none extends Literal("none") with BrStyle
object hidden extends Literal("hidden") with BrStyle
object dotted extends Literal("dotted") with BrStyle
object dashed extends Literal("dashed") with BrStyle
object solid extends Literal("solid") with BrStyle
object double extends Literal("double") with BrStyle
object groove extends Literal("groove") with BrStyle
object ridge extends Literal("ridge") with BrStyle
object inset extends Literal("inset") with BrStyle
object outset extends Literal("outset") with BrStyle
//
sealed trait TimingFunctionDirection { def value: Value }
object start extends Literal("start") with TimingFunctionDirection
object end extends Literal("end") with TimingFunctionDirection
sealed trait TimingFunction
class cubicBezier(x1: Double, y1: Double, x2: Double, y2: Double) extends Literal(s"cubic-bezier($x1, $y1, $x2, $y2)") with TimingFunction
class steps(steps: Int, direction: TimingFunctionDirection) extends Literal(s"steps($steps, ${direction.value})") with TimingFunction
object linear extends Literal("linear") with TimingFunction
object ease extends Literal("ease") with TimingFunction
object easeIn extends Literal("ease-in") with TimingFunction
object easeInOut extends Literal("ease-in-out") with TimingFunction
object easeOut extends Literal("ease-out") with TimingFunction
object stepStart extends Literal("step-start") with TimingFunction
object stepEnd extends Literal("step-end") with TimingFunction
}
@inline def absolute : Value = "absolute"
@inline def active : Value = "active"
@inline def alias : Value = "alias"
@inline def all : Value = "all"
@inline def allPetiteCaps : Value = "all-petite-caps"
@inline def allScroll : Value = "all-scroll"
@inline def allSmallCaps : Value = "all-small-caps"
@inline def alternate : Value = "alternate"
@inline def alternateReverse : Value = "alternate-reverse"
@inline def always : Value = "always"
@inline def available : Value = "available"
@inline def avoid : Value = "avoid"
@inline def avoidColumn : Value = "avoid-column"
@inline def avoidPage : Value = "avoid-page"
@inline def backwards : Value = "backwards"
@inline def balance : Value = "balance"
@inline def baseline : Value = "baseline"
@inline def bidiOverride : Value = "bidi-override"
@inline def blink : Value = "blink"
@inline def block : Value = "block"
@inline def blockEnd : Value = "block-end"
@inline def blockStart : Value = "block-start"
@inline def bold : Value = "bold"
@inline def bolder : Value = "bolder"
@inline def borderBox : Value = "border-box"
@inline def both : Value = "both"
@inline def bottom : Value = "bottom"
@inline def breakAll : Value = "break-all"
@inline def breakWord : Value = "break-word"
@inline def capitalize : Value = "capitalize"
@inline def caption : Value = "caption"
@inline def cell : Value = "cell"
@inline def center : Value = "center"
@inline def clip : Value = "clip"
@inline def clone_ : Value = "clone"
@inline def closeQuote : Value = "close-quote"
@inline def collapse : Value = "collapse"
@inline def colResize : Value = "col-resize"
@inline def column : Value = "column"
@inline def columnReverse : Value = "column-reverse"
@inline def condensed : Value = "condensed"
@inline def contain : Value = "contain"
@inline def containFloats : Value = "contain-floats"
@inline def content : Value = "content"
@inline def contentBox : Value = "content-box"
@inline def contents : Value = "contents"
@inline def contextMenu : Value = "context-menu"
@inline def copy : Value = "copy"
@inline def cover : Value = "cover"
@inline def crispEdges : Value = "crisp-edges"
@inline def crosshair : Value = "crosshair"
@inline def default : Value = "default"
@inline def disabled : Value = "disabled"
@inline def ellipsis : Value = "ellipsis"
@inline def embed : Value = "embed"
@inline def eResize : Value = "e-resize"
@inline def ewResize : Value = "ew-resize"
@inline def expanded : Value = "expanded"
@inline def extraCondensed : Value = "extra-condensed"
@inline def extraExpanded : Value = "extra-expanded"
@inline def fill : Value = "fill"
@inline def fillAvailable : Value = "fill-available"
@inline def fitContent : Value = "fit-content"
@inline def fixed : Value = "fixed"
@inline def flat : Value = "flat"
@inline def flex : Value = "flex"
@inline def flexEnd : Value = "flex-end"
@inline def flexStart : Value = "flex-start"
@inline def flip : Value = "flip"
@inline def forwards : Value = "forwards"
@inline def fromImage : Value = "from-image"
@inline def fullWidth : Value = "full-width"
@inline def grab : Value = "grab"
@inline def grabbing : Value = "grabbing"
@inline def grid : Value = "grid"
@inline def help : Value = "help"
@inline def hide : Value = "hide"
@inline def historicalForms : Value = "historical-forms"
@inline def horizontal : Value = "horizontal"
@inline def horizontalTB : Value = "horizontal-tb"
@inline def icon : Value = "icon"
@inline def inactive : Value = "inactive"
@inline def infinite : Value = "infinite"
@inline def inline : Value = "inline"
@inline def inlineBlock : Value = "inline-block"
@inline def inlineEnd : Value = "inline-end"
@inline def inlineFlex : Value = "inline-flex"
@inline def inlineGrid : Value = "inline-grid"
@inline def inlineStart : Value = "inline-start"
@inline def inlineTable : Value = "inline-table"
@inline def inside : Value = "inside"
@inline def interCharacter : Value = "inter-character"
@inline def invert : Value = "invert"
@inline def isolate : Value = "isolate"
@inline def isolateOverride : Value = "isolate-override"
@inline def italic : Value = "italic"
@inline def justify : Value = "justify"
@inline def keepAll : Value = "keep-all"
@inline def left : Value = "left"
@inline def lighter : Value = "lighter"
@inline def lineThrough : Value = "line-through"
@inline def listItem : Value = "list-item"
@inline def loose : Value = "loose"
@inline def lowercase : Value = "lowercase"
@inline def ltr : Value = "ltr"
@inline def manipulation : Value = "manipulation"
@inline def manual : Value = "manual"
@inline def matchParent : Value = "match-parent"
@inline def maxContent : Value = "max-content"
@inline def menu : Value = "menu"
@inline def messageBox : Value = "message-box"
@inline def middle : Value = "middle"
@inline def minContent : Value = "min-content"
@inline def mixed : Value = "mixed"
@inline def move : Value = "move"
@inline def neResize : Value = "ne-resize"
@inline def neswResize : Value = "nesw-resize"
@inline def noCloseQuote : Value = "no-close-quote"
@inline def noDrop : Value = "no-drop"
@inline def noOpenQuote : Value = "no-open-quote"
@inline def normal : Value = "normal"
@inline def notAllowed : Value = "not-allowed"
@inline def nowrap : Value = "nowrap"
@inline def nResize : Value = "n-resize"
@inline def nsResize : Value = "ns-resize"
@inline def nwResize : Value = "nw-resize"
@inline def nwseResize : Value = "nwse-resize"
@inline def oblique : Value = "oblique"
@inline def openQuote : Value = "open-quote"
@inline def ordinal : Value = "ordinal"
@inline def outside : Value = "outside"
@inline def over : Value = "over"
@inline def overline : Value = "overline"
@inline def paddingBox : Value = "padding-box"
@inline def page : Value = "page"
@inline def panX : Value = "pan-x"
@inline def panY : Value = "pan-y"
@inline def paused : Value = "paused"
@inline def petiteCaps : Value = "petite-caps"
@inline def pixelated : Value = "pixelated"
@inline def plaintext : Value = "plaintext"
@inline def pointer : Value = "pointer"
@inline def pre : Value = "pre"
@inline def preLine : Value = "pre-line"
@inline def preserve3D : Value = "preserve-3d"
@inline def preWrap : Value = "pre-wrap"
@inline def progress : Value = "progress"
@inline def relative : Value = "relative"
@inline def repeat : Value = "repeat"
@inline def reverse : Value = "reverse"
@inline def right : Value = "right"
@inline def round : Value = "round"
@inline def row : Value = "row"
@inline def rowResize : Value = "row-resize"
@inline def rowReverse : Value = "row-reverse"
@inline def rtl : Value = "rtl"
@inline def ruby : Value = "ruby"
@inline def rubyBase : Value = "ruby-base"
@inline def rubyBaseContainer : Value = "ruby-base-container"
@inline def rubyText : Value = "ruby-text"
@inline def rubyTextContainer : Value = "ruby-text-container"
@inline def runIn : Value = "run-in"
@inline def running : Value = "running"
@inline def scaleDown : Value = "scale-down"
@inline def scroll : Value = "scroll"
@inline def semiCondensed : Value = "semi-condensed"
@inline def semiExpanded : Value = "semi-expanded"
@inline def separate : Value = "separate"
@inline def seResize : Value = "se-resize"
@inline def show : Value = "show"
@inline def sideways : Value = "sideways"
@inline def sidewaysLeft : Value = "sideways-left"
@inline def sidewaysRight : Value = "sideways-right"
@inline def slashedZero : Value = "slashed-zero"
@inline def slice : Value = "slice"
@inline def smallCaps : Value = "small-caps"
@inline def smallCaption : Value = "small-caption"
@inline def smooth : Value = "smooth"
@inline def spaceAround : Value = "space-around"
@inline def spaceBetween : Value = "space-between"
@inline def sResize : Value = "s-resize"
@inline def startEnd : Value = "start end"
@inline def static : Value = "static"
@inline def statusBar : Value = "status-bar"
@inline def sticky : Value = "sticky"
@inline def stretch : Value = "stretch"
@inline def strict : Value = "strict"
@inline def style : Value = "style"
@inline def sub : Value = "sub"
@inline def super_ : Value = "super"
@inline def swResize : Value = "sw-resize"
@inline def table : Value = "table"
@inline def tableCell : Value = "table-cell"
@inline def tableColumn : Value = "table-column"
@inline def tableColumnGroup : Value = "table-column-group"
@inline def tableFooterGroup : Value = "table-footer-group"
@inline def tableHeaderGroup : Value = "table-header-group"
@inline def tableRow : Value = "table-row"
@inline def tableRowGroup : Value = "table-row-group"
@inline def text : Value = "text"
@inline def textBottom : Value = "text-bottom"
@inline def textTop : Value = "text-top"
@inline def titlingCaps : Value = "titling-caps"
@inline def top : Value = "top"
@inline def ultraCondensed : Value = "ultra-condensed"
@inline def ultraExpanded : Value = "ultra-expanded"
@inline def under : Value = "under"
@inline def underline : Value = "underline"
@inline def unicase : Value = "unicase"
@inline def uppercase : Value = "uppercase"
@inline def upright : Value = "upright"
@inline def useGlyphOrientation: Value = "use-glyph-orientation"
@inline def vertical : Value = "vertical"
@inline def verticalLR : Value = "vertical-lr"
@inline def verticalRL : Value = "vertical-rl"
@inline def verticalText : Value = "vertical-text"
@inline def visible : Value = "visible"
@inline def wait_ : Value = "wait"
@inline def wavy : Value = "wavy"
@inline def weight : Value = "weight"
@inline def wrap : Value = "wrap"
@inline def wrapReverse : Value = "wrap-reverse"
@inline def wResize : Value = "w-resize"
@inline def zoomIn : Value = "zoom-in"
@inline def zoomOut : Value = "zoom-out"
@inline def xxSmall : Value = "xx-small"
@inline def sSmall : Value = "s-small"
@inline def small : Value = "small"
@inline def large : Value = "large"
@inline def xLarge : Value = "x-large"
@inline def xxLarge : Value = "xx-large"
@inline def larger : Value = "larger"
@inline def smaller : Value = "smaller"
}
// =====================================================================================================================
object Color extends ColorOps[ValueT[Color]] {
override protected def mkColor(s: String): ValueT[Color] =
apply(s)
@inline def apply(v: String): ValueT[Color] =
ValueT(v)
}
trait ColorOps[Out] {
protected def mkColor(s: String): Out
final def rgb(r: Int, g: Int, b: Int): Out =
mkColor(s"rgb($r,$g,$b)")
final def rgb(r: Percentage[_], g: Percentage[_], b: Percentage[_]): Out =
mkColor(s"rgb(${r.value},${g.value},${b.value})")
final def hsl(h: Int, s: Percentage[_], l: Percentage[_]): Out =
mkColor(s"hsl($h,${s.value},${l.value})")
final def rgba(r: Int, g: Int, b: Int, a: Double): Out =
mkColor(s"rgba($r,$g,$b,$a)")
final def hsla(h: Int, s: Percentage[_], l: Percentage[_], a: Double): Out =
mkColor(s"hsla($h,${s.value},${l.value},$a)")
final def grey(amount: Int): Out =
rgb(amount, amount, amount)
/**
* The currentColor keyword represents the calculated value of the element's color property. It allows to make the color properties inherited by properties or child's element properties that do not inherit it by default.
*
* It can also be used on properties that inherit the calculated value of the element's color property and will be equivalent to the inherit keyword on these elements, if any.
*/
final def currentColor = mkColor("currentColor")
/**
* The transparent keyword represents a fully transparent color, i.e. the color seen will be the background color.
* Technically, it is a black with alpha channel at its minimum value and is a shortcut for `rgba(0,0,0,0)`.
*/
final def transparent = mkColor("transparent")
final def aliceblue = mkColor("aliceblue")
final def antiquewhite = mkColor("antiquewhite")
final def aqua = mkColor("aqua")
final def aquamarine = mkColor("aquamarine")
final def azure = mkColor("azure")
final def beige = mkColor("beige")
final def bisque = mkColor("bisque")
final def black = mkColor("black")
final def blanchedalmond = mkColor("blanchedalmond")
final def blue = mkColor("blue")
final def blueviolet = mkColor("blueviolet")
final def brown = mkColor("brown")
final def burlywood = mkColor("burlywood")
final def cadetblue = mkColor("cadetblue")
final def chartreuse = mkColor("chartreuse")
final def chocolate = mkColor("chocolate")
final def coral = mkColor("coral")
final def cornflowerblue = mkColor("cornflowerblue")
final def cornsilk = mkColor("cornsilk")
final def crimson = mkColor("crimson")
final def cyan = mkColor("cyan")
final def darkblue = mkColor("darkblue")
final def darkcyan = mkColor("darkcyan")
final def darkgoldenrod = mkColor("darkgoldenrod")
final def darkgray = mkColor("darkgray")
final def darkgreen = mkColor("darkgreen")
final def darkgrey = mkColor("darkgrey")
final def darkkhaki = mkColor("darkkhaki")
final def darkmagenta = mkColor("darkmagenta")
final def darkolivegreen = mkColor("darkolivegreen")
final def darkorange = mkColor("darkorange")
final def darkorchid = mkColor("darkorchid")
final def darkred = mkColor("darkred")
final def darksalmon = mkColor("darksalmon")
final def darkseagreen = mkColor("darkseagreen")
final def darkslateblue = mkColor("darkslateblue")
final def darkslategray = mkColor("darkslategray")
final def darkslategrey = mkColor("darkslategrey")
final def darkturquoise = mkColor("darkturquoise")
final def darkviolet = mkColor("darkviolet")
final def deeppink = mkColor("deeppink")
final def deepskyblue = mkColor("deepskyblue")
final def dimgray = mkColor("dimgray")
final def dimgrey = mkColor("dimgrey")
final def dodgerblue = mkColor("dodgerblue")
final def firebrick = mkColor("firebrick")
final def floralwhite = mkColor("floralwhite")
final def forestgreen = mkColor("forestgreen")
final def fuchsia = mkColor("fuchsia")
final def gainsboro = mkColor("gainsboro")
final def ghostwhite = mkColor("ghostwhite")
final def gold = mkColor("gold")
final def goldenrod = mkColor("goldenrod")
final def gray = mkColor("gray")
final def green = mkColor("green")
final def greenyellow = mkColor("greenyellow")
final def grey = mkColor("grey")
final def honeydew = mkColor("honeydew")
final def hotpink = mkColor("hotpink")
final def indianred = mkColor("indianred")
final def indigo = mkColor("indigo")
final def ivory = mkColor("ivory")
final def khaki = mkColor("khaki")
final def lavender = mkColor("lavender")
final def lavenderblush = mkColor("lavenderblush")
final def lawngreen = mkColor("lawngreen")
final def lemonchiffon = mkColor("lemonchiffon")
final def lightblue = mkColor("lightblue")
final def lightcoral = mkColor("lightcoral")
final def lightcyan = mkColor("lightcyan")
final def lightgoldenrodyellow = mkColor("lightgoldenrodyellow")
final def lightgray = mkColor("lightgray")
final def lightgreen = mkColor("lightgreen")
final def lightgrey = mkColor("lightgrey")
final def lightpink = mkColor("lightpink")
final def lightsalmon = mkColor("lightsalmon")
final def lightseagreen = mkColor("lightseagreen")
final def lightskyblue = mkColor("lightskyblue")
final def lightslategray = mkColor("lightslategray")
final def lightslategrey = mkColor("lightslategrey")
final def lightsteelblue = mkColor("lightsteelblue")
final def lightyellow = mkColor("lightyellow")
final def lime = mkColor("lime")
final def limegreen = mkColor("limegreen")
final def linen = mkColor("linen")
final def magenta = mkColor("magenta")
final def maroon = mkColor("maroon")
final def mediumaquamarine = mkColor("mediumaquamarine")
final def mediumblue = mkColor("mediumblue")
final def mediumorchid = mkColor("mediumorchid")
final def mediumpurple = mkColor("mediumpurple")
final def mediumseagreen = mkColor("mediumseagreen")
final def mediumslateblue = mkColor("mediumslateblue")
final def mediumspringgreen = mkColor("mediumspringgreen")
final def mediumturquoise = mkColor("mediumturquoise")
final def mediumvioletred = mkColor("mediumvioletred")
final def midnightblue = mkColor("midnightblue")
final def mintcream = mkColor("mintcream")
final def mistyrose = mkColor("mistyrose")
final def moccasin = mkColor("moccasin")
final def navajowhite = mkColor("navajowhite")
final def navy = mkColor("navy")
final def oldlace = mkColor("oldlace")
final def olive = mkColor("olive")
final def olivedrab = mkColor("olivedrab")
final def orange = mkColor("orange")
final def orangered = mkColor("orangered")
final def orchid = mkColor("orchid")
final def palegoldenrod = mkColor("palegoldenrod")
final def palegreen = mkColor("palegreen")
final def paleturquoise = mkColor("paleturquoise")
final def palevioletred = mkColor("palevioletred")
final def papayawhip = mkColor("papayawhip")
final def peachpuff = mkColor("peachpuff")
final def peru = mkColor("peru")
final def pink = mkColor("pink")
final def plum = mkColor("plum")
final def powderblue = mkColor("powderblue")
final def purple = mkColor("purple")
final def red = mkColor("red")
final def rosybrown = mkColor("rosybrown")
final def royalblue = mkColor("royalblue")
final def saddlebrown = mkColor("saddlebrown")
final def salmon = mkColor("salmon")
final def sandybrown = mkColor("sandybrown")
final def seagreen = mkColor("seagreen")
final def seashell = mkColor("seashell")
final def sienna = mkColor("sienna")
final def silver = mkColor("silver")
final def skyblue = mkColor("skyblue")
final def slateblue = mkColor("slateblue")
final def slategray = mkColor("slategray")
final def slategrey = mkColor("slategrey")
final def snow = mkColor("snow")
final def springgreen = mkColor("springgreen")
final def steelblue = mkColor("steelblue")
final def tan = mkColor("tan")
final def teal = mkColor("teal")
final def thistle = mkColor("thistle")
final def tomato = mkColor("tomato")
final def turquoise = mkColor("turquoise")
final def violet = mkColor("violet")
final def wheat = mkColor("wheat")
final def white = mkColor("white")
final def whitesmoke = mkColor("whitesmoke")
final def yellow = mkColor("yellow")
final def yellowgreen = mkColor("yellowgreen")
final def rebeccapurple = mkColor("rebeccapurple")
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy