Logos

Brand primitives for rendering the Rogo mark, and the co-brand slot.

Marks

RogoGlyph
RogoIcon
RogoLogo
Created by Rogo
RogoMark
RogoLogoMatrix

Overview

@rogo-technologies/ui/logos/* is the single source of truth for Rogo's marks. Every surface — web app, Excel add-in, internal tools, this design system — renders them from here, so a brand refresh is one edit in one package rather than a hunt through app code.

Never copy the path data into an app, and never add a static logo file to an app's public/ directory. If a surface needs a variation the primitives don't cover, add it here.

tsx
import { RogoGlyph, RogoIcon, RogoLogo, RogoMark } from "@rogo-technologies/ui/logos/rogo";
import { RogoLogoMatrix } from "@rogo-technologies/ui/rogo-logo-matrix";
PrimitiveUse it for
RogoGlyphThe bare icon artwork, no chrome. Inherits currentColor and fills its box.
RogoIconThe icon on its brand plate — app chrome, avatars, compact spaces.
RogoLogoThe wordmark on its brand plate — headers, sidebars, onboarding.
RogoMarkInline attribution beside a label ("Created by Rogo").
RogoLogoMatrixThe animated loading mark for agent work in progress.

For downloadable files (SVG, PNG at 1x/2x/4x) see Assets. For clear space, minimum sizes, and misuse, see Guidelines.

Usage

Plates

By default RogoIcon and RogoLogo draw the mark on a dark plate. inverted drops the plate and draws the mark in the page's text colour instead — use it on a surface that already provides the contrast, which is most app chrome.

Default — dark plate
inverted — no plate
Default — wordmark
inverted — wordmark
tsx
<RogoIcon width={40} />
<RogoIcon width={40} inverted />

backgroundStyle overrides the plate for one-off cases — a tint, or an optical nudge via padding.

Decorations

Seasonal or app-specific overlays go through the decoration slot rather than into this package, so the shared primitive stays free of app assets and calendar logic.

tsx
<RogoLogo decoration={<SantaHat className="absolute -top-1 -left-2 size-[18px]" />} />

Co-branding

Some deployments show a partner's mark beside Rogo. BrandLockup owns that arrangement — icon, divider, partner — and takes the partner artwork as a slot.

No partner — Rogo wordmark
Partner mark
With a partner mark in the slot
Activated — renders a labelled button
tsx
import { BrandLockup } from "@rogo-technologies/ui/logos/brand-lockup";

<BrandLockup />
<BrandLockup partner={<PartnerMark />} />
<BrandLockup partner={<PartnerMark />} label="Go to home" onActivate={goHome} />

Pass onActivate and the lockup renders a real <button> with label as its accessible name. Without it, the lockup is inert presentation.

Partner artwork never lives here

The slot exists so partner and customer artwork stays out of the shared package and out of this design system. Both are distributed — the package is published, and these pages are deployed — so a mark committed here reveals who we work with.

  • Do keep partner marks in the app that serves that deployment, selected from configuration.
  • Do use a neutral placeholder in examples, as the demos above do.
  • Don't add a partner or customer file under packages/ui, and don't name a component, variant, or token after one. A guard test in packages/ui/src/logos fails the build if artwork lands there.

API

RogoIcon

PropTypeDefaultDescription
widthnumberPlate width in pixels. Required.
heightnumberwidthPlate height in pixels.
invertedbooleanfalseDrops the plate; draws the mark in the text colour.
onClick() => voidMakes the plate clickable.
backgroundStyleCSSProperties{}Style overrides on the plate, e.g. a transparent colour.
decorationReactNodeOverlay rendered inside the plate.
classNamestringAdditional CSS classes.

RogoLogo

Same props as RogoIcon, except height defaults to 32 and width defaults to height * 2.5.

RogoGlyph / RogoWordmarkGlyph

Bare <svg> elements. They forward every SVG prop, so size and colour them with className.

RogoMark

PropTypeDefaultDescription
sizenumber14Square size in pixels.
classNamestringAdditional CSS classes.

RogoLogoMatrix

PropTypeDefaultDescription
sizenumber14Square size in pixels.
classNamestringAdditional CSS classes.

BrandLockup

PropTypeDefaultDescription
partnerReactNodeCo-brand mark. Omit for Rogo alone.
heightnumber24Height of the marks in pixels.
plateStyleCSSPropertiesOverrides on the Rogo plate, for optical nudges in dense chrome.
onActivate() => voidRenders the lockup as a button and runs on activation.
labelstringAccessible name. Required whenever onActivate is set.
classNamestringAdditional CSS classes.

Guidelines

Do

  • Import marks from @rogo-technologies/ui/logos/* on every surface
  • Give the mark a click target only when it navigates, and label it
  • Use RogoLogoMatrix for agent work in progress, not as a generic spinner

Don't

  • Don't inline the SVG path data or ship a logo file in an app's public/ directory
  • Don't recolour the mark — it inherits currentColor, so set the text colour instead
  • Don't put partner or customer artwork in the shared package or on these pages
PreviousGuidelines
NextAssets
Made in NYC© 2026 Rogo Technologies Inc.