The tax code should be progressive for two main reasons.
#1 Same Basic Needs For Everyone
First, because everyone has basically the same biological needs, thus roughly requires the same amount of physical necessities to live at a basic level of comfort, it follows that everyone requires a certain amount of resources (usually denominated in currency) to provide for these necessities which they have little to no choice (little or no discretion) but to purchase. The lower the income level of an individual, the higher the percentage of their income is dedicated for such basic, non-discretionary needs. As income levels rise, a smaller percentage of such income is dedicated to meeting the basic needs like food, clothing and shelter. Conversely, as incomes rise, a larger percentage of that income is classified as discretionary, meaning that the earners can relatively easily choose to spend it on things other than essential elements.
#2 Those Who Benefit More, Pay More
Second, because governments have the responsibility to create and maintain stable social and economic environments that facilitate economic activity, thus higher standards of living (namely, greater discretionary income), it is reasonable to require those who have successfully worked to enjoy a greater realization of these potential benefits, to pay a higher tax rate as a form of compensation, acknowledgement and gratitude to the government and by extension to the greater society from which the government was formed.
Income Tax Makes Tax Code Progressive
Income, both for individuals and businesses, is the best single variable to target in order to make the tax code progressive. If done correctly, this should be the most significant manipulation of the tax code for purposes of making it more fairly progressive. However, another tool could be a luxury tax applied on luxury items, such as personal yachts and airplanes, mansions, high-end jewelry, etc.