Generative Guidelines for the 3D Force-Directed Graph (Search-First)
Mission (Non-Negotiable)
You are generating or extending a Hugo theme whose primary interface is a single 3D force-directed graph.
This system must balance exploration with practical retrieval.
The graph must remain visually compelling while allowing users to quickly and confidently locate specific posts or scripts.
Treat every REQUIRED rule as mandatory.
Recommended rules are optional but preferred.
Core Graph Rules (Required)
- The primary UI MUST be one shared 3D force-directed graph containing categories, tags, and posts on the same stage.
- The graph MUST model hierarchy with explicit node types:
- Category nodes (level 0)
- Tag nodes (level 1)
- Post nodes (level 2)
- Links MUST only represent taxonomy edges:
- Category → Tag
- Tag → Post
No alternate navigation metaphors (timelines, treemaps, grids) are permitted.
- Clicking a post node MUST open the post.
- Clicking a category or tag node MUST focus it and visually emphasize connected nodes and links.
- Clicking the empty background MUST clear focus and return to the neutral view.
Data and Taxonomy Rules (Required)
- Front matter is authoritative. Do not infer or auto-generate categories or tags.
- Posts missing categories MUST be assigned to a fallback category node named
Uncategorized. - Posts missing tags MUST be assigned to a fallback tag node named
Untagged. - Tags of the same name across different categories MUST be discoverable together.
- For example, a tag landing or highlight action should emphasize all matching tag nodes globally.
Interaction and Filtering (Required)
- A search/filter input MUST prune or de-emphasize the graph in real time.
- Filtering matches against post title, category, tag, or date text.
- When filtered, only matching posts and their connected taxonomy paths remain emphasized.
- Focus MUST drive camera motion:
- Smooth pan, dolly, or zoom toward the focused node.
- Respect reduced-motion preferences.
- Hover or focus states MUST reveal clear labels for node name and node type.
🔍 Search & Retrieval Mode (Required)
The graph MUST support a distinct Search Mode when a search query is non-empty.
- Search Mode alters visual emphasis, not underlying structure.
- The graph MUST remain visible at all times.
In Search Mode, matching results MUST be ranked in the following priority order:
- Post title exact matches
- Post title partial matches
- Tag matches
- Category matches
- Date matches
The highest-ranked post MUST be visually designated as the Primary Result:
- Stronger outline, glow, or contrast
- Camera framing biased toward this node
- All other matches remain visible but visually subordinate
Non-matching nodes SHOULD be dimmed rather than removed when performance allows, preserving spatial context.
🧭 Orientation & Context (Required)
When a post node is focused (via click or search), a breadcrumb path MUST be displayed:
- Category → Tag(s) → Post
- Breadcrumbs are informational and read-only by default
Interacting with breadcrumb elements MUST:
- Highlight the corresponding nodes and links in the graph
- NOT change focus unless explicitly clicked
📐 Spatial Stability Rules (Required)
- Node positions MUST be deterministic between sessions for identical data inputs.
- Use stable seeds or cached layout positions.
- Search filtering MUST NOT trigger a full graph re-layout.
- In Search Mode, camera behavior MUST prioritize clarity over spectacle:
- Minimal zoom
- Prefer pan or subtle dolly
- Avoid rapid or disorienting motion
Visual Language (Required)
- The aesthetic MUST be Ghost Graph:
- Dark atmospheric backgrounds
- Subtle grid or scanline textures
- Muted neon accents
- Technical or sci-fi typography
- Node types MUST be visually distinct using a high-contrast palette:
- Category nodes: warm or red family
- Tag nodes: green family
- Post nodes: blue family
- Labels MUST remain readable:
- No excessive overlap or clipping
- Hide labels for tiny or distant nodes rather than sacrificing legibility
📋 Supplemental Navigation (Required)
- A Recently Modified sidebar MUST be present on all primary views.
- Sidebar sorting MUST use authoritative timestamps:
lastmodwhen present- Otherwise Git commit date or file modification time
- Sidebar entries MUST:
- Link directly to posts
- NOT alter the graph’s focus state
- The sidebar MUST remain visually subordinate to the graph:
- Narrow column
- Lower contrast
- No competing motion or emphasis
📄 Supplemental Search Results (Required, Subordinate)
- When Search Mode is active, a compact Search Results panel MAY appear:
- Text-only list of matching posts
- Sorted using the same ranking rules as the graph
- Selecting a search result MUST focus the corresponding node in the graph.
- This panel MUST:
- Never replace the graph
- Use lower visual contrast than the canvas
- Be dismissed automatically when the search query is cleared
Performance and Accessibility (Recommended)
- The 3D graph SHOULD degrade gracefully if the rendering library is unavailable:
- Display a clear empty-state message
- Render a simple list view as a fallback when possible
- Keyboard navigation SHOULD be supported for:
- Focusable nodes
- Breadcrumbs
- Sidebar and search results
- The canvas SHOULD resize fluidly for desktop and mobile without layout shift.
🧠 Cognitive Load Safeguards (Non-Negotiable)
- At no time should more than ONE node be visually emphasized as the Primary Result.
- Color, glow, and motion MUST never compete with label readability.
- When tradeoffs arise, prioritize:
- Legibility
- Predictability
- Spatial memory
over visual novelty.
Generative Constraints (Non-Negotiable)
- Do NOT introduce Voronoi, treemaps, timelines, grids, or alternate spatial metaphors.
- Preserve spatial memory and clarity over novelty.
- The graph must be easy to understand before it is impressive.