Die genaue Herkunft des Schweizer Kreuzes ist nicht geklärt. Mindestens seit 1339 wurde ein weisses Kreuz auf Fahnen in Schlachten angewandt. 1450 wurde erstmals ein Kreuz zum Nationalzeichen – davor gab es nur Kantonswappen. Die Arme des Schweizer Kreuzes waren damals noch schmal und durchgehend zum Rand, woher auch das Kreuz auf dem Kantonswappen von Schwyz kommt. Der Hintergrund war teils rot, teils andersfarbig.

Um 1800 wurde für wenige Jahre eine dreifarbige Fahne (siehe oben rechts) als nationale Fahne festgelegt. Seit 1815 ist das Kreuz mit dünnen Armen das offizielle Wappen der Schweiz, seit 1841 mit breiten Armen.
Erst seit 2017 wurden Form und Farbe gesetzlich verankert: Ausser auf See muss die Schweizer Fahne quadratisch sein. Der rote Hintergrund wird auf «Pantone 485C/ 485U» festgelegt, was im HEX-Code «#FF0000» entspricht, der beispielsweise in Websites angewandt wird.