Files
website/DESIGN.md

326 lines
8.9 KiB
Markdown

# LAYER.systems Design Direction
## 1. Design Intent
LAYER.systems should feel like Nostr relay infrastructure made visible: direct, fast, public, and protocol-native. The visual direction takes cues from bold editorial community sites such as `einundzwanzig.space`: strong navigation, large type, ticker energy, clear content bands, and a public-broadcast feeling.
This is not a clone. LAYER.systems needs its own identity: orange, infrastructural, decentralized, and practical. The site should make the relay endpoint the center of the experience, not a footnote.
## 2. Reference Translation
Inspired by `einundzwanzig.space`:
- Strong top navigation with grouped links.
- Large typographic hero with direct messaging.
- Horizontal ticker / marquee energy for relay URLs, protocol phrases, and network language.
- Clear content bands for relay status, usage, and connection steps.
- Editorial confidence instead of generic landing-page polish.
- Playful tone without losing operational credibility.
Translate for LAYER.systems:
- Use an orange-led palette instead of purple.
- Replace podcast/news hierarchy with relay endpoint and Nostr infrastructure hierarchy.
- Replace sponsor/content blocks with relay, protocol, client, and network modules.
- Use `wss://relay.layer.systems` as a visible recurring design motif.
- Make the copyable relay URL feel like the main product surface.
## 3. Personality
The interface should be:
- Public, not gated.
- Bold, not glossy.
- Operational, not corporate.
- Protocol-aware, not protocol-obscure.
- Human in tone, calm in structure.
Avoid:
- Generic orange gradient SaaS aesthetics.
- Overly soft pastel community branding.
- Crypto-bro visual language.
- Dense technical jargon in primary UI copy.
- Stock-photo hero sections.
## 4. Visual System
### Color Palette
Use orange as the identity anchor, but avoid a one-note all-orange interface.
Suggested palette:
- `Signal Orange`: `#F97316` for primary actions and identity marks.
- `Deep Ink`: `#18110D` for dark text, footer, and hard borders.
- `Relay Amber`: `#FACC15` for secondary highlights and ticker details.
- `Paper`: `#FFF7E8` for warm page background.
- `Chalk`: `#FFFFFF` for content surfaces.
- `Clay`: `#7C3F1D` for subdued labels and supporting text.
- `Protocol Green`: `#17A673` for live/verified states.
- `Network Blue`: `#2563EB` as a sparing cool accent.
Usage rules:
- Orange should lead, not flood.
- Use ink-heavy contrast and crisp borders for readability.
- Use amber, green, and blue sparingly to prevent the interface from becoming monochrome.
- Relay cards should remain legible before they are decorative.
### Typography
The type system should feel editorial and independent.
Recommended direction:
- Display: bold grotesk weight for hero and section titles.
- Body: readable sans with warmth and strong numerals.
- Mono: restrained monospace for relay URLs, event kinds, public keys, and tags.
Implementation preference:
- Use `@fontsource` packages when available.
- Use CSS variables for font families.
- Keep body text comfortable on content-heavy sections.
- Keep hero type large and compact, but never allow it to overflow mobile widths.
## 5. Layout
### Page Structure
The first version should be a single-page relay experience:
1. Sticky navigation
2. Relay ticker
3. Hero / identity
4. Copyable relay endpoint
5. Relay feature modules
6. Client connection steps
7. Footer with terms, privacy, and dashboard links
### Navigation
The nav should feel practical and slightly editorial:
- Left: LAYER.systems wordmark.
- Center: Relay, Signal, Connect, Explore.
- Right: `LoginArea`.
- Mobile: compact header with persistent login/account access.
Use strong text links and clear hover/focus treatment. Avoid oversized pill buttons for every nav item.
### Ticker
Add a horizontal ticker near the top of the page.
Potential ticker phrases:
- `LAYER.systems`
- `public Nostr relay`
- `wss://relay.layer.systems`
- `open protocols`
- `relay-first social`
- `NIP-aware infrastructure`
- `bring your own client`
- `events over platforms`
Ticker behavior:
- Continuous motion on desktop.
- Static fallback with `prefers-reduced-motion`.
- High contrast.
- No essential information should exist only in the ticker.
### Hero
The hero should be typographic and signal-heavy.
Content:
- Main title: `Relay signal for the open social web.`
- Supporting line: a concise statement about public Nostr relay infrastructure.
- Primary CTA: jump to the relay URL.
- Secondary CTA: jump to connection steps.
Visual treatment:
- Large editorial headline.
- Copyable endpoint module.
- Subtle grid or protocol texture is acceptable if it does not reduce readability.
- Use real relay/data motifs rather than abstract decorative blobs.
## 6. Components
### Relay Endpoint Card
Required elements:
- Relay URL.
- Copy button with copied state.
- Access mode.
- Network/protocol labels.
- Clear read/write language when applicable.
Design:
- Rectangular panel with `8px` or less radius.
- Crisp border and offset shadow.
- Relay URL must wrap safely on small screens.
- Copy action must remain reachable on mobile.
### Feature Cards
Required elements:
- Icon.
- Short title.
- One practical sentence.
Design:
- Rectangular cards.
- Crisp border.
- Subtle hover shift.
- No nested cards.
### Connection Steps
Required elements:
- Step number.
- Client action.
- Relay URL in the add-relay step.
Design:
- Structured rows or blocks.
- Step numbers should be visually strong.
- Code text should wrap cleanly.
### Empty States
If live relay status or event lists are added later, empty states should be minimalist and practical:
- Explain what data will appear.
- Include a short hint about adding `wss://relay.layer.systems` from any Nostr client.
- Avoid speculative promises about uptime or persistence.
## 7. Motion
Motion should feel like signal movement, not decoration.
Use:
- Ticker movement.
- Subtle hover shifts on cards and CTAs.
- Focus-visible rings with a quick transition.
Avoid:
- Heavy parallax.
- Decorative floating orbs.
- Motion that distracts from reading the relay URL.
Respect `prefers-reduced-motion`.
## 8. Imagery and Texture
This site does not need stock photography.
Preferred visual motifs:
- Relay/network linework.
- Terminal-inspired grid texture.
- Endpoint/code fragments.
- Protocol tags and event-kind labels.
- Simple infrastructure diagrams.
Texture direction:
- Light paper/noise texture is acceptable.
- Grid backgrounds are acceptable.
- Keep texture subtle enough that body text remains AA compliant.
## 9. Accessibility
Requirements:
- WCAG 2.1 AA contrast for text and controls.
- Keyboard-accessible navigation and controls.
- Visible focus states.
- Semantic headings.
- Descriptive alt text for static images.
- Empty `alt` for purely decorative images.
- No unsafe HTML injection.
## 10. Responsive Behavior
Mobile:
- Single-column flow.
- Sticky compact nav.
- Ticker can become static.
- Relay URL must wrap without layout overflow.
- Hero type must scale by breakpoint, not viewport-width formulas.
Tablet:
- Two-column section layouts where useful.
- Endpoint card remains prominent.
Desktop:
- Editorial grid with asymmetric section rhythm.
- Relay endpoint and hero copy share the first viewport.
- Keep primary content width controlled for readability.
## 11. Copy Tone
Tone should be direct and protocol-native.
Good:
- `Relay signal for the open social web.`
- `A public Nostr relay for portable social identity.`
- `Add the relay URL from any Nostr client.`
- `Events over platforms.`
Avoid:
- `Revolutionizing social engagement`
- `The ultimate decentralized ecosystem`
- `Next-generation community platform`
- `Seamless innovative experiences`
## 12. Implementation Notes
- Use existing shadcn/ui primitives.
- Keep cards at `8px` radius or less unless a local component requires otherwise.
- Use `cn()` for class composition when class branching is needed.
- Use lucide icons where icons are needed.
- Define color and font tokens in CSS variables.
- Keep sections as full-width bands with constrained inner content.
- Do not nest UI cards inside UI cards.
- Do not add unsafe HTML rendering for Nostr content.
- Sanitize all event-sourced URLs before rendering.
## 13. Documentation Tie-In
The `/docs` folder can document the design system once implementation expands.
Recommended docs:
- `/docs/design-system.md`: colors, typography, spacing, components.
- `/docs/content-guidelines.md`: tone, protocol language, relay usage guidance.
- `/docs/nostr-data.md`: relay-facing event kinds, tags, validation, and query patterns.
## 14. Design Acceptance Criteria
- The site clearly reads as LAYER.systems in the first viewport.
- The visual direction feels inspired by `einundzwanzig.space` but has its own orange Nostr relay identity.
- The relay endpoint is visually central, not secondary.
- The interface remains readable and usable at 360px width.
- Motion respects `prefers-reduced-motion`.
- UI contrast meets WCAG 2.1 AA.
- The design avoids generic orange SaaS styling.