transitive color change