Upstage Brand Resource Center
Upstage Brand Resource Center
upstage

업스테이지's reference documents #5b52ff as a documented primary color, Geist for typography, 8px corner radius. Upstage is a Korean AI company building language models and document-processing engines for work.

Primary
#5b52ff
Typography
Geist
Radius
8px

Evidence snapshot

verified v2
Claims grounded
164/164 · 100%
Sources
2 surfaces · 8 sources
UI font basis
frontmatter · high
Components
12 documented · 10 interactive, 4 with states
Design System
Upstage logo

Upstage

Upstage is a Korean AI company building language models and document-processing engines for work. Its public site frames the offer through Solar models, document intelligence, and Studio workflows for high-stakes industries, rather than as a generic consumer chatbot. The current public expression is a compact, white-led enterprise marketing system: dark #0A0D14 headings, #52525B long-form copy, and #5B52FF conversion actions organise the page. The hero is the conspicuous exception: a loaded Espeak face appears only in the public home’s large display treatment, while loaded Geist carries the rest of the observed marketing and public pricing content. The design’s rhythm comes from restrained, square-to-8px geometry and repeated direct actions, not from a broad decorative palette. Upstage’s own About and Studio pages connect this visual restraint to a practical proposition: making document-heavy workflows more controllable, traceable, and useful for enterprises.

01

Color Palette

Neutrals

02

Typography

Fonts

marketing-display
Espeak
Brand-only
Live preview unavailable (brand font is not publicly distributed)
Not in the OMD font registry. Likely a brand-proprietary typeface — check the brand's own design site for source/availability.
Not publicly distributed.
ui
Geist
Open · OFL
Live preview unavailable (a verified browser-loadable source is unavailable)
Vercel's open-source typeface family.
Install via Vercel
03

Spacing & Shape

Spacing

PurposeValuePreview
action-y12px
action-x18px
card32px
card-end96px

Border Radius

ElementValuePreview
actionStructured token8px
cardStructured token8px
04

Guidelines

Do and Don't guidelines parsed from DESIGN.md.

Do

  • Use the observed white / dark-ink public-surface foundation with #5B52FF reserved for conversion actions.
  • Keep Geist as the loaded general public UI/content family and confine Espeak to the verified public marketing-display context.
  • Use the 8px action/card geometry only where the public evidence establishes it.
  • Keep public pricing-card claims separate from marketing, corporate, documentation, and logged-in product UI claims.
  • Retain selector and surface provenance when reusing a documented component pattern.

Don't

  • Reintroduce the prior plum or Solar-lime palette as a current token without fresh source evidence.
  • Present Archivo, Inter, Montserrat, Noto Sans JP/KR, system-ui, or monospace as an Upstage UI-family token.
  • Read the July pressed-link red (#0000EE → #FF0000) as an Upstage state, or invent disabled, dialog or form variants.
  • Treat the Brand Resource Center’s asset ownership notice as a licence to redistribute logos, photographs, or the Espeak face.
  • Infer an authenticated product design system from these public surfaces.
05

Components

Cards

api-pricing-card
api-pricing-card
Background#ffffff
Border1px solid #cdd0d5
Radius8px
Padding32px 96px 32px 32px
Hoverborder 1px #525866; shadow rgba(0,0,0,0.09) 0px 4px 6px 0px (on the card wrapper while its title link is hovered)
Focusoutline browser default ring (outline-style auto, offset 1px) on the title link, not brand; the card border and shadow do not change — measured 2026-09-29
pressedborder 1px #525866; shadow rgba(0,0,0,0.09) 0px 4px 6px 0px, as on hover (the red on the pressed anchor is the Chromium default pressed-link colour, not a state)
statesdefault captured 2026-07-13 (six cards); hover, pressed and keyboard focus measured 2026-09-29 through the Solar Pro 3 title link (Tab 16); in the 2026-09-29 DOM the card holding that title carries id solar-pro-4, where July cited #solar-pro-3; transition all 0s
Use: API pricing model card observed on the public pricing surface
image fills
product-card
Backgroundtransparent
Text#52525b
Border1px solid #cdd0d5
Radius8px
Padding24px
Text style18px / 400 / Geist
size416px x 528px
statesdefault captured 2026-07-13 (3 occurrences); not probed
Use: Home product card that holds the filled and outlined actions (div.basic_card-2)

Buttons

compact-secondary-action
Background#ffffff
Text#5b52ff
Border1px solid #5b52ff
Radius8px
Padding10px 16px
Text style14px / 500 / Geist
size345px x 43px
statesdefault captured 2026-07-13 (4 occurrences on home and pricing); not probed
Use: Smaller outlined action (class is-secondary smaller)
hero-primary-action
Background#5b52ff
Text#ffffff
Border1px solid #5b52ff
Radius8px
Padding16px 32px
Text style16px / 500 / Geist
Hoverno change in the compared scope (self, its ::before/::after, 4 descendants incl. 1 svg and 1 path, 3 ancestor levels) — measured 2026-09-29
Focusoutline browser default ring (outline-style auto, offset 1px), not brand — measured 2026-09-29
pressedno change in the compared scope (self, its ::before/::after, 4 descendants incl. 1 svg and 1 path, 3 ancestor levels) — measured 2026-09-29
size158px x 58px
statesdefault captured 2026-07-13; hover, pressed and keyboard focus measured 2026-09-29 on Try Studio (Tab 12); transition all 0s
Use: Home hero filled action (Try Studio), the largest CTA on the page
hero-secondary-action
Background#ffffff
Text#5b52ff
Border1px solid #5b52ff
Radius8px
Padding16px 32px
Text style16px / 500 / Geist
size222px x 58px
statesdefault captured 2026-07-13; not probed
Use: Home hero outlined action beside the filled hero action
nav-contact-button
Background#5b52ff
Text#ffffff
Border1px solid #5b52ff
Radius8px
Padding8px 16px
Text style16px / 500 / Geist
size106px x 40px
statesdefault captured 2026-07-13 (3 occurrences, one per captured page); not probed
Use: Small filled header action (class btn-contact)
nav-products-toggle
Backgroundtransparent
Text#ffffff
Padding12px 40px 12px 16px
Text style15.04px / 400 / Geist
Hoverno change in the compared scope (self, its ::before/::after, 4 descendants incl. 1 svg and 1 path, 3 ancestor levels); the dropdown list is a sibling and was not compared — measured 2026-09-29
Focusoutline 2px #4d65ff, offset 2px (authored; whether the rule is the site CSS or the Webflow platform stylesheet was not verified, so it is not a brand token) — measured 2026-09-29
pressedno change in the compared scope (self, its ::before/::after, 4 descendants incl. 1 svg and 1 path, 3 ancestor levels) — measured 2026-09-29
size116px x 48px
stateshover, pressed and keyboard focus measured 2026-09-29 (Tab 4); aria-expanded false at rest; transition all 0.3s
Use: Header Products dropdown toggle (div role=button) over the dark #151727 navigation band
public-primary-action
Background#5b52ff
Text#ffffff
Border1px solid #5b52ff
Radius8px
Padding12px 18px
Text style16px / 500 / Geist
Hovertransform matrix(1, 0, 0, 1, 19.2, 0) (translateX 19.2px) on the two arrow layers; fill, border and label unchanged
Focusoutline browser default ring (outline-style auto, offset 1px), not brand — measured 2026-09-29
pressedtransform matrix(1, 0, 0, 1, 19.2, 0) on the two arrow layers, as on hover
size366px x 50px
statesdefault captured 2026-07-13 (10 occurrences on home and pricing); hover, pressed and keyboard focus measured 2026-09-29 on Try in Playground (Tab 14); the fill never changes colour; transition all 0s
Use: Public filled conversion action (Try in Playground) inside the home product cards
public-secondary-action
Background#ffffff
Text#5b52ff
Border1px solid #5b52ff
Radius8px
Padding12px 18px
Text style16px / 500 / Geist
Hoverbg #fafafa
Focusoutline browser default ring (outline-style auto, offset 1px), not brand — measured 2026-09-29
pressedbg #fafafa
size366px x 50px
statesdefault captured 2026-07-13 (5 occurrences); hover, pressed and keyboard focus measured 2026-09-29 on the first Learn more (Tab 15); pressed equals hover; transition all 0s
Use: Public outlined conversion action (Learn more) paired with the filled action
text-action
Backgroundtransparent
Text#5b52ff
Radius0px
Padding0px
Text style18px / 500 / Geist
statesdefault captured 2026-07-13 (6 occurrences on home and pricing); not probed
Use: Violet text action at the top of the page (class button is-text, hidden below desktop)

Tabs

TabTabTab
model-tab
Background#ffffff
Text#0a0d14
Border1px solid #e2e4e9
Radius8px
Padding8px 16px
Text style18px / 500 / Geist
Shadowrgba(0,0,0,0.06) 0px 2px 3px 0px
Hoverno change in the compared scope (self, its ::before/::after, 1 descendant, 3 ancestor levels) — measured 2026-09-29
Focusno focus indication in the compared scope (self, its ::before/::after, 1 descendant, 3 ancestor levels) — measured 2026-09-29
pressedno change in the compared scope (self, its ::before/::after, 1 descendant, 3 ancestor levels) — measured 2026-09-29
size223px x 42px
statescurrent item (w--current, aria-selected true) captured 2026-07-13 with the same shadow, which the July declaration left out; hover, pressed and keyboard focus measured 2026-09-29 on Generative intelligence (Tab 12)
Use: Public API-pricing model tab, current item
TabTabTab
model-tab-inactive
Backgroundtransparent
Text#525866
Border1px solid transparent
Radius10px
Padding8px 16px
Text style18px / 500 / Geist
Hoverno change in the compared scope (self, its ::before/::after, 1 descendant, 3 ancestor levels) — measured 2026-09-29
pressedno change in the compared scope (self, its ::before/::after, 1 descendant, 3 ancestor levels) — measured 2026-09-29
size220px x 42px
statesinactive item (aria-selected false, tabIndex -1) captured 2026-07-13; hover and pressed measured 2026-09-29 on Document intelligence; keyboard focus not measured: tabIndex -1 keeps it out of the Tab order, and arrow keys were not tested
Use: Public API-pricing model tab, inactive item on the #f3f4f6 tab track

Related design systems