Branding
This document describes how Rivet’s branding assets are integrated throughout the project, and how to maintain them as the project evolves.
Asset Location
Section titled “Asset Location”All brand assets are in assets/branding/ — see assets/branding/README.md for the full asset catalog, color palette, and regeneration instructions.
Key files:
svg/— source vectors (always edit these, not the rasters)png/— rasterized versions at various sizestui/— ASCII/ANSI splash screen for terminalfavicon.ico— multi-resolution faviconrivet-mark.svg/rivet-wordmark.svg— legacy aliases (repointed to new design)
Implementation
Section titled “Implementation”CLI & TUI
Section titled “CLI & TUI”Status: ✅ Implemented
- Splash screen (
rivet about) — embeds the ASCII splash fromcrates/rivet-cli/assets/rivet-splash.ansiintorivet-cli/src/main.rsas theRIVET_SPLASHconstant. Displayed when runningrivet about. - Logo in
--help— uses Clap’s built-in version/about derived fromClistruct doc comment.
The splash lives inside the crate rather than under assets/branding/
because include_str! cannot reach outside a package that is going to be
published: cargo package ships only what is beneath the package root, so an
external path compiles locally and then resolves to nothing on crates.io.
To update the splash:
- Edit
crates/rivet-cli/assets/rivet-splash.ansi— it is hand-maintained, not produced byassets/branding/generate.py - Test with
cargo run -- about; theRIVET_SPLASHconstant embeds the file directly, so no code change is needed
Depicted shell prompt
Section titled “Depicted shell prompt”Status: ✅ Implemented
Every rendered depiction of a shell — as opposed to a code block a reader copies from — uses a Powerlevel10k-style prompt, so the README hero and the website demo read as the same machine:
| Element | Colour | Notes |
|---|---|---|
| Directory segment | bg #1F6FB8, text #EEF3F1 |
Leftmost, e.g. ~ |
| Git segment | bg #1F9E7A, text #0F1A17 |
Bold, e.g. main |
| Separator | the segment’s own background | Right-pointing triangle |
| Prompt character | #2BB88E |
❯, bold |
| Typed command | #EEF3F1 |
|
| Command output | #8CA39B |
Muted, never coloured per-token |
Two surfaces implement it, and they must stay in step:
assets/branding/rivet-session.svg— the README hero. Separators are<polygon>s; the prompt is a<text>run.web/src/components/TerminalDemo.astro— the landing-page demo. Separators are CSS triangles, not the Nerd Font powerline glyph (U+E0B0): the site ships no Nerd Font, so that glyph would render as tofu for most visitors.
This convention stops at rendered depictions. Documentation code blocks
keep the $ prompt in console blocks and no prompt in sh blocks, exactly
as DOCUMENTATION.md requires — $ is universal, ❯
implies a font the reader may not have, and a sh block must stay
copy-pasteable.
README & Documentation
Section titled “README & Documentation”Status: ✅ Implemented
README.md— usesrivet-wordmark.svgat the topdocs/BRANDING.md— this file; documents branding strategy
GitHub
Section titled “GitHub”Status: ⚠️ Manual setup required
To set the social preview:
- Go to repository Settings → Social preview
- Upload
assets/branding/png/social/rivet-social-banner.png(1280×640)
This image appears when Rivet is shared on Twitter/X, Slack, and other social platforms.
Packaging & Distribution
Section titled “Packaging & Distribution”Status: 📋 Planned
When packaging Rivet for distribution (Flatpak, snap, Homebrew, AUR, etc.):
- Use
png/app/rivet-app-icon-512.pngor-1024.pngas the base - Generate platform-specific formats (
.icnsfor macOS,.icofor Windows) from the PNG - Use
favicon.icofor any web-based tools or documentation sites
PNG icon sizes available:
icon/rivet-icon-{16,32,48,64,128,256,512,1024}.png— transparent UI iconsapp/rivet-app-icon-{128,256,512,1024}.png— filled app icons (dark background)app/rivet-app-icon-light-512.png— light variant
Future: Web Presence
Section titled “Future: Web Presence”Status: 🔄 Not yet applicable
When Rivet gains a website or documentation site:
- Use
favicon.icoin<head>for the tab icon - Use
png/favicon/favicon-{16,32,48,64}.pngfor multi-resolution favicon support - Use
svg/rivet-logo-horizontal.svgin the header (swap to-dark.svgvariant in dark mode via<picture>) - Ensure social preview is set (see GitHub section above)
Maintenance
Section titled “Maintenance”Updating the logo or palette
Section titled “Updating the logo or palette”All raster assets (PNG, favicon) are generated from the SVG sources via assets/branding/generate.py. To update:
- Edit SVG sources in
assets/branding/svg/ - Or change colors/sizes at the top of
assets/branding/generate.py - Regenerate PNG files:
Terminal window python3 assets/branding/generate.py - Commit both the SVG edits and regenerated PNG files
Do not hand-edit PNG files or raster images — always regenerate.
When adding new features
Section titled “When adding new features”CLI commands
Section titled “CLI commands”If adding a new feature with its own terminal UI or splash screen:
- Create an appropriate ASCII/ANSI variant in
assets/branding/tui/ - Import it into the relevant Rust module as a
conststring - Display it consistently with the existing branding
Package managers / distribution
Section titled “Package managers / distribution”When packaging Rivet for a new platform:
- Use the appropriate icon size from
png/app/ - Follow the platform’s icon guidelines (e.g., macOS
.icns, Windows.ico) - Store any platform-specific assets in
assets/branding/{platform}/if needed
Documentation
Section titled “Documentation”- New major documentation pages should use the horizontal logo at the top
- Use
svg/rivet-logo-horizontal.svgfor light backgrounds and-dark.svgfor dark - Ensure alt text is descriptive: e.g.,
alt="Rivet — Git-native workstation snapshots"
Asset Checklist
Section titled “Asset Checklist”When making a release or major update, verify:
-
rivet aboutdisplays the splash screen correctly - README.md displays the wordmark
- GitHub social preview is set to
rivet-social-banner.png - Documentation is branded consistently
- Any new CLI commands that show branding are tested
- Packaging assets (PNG icons) match the latest design
References
Section titled “References”assets/branding/README.md— detailed asset guide and color palettecrates/rivet-cli/src/main.rs— CLI integration (splash screen)README.md— main project README