Skip to content

Latest commit

 

History

History
415 lines (368 loc) · 17.5 KB

File metadata and controls

415 lines (368 loc) · 17.5 KB
version alpha
name Codex Proxy
description Compact operational dashboard with quiet surfaces, GitHub-like dark mode, emerald primary actions, and dense data cards.
colors
background background-dark surface surface-muted surface-subtle surface-dark surface-muted-dark surface-subtle-dark border border-subtle border-strong border-dark text text-soft text-muted text-faint text-dark text-muted-dark primary primary-hover primary-action primary-action-hover primary-dark primary-hover-dark primary-action-dark primary-action-hover-dark on-primary primary-container primary-container-dark primary-border-dark success success-dark success-container success-container-dark warning warning-dark warning-container warning-container-dark warning-strong danger danger-dark danger-container danger-container-dark danger-strong info info-dark info-container info-container-dark secondary tertiary chart-blue chart-blue-dark chart-green chart-green-dark chart-amber chart-amber-dark chart-violet chart-violet-dark chart-fuchsia avatar-purple-text avatar-purple-bg avatar-purple-text-dark avatar-purple-bg-dark avatar-amber-text avatar-amber-bg avatar-amber-text-dark avatar-amber-bg-dark avatar-blue-text avatar-blue-bg avatar-blue-text-dark avatar-blue-bg-dark avatar-emerald-text avatar-emerald-bg avatar-emerald-text-dark avatar-emerald-bg-dark avatar-red-text avatar-red-bg avatar-red-text-dark avatar-red-bg-dark code-background code-background-dark code-text-dark
#F8FAFC
#0D1117
#FFFFFF
#F8FAFC
#F1F5F9
#161B22
#0D1117
#21262D
#E5E7EB
#F1F5F9
#CBD5E1
#30363D
#1E293B
#334155
#64748B
#94A3B8
#E6EDF3
#8B949E
#047857
#065F46
#047857
#065F46
#34D399
#10B981
#047857
#065F46
#FFFFFF
#DCFCE7
#11281D
#1A442E
#047857
#34D399
#DCFCE7
#11281D
#B45309
#FBBF24
#FEF3C7
#3D2C16
#B45309
#B91C1C
#F87171
#FEE2E2
#3F1A1A
#B91C1C
#1D4ED8
#60A5FA
#DBEAFE
#1A2A3F
#6366F1
#06B6D4
#3B82F6
#60A5FA
#10B981
#34D399
#F59E0B
#FBBF24
#8B5CF6
#A78BFA
#D946EF
#7E22CE
#F3E8FF
#A78BFA
#2A1A3F
#92400E
#FEF3C7
#F59E0B
#3D2C16
#1D4ED8
#DBEAFE
#60A5FA
#1A2A3F
#047857
#D1FAE5
#34D399
#112A1F
#B91C1C
#FEE2E2
#F87171
#3F1A1A
#F8FAFC
#0D1117
#CBD5E1
typography
title-lg title-md title-sm body-md body-sm label-md label-sm caption micro mono-sm mono-xs
fontFamily fontSize fontWeight lineHeight letterSpacing
system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif
18px
700
1.4
0em
fontFamily fontSize fontWeight lineHeight letterSpacing
system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif
15px
700
1.35
0em
fontFamily fontSize fontWeight lineHeight letterSpacing
system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif
14px
700
1.35
0em
fontFamily fontSize fontWeight lineHeight letterSpacing
system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif
14px
400
1.5
0em
fontFamily fontSize fontWeight lineHeight letterSpacing
system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif
13px
400
1.45
0em
fontFamily fontSize fontWeight lineHeight letterSpacing
system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif
13px
600
1.25
0em
fontFamily fontSize fontWeight lineHeight letterSpacing
system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif
12px
600
1.25
0em
fontFamily fontSize fontWeight lineHeight letterSpacing
system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif
11px
500
1.35
0em
fontFamily fontSize fontWeight lineHeight letterSpacing
system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif
10px
500
1.25
0em
fontFamily fontSize fontWeight lineHeight letterSpacing
ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace
12px
500
1.45
0em
fontFamily fontSize fontWeight lineHeight letterSpacing
ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace
11px
500
1.45
0em
rounded
none xs sm md lg xl full
0px
4px
6px
8px
12px
16px
9999px
spacing
unit hairline micro xs sm md lg xl 2xl 3xl 4xl 5xl section-gap card-padding panel-padding page-padding-mobile page-padding-tablet page-padding-desktop content-max content-max-wide header-height
4px
1px
2px
4px
6px
8px
12px
16px
20px
24px
32px
40px
24px
16px
20px
16px
32px
160px
960px
1100px
56px
shadows
none sm md lg
none
0 1px 2px 0 rgb(0 0 0 / 0.05)
0 4px 6px -1px rgb(0 0 0 / 0.10), 0 2px 4px -2px rgb(0 0 0 / 0.10)
0 10px 15px -3px rgb(0 0 0 / 0.10), 0 4px 6px -4px rgb(0 0 0 / 0.10)
elevation
base sticky-header card card-hover modal
surface shadow
{colors.background}
{shadows.none}
surface borderColor shadow
{colors.surface}
{colors.border}
{shadows.sm}
surface borderColor shadow
{colors.surface}
{colors.border}
{shadows.sm}
surface borderColor shadow
{colors.surface}
{colors.primary}
{shadows.md}
surface borderColor shadow
{colors.surface}
{colors.border}
{shadows.lg}
motion
duration-fast duration-standard duration-slow easing-standard scale-press
150ms
200ms
300ms
ease
0.98
components
button-primary button-primary-hover button-secondary button-secondary-hover chip-active chip-neutral card-standard panel-standard input-field input-field-focus status-success status-warning status-danger avatar icon-button progress-track progress-primary code-block
backgroundColor textColor typography rounded padding
{colors.primary-action}
{colors.on-primary}
{typography.label-sm}
{rounded.md}
8px 16px
backgroundColor textColor
{colors.primary-action-hover}
{colors.on-primary}
backgroundColor textColor typography rounded padding
{colors.surface}
{colors.text-muted}
{typography.label-sm}
{rounded.md}
6px 12px
backgroundColor textColor
{colors.surface-subtle}
{colors.primary}
backgroundColor textColor typography rounded padding
{colors.primary-container}
{colors.primary}
{typography.label-sm}
{rounded.full}
6px 12px
backgroundColor textColor typography rounded padding
{colors.surface}
{colors.text-muted}
{typography.label-sm}
{rounded.full}
4px 12px
backgroundColor textColor typography rounded padding
{colors.surface}
{colors.text}
{typography.body-sm}
{rounded.lg}
{spacing.card-padding}
backgroundColor textColor typography rounded padding
{colors.surface}
{colors.text}
{typography.body-sm}
{rounded.lg}
{spacing.panel-padding}
backgroundColor textColor typography rounded padding
{colors.surface-muted}
{colors.text}
{typography.mono-sm}
{rounded.md}
8px 12px
backgroundColor textColor
{colors.surface}
{colors.text}
backgroundColor textColor typography rounded padding
{colors.success-container}
{colors.success}
{typography.label-sm}
{rounded.full}
4px 10px
backgroundColor textColor typography rounded padding
{colors.warning-container}
{colors.warning-strong}
{typography.label-sm}
{rounded.full}
4px 10px
backgroundColor textColor typography rounded padding
{colors.danger-container}
{colors.danger-strong}
{typography.label-sm}
{rounded.full}
4px 10px
backgroundColor textColor typography rounded size
{colors.avatar-blue-bg}
{colors.avatar-blue-text}
{typography.title-lg}
{rounded.full}
40px
backgroundColor textColor typography rounded padding
transparent
{colors.text-faint}
{typography.label-sm}
{rounded.sm}
6px
backgroundColor rounded height
{colors.surface-subtle}
{rounded.full}
8px
backgroundColor rounded height
{colors.primary-action}
{rounded.full}
8px
backgroundColor textColor typography rounded padding
{colors.code-background}
{colors.text}
{typography.mono-xs}
{rounded.md}
{spacing.card-padding}

Design System: Codex Proxy

Overview

Codex Proxy is a compact operational dashboard for managing accounts, proxy routing, API keys, settings, logs, and usage telemetry. The visual identity should feel precise, calm, and engineer-owned: more control room than landing page. The interface should privilege scan speed, status clarity, and repeatable workflows over decorative composition.

The default feeling is restrained and utilitarian. Pages sit on a very light slate field in light mode and a GitHub-like near-black field in dark mode. Cards are clean white or graphite panels with thin borders, small radii, and soft shadows. The primary accent is a contrast-safe emerald system: deep emerald for readable light-mode text and solid actions, brighter mint-emerald for dark-mode text, and pale or dim containers for selected states.

The product should never feel oversized or editorial. Keep the information density high, controls close to the data they affect, and headings compact. The strongest visual signals are state color, tab selection, badges, progress bars, and small inline icons.

Colors

The palette is built from neutral slate surfaces plus one operational green accent.

  • Operational Emerald (#047857 light text/action, #34D399 dark text, #DCFCE7/#11281D containers): Primary action color, online status, active toggles, selected tabs, healthy quota bars, and successful copy/save states. Text/accent tokens and solid action tokens are separate so white text stays readable on buttons while selected chips remain legible in both themes.
  • Slate Canvas (#F8FAFC) and GitHub Night (#0D1117): Page backgrounds. The light background is cool and quiet; the dark background is a deep technical graphite.
  • Card Surfaces (#FFFFFF, #161B22): Main content cards and settings panels. Surfaces should remain plain, bordered, and easy to scan.
  • Borders (#E5E7EB, #30363D): Most hierarchy is carried by hairline borders rather than heavy depth.
  • Muted Text (#64748B, #8B949E): Metadata, helper text, empty states, timestamps, and low-priority toolbar labels.
  • Alerts: Red is reserved for failed requests, unread errors, destructive actions, and quota exhaustion. Amber is for rate limiting, warnings, and attention states. Blue, violet, cyan, and fuchsia appear mainly in charts, secondary quotas, and avatars. Status and avatar colors should always be used as foreground/container pairs, not as raw color-on-white combinations.

Dark mode is not just inverted light mode. It uses a GitHub-inspired neutral stack: black-blue page canvas, graphite panels, steel borders, and muted gray text. The primary accent becomes brighter and slightly more teal for text, while solid primary actions keep the deeper emerald background needed for white label contrast.

Typography

Use the system sans stack for the product voice. This keeps the UI native, compact, and fast. Use the monospace stack only for API keys, URLs, code examples, timestamps, IDs, and other technical strings.

Hierarchy should be shallow. Most headings live between 14px and 18px with bold weight. Body copy is usually 13px to 14px. Captions and metadata use 10px to 12px. Avoid large display type unless creating a completely new entry screen such as an authentication page.

Weights matter more than size. Use semibold for labels and controls, bold for panel titles, regular for descriptions, and medium monospace for technical values. Keep letter spacing normal; the product should read as a dense tool, not a brand campaign.

Layout

The layout uses a centered fixed-width working area. The main dashboard width is 960px, while chart-heavy standalone views can expand to 1100px. Desktop side padding is generous enough to center the control surface, while mobile and tablet padding tighten to 16px and 32px.

Spacing follows a 4px base rhythm with 8px, 12px, 16px, 20px, and 24px doing most of the work. Dense toolbars use 6px gaps and compact vertical padding. Cards and settings panels use 16px to 20px internal padding. Major stacked sections use 24px gaps.

Use grids for repeated summaries and account cards. Use flexible wrapping toolbars so controls can collapse without clipping. Keep controls directly above or inside the content they modify; do not split operational workflows into isolated marketing-like sections.

Elevation & Depth

Depth is deliberately shallow. The system relies on tonal layering, thin borders, and low-opacity shadows. Standard cards use a subtle one-step shadow, and hover states can lift to a medium shadow only when the element is interactive. Sticky headers get a thin border and a small shadow so they separate from scroll content without feeling heavy.

Do not introduce dramatic drop shadows, glass effects, blurred backgrounds, gradient panels, or floating decorative layers. The dashboard should feel stable and machine-like. In dark mode, borders and surface contrast carry most depth; shadows should be visually minimal.

Shapes

The shape language is compact and pragmatic.

  • Cards and panels: 12px radius. This is enough softness to avoid harsh rectangles while preserving an engineered feel.
  • Inputs and primary buttons: 8px radius. They should feel direct and utilitarian.
  • Small icon buttons: 6px radius.
  • Badges, status chips, progress bars, avatars, and toggles: Fully pill-shaped.
  • Login or modal containers: 16px radius is acceptable for the rare elevated entry point.

Avoid oversized rounded cards or pill-shaped containers for general content. Pills are reserved for badges, filters, compact header actions, and binary status.

Components

Header

The header is sticky, 56px tall, bordered, and softly shadowed. It uses a compact logo mark, product name, status pill, utility actions, language and theme toggles, and a primary add action. Header controls should remain small, horizontally grouped, and icon-led where possible.

Navigation

Top navigation uses compact text tabs. The active tab uses a pale emerald container and emerald text; inactive tabs use muted slate text and a light hover surface. Tabs should not become large segmented cards.

Cards

Account cards are dense operational objects. They contain avatar, identity, status toggle, status badge, quick actions, metrics, proxy selector, and quota bars. Preserve the structure: identity and controls first, then metric rows, then assignment and quota state. Hover may add a little shadow and accent border, but the card should remain quiet.

Summary cards are smaller and flatter. They emphasize the value with a bold 18px number and keep labels and hints muted.

Buttons

Primary buttons are emerald with white text, 8px radius, compact padding, and a subtle shadow. Secondary buttons are neutral bordered controls with muted slate text and a light hover fill. Destructive actions should usually appear as icon buttons that become red on hover, unless the action is the main page intent.

Pressed states can scale slightly to 98 percent. Keep transitions short and color-based. Avoid bouncy or playful motion.

Inputs And Selects

Inputs use neutral surfaces, thin borders, 8px radius, and compact padding. Technical inputs should use monospace. Focus states use an emerald ring or border. Selects should match text inputs in height, border, and surface treatment.

Badges And Status

Status chips are pill-shaped, small, and color coded. Active and healthy states use green; warning and rate-limited states use amber or orange; failed and exhausted states use red; disabled states use slate. Keep badge text short and semibold.

Progress And Charts

Progress bars are 8px tall, pill-shaped, and sit on a pale slate track. Healthy quota is green, warning quota is amber, exhausted quota is red, secondary quota can be indigo, and review quota can be cyan.

Charts are SVG-like, lightweight, and line-based. Use blue for input tokens, green for output tokens, violet for cached tokens, amber for request count, and fuchsia for hit rate. Grid lines and axis labels should stay muted so the series carries attention.

Code Blocks

Code examples live in bordered containers with a muted surface and monospace text. In dark mode, code blocks use the same near-black canvas as the page background. Copy actions should appear on hover or stay visually secondary.

Do's and Don'ts

Do keep screens dense, quiet, and operational. Do use borders, muted text, and small spacing steps to preserve scanability. Do reserve emerald for selected, healthy, and primary actions. Do keep chart colors consistent across pages.

Do not create a landing-page hero, oversized cards, decorative gradients, glass panels, or large editorial headings. Do not use purple as a dominant theme; violet is only a chart and secondary-data accent. Do not hide state behind animation or imagery. Do not replace historical or operational semantics with visually nicer surrogate metrics.