DESIGN.md · diff

alpha to alpha

4 added, 4 removed. Audit A to A.

---
version: alpha
name: Pageshelf
description: A calm, kawaii, soft-3D developer-tool identity built around a sleepy shelf-keeper mascot, organized artifact shelves, private sharing, and local-first security.
colors:
primary: "#1D2356"
primary-soft: "#3B4F9C"
secondary: "#7EA1E6"
tertiary: "#B9A6F5"
accent: "#F59E3D"
mint: "#8FD3B6"
amber: "#FFC766"
surface: "#FFF7ED"
surface-raised: "#FFFBF4"
surface-tint: "#F6F0E7"
on-surface: "#1D2356"
on-surface-muted: "#66709A"
border: "#E9DCCB"
shelf-wood: "#E2C39A"
shelf-wood-dark: "#B98245"
document: "#FFF1DC"
code-orange: "#F59E3D"
lock-gold: "#D89437"
success: "#55B98B"
warning: "#FFC766"
error: "#E75D54"
typography:
headline-display:
fontFamily: Inter
fontSize: 56px
fontWeight: 800
lineHeight: 1.05
letterSpacing: "-0.04em"
headline-lg:
fontFamily: Inter
fontSize: 40px
fontWeight: 800
lineHeight: 1.1
letterSpacing: "-0.035em"
headline-md:
fontFamily: Inter
fontSize: 28px
fontWeight: 750
lineHeight: 1.15
letterSpacing: "-0.025em"
title-lg:
fontFamily: Inter
fontSize: 22px
fontWeight: 700
lineHeight: 1.25
letterSpacing: "-0.015em"
title-md:
fontFamily: Inter
fontSize: 18px
fontWeight: 700
lineHeight: 1.3
letterSpacing: "-0.01em"
body-lg:
fontFamily: Inter
fontSize: 18px
fontWeight: 400
lineHeight: 1.65
letterSpacing: "-0.005em"
body-md:
fontFamily: Inter
fontSize: 16px
fontWeight: 400
lineHeight: 1.6
body-sm:
fontFamily: Inter
fontSize: 14px
fontWeight: 400
lineHeight: 1.55
label-lg:
fontFamily: Inter
fontSize: 14px
fontWeight: 700
lineHeight: 1.2
letterSpacing: 0.01em
label-md:
fontFamily: Inter
fontSize: 12px
fontWeight: 700
lineHeight: 1.2
letterSpacing: 0.04em
code-md:
fontFamily: JetBrains Mono
fontSize: 14px
fontWeight: 500
lineHeight: 1.45
rounded:
none: 0px
xs: 6px
sm: 10px
md: 14px
lg: 20px
xl: 28px
xxl: 36px
full: 9999px
spacing:
none: 0px
xxs: 2px
xs: 4px
sm: 8px
md: 16px
lg: 24px
xl: 32px
xxl: 48px
xxxl: 64px
page-max-width: 1120px
content-max-width: 760px
icon-grid: 8px
components:
page:
backgroundColor: "{colors.surface}"
textColor: "{colors.on-surface}"
width: "{spacing.page-max-width}"
card:
backgroundColor: "{colors.surface-raised}"
textColor: "{colors.on-surface}"
rounded: "{rounded.lg}"
padding: "{spacing.lg}"
card-soft:
backgroundColor: "#FFF4E4"
textColor: "{colors.on-surface}"
rounded: "{rounded.xl}"
padding: "{spacing.xl}"
button-primary:
backgroundColor: "{colors.primary}"
textColor: "#FFFFFF"
rounded: "{rounded.full}"
padding: 12px 18px
typography: "{typography.label-lg}"
button-secondary:
backgroundColor: "{colors.surface-raised}"
textColor: "{colors.primary}"
rounded: "{rounded.full}"
padding: 12px 18px
typography: "{typography.label-lg}"
input:
backgroundColor: "{colors.surface-raised}"
textColor: "{colors.on-surface}"
rounded: "{rounded.md}"
padding: 12px 14px
chip:
backgroundColor: "#EEF3FF"
textColor: "{colors.primary-soft}"
rounded: "{rounded.full}"
padding: 6px 10px
document-card:
backgroundColor: "{colors.document}"
textColor: "{colors.primary}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
browser-card:
backgroundColor: "{colors.surface-raised}"
textColor: "{colors.primary}"
rounded: "{rounded.lg}"
padding: "{spacing.md}"
cli-prompt-tile:
backgroundColor: "#253052"
textColor: "#BFD4FF"
rounded: "{rounded.md}"
padding: "{spacing.md}"
typography: "{typography.code-md}"
lock-badge:
backgroundColor: "#EAF0FF"
textColor: "{colors.primary-soft}"
rounded: "{rounded.lg}"
padding: "{spacing.sm}"
shelf-tile:
backgroundColor: "{colors.shelf-wood}"
textColor: "{colors.primary}"
rounded: "{rounded.xl}"
padding: "{spacing.lg}"
mascot-avatar:
backgroundColor: "{colors.secondary}"
textColor: "{colors.primary}"
rounded: "{rounded.xl}"
padding: "{spacing.md}"
---
# Pageshelf Design System
## Overview
Pageshelf should look like a secure little shelf for AI-generated HTML artifacts: calm, local-first, organized, and quietly competent. The identity is built around a sleepy but reliable kawaii shelf-keeper mascot, a rounded artifact shelf, glowing HTML pages, small browser cards, CLI prompt tiles, and subtle lock/key/security motifs.
The visual style is soft 3D kawaii developer tooling: more like a Japanese capsule toy or vinyl desk collectible than an anime character. It should feel friendly without becoming childish, technical without becoming cold, and secure without becoming enterprise-gray.
The core personality is:
- Calm: reduce cognitive load; avoid loud contrast and visual noise.
- - Secure: imply privacy, local-first storage, tokens, and protected sharing through small lock/key/shield motifs.
+ - Secure: imply privacy, local-first storage, and protected sharing through small lock/key/shield motifs.
- Organized: every artifact has a place; layouts should feel shelf-like, gridded, and tidy.
- Agent-friendly: patterns should be clear enough for AI agents to reproduce consistently.
Use the mascot for README hero images, onboarding, empty states, success states, and friendly product moments. Use simpler UI primitives for dense screens where the mascot would become distracting.
## Colors
The palette is warm, pastel, and low-noise. Use the deep indigo as the primary readable color, cream surfaces as the base, soft blues/lavenders for product identity, mint for safe/connected states, and amber/orange for HTML/code-page highlights.
- Primary / Ink Indigo (`#1D2356`): wordmark, headings, primary text, important controls.
- Primary Soft (`#3B4F9C`): secondary headings, icon strokes, active states.
- Sky Blue (`#7EA1E6`): mascot hood, primary brand surfaces, selected states.
- Lavender (`#B9A6F5`): secondary brand accent, dotted private-network arcs, soft UI blocks.
- Mint (`#8FD3B6`): safe connection, local/private status, key-tag details.
- Amber Glow (`#FFC766`): warm highlights, glowing document edges, success warmth.
- Code Orange (`#F59E3D`): `</>` marks, CLI affordance accents, small code details.
- Cloud Cream (`#FFF7ED`): page background and hero backdrop.
- Paper Cream (`#FFFBF4`): raised cards, document bodies, modal surfaces.
- Shelf Wood (`#E2C39A`): shelf surfaces and mascot-scene structure.
- Border Beige (`#E9DCCB`): card outlines, separators, low-emphasis boundaries.
Rules:
- Prefer cream and off-white surfaces over pure white.
- Use indigo for readability and brand weight.
- Use orange sparingly. It is for code symbols and artifact highlights, not broad fills.
- Avoid harsh neon, saturated cyberpunk colors, pure black, and aggressive red unless showing destructive/error states.
- Do not let pastel colors reduce text contrast. Text on pastel fills should usually be indigo.
## Typography
Use a rounded, modern sans-serif that feels readable in both OSS documentation and product UI. Default to Inter for most UI. Use JetBrains Mono only for command snippets, terminal cards, file paths, ports, tokens, and code-adjacent metadata.
- Wordmark / hero display: heavy rounded sans-serif, dark indigo, large, friendly, with tight letter spacing.
- Headlines: Inter, 700–800 weight, tight tracking, short lines.
- Body: Inter, 14–18px, regular weight, generous line height.
- Labels: Inter, 12–14px, bold or semi-bold, used for cards, chips, statuses, and section headers.
- Code / CLI: JetBrains Mono, 13–14px, medium weight, never overused.
Typography should feel polished but not precious. Avoid decorative fonts, thin weights, overly geometric techno fonts, and handwritten styles. Pageshelf is cute, but its type should remain product-grade.
## Layout
Pageshelf UI should feel like an organized shelf: clear compartments, predictable spacing, and visible hierarchy. Use an 8px spacing rhythm, with generous whitespace around important content.
- Use a max content width of 1120px for docs/product pages.
- Use 760px max width for prose-heavy content.
- Prefer 2–3 column layouts for cards on desktop, collapsing to a single column on mobile.
- Keep hero sections centered or left-symbol/right-wordmark for brand assets.
- In dense UI, use compact rows but preserve soft spacing and clear grouping.
- Align icons, labels, and controls to an 8px grid.
Do not create chaotic collage layouts. The mascot scene can be detailed, but application screens should be calmer and more systematic.
## Elevation & Depth
Depth should come from soft toy-like forms, tonal layering, subtle borders, and gentle shadows. Avoid heavy SaaS drop shadows and glassmorphism.
Use three depth levels:
1. Flat surface: page background, documentation body, low-emphasis areas.
2. Raised card: cards, panels, browser-preview blocks, shelf tiles.
3. Mascot / hero object: soft 3D mascot renders, app icons, README hero art.
Guidelines:
- Use soft shadows with low opacity and wide blur.
- Combine a light border with a subtle shadow for cards.
- Raised cards should look touchable, not floating aggressively.
- 3D assets should have smooth studio lighting, rounded forms, and clean edges.
- Avoid hard black shadows, dramatic perspective, noisy textures, and photorealistic materials.
Suggested CSS shadow styles:
```css
--shadow-sm: 0 1px 2px rgb(29 35 86 / 0.06), 0 1px 1px rgb(29 35 86 / 0.04);
--shadow-md: 0 8px 24px rgb(29 35 86 / 0.10), 0 2px 6px rgb(29 35 86 / 0.06);
--shadow-soft-3d: 0 18px 48px rgb(137 102 61 / 0.16), 0 4px 12px rgb(29 35 86 / 0.08);
```
## Shapes
The shape language is rounded, soft, and shelf-like. Corners should feel intentionally friendly. Sharp rectangles break the identity.
Core shapes:
- Soft rounded rectangles: default panels, cards, inputs, browser windows.
- Pills and capsules: chips, tags, status indicators, small controls.
- Document cards: cream pages with folded corners and orange `</>` symbols.
- Browser window cards: mini metadata previews with top-dot controls and simple content blocks.
- Rounded shelf corners: big, toy-like container shapes for storage metaphors.
- Dotted connection arcs: subtle private-network motif; use sparingly.
- Lock/key/shield badges: small security affordances, never large threatening security theater.
Avoid spikes, angular sci-fi shapes, sharp-edged terminal aesthetics, aggressive security iconography, and inconsistent corner radii in the same view.
## Components
### Buttons
Buttons should be rounded pills with clear hierarchy.
- Primary: indigo fill, white text, used for one main action per screen.
- Secondary: cream/white fill, indigo text, beige border.
- Tertiary / ghost: text-only or soft-tinted fill for low-emphasis actions.
- Use 12px vertical padding and 18px horizontal padding as a default.
- Icons inside buttons should be rounded/simple, not sharp.
### Cards
Cards are the default grouping primitive.
- Use paper cream or soft tinted surfaces.
- Use a 1px beige border and low-opacity soft shadow.
- Keep card content organized: icon/title/body/action.
- Prefer 20px radius for standard cards.
- Avoid dense borders, table-like boxes, and overloaded cards.
### Document Card
Represents a saved HTML artifact.
- Cream document body.
- Optional folded corner.
- Orange `</>` mark or small code glyph.
- 2–3 muted metadata lines.
- Can glow subtly with amber when active, generated, or newly saved.
### Browser Card
Represents a preview or metadata snapshot for a web artifact.
- Rounded card with a muted blue/lavender header bar.
- Three tiny circular controls can appear in the header.
- Body contains abstract blocks/lines, not detailed screenshots unless needed.
- Keep it readable at small sizes.
### CLI Prompt Tile
Represents local CLI commands or agent actions.
- Dark indigo surface.
- Light blue or mint monospace glyphs.
- Use `>_`, `$`, or command-like marks sparingly.
- Should feel friendly and contained, not hacker/noir.
### Shelf / Storage Tile
Represents organized local storage.
- Warm wood or cream container.
- Rounded shelf corners.
- Can contain document cards, browser cards, and small status dots.
- Use for onboarding, empty states, storage views, and docs illustrations.
### Lock Badge / Key Tag / Shield
- Represents privacy, tokenized sharing, or protected local access.
+ Represents privacy, protected local access, or private tailnet sharing.
- Prefer small badges attached to UI or mascot objects.
- Use mint, blue, or gold accents.
- Avoid large lock walls, warning shields, or fear-based security visuals.
### Mascot
The mascot is a sleepy but competent shelf-keeper.
- Rounded blue hood, cream face/body, tiny dot/oval eyes, minimal mouth.
- Expression: calm, slightly sleepy, reliable.
- Props: document card, CLI prompt card, key tag, lock charm.
- Use as a friendly guide, not as a loud mascot shouting at the user.
- Never make the mascot angry, edgy, overly anime, overly human, or hyperactive.
### App Icon / GitHub Avatar
- Use the mascot head or mascot-with-shelf symbol.
- Keep details minimal at small sizes.
- Prefer a rounded square blue/cream background for app-icon contexts.
- Avoid including the full wordmark in avatar-size icons.
## Do's and Don'ts
### Do
- Do keep the UI calm, pastel, and organized.
- Do use rounded soft forms consistently.
- Do use cream/off-white surfaces instead of sterile white when possible.
- Do use indigo for clear hierarchy and readable text.
- Do use orange for HTML/code symbols and artifact highlights.
- Do use lock, key, shield, and dotted arc motifs subtly to communicate secure private sharing.
- Do make artifact-related UI feel like cards placed on a shelf.
- Do keep mascot details simple enough to survive at GitHub-avatar size.
- Do preserve generous whitespace in README hero images and onboarding screens.
- Do maintain accessibility contrast, especially for text on pastel surfaces.
### Don't
- Don't use harsh neon colors, cyberpunk gradients, pure black backgrounds, or loud saturated palettes.
- Don't turn the mascot into an anime character, animal mascot, realistic robot, or aggressive security character.
- Don't overcrowd screens with mascot props, dotted arcs, locks, and shelves all at once.
- Don't use sharp corners, spikes, jagged shapes, or hard technical brutalism.
- Don't use orange as the primary UI color.
- Don't place long text inside tiny 3D illustration assets.
- Don't rely on 3D illustrations for core product comprehension.
- Don't stretch, crop awkwardly, recolor, or distort the mascot.
- Don't mix multiple unrelated illustration styles in the same screen.
- Don't let cuteness reduce credibility. Pageshelf is an OSS developer tool first.
## Iconography
Icons should be simple, rounded, and object-like. Use filled or softly shaded icons for brand/marketing surfaces, and simple line/filled hybrid icons for product UI.
Core motifs:
- HTML Page: cream paper card, folded corner, orange `</>`.
- CLI Prompt: dark indigo rounded tile with light prompt mark.
- Browser Window: rounded mini window with header dots and abstract content blocks.
- Lock: small gold/cream lock for protected items.
- - Key Tag: mint tag with lock mark for token/private access.
+ - Key Tag: mint tag with lock mark for private access.
- Shield: soft blue shield for security status.
- Private Network Arc: dotted lavender/blue arc, never a copied third-party network logo.
- Home Cloud Badge: cream cloud with small blue home/cubby mark for local-first/private shelf.
## Illustration & Mascot Art Direction
Pageshelf illustrations should look like soft vinyl collectibles photographed in a clean studio, but simplified enough for product use.
Art direction:
- Smooth 3D forms with soft ambient shadows.
- Low-detail faces and props.
- Warm cream background or transparent export.
- Centered compositions with clean silhouette.
- No complex environments.
- No text except symbolic code marks such as `</>` or `>_`.
- Security and network elements are secondary details, not the main subject.
Preferred scene types:
- Mascot sitting beside the artifact shelf.
- Mascot holding an HTML page.
- Shelf filled with glowing document cards.
- Tiny CLI prompt tile near browser cards.
- Lock/key charm attached to mascot or shelf.
- Dotted arc around shelf for private sharing.
For README hero images, use a horizontal lockup: mascot-and-shelf symbol on the left, Pageshelf wordmark on the right, ultra-light background, high readability, and no clutter.
## Voice in UI Copy
The visual identity is calm and competent; copy should match.
- Prefer plain, direct wording.
- Use security language without fear-mongering.
- Explain local-first behavior concretely.
- Avoid mascot catchphrases, jokes, or overly cute copy in core product flows.
- Use playful warmth only in empty states, success moments, and README visuals.
Good examples:
- “Saved to your local shelf.”
- - “Share with a private token.”
+ - “Share on a private tailnet.”
- “Artifact is only available from this server.”
- “Open local preview.”
Bad examples:
- “OMG your magical files are safe!!!”
- “Military-grade secure artifact vault.”
- “Hack the planet.”
## Implementation Notes for Agents
When generating UI for Pageshelf:
1. Start with a cream/off-white page surface.
2. Use indigo text, pastel cards, rounded corners, and 8px spacing.
3. Use document cards, browser cards, CLI tiles, and lock badges as recurring primitives.
4. Use the mascot only when it clarifies or warms the experience; do not put it everywhere.
5. Favor calm order over decorative density.
6. Preserve the “local-first private shelf” metaphor across screens.
7. If a token is missing, choose the closest existing token before inventing a new style.
8. When in doubt, make it simpler, softer, and more organized.