Karlsruhe's theater may not be one of the big famous opera houses but it's not bad either! Advantage: tickets are affordable.
The theatre building at Ettlinger Tor contains two theatres, "Großes Haus" which shows opera, ballet and drama, plus the orchestra's classical concerts one a month, and "Kleines Haus" which shows mostly modern plays that attract a smaller audience. Besides, there is the "Insel" an Karlstraße which shows modern plays and experimental theatre.
The 1970's architecture may not be to everybody's liking. The steep auditorium, however, provides undisturbed visibility from all seats. Which means that you can buy cheap tickets (my favourite: the back rows of the "Parkett") and still have a perfect view of the stage.
Tickets can be booked online (see website).
Karlsruhe theater's speciality is a cup of "Rote Grütze", a compote-like dessert of North-German origin made from red berries and served with vanilla sauce, which is sold at the champagne and drinks counter during the intermissions.
Dress Code: Dress code in German theatres seems to be a thing of the past. Unfortunately, because an elegant audience adds a lot to the festivity.
Anyway, wear what you like, as long as it is (or looks) clean. For modern plays, no one cares. For performances in the "Großes Haus" I'd suggest choosing some 'better' clothes, if you have any. No hiking boots and no flipflops, please.
The Badisches Staatstheater (State Theater of Baden) is both theater and opera house. It can look back to a long tradition all the way back to 1715, when a theater was established inside the Karlsruhe palace. Since then there have been several buildings that housed the theater, the latest of which is the recent Staatstheater.
It was planned in 1964, but was not finished and opened until 1975! It is a modern building, not very pretty in my honest opinion, but the ballets, operas and plays we have seen there were excellent!
Dress Code: There were times when there was no real dress code, but nowadays the Karlsruhe audience tends to dress up again!