Identity system · 01

Maestro identity A visual identity for cultural institutions, applied across concert information, ticket access, and membership.
02

Principles

Type

Set headlines and body text in FT System Blank. Do not add a third typeface. The current cut is a trial and covers a limited character set, so accented names fall back to Lab Grotesque. Check names such as Măcelaru at their real size before approving a layout.

Color

Use Maestro Red for the primary action and the active tab. Do not place it directly against ink; the two measure 1.56:1 and will not separate. Build everything else from the gray ramp.

Grouping

Group related content in a card rather than dividing it with a line. A set of values describing one thing is a single card. A list of separate items is one card per item.

Buttons

Three levels, all on Radius/Button 8. Primary fills with Maestro Red. Secondary fills with Gray 100. Tertiary has no fill and is used for low-emphasis actions placed inside other content, such as View all or Clear all. Change the fill between states, not the shape or size.

Depth

Separate content with a change of background rather than a divider. Cards are white on the Gray 100 background, with no border and no shadow. Overlays and sheets use a solid background so the controls inside them stay legible.

03

Accessibility

Contrast ratios below are calculated from the current token values against the Gray 100 background. They are a design requirement, not a completed accessibility audit: keyboard order, screen-reader labels, and motion preferences still need testing.

18.59:1Ink on Gray 100
12.94:1White on Maestro Red
12.65:1Gray 500 on Gray 100
11.88:1Maestro Red on Gray 100
7.42:1Gray 400 on Gray 100
2.99:1Gray 300 on white, fails
2.75:1Gray 300 on Gray 100, fails
1.56:1Maestro Red on ink, never
Gray 300 does not pass for text

Gray 300 measures 2.75:1 on the Gray 100 background and 2.99:1 on white, below the 4.5:1 needed for body text. It is currently used for secondary labels and inactive tab labels. Either darken those to Gray 400 or restrict Gray 300 to non-text use.

Do not place Maestro Red on ink

Maestro Red and ink are close in lightness, so red placed directly on ink is unreadable and stops reading as a color. Place Maestro Red on white or on the Gray 100 background.

Use one focus style

Every control needs one visible focus style, applied consistently. The current build uses a 1.5px outline on most controls and a 3px outline in one place; this needs to be reconciled to a single value.

Keep every target at 44px

Draw a control at the size the design calls for, then extend its tappable area to at least 44 by 44 points. Do not enlarge the visible control to reach the number.

Clear the home indicator

Pad the tab bar so labels clear the home indicator. env(safe-area-inset-bottom) returns zero in a browser mock, so the build applies a 30px minimum. Check it on a device.

04

Mark

HarmonyPass
The pass mark is a lockup, not artwork

Harmony Pass is set in the interface sans with the nav-membership silhouette in a 30px plate. There is no separate file: it is drawn from the icon set and the type scale, so a change to either carries. It appears on the two pass cards and nowhere else — the app is the orchestra’s, and a product mark competing with the CSO wordmark in a header would say otherwise.

One artwork

Eight outlined paths on a 1025 × 132 viewBox, with no live text, so the mark carries no font dependency. It is inlined once as a <symbol> and referenced wherever it appears.

Let the mark take its context

The mark inherits currentColor, so it takes Maestro Red on light backgrounds and white on dark ones. Do not recolor the artwork.

Do not set the mark below 18px

Below 18px the stacked bars in the symbol stop separating. In this prototype the Maestro mark appears at 42px on the splash screen, in the marketing screen header, and in this documentation.

Keep the clear space

Leave clear space on all four sides equal to half the height of the lockup, measured from its bounding box. Place nothing inside that area.

05

Color

Primary

White#FFFFFF
Black#060607
Maestro Red#690218
Maestro Blue#B9D7F6

UI · Red

Red 100#E5A1A3
Red 200#D16265
Red 300#A01F3B
Red 400#690218
Red 500#3A000D

UI · Blue

Blue 100#DBE8F6
Blue 200#B9D7F6
Blue 300#8EB3D9
Blue 400#658DB5
Blue 500#365B82

UI · Yellow

Yellow 100#FFE4AE
Yellow 200#F3CF85
Yellow 300#D7B063
Yellow 400#B38A39
Yellow 500#87641F

UI · Green

Green 100#CADEB4
Green 200#B4C699
Green 300#94A77A
Green 400#7A8C61
Green 500#606E46
06

Grayscale

Gray 100#F6F5F3
Gray 200#CBCAC8
Gray 300#969593
Gray 400#50504E
Gray 500#2D2D2C
07

Typography

Display and UI · FT System Blank

Maestro

AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRr SsTtUuVvWwXxYyZzSemibold · 600
AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRr SsTtUuVvWwXxYyZzMedium · 500
AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRr SsTtUuVvWwXxYyZzRegular · 400
UI · FT System, falling back to Lab Grotesque

Member pass ready

Tonight · 7:30 PM · Music Hall

The trial cut covers the alphabet, digits, space, comma, and period. Every other character falls back to Lab Grotesque through a unicode-range, so the switch is defined in the stylesheet rather than left to the browser.

Read Măcelaru closely: the M, c, e, l, a, r and u are FT System, the ă is Lab Grotesque. Assume every accented name in the catalog does this until the full cut is licensed.

08

Photography

Use performance photography with long exposures: a bow mid-stroke, a hand leaving a key, an audience in motion under stage lighting. No posed shots and no one looking at the camera.

Four reference frames: a blurred brass player in rust, a backlit crowd under amber rays, hands on strings smeared in cool green, and a stage under a cold blue spotlight
Canon · the direction, four frames
Hands on strings, smeared by a long exposure under stage light
In app · splash
A stage under a single spotlight, orchestra silhouetted against a lit scrim
In app · event hero
09

Motion

160mspressTransform on tap
180mscolorHover and state
280msscreenEntry between screens
700msambientSplash focus, letter drift
Use one curve

cubic-bezier(.22, 1, .36, 1). It slows quickly and settles, which suits a screen arriving. Do not add a second curve.

Animate a state change, nothing else

The build defines five animations: a screen entering at 280ms, a sheet at 320ms, an overlay fade at 240ms, and two ambient effects on the splash screen. Most transitions run at 160 to 180ms. Animate a change of state; if a motion is not tracking something that changed, remove it.

Branch on reduced motion

Under prefers-reduced-motion, reduce every duration to .01ms, including the ambient splash animations.

10

Voice

Doors open at 6:30.

Not “Your unforgettable evening awaits.” Say what the member needs.