Bug#1012480: ITP: golang-github-mazznoer-csscolorparser -- Go (Golang) CSS color parser library
Package: wnpp
Severity: wishlist
Owner: Chris Keller <xylo04@gmail.com>
* Package name : golang-github-mazznoer-csscolorparser
Version : 0.1.2-1
Upstream Author : Nor Khasyatillah
* URL : https://github.com/mazznoer/csscolorparser
* License : Expat
Programming Lang: Go
Description : Go (Golang) CSS color parser library
Golang CSS Color Parser Library
.
PkgGoDev (https://pkg.go.dev/github.com/mazznoer/csscolorparser) Build
Status (https://travis-ci.org/mazznoer/csscolorparser) Build Status
(https://github.com/mazznoer/csscolorparser/actions) go report
(https://goreportcard.com/report/github.com/mazznoer/csscolorparser)
codecov (https://codecov.io/gh/mazznoer/csscolorparser) Lines of Code
(https://github.com/mazznoer/csscolorparser)
.
Go (https://www.golang.org/) library for parsing CSS color string as
defined in the W3C's CSS Color Module Level 4 (https://www.w3.org/TR/css-
color-4/).
.
Supported Color Format
.
* Named colors (https://www.w3.org/TR/css-color-4/#named-colors)
* RGB hexadecimal (with and without # prefix)
* Short format #rgb
* Short format with alpha #rgba
* Long format #rrggbb
* Long format with alpha #rrggbbaa
* rgb() and rgba()
* hsl() and hsla()
* hwb()
* hwba(), hsv(), hsva() - not in CSS standard.
.
Not yet supported: lab(), lch().
.
Example Color Format
.
transparent
lime
#0f0
#0f0f
#00ff00
#00ff00ff
rgb(0,255,0)
rgb(0% 100% 0%)
rgb(0 255 0 / 100%)
rgba(0,255,0,1)
hsl(120,100%,50%)
hsl(120deg 100% 50%)
hsl(-240 100% 50%)
hsl(-240deg 100% 50%)
hsl(0.3333turn 100% 50%)
hsl(133.333grad 100% 50%)
hsl(2.0944rad 100% 50%)
hsla(120,100%,50%,100%)
hwb(120 0% 0%)
hwb(480deg 0% 0% / 100%)
hsv(120,100%,100%)
hsv(120deg 100% 100% / 100%)
.
Usage Examples
.
import "github.com/mazznoer/csscolorparser"
.
c, err := csscolorparser.Parse("gold")
.
if err != nil {
panic(err)
}
.
fmt.Printf("R:%.3f, G:%.3f, B:%.3f, A:%.3f", c.R, c.G, c.B, c.A) //
R:1.000, G:0.843, B:0.000, A:1.000
fmt.Println(c.RGBA255()) // 255 215 0 255
fmt.Println(c.HexString()) // #ffd700
fmt.Println(c.RGBString()) // rgb(255,215,0)
.
Try It Online
.
* Playground 1 (https://play.golang.org/p/8KMIc1TLQB0)
* Playground 2 (https://play.golang.org/p/7kb62KSARwa)
.
Similar Projects
.
* csscolorparser (https://github.com/mazznoer/csscolorparser-rs) (Rust)
* csscolorparser (https://github.com/deanm/css-color-parser-js)
(Javascript)
Reply to: