def condense_hex_colors(css):
 regex = re.compile('([^\\"\'=\\s])(\\s*)#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])')
 match = regex.search(css)
 while match:
  first = ((match.group(3) + match.group(5)) + match.group(7))
  second = ((match.group(4) + match.group(6)) + match.group(8))
  if (first.lower() == second.lower()):
   css = css.replace(match.group(), (((match.group(1) + match.group(2)) + '#') + first))
   match = regex.search(css, (match.end() - 3))
  else:
   match = regex.search(css, match.end())
 return css

def condense_hex_colors ( css ) : regex = re . compile ( '([^\\"\'=\\s])(\\s*)#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])' ) match = regex . search ( css ) while match : first = ( ( match . group ( 3 ) + match . group ( 5 ) ) + match . group ( 7 ) ) second = ( ( match . group ( 4 ) + match . group ( 6 ) ) + match . group ( 8 ) ) if ( first . lower ( ) == second . lower ( ) ) : css = css . replace ( match . group ( ) , ( ( ( match . group ( 1 ) + match . group ( 2 ) ) + '#' ) + first ) ) match = regex . search ( css , ( match . end ( ) - 3 ) ) else : match = regex . search ( css , match . end ( ) ) return css
shorten colors from #aabbcc to #abc where possible .