How to build an accessible Logo in React

The bare mark carries role="img" and a <title> so it is announced as "cascivo"; in a lockup the wordmark is real text, so the mark goes aria-hidden rather than announcing the name twice

When to use a Logo

When not to use it

Accessibility

Role img, verified at WCAG 2.2-AA.

Common mistakes

Avoid: <img src="/logo.svg" alt="cascivo" />

Prefer: <Logo variant="horizontal" />

currentColor and --cascivo-color-accent only resolve when the SVG is inline, so an <img> cannot follow the theme

Avoid: <Logo variant="mark" style={{ transform: "scaleX(1.4)" }} />

Prefer: <Logo variant="mark" size={48} />

The mark is always 1:1 and never scales on one axis

Avoid: Wrapping the logo in chrome that sets text-transform: uppercase

Prefer: Leave the wordmark lowercase — the component pins text-transform: none

The wordmark is lowercase cascivo; uppercasing it is a misuse of the mark

Example

<Logo />

See the full Logo reference →