Files
ccs/ui
Tam Nhu Tran bfa4c704eb fix(analytics): tighten top-bar layout (single-line trigger, grouped cluster, compact timestamp)
Three design taste fixes that ride on top of the disclaimer collapse:

- Single-line profile trigger: render only `option.label` in the
  Select trigger; keep label+description in the open menu where the
  description earns its keep. Removes the two-line trigger that broke
  the row baseline (taller pill, vertical-center cascade).
- Group Select + Info icon in an `inline-flex … shrink-0` cluster so
  they wrap as a single unit and the icon never orphans onto a second
  row under the refresh button.
- Compact timestamp: "Updated less than a minute ago" → "1m ago"
  rendered in font-mono. Full phrase preserved via `title`
  attribute. Drops the localized prefix into a tooltip-only context.
- Trigger width trimmed 190px → 170px since it no longer needs to fit
  a description line.
2026-05-24 11:34:57 -04:00
..

CCS Dashboard UI

React + TypeScript + Vite frontend for the CCS local dashboard.

This UI is served by the CCS web server and is accessed via:

ccs config

Development

From project root:

bun run dev

This starts the CCS server, opens a local browser URL, and prints bind/network details for the dashboard. If the runtime bind is reachable beyond loopback, CCS also prints an auth reminder.

For remote device access during development, run:

bun run dev -- --host 0.0.0.0

For local-only development, run:

bun run dev -- --host 127.0.0.1

From ui/ only (frontend dev server):

cd ui
bun run dev

Quality Commands

cd ui
bun run typecheck
bun run lint
bun run validate
bun run test:run

i18n

Dashboard localization uses react-i18next.

  • Main setup: ui/src/lib/i18n.ts
  • Locale helpers: ui/src/lib/locales.ts
  • Language switcher: ui/src/components/layout/language-switcher.tsx

For full architecture, conventions, and locale onboarding, see:


Notes

  • UI locale persistence uses browser localStorage key ccs-ui-locale.
  • Current supported locales are managed in ui/src/lib/locales.ts.
  • Current locales: en, zh-CN, vi.
  • Fallback locale is English (en).