PASITA / DESIGN.md
OpceanAI's picture
Upload DESIGN.md with huggingface_hub
c8c13b5 verified
|
Raw History Blame Contribute Delete
3.38 kB
# DESIGN.md
Visual direction for the PASITA Space. Language: flat, neutral, React/Next-like
(Vercel Geist grammar: semantic grays, 6/12 radii, hairline strokes, no gradients).
Explicitly excluded: gradients, glows, blue/purple accents, glassmorphism, decoration.
## Design read
A document tool for Hugging Face users, in a flat instrument-panel language,
with dials ENERGY 2 / RHYTHM 1 / MOTION 1.
- ENERGY 2: clear header and one high-contrast primary action, no hero, no landing decoration.
- RHYTHM 1: a single two-panel composition, because the task is one input and one output.
- MOTION 1: hover and focus states only, plus the pulsing status dot while loading.
## Tokens
- Page `#0a0a0b`, panels `#101013`, raised surfaces `#16161a`, code `#0d0d10`. Flat fills only.
- Text `#f4f4f5`, secondary `#a1a1aa`, tertiary `#8e8e96` (both AA on the page background).
- Signature gold `#e8b34c`: the product mark and the selected-state text (tabs, candidate pills).
- Primary action is white (`#fafafa` on `#0a0a0b`), secondary is a ghost with a hairline border.
- Status is semantic and always paired with text: green `#4cc38a` ready, gold busy, red `#f87171` error.
- Type: Inter for reading, JetBrains Mono for labels, counters, metrics and code.
Metrics use tabular numerals.
## Why each decision
- Flat near-black: reading documents needs contrast, not decoration; gradients are banned here.
- White primary action: the highest-contrast element on the page, marking the one key action.
- Gold only on the product mark and the active selection: one identity color, one meaning.
- Mono plus tabular numerals for machine text: counts and metrics stay scannable and stable.
- Two panels: conversion is input to output; they stack on mobile.
- Details tab with run metrics in plain words: route, numbers kept (with the missing list),
coverage, time and candidate count.
- Download button writes the current Markdown to a `pasita-*.md` file; old files are pruned.
- Print stylesheet renders the output black on white and hides the input chrome.
- Status line with real metrics: it proves the faithfulness promise (numbers kept, coverage,
route used) instead of claiming it.
- Green/red/yellow status with text labels: color never carries meaning alone.
- Real controls: Convert, Clear, candidates 1 to 3, deterministic converter. No decorative
element without a function.
## Contrast (WCAG AA)
Computed with the relative-luminance formula:
- `#a1a1aa` on `#0a0a0b`: 8.3:1 (normal text, pass).
- `#8e8e96` on `#0a0a0b`: 6.5:1 (normal text, pass).
- `#e8b34c` on `#0a0a0b`: 9.9:1 (normal text, pass).
- Text `#0a0a0b` on button `#fafafa`: 19.5:1 (pass).
- Focus ring `#e8b34c` on `#0a0a0b`: 9.9:1 (non-text, above 3:1).
## States
- Empty: the output panel shows a marker and the status says READY.
- Loading: the js pre-call flips the status to CONVERTING; Gradio shows minimal progress.
- Error: the status switches to ERROR with the exception type and the output shows the message.
- Keyboard: every control is reachable, `:focus-visible` ring in gold.
## What we do not do
- No gradients, no glows, no blue or purple anywhere.
- No emoji in the UI chrome.
- No fake screenshots, testimonials or invented figures.
- No looping animations (the busy dot is the only exception, with a reduced-motion kill switch).
- No decorative grids or background patterns.