Newer
Older
kotlin-css-generator / src / commonMain / kotlin / nl / astraeus / css / Color.kt
rnentjes on 10 Feb 2020 1 KB Initial commit
package nl.astraeus.css

fun rgb(red: Int, green: Int, blue: Int): Color = RGBColor(red, green, blue)
fun rgba(red: Int, green: Int, blue: Int, alpha: Double): Color = RGBAColor(red, green, blue, alpha)
fun hsl(hue: Int, saturation: Int, lightness: Int): Color = HSLColor(hue, saturation, lightness)
fun hsla(hue: Int, saturation: Int, lightness: Int, alpha: Double): Color = HSLAColor(hue, saturation, lightness, alpha)

open class Color : CssProperty() {

    override fun css(): String = "#xxxxxx"

}

class RGBColor(
    val red: Int,
    val green: Int,
    val blue: Int
) : Color() {

    override fun css(): String = "rgb($red, $green, $blue)"

}

class RGBAColor(
    val red: Int,
    val green: Int,
    val blue: Int,
    val alpha: Double
) : Color() {

    override fun css(): String = "rgba($red, $green, $blue, $alpha)"

}

class HSLColor(
    val hue: Int,
    val saturation: Int,
    val lightness: Int
) : Color() {

    override fun css(): String = "hsl($hue, $saturation, $lightness)"

}

class HSLAColor(
    val hue: Int,
    val saturation: Int,
    val lightness: Int,
    val alpha: Double
) : Color() {

    override fun css(): String = "hsla($hue, $saturation, $lightness, $alpha)"

}