Neo4j Style Guide
Ensure consistency with Neo4j brand identity, the Needle design system, and Cypher coding conventions.
Brand Colors
Primary: Baltic (Blue-Green Teal)
The primary color is inspired by the Baltic Sea, combining calmness of blue with refreshing green qualities. It has both cool and warm undertones.
Primary Teal: #018BFF (bright blue), #009999 (teal), #00C1B6 (cyan)
Secondary Palette (Nature-Inspired)
Green: #2F9E44 (forest), #B2F2BB (light green)
Orange: #F79767 (warm orange), #FFEC99 (light yellow)
Red: #E03131 (alert red), #FFC9C9 (light red)
Purple: #C990C0 (node purple), #D0BFFF (light purple)
Pink: #DA7194 (relationship pink)
Neutral Colors
Dark: #1E1E1E (text black)
Gray: #A5ABB6 (default node/relationship)
Light: #F3F3F0 (background)
White: #FFFFFF
Typography
Font Families
| Use Case | Font | Notes |
|---|---|---|
| Display/Headings | Syne Neo | Modified Syne with circular dots (not squares) in periods, tittles. Rounded 'g' descender. |
| Body Text | Public Sans | Narrow structure, high legibility, good contrast to Syne |
| Code/Monospace | Letter Gothic | For code samples, Cypher queries, technical content |
Typography Guidelines
- Use Syne Neo sparingly for headlines and display text
- Public Sans for all body copy and UI text
- Code blocks always use monospace font
- Ensure adequate contrast for accessibility
Node Shape Language
Neo4j uses organic, fluid node shapes based on a hexagonal grid:
- Circles/Ellipses for entity nodes
- Rounded rectangles for containers/components
- Avoid rigid, angular shapes
- Shapes should feel interconnected and organic
Cypher Code Style
Naming Conventions
| Element | Convention | Example |
|---|---|---|
| Keywords | UPPERCASE | MATCH, RETURN, CREATE, WHERE |
| Node Labels | UpperCamelCase | :Person, :Movie, :Organization |
| Relationship Types | UPPER_SNAKE_CASE | :ACTED_IN, :WORKS_AT, :KNOWS |
| Properties | lowerCamelCase | firstName, dateCreated, isActive |
| Variables | lowercase | n, m, p, person, movie |
| Null/Boolean | lowercase | null, true, false |
Formatting Rules
// Keywords uppercase, proper spacing
MATCH (p:Person {name: 'Alice'})-[:KNOWS]->(friend:Person)
WHERE friend.age > 30
RETURN friend.name AS name, friend.age AS age
ORDER BY friend.age DESC
Key rules:
- No space in label predicates:
(n:Label)not(n: Label) - Space after commas in lists
- No padding in function calls:
count(n)notcount( n ) - Break long patterns after arrows, not before
- Use anonymous nodes when variable not needed:
()-->(n:Movie) - Chain patterns to avoid repeating variables
File Extension
Use .cypher for Cypher query files.
Documentation Writing
In Prose References
When referencing Cypher constructs in documentation:
- Labels with colon:
:Person,:Movie - Relationship types with colon:
:ACTED_IN,:KNOWS - Functions with parentheses:
count(),toString(),collect() - Use monospace/code font for all Cypher elements
- Use
cypherfmt(Neo4j VS Code Extension) for formatting
Code Examples
Always include:
- Proper syntax highlighting
- Realistic, meaningful sample data
- Comments explaining non-obvious patterns
Graph Visualization Colors
Default node label colors for Neo4j Browser/Bloom:
node {
color: #A5ABB6; /* default gray */
border-color: #9AA1AC;
text-color-internal: #FFFFFF;
}
node.Person {
color: #DA7194; /* pink */
border-color: #CC3C6C;
}
node.Movie {
color: #C990C0; /* purple */
border-color: #B261A5;
}
node.Organization {
color: #F79767; /* orange */
border-color: #F36924;
}
relationship {
color: #A5ABB6;
shaft-width: 1px;
}
Diagram Guidelines
When creating diagrams for Neo4j content:
- Use organic shapes - circles for nodes, curved arrows for relationships
- Apply brand colors - use the Baltic teal as primary accent
- Show relationships clearly - arrows with type labels
- Include properties - show key properties inside node shapes
- Maintain whitespace - don't overcrowd diagrams
Excalidraw Integration
When using the excalidraw skill for Neo4j diagrams:
- Use
#009999(teal) for primary/highlighted nodes - Use
#A5ABB6(gray) for secondary nodes - Use distinct colors for different node labels
- Label relationships in UPPER_SNAKE_CASE
- Use hand-drawn style (roughness: 1) for approachable feel
AI-Generated Illustrations
Neo4j has specific guidelines for AI-generated artwork:
- Define a consistent illustration style
- Use the brand color palette in prompts
- Avoid generic AI aesthetics
- Maintain organic, nature-inspired themes
- Focus on connections and relationships
Quick Reference
Primary: #009999 (Baltic teal)
Accent: #00C1B6 (cyan)
Text: #1E1E1E (dark)
Background: #F3F3F0 (light)
Display: Syne Neo
Body: Public Sans
Code: Letter Gothic
Labels: UpperCamelCase (:Person)
Rel Types: UPPER_SNAKE_CASE (:WORKS_AT)
Properties: lowerCamelCase (firstName)
Keywords: UPPERCASE (MATCH, RETURN)
Resources
- Needle Design System: https://neo4j.design
- Cypher Style Guide: https://neo4j.com/docs/cypher-manual/current/styleguide/
- Naming Conventions: https://neo4j.com/docs/cypher-manual/current/syntax/naming/
- Browser Styling: https://neo4j.com/docs/browser-manual/current/operations/browser-styling/
Converted and distributed by TomeVault — claim your Tome and manage your conversions.