33import Color from "colorjs.io" ;
44import type {
55 Angle ,
6- BorderBlockColor ,
76 BorderSideWidth ,
87 BorderStyle ,
98 ColorOrAuto ,
@@ -92,7 +91,7 @@ const parsers: {
9291 "block-size" : parseSizeDeclaration ,
9392 "border" : parseBorder ,
9493 "border-block" : parseBorderBlock ,
95- "border-block-color" : parseBorderBlockColor ,
94+ "border-block-color" : parseBorderColor ,
9695 "border-block-end" : parseBorderBlockEnd ,
9796 "border-block-end-color" : parseColorDeclaration ,
9897 "border-block-end-width" : parseBorderSideWidthDeclaration ,
@@ -111,7 +110,7 @@ const parsers: {
111110 "border-end-end-radius" : parseSize2DDimensionPercentageDeclaration ,
112111 "border-end-start-radius" : parseSize2DDimensionPercentageDeclaration ,
113112 "border-inline" : parseBorderInline ,
114- "border-inline-color" : parseBorderBlockColor ,
113+ "border-inline-color" : parseBorderColor ,
115114 "border-inline-end" : parseBorderInlineEnd ,
116115 "border-inline-end-color" : parseColorDeclaration ,
117116 "border-inline-end-style" : parseBorderInlineStyle ,
@@ -352,15 +351,41 @@ function parseBorderRadius(
352351}
353352
354353function parseBorderColor (
355- { value } : DeclarationType < "border-color" > ,
354+ declaration : DeclarationType <
355+ "border-color" | "border-block-color" | "border-inline-color"
356+ > ,
356357 builder : StylesheetBuilder ,
357358) {
358- builder . addShorthand ( "border-color" , {
359- "border-top-color" : parseColor ( value . top , builder ) ,
360- "border-bottom-color" : parseColor ( value . bottom , builder ) ,
361- "border-left-color" : parseColor ( value . left , builder ) ,
362- "border-right-color" : parseColor ( value . right , builder ) ,
363- } ) ;
359+ switch ( declaration . property ) {
360+ case "border-color" :
361+ builder . addShorthand ( "border-color" , {
362+ "border-top-color" : parseColor ( declaration . value . top , builder ) ,
363+ "border-bottom-color" : parseColor ( declaration . value . bottom , builder ) ,
364+ "border-left-color" : parseColor ( declaration . value . left , builder ) ,
365+ "border-right-color" : parseColor ( declaration . value . right , builder ) ,
366+ } ) ;
367+ break ;
368+ case "border-block-color" :
369+ builder . addDescriptor (
370+ "border-top-color" ,
371+ parseColor ( declaration . value . start , builder ) ,
372+ ) ;
373+ builder . addDescriptor (
374+ "border-bottom-color" ,
375+ parseColor ( declaration . value . end , builder ) ,
376+ ) ;
377+ break ;
378+ case "border-inline-color" :
379+ builder . addDescriptor (
380+ "border-left-color" ,
381+ parseColor ( declaration . value . start , builder ) ,
382+ ) ;
383+ builder . addDescriptor (
384+ "border-right-color" ,
385+ parseColor ( declaration . value . end , builder ) ,
386+ ) ;
387+ break ;
388+ }
364389}
365390
366391function parseBorderWidth (
@@ -1948,15 +1973,6 @@ export function parseBorderStyle(
19481973 return undefined ;
19491974}
19501975
1951- export function parseBorderBlockColor (
1952- { value } : { value : BorderBlockColor } ,
1953- builder : StylesheetBuilder ,
1954- ) {
1955- builder . addDescriptor ( "border-top-color" , parseColor ( value . start , builder ) ) ;
1956- builder . addDescriptor ( "border-bottom-color" , parseColor ( value . end , builder ) ) ;
1957- return ;
1958- }
1959-
19601976export function parseBorderBlockWidth (
19611977 declaration : DeclarationType < "border-block-width" > ,
19621978 builder : StylesheetBuilder ,
0 commit comments