improved color parsing from string