Bulgaria is a member of the EU, so EU citizens need only ID Card.  Non-EU citizens need a visa and passport.

Warning! If you, as a non-EU citizen, hold a residence permit of an EU country or a Schengen visa, you DO still need a visa for Bulgaria because as of August 2013, the country doesn´t belong to the Schengen area yet. (However, if your travel/transit doesn't exceed 48 hours, you are allowed to be in the country without a Bulgarian visa but with an EU residence/visa).