@@ -1708,18 +1708,18 @@ export function test_CascadingClassNamesAppliesAfterPageLoad() {
1708
1708
export function test_evaluateCssCalcExpression ( ) {
1709
1709
TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(1px + 1px)' ) , '2px' , 'Simple calc (1)' ) ;
1710
1710
TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(50px - (20px - 30px))' ) , '60px' , 'Simple calc (2)' ) ;
1711
- TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(100px - (100px - 100%))' ) , '100%' , 'Simple calc (3)' ) ;
1712
- TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(100px + (100px - 100%))' ) , 'calc(200px - 100%)' , 'Simple calc (4)' ) ;
1713
- TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(100% - 10px + 20px)' ) , 'calc(100% + 10px)' , 'Simple calc (5)' ) ;
1714
- TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(100% + 10px - 20px)' ) , 'calc(100% - 10px)' , 'Simple calc (6)' ) ;
1715
- TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(10.px + .0px)' ) , '10px ' , 'Simple calc (8)' ) ;
1711
+ TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(100px - (100px - 100%))' ) , 'calc(100px - (100px - 100%)) ' , 'Simple calc (3)' ) ;
1712
+ TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(100px + (100px - 100%))' ) , 'calc(100px + (100px - 100%) )' , 'Simple calc (4)' ) ;
1713
+ TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(100% - 10px + 20px)' ) , 'calc(100% - 10px + 20px )' , 'Simple calc (5)' ) ;
1714
+ TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(100% + 10px - 20px)' ) , 'calc(100% + 10px - 20px )' , 'Simple calc (6)' ) ;
1715
+ TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(10.px + .0px)' ) , 'calc(10.px + .0px) ' , 'Simple calc (8)' ) ;
1716
1716
TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'a calc(1px + 1px)' ) , 'a 2px' , 'Ignore value surrounding calc function (1)' ) ;
1717
1717
TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(1px + 1px) a' ) , '2px a' , 'Ignore value surrounding calc function (2)' ) ;
1718
1718
TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'a calc(1px + 1px) b' ) , 'a 2px b' , 'Ignore value surrounding calc function (3)' ) ;
1719
1719
TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'a calc(1px + 1px) b calc(1em + 2em) c' ) , 'a 2px b 3em c' , 'Ignore value surrounding calc function (4)' ) ;
1720
1720
TKUnit . assertEqual ( _evaluateCssCalcExpression ( `calc(\n1px \n* 2 \n* 1.5)` ) , '3px' , 'Handle new lines' ) ;
1721
1721
TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(1/100)' ) , '0.01' , 'Handle precision correctly (1)' ) ;
1722
- TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(5/1000000)' ) , '0.00001 ' , 'Handle precision correctly (2)' ) ;
1722
+ TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(5/1000000)' ) , '0.000005 ' , 'Handle precision correctly (2)' ) ;
1723
1723
TKUnit . assertEqual ( _evaluateCssCalcExpression ( 'calc(5/100000)' ) , '0.00005' , 'Handle precision correctly (3)' ) ;
1724
1724
}
1725
1725
@@ -1826,6 +1826,37 @@ export function test_nested_css_calc() {
1826
1826
TKUnit . assertDeepEqual ( stack . width , { unit : '%' , value : 0.5 } , 'Stack - width === 50%' ) ;
1827
1827
}
1828
1828
1829
+ export function test_evaluateCssColorMixExpression ( ) {
1830
+ TKUnit . assertEqual ( new Color ( 'color-mix(in lch longer hue, hsl(200deg 50% 80%), coral)' ) . toRgbString ( ) , 'rgba(136, 202, 134, 1.00)' , 'Color mix (1)' ) ;
1831
+ TKUnit . assertEqual ( new Color ( 'color-mix(in hsl, hsl(200 50 80), coral 80%)' ) . toRgbString ( ) , 'rgba(247, 103, 149, 1.00)' , 'Color mix (2)' ) ;
1832
+ TKUnit . assertEqual ( new Color ( 'color-mix(in srgb, plum, #f00)' ) . toRgbString ( ) , 'rgba(238, 80, 110, 1.00)' , 'Color mix (4)' ) ;
1833
+ TKUnit . assertEqual ( new Color ( 'color-mix(in lab, plum 60%, #f00 50%)' ) . toRgbString ( ) , 'rgba(247, 112, 125, 1.00)' , 'Color mix (5)' ) ;
1834
+ TKUnit . assertEqual ( new Color ( 'color-mix(in --swop5c, red, blue)' ) . toRgbString ( ) , 'rgba(0, 0, 255, 0.00)' , 'Color mix (6)' ) ;
1835
+ }
1836
+
1837
+ export function test_nested_css_color_mix ( ) {
1838
+ const page = helper . getClearCurrentPage ( ) ;
1839
+
1840
+ const stack = new StackLayout ( ) ;
1841
+ stack . css = `
1842
+ StackLayout.coral {
1843
+ background-color: color-mix(in hsl, hsl(200 50 80), coral 80%);
1844
+ }
1845
+ ` ;
1846
+
1847
+ const label = new Label ( ) ;
1848
+ page . content = stack ;
1849
+ stack . addChild ( label ) ;
1850
+
1851
+ stack . className = 'coral' ;
1852
+
1853
+ TKUnit . assertEqual ( ( stack . backgroundColor as Color ) . toRgbString ( ) , 'rgba(247, 103, 149, 1.00)' , 'Stack - backgroundColor === color-mix(in hsl, hsl(200 50 80), coral 80%)' ) ;
1854
+
1855
+ ( stack as any ) . style = `background-color: color-mix(in --swop5c, red, blue);` ;
1856
+
1857
+ TKUnit . assertDeepEqual ( ( stack . backgroundColor as Color ) . toRgbString ( ) , 'rgba(0, 0, 255, 0.00)' , 'Stack - backgroundColor === color-mix(in --swop5c, red, blue)' ) ;
1858
+ }
1859
+
1829
1860
export function test_css_variables ( ) {
1830
1861
const blackColor = '#000000' ;
1831
1862
const redColor = '#FF0000' ;
0 commit comments