Reportedly, Sean Penn was arrested on 2nd April 1987 and spent close to a month (33 days) in jail for assault after hitting an extra on the set of this film who was taking snapshots of Penn without his permission.
The original script by Richard Di Lello took place in Chicago and was more about drug dealing than gang members. Dennis Hopper ordered changes, so Michael Schiffer was hired and the setting was changed to Los Angeles and the focus of the story became more about the world of gang members.
Critics complained that the scene showing the funeral being disrupted by gang gunfire was unrealistic. According to the filmmakers, shortly after the scene wrapped, a church service a short distance away actually was disrupted by gang gunfire.
After working alongside Mickey Rourke on Rumble Fish (1983), Dennis Hopper was so impressed with his abilities that he told Rourke he wanted him as his leading man for his next two directing projects which would have started with Colors (1988) with Rourke in the lead role as Officer Danny McGavin. Although it was informally agreed to by Rourke, when time came for filming, Rourke was immersed in other projects, and so Hopper cast Sean Penn instead.
The movie's opening prologue states: "The Los Angeles Police Department and the Los Angeles County Sheriff's Department each has a gang crime division. The Police Department's division is called C.R.A.S.H (Community Resources Against Street Hoodlums) and the Sheriff's division is called O.S.S (Operation Safe Streets). The combined anti-gang force numbers 250 men and women. In the greater Los Angeles area there are over 600 street gangs with almost 70,000 members. Last year there were 387 gang-related killings".
The house where Robert Craig (Brian Davis) was shot in the beginning was filmed only ½ mile (¾Km) from where Michael Douglas character fired the rocket launcher in Falling Down (1993). That must be a really dangerous neighborhood.