@@ -362,6 +362,11 @@ fn optimize_color(value: &str) -> String {
362362 if ch[ 0 ] == ch[ 1 ] && ch[ 2 ] == ch[ 3 ] && ch[ 4 ] == ch[ 5 ] {
363363 ret = format ! ( "{}{}{}" , ch[ 0 ] , ch[ 2 ] , ch[ 4 ] ) ;
364364 }
365+ } else if ret. len ( ) == 8 {
366+ let ch = ret. chars ( ) . collect :: < Vec < char > > ( ) ;
367+ if ch[ 0 ] == ch[ 1 ] && ch[ 2 ] == ch[ 3 ] && ch[ 4 ] == ch[ 5 ] && ch[ 6 ] == ch[ 7 ] {
368+ ret = format ! ( "{}{}{}{}" , ch[ 0 ] , ch[ 2 ] , ch[ 4 ] , ch[ 6 ] ) ;
369+ }
365370 }
366371
367372 format ! ( "#{}" , ret)
@@ -568,11 +573,25 @@ mod tests {
568573 sheet_to_classname( "background" , 0 , Some ( "#FFF" ) , None , None ) ,
569574 ) ;
570575
576+ {
577+ let map = GLOBAL_CLASS_MAP . lock ( ) . unwrap ( ) ;
578+ assert_eq ! ( map. get( "background-0-#FFF--255" ) , Some ( & 3 ) ) ;
579+ }
580+
571581 assert_eq ! (
572582 sheet_to_classname( "background" , 0 , Some ( "#ffffff" ) , None , None ) ,
573583 sheet_to_classname( "background" , 0 , Some ( "#FFFFFF" ) , None , None ) ,
574584 ) ;
575585
586+ assert_eq ! (
587+ sheet_to_classname( "background" , 0 , Some ( "#ffffffAA" ) , None , None ) ,
588+ sheet_to_classname( "background" , 0 , Some ( "#FFFFFFaa" ) , None , None ) ,
589+ ) ;
590+
591+ {
592+ let map = GLOBAL_CLASS_MAP . lock ( ) . unwrap ( ) ;
593+ assert_eq ! ( map. get( "background-0-#FFFA--255" ) , Some ( & 4 ) ) ;
594+ }
576595 assert_eq ! (
577596 sheet_to_classname(
578597 "background" ,
0 commit comments