diff options
-rw-r--r-- | src/css/cssvalues.nim | 8 | ||||
-rw-r--r-- | src/html/dom.nim | 2 | ||||
-rw-r--r-- | test/layout/color-functions.color.expected | 1 | ||||
-rw-r--r-- | test/layout/color-functions.html | 4 |
4 files changed, 10 insertions, 5 deletions
diff --git a/src/css/cssvalues.nim b/src/css/cssvalues.nim index 01d9bbd7..933b6c87 100644 --- a/src/css/cssvalues.nim +++ b/src/css/cssvalues.nim @@ -958,7 +958,7 @@ func getToken(cvals: openArray[CSSComponentValue]; i: int): Opt[CSSToken] = return ok(CSSToken(cval)) return err() -func parseARGB(value: openArray[CSSComponentValue]): Opt[CSSColor] = +proc parseARGB(value: openArray[CSSComponentValue]): Opt[CSSColor] = var commaMode = false var i = value.skipBlanks(0) template check_err(slash: bool) = @@ -995,7 +995,7 @@ func parseARGB(value: openArray[CSSComponentValue]): Opt[CSSColor] = clamp(CSSToken(value[i]).nvalue, 0, 1) else: 1 - if value.skipBlanks(i) < value.len: + if value.skipBlanks(i + 1) < value.len: return err() return ok(rgba(int(r), int(g), int(b), int(a * 255)).cssColor()) @@ -1038,7 +1038,7 @@ func parseANSI(value: openArray[CSSComponentValue]): Opt[CSSColor] = return ok(ANSIColor(i).cssColor()) return err() -func cssColor*(val: CSSComponentValue): Opt[CSSColor] = +proc parseColor*(val: CSSComponentValue): Opt[CSSColor] = if val of CSSToken: let tok = CSSToken(val) case tok.t @@ -1375,7 +1375,7 @@ proc parseValue(cvals: openArray[CSSComponentValue]; t: CSSPropertyType; of cvtListStyleType: set_bit listStyleType, ?parseIdent[CSSListStyleType](cval) of cvtFontStyle: set_bit fontStyle, ?parseIdent[CSSFontStyle](cval) - of cvtColor: set_word color, ?cssColor(cval) + of cvtColor: set_word color, ?parseColor(cval) of cvtLength: case t of cptMinWidth, cptMinHeight: diff --git a/src/html/dom.nim b/src/html/dom.nim index 167d4b74..494f2fbb 100644 --- a/src/html/dom.nim +++ b/src/html/dom.nim @@ -2831,7 +2831,7 @@ proc parseColor(element: Element; s: string): ARGBColor = let ec = rgba(255, 255, 255, 255) if cval.isNone: return ec - let color0 = cssColor(cval.get) + let color0 = parseColor(cval.get) if color0.isNone: return ec let color = color0.get diff --git a/test/layout/color-functions.color.expected b/test/layout/color-functions.color.expected new file mode 100644 index 00000000..b507512a --- /dev/null +++ b/test/layout/color-functions.color.expected @@ -0,0 +1 @@ +[38;2;100;200;30mtest[39m diff --git a/test/layout/color-functions.html b/test/layout/color-functions.html new file mode 100644 index 00000000..6947300e --- /dev/null +++ b/test/layout/color-functions.html @@ -0,0 +1,4 @@ +<!DOCTYPE html> +<div style="color: rgba(100, 200, 30, 1)"> +test +</div> |