This file is the source of truth for SpotWave frontend visuals. Follow it for every screen unless the user explicitly approves a different direction.
SpotWave uses a premium editorial/product style inspired by dark magazine layouts: black graphite surfaces, warm orange-red imagery, oversized typography, tight cards, and bold first-screen composition.
The UI should feel like the provided reference: clean, high-contrast, image-led, confident, and minimal. Avoid generic SaaS dashboards, blue/purple gradients, and default HeroUI/NextUI-looking screens.
The current approved direction is stricter than the first draft: lean harder into black and orange, reduce decorative UI, and prefer simpler hero compositions over multi-panel dashboards unless the screen truly needs application chrome.
Use near-black colors, not pure #000000.
- Page background:
#080A0F - Deep graphite:
#0B0E15 - Card surface:
#10131A - Elevated card:
#151922 - Border subtle:
rgba(255,255,255,0.08) - Border strong:
rgba(255,255,255,0.14) - Primary text:
#F7F7F4 - Secondary text:
rgba(247,247,244,0.68) - Muted text:
rgba(247,247,244,0.46) - Brand orange:
#FF6A00 - Hot orange:
#FF4F12 - Warm highlight:
#FFB15A
Do not use bright blue, violet, or default purple accents. If a cold tint is needed, use gray-navy/slate only: #151A24, #1A202B, rgba(120,130,150,0.14).
Use layered near-black backgrounds:
- Base should be graphite/black navy:
#080A0Fto#0B0E15. - Add very subtle orange glow from one side or bottom only when it improves the composition.
- Add subtle gray-slate glow if depth is needed.
- Never use a visible blue gradient as a dominant area.
- Avoid flat single-color backgrounds unless the screen is intentionally minimal.
- For key auth and landing screens, prefer black plus one or two controlled orange shapes over many overlapping effects.
Recommended background recipe:
background:
radial-gradient(circle at 12% 12%, rgba(255, 109, 20, 0.16), transparent 29%),
radial-gradient(circle at 82% 10%, rgba(104, 116, 136, 0.14), transparent 31%),
radial-gradient(circle at 50% 88%, rgba(20, 24, 34, 0.72), transparent 48%),
linear-gradient(165deg, #080a0f, #0b0e15 48%, #070910 100%);Typography should be large, direct, and editorial.
- Preferred font:
Manrope. - Fallback:
Inter, sans-serif. - Hero headings: very large, tight tracking, heavy weight.
- Use clean display sizing and tight tracking for primary headlines.
- Use negative tracking for display text:
-0.04emto-0.06em. - Body copy should be readable but muted, usually
text-white/60totext-white/72. - Labels and pills use uppercase or compact semibold text with letter spacing.
Avoid thin headings, default browser sizing, and generic centered marketing typography.
Use bold, simple layouts:
- Large first viewport with one dominant headline and one strong interactive/product block.
- Prefer split layouts for auth/onboarding/landing screens.
- Use strong alignment, wide gutters, and intentional whitespace.
- Content should feel spacious, but not empty.
- Avoid nested cards unless there is a clear hierarchy.
- On mobile, collapse to one strong vertical card/list composition.
Desktop max widths should usually sit between 1280px and 1500px.
For auth screens specifically:
- Prefer one strong hero message on the left and one compact form card on the right.
- Remove app chrome that is not directly needed for login.
- Avoid stacking extra stats, sidebars, top bars, or secondary modules that make the screen too tall.
- If the page starts feeling vertically stretched, remove blocks before shrinking typography.
Cards should feel like black editorial tiles, not default component-library cards.
- Radius:
24pxto34pxfor major cards. - Background:
#10131A,#111722, or gradient fromrgba(18,23,34,.92)torgba(9,12,19,.96). - Border:
1px solid rgba(255,255,255,.08-.14). - Shadow: soft black shadow, no blue glow.
- Inner media blocks can use orange/red gradients or real warm images.
- Brand/logo blocks must sit on a dedicated dark surface when placed near orange fields or gradients.
Never place the SpotWave wordmark directly on top of a bright orange glow or ribbon without a dark container behind it.
Example panel:
<Card className="rounded-[34px] border border-white/12 bg-[linear-gradient(180deg,rgba(18,23,34,.92),rgba(9,12,19,.96))] shadow-[0_38px_120px_rgba(0,0,0,.48)]" />The reference uses vivid orange-red photography and warm blocks. SpotWave should use that same energy:
- Use warm orange/red imagery or CSS media placeholders.
- Event cards can use orange gradient thumbnails.
- Keep imagery cropped with strong radius.
- Orange should be the only loud color.
- Use warm glows sparingly around primary interactive points.
- Avoid layered glow-on-glow compositions that reduce contrast or readability.
Avoid stock-looking blue maps, purple blobs, or multicolor gradients.
Primary buttons are orange, wide, and confident.
- Primary fill can be either solid
#FF6A00or a restrained orange gradient when the screen needs it. - Text: white, bold/black.
- Radius:
16pxto22px. - Height:
52pxto64px. - Shadow should be minimal or absent on cleaner black/orange layouts.
Secondary actions should be dark graphite with a subtle border. Links use #FF6A00 or #FF7514.
Form controls must match the dark graphite system:
- Background:
rgba(255,255,255,0.035)or#151922. - Border:
rgba(255,255,255,0.10-.14). - Focus border: orange
#FF7A1A. - Placeholder:
rgba(255,255,255,0.32). - Icons: muted white/slate, not blue.
- Label: semibold, white with 60-75% opacity.
Do not use default white inputs, blue focus rings, or unstyled HeroUI defaults.
HeroUI components are allowed, but must be visually overridden to match this guide.
- Use HeroUI for structure/accessibility where useful.
- Do not accept default HeroUI visual styling if it conflicts with this guide.
- Current installed HeroUI is v3. Use the real v3 API and verify with Docker build.
- Do not add
HeroUIProviderunless the installed package actually exports it. - For custom visual variants, prefer wrapper components under
apps/frontend/src/shared/ui.
Use restrained motion:
- Subtle load-in fade/slide for major panels.
- Small hover lift for cards and primary buttons.
- Gentle glow/radar pulse where it supports SpotWave location/event metaphor.
- Respect reduced motion.
No excessive spring animations, bouncing icons, generic micro-motion everywhere, or constant glowing surfaces.
Mobile must look intentionally designed, not just stacked desktop.
- One primary panel per screen.
- Large readable heading, but avoid horizontal clipping.
- Keep touch targets at least
44pxhigh. - Preserve dark graphite surfaces and orange CTA.
- Hide complex desktop illustrations when they make the mobile screen cramped.
Do not use:
- Pure black
#000000as the main background. - Dominant blue/purple gradients.
- Default Tailwind/Next/HeroUI look.
- White cards on dark background.
- Generic SaaS bento grids.
- Tiny low-contrast text.
- Random colored badges.
- Overly glossy neon cyberpunk effects.
- Unnecessary decorative pills above every heading.
Before finishing a frontend screen:
- Background uses graphite near-black, not pure black and not blue.
- Orange is the dominant accent color.
- Brand/logo remains readable and does not overlap with orange glow fields.
- Typography is large, bold, and tight where appropriate.
- Cards and controls use custom dark surfaces, borders, and restrained shadows.
- HeroUI defaults are overridden to match this guide.
- Desktop and mobile screenshots are checked.
- Docker build passes for the frontend.
- No unnecessary files or dead UI wrappers were added.
The /sign-in screen establishes the current SpotWave direction:
- Mostly black canvas with controlled orange shapes.
- Large white/orange Russian headline on the left.
- Compact dark auth card on the right.
- No sidebar, no top utility bar, no stats strip under the form.
- Minimal glow, stronger contrast, cleaner black/orange hierarchy.
Future frontend screens should feel like they belong to the same product family.