1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package css
- import "github.com/tdewolff/parse/v2"
- // IsIdent returns true if the bytes are a valid identifier.
- func IsIdent(b []byte) bool {
- l := NewLexer(parse.NewInputBytes(b))
- l.consumeIdentToken()
- l.r.Restore()
- return l.r.Pos() == len(b)
- }
- // IsURLUnquoted returns true if the bytes are a valid unquoted URL.
- func IsURLUnquoted(b []byte) bool {
- l := NewLexer(parse.NewInputBytes(b))
- l.consumeUnquotedURL()
- l.r.Restore()
- return l.r.Pos() == len(b)
- }
- // HSL2RGB converts HSL to RGB with all of range [0,1]
- // from http://www.w3.org/TR/css3-color/#hsl-color
- func HSL2RGB(h, s, l float64) (float64, float64, float64) {
- m2 := l * (s + 1)
- if l > 0.5 {
- m2 = l + s - l*s
- }
- m1 := l*2 - m2
- return hue2rgb(m1, m2, h+1.0/3.0), hue2rgb(m1, m2, h), hue2rgb(m1, m2, h-1.0/3.0)
- }
- func hue2rgb(m1, m2, h float64) float64 {
- if h < 0.0 {
- h += 1.0
- }
- if h > 1.0 {
- h -= 1.0
- }
- if h*6.0 < 1.0 {
- return m1 + (m2-m1)*h*6.0
- } else if h*2.0 < 1.0 {
- return m2
- } else if h*3.0 < 2.0 {
- return m1 + (m2-m1)*(2.0/3.0-h)*6.0
- }
- return m1
- }
|