4.3 KiB
Design Specification: Sample 3 (Companion Layout)
Status: Ready for Handoff
Target Page: companion.html
Layout Type: 50/50 Split Screen (Reactive Desktop, Stacked Mobile)
Theme Vibe: Hyper-minimalist terminal utility, clean information hierarchy, zero animation noise.
1. Design Philosophy & Guidelines
This sample modifies the primary design spec by enforcing a strict "interaction suppression" policy. Dynamic decorations (such as border color transitions or card expansion effects) are completely disallowed. Contrast and active states are communicated solely through instantaneous typography color changes.
The key feature is a persistent digital companion on the right half of the screen. The companion must feel like a quiet terminal process rather than an active distraction.
2. Layout Geometry & Grid
The layout divides the viewport down the middle on desktop screens.
Desktop Layout (Width > 768px)
- Top Header: Sticky
56pxnavigation bar containing breadcrumbs/catalog links. - Split Container: Spans 100% viewport width and 100% viewport height minus header (
height: calc(100vh - 56px)). - Columns:
- Left Pane (50%): Scrollable container. Houses a single-column list of project cards.
- Right Pane (50%): Fixed/non-scrollable container. Houses the centered ASCII companion terminal widget.
Mobile Layout (Width <= 768px)
- The layout collapses into a single vertical stack.
- The ASCII companion pane moves to the top (fixed height:
300px). - The content pane follows below, scrollable within the main document window.
3. Color Palette & Typography
Base Colors
- Canvas Background:
#0d0f12(Deep charcoal slate) - Surface Background:
#121417(Slightly lighter dark surface) - Static Borders:
#2b303b(1px solid, low contrast) - Primary Text:
#e0e6f0(Off-white prose) - Muted Text:
#8a95a5(Timestamp / status information) - Active Accent:
#00f0ff(High-contrast Cyan)
Typography
- UI & ASCII Content: Monospace (
JetBrains MonoorIBM Plex Mono). - Prose Content: Sans-serif (
InterorGeist Sans) for high readability.
4. Content Cards (Left Column)
Each card is a clean, structural text panel.
Structure
- 1px static border (
#2b303b) with4pxborder-radius. - No background color (inherits Canvas background) or a solid
#121417surface background. - Elements:
- Header (
h3): Monospaced, bold,#e0e6f0. - Description (
p): Sans-serif,#8a95a5, capped at65chlength.
- Header (
Interactions (Ultra-Minimal)
- No Border Shifts: Borders must remain
#2b303bat all times. - No Translation: Hovering must not scale, shift, or offset the card.
- Instant Typography Snap: Hovering or focusing the card snaps the text color of the Header (
h3) from#e0e6f0to Cyan (#00f0ff) instantly. - CSS Rule: Use
transition: none;on all hover effects.
5. ASCII Companion (Right Column)
The companion is rendered as block-level ASCII text inside a simulated terminal panel.
Layout Widget
- Sits centered in the right pane.
- Styled to resemble a terminal output terminal: card box with a tab bar indicating the daemon name
sys-daemon.
Animation & States
The companion has two interactive states:
State 1: IDLE
- Mascot Art:
/\___/\ ( o o ) sys-daemon ( =^= ) STATUS: IDLE \__*__/ LOG: awaiting input█ - Animation: The terminal block cursor (
█) blinks continuously at 1Hz (opacity: 0to1instantly). The rest of the mascot is static.
State 2: READING (Triggered on Card Hover)
- Mascot Art:
/\___/\ ( - - ) sys-daemon ( =o= ) STATUS: READING \__*__/ LOG: reading module_ - Reaction Log: Underneath the mascot, a mini status output log updates to display the title of the card currently hovered. For example:
[sys-daemon] target: /dev/mesh-mesh-topology-builder
Behavior Scripting Rules
- Attach
mouseenterandmouseleaveevent listeners to the cards in the left pane. - On hover, swap the inner HTML of the ASCII container to the
READINGframe and append the card's target name to the log output. - Revert back to the
IDLEframe immediately when the cursor leaves the card.