@@ -130,7 +130,7 @@ const parsers: {
130130 "bottom" : parseSizeDeclaration ,
131131 "box-shadow" : parseBoxShadow ,
132132 "caret-color" : parseColorOrAuto ,
133- "color" : parseColorDeclaration ,
133+ "color" : parseFontColorDeclaration ,
134134 "column-gap" : parseGap ,
135135 "container" : parseContainer ,
136136 "container-name" : parseContainerName ,
@@ -836,6 +836,10 @@ export function parseDeclarationUnparsed(
836836 if ( property === "font-size" ) {
837837 builder . addDescriptor ( "--__rn-css-em" , value ) ;
838838 }
839+
840+ if ( property === "color" ) {
841+ builder . addDescriptor ( "--__rn-css-current-color" , value ) ;
842+ }
839843 }
840844}
841845
@@ -940,6 +944,8 @@ export function parseUnparsed(
940944 return true ;
941945 } else if ( tokenOrValue === "false" ) {
942946 return false ;
947+ } else if ( tokenOrValue === "currentcolor" ) {
948+ return [ { } , "var" , "__rn-css-current-color" ] as const ;
943949 } else {
944950 return tokenOrValue ;
945951 }
@@ -1033,6 +1039,8 @@ export function parseUnparsed(
10331039 if ( value === "inherit" ) {
10341040 builder . addWarning ( "value" , value ) ;
10351041 return ;
1042+ } else if ( value === "currentcolor" ) {
1043+ return [ { } , "var" , "__rn-css-current-color" ] as const ;
10361044 }
10371045
10381046 if ( value === "true" ) {
@@ -1324,11 +1332,26 @@ export function parseColorOrAuto(
13241332 }
13251333}
13261334
1335+ export function parseFontColorDeclaration (
1336+ declaration : Extract < Declaration , { value : CssColor } > ,
1337+ builder : StylesheetBuilder ,
1338+ ) {
1339+ parseColorDeclaration ( declaration , builder ) ;
1340+
1341+ builder . addDescriptor (
1342+ "--__rn-css-color" ,
1343+ parseColor ( declaration . value , builder ) ,
1344+ ) ;
1345+ }
1346+
13271347export function parseColorDeclaration (
1328- declaration : { value : CssColor } ,
1348+ declaration : Extract < Declaration , { value : CssColor } > ,
13291349 builder : StylesheetBuilder ,
13301350) {
1331- return parseColor ( declaration . value , builder ) ;
1351+ builder . addDescriptor (
1352+ declaration . property ,
1353+ parseColor ( declaration . value , builder ) ,
1354+ ) ;
13321355}
13331356
13341357export function parseColor ( cssColor : CssColor , builder : StylesheetBuilder ) {
@@ -1345,8 +1368,7 @@ export function parseColor(cssColor: CssColor, builder: StylesheetBuilder) {
13451368
13461369 switch ( cssColor . type ) {
13471370 case "currentcolor" :
1348- builder . addWarning ( "value" , cssColor . type ) ;
1349- return ;
1371+ return [ { } , "var" , "__rn-css-current-color" ] as const ;
13501372 case "light-dark" :
13511373 // TODO: Handle light-dark colors
13521374 return ;
0 commit comments