Skip to content

Commit 97ddc6f

Browse files
Merge pull request #304 from adambkaplan/brand-guidance
feat: Brand Standards
2 parents fff02e4 + da2f9fb commit 97ddc6f

1 file changed

Lines changed: 363 additions & 0 deletions

File tree

BRAND.md

Lines changed: 363 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,363 @@
1+
# Shipwright Brand Standards
2+
3+
This document defines the visual and editorial standards for the Shipwright project to ensure consistent branding across all media, including the website, documentation, presentations, and community materials.
4+
5+
## Table of Contents
6+
7+
1. [Project Overview](#project-overview)
8+
2. [Project Naming](#project-naming)
9+
3. [Logo Guidelines](#logo-guidelines)
10+
4. [Color Palette](#color-palette)
11+
5. [Typography](#typography)
12+
6. [Tone of Voice](#tone-of-voice)
13+
14+
---
15+
16+
## Project Overview
17+
18+
### Vision Statement
19+
20+
**Shipwright is an extensible framework for building container images on Kubernetes.**
21+
22+
### Target Audience
23+
24+
- **Primary Audience**: Potential adopters and contributors to Shipwright
25+
- **Knowledge Level**: Familiarity with Kubernetes and containers
26+
- **Key Personas**:
27+
- Platform Engineers
28+
- Application Developers
29+
30+
---
31+
32+
## Project Naming
33+
34+
### Main Project Name
35+
36+
**"Shipwright"**
37+
38+
Use "Shipwright" when:
39+
- Referencing the project as a whole
40+
- Multiple Shipwright sub-projects/components are referenced together
41+
- The context clearly implies the Build component
42+
43+
**Example**: "Shipwright simplifies building container images on Kubernetes."
44+
45+
### Sub-projects and Components
46+
47+
#### Shipwright Build
48+
49+
- **Full name**: "Shipwright Build"
50+
- **Usage**: Only use the full name when distinguishing the core component from other sub-projects
51+
- **Default**: In most contexts, "Shipwright" implies the Build component
52+
53+
**Example**: "Shipwright Build provides the core APIs and controllers, while the Shipwright Operator manages the system's deployment."
54+
55+
#### `shp` Command Line
56+
57+
- **Full name**: "`shp` command line" or "`shp`"
58+
- **Formatting**: ALWAYS use code formatting (backticks in Markdown, monospace in other contexts)
59+
- **Never**: Write "shp" without code formatting
60+
61+
**Examples**:
62+
- "The `shp` command line provides an intuitive interface..."
63+
- "Use `shp build create` to start a new build..."
64+
65+
#### Shipwright Triggers
66+
67+
- **First reference**: "Shipwright Triggers"
68+
- **Subsequent references**: "Triggers"
69+
70+
**Example**: "Shipwright Triggers integrates builds with Tekton Pipelines. Deploy Triggers to run Shipwright builds within a larger Tekton pipeline."
71+
72+
#### The Shipwright Operator
73+
74+
- **Always**: "the Shipwright Operator" (with preceding "the")
75+
- **Purpose**: The article "the" communicates that a single instance is expected
76+
- **Subsequent references**: "the Operator"
77+
78+
**Example**: "The Shipwright Operator manages the lifecycle of Build resources. Install the Operator using Operator Lifecycle Manager."
79+
80+
---
81+
82+
## Logo Guidelines
83+
84+
### Logo Variants
85+
86+
The Shipwright logo is available in three layouts:
87+
88+
1. **Horizontal** - Preferred for most uses (logo mark + wordmark side-by-side)
89+
2. **Stacked** - For square or vertical spaces (logo mark above wordmark)
90+
3. **Icon** - Logo mark only, for small spaces or when Shipwright is already identified
91+
92+
### Color Variants
93+
94+
Each layout is available in three color treatments:
95+
96+
- **Color** - Primary usage, full color logo
97+
- **Black** - For light backgrounds when color is not available
98+
- **White** - For dark backgrounds or reversed treatments
99+
100+
### Logo Files
101+
102+
All logo files are available in the `/assets/icons/` directory:
103+
104+
```
105+
assets/icons/
106+
├── horizontal/
107+
│ ├── color/shipwright-horizontal-color.svg
108+
│ ├── black/shipwright-horizontal-black.svg
109+
│ └── white/shipwright-horizontal-white.svg
110+
├── stacked/
111+
│ ├── color/shipwright-stacked-color.svg
112+
│ ├── black/shipwright-stacked-black.svg
113+
│ └── white/shipwright-stacked-white.svg
114+
└── icon/
115+
├── color/shipwright-icon-color.svg
116+
├── black/shipwright-icon-black.svg
117+
└── white/shipwright-icon-white.svg
118+
```
119+
120+
Changes to these files MUST be synced to the official [CNCF artwork repository](https://github.com/cncf/artwork).
121+
122+
### Usage Guidelines
123+
124+
- **Minimum size**: Ensure the logo is legible - horizontal logo minimum width of 120px, icon minimum 32px
125+
- **Clear space**: Maintain clear space around the logo equal to the height of the ship icon
126+
- **Do not**: Alter colors, rotate, distort, outline, or add effects to the logo
127+
- **Background**: Ensure sufficient contrast between logo and background
128+
129+
---
130+
131+
## Color Palette
132+
133+
### Core Brand Colors
134+
135+
The Shipwright color palette is inspired by maritime themes - deep ocean blues and slate grays that evoke shipbuilding and nautical imagery.
136+
137+
| Color Name | Hex Code | Usage |
138+
|------------|----------|-------|
139+
| **Navy** | `#0e232e` | Primary brand color, dark backgrounds, headings |
140+
| **Slate Blue** | `#546378` | Secondary brand color, subheadings, UI elements |
141+
| **Light Slate** | `#7c8fa4` | Tertiary color, icons, accents, backgrounds |
142+
| **White** | `#ffffff` | Light backgrounds, reversed text |
143+
144+
### Light Theme Palette
145+
146+
Recommended for documentation, websites, and presentations with light backgrounds.
147+
148+
| Element | Color | Hex Code | Contrast Ratio* |
149+
|---------|-------|----------|----------------|
150+
| **Background** | White | `#ffffff` | - |
151+
| **Primary Text** | Navy | `#0e232e` | 15.3:1 ✓✓ |
152+
| **Secondary Text** | Slate Blue | `#546378` | 7.1:1 ✓✓ |
153+
| **Links (Unvisited)** | Slate Blue | `#546378` | 7.1:1 ✓✓ |
154+
| **Links (Hover/Active)** | Navy | `#0e232e` | 15.3:1 ✓✓ |
155+
| **Accent/Borders** | Light Slate | `#7c8fa4` | 4.5:1 ✓ |
156+
| **Code Blocks Background** | Ivory | `#f5f7f9` | - |
157+
| **Code Blocks Text** | Navy | `#0e232e` | 13.8:1 ✓✓ |
158+
159+
*Contrast ratio against background. ✓ = WCAG AA compliant, ✓✓ = WCAG AAA compliant
160+
161+
### Dark Theme Palette
162+
163+
Recommended for dark mode interfaces, terminal applications, and developer tools.
164+
165+
| Element | Color | Hex Code | Contrast Ratio* |
166+
|---------|-------|----------|----------------|
167+
| **Background** | Navy | `#0e232e` | - |
168+
| **Primary Text** | White | `#ffffff` | 15.3:1 ✓✓ |
169+
| **Secondary Text** | Light Slate | `#7c8fa4` | 4.5:1 ✓ |
170+
| **Links (Unvisited)** | Sky Blue | `#a8c5e0` | 7.2:1 ✓✓ |
171+
| **Links (Hover/Active)** | White | `#ffffff` | 15.3:1 ✓✓ |
172+
| **Accent/Borders** | Slate Blue | `#546378` | 3.2:1 ~ |
173+
| **Code Blocks Background** | Deep Sea | `#1a3340` | - |
174+
| **Code Blocks Text** | White | `#ffffff` | 12.1:1 ✓✓ |
175+
176+
*Contrast ratio against background. ✓ = WCAG AA compliant, ✓✓ = WCAG AAA compliant, ~ = Use for large text only
177+
178+
**Note**: For dark theme links, we use a lighter shade (`#a8c5e0`) to ensure sufficient contrast against the navy background.
179+
180+
### Accessibility Considerations
181+
182+
All color combinations in this palette have been tested for accessibility:
183+
184+
- **WCAG AA Compliance**: Minimum 4.5:1 contrast ratio for normal text, 3:1 for large text (18pt+)
185+
- **WCAG AAA Compliance**: Minimum 7:1 contrast ratio for enhanced readability
186+
- **Color Blindness**: The Shipwright palette uses both color and luminance contrast, making it distinguishable for users with protanopia, deuteranopia, and tritanopia
187+
- **Never use color alone**: Always combine color with text labels, icons, or patterns to convey information
188+
189+
### Extended Palette
190+
191+
For additional UI needs (alerts, notifications, status indicators):
192+
193+
| Purpose | Light Theme | Dark Theme | Notes |
194+
|---------|-------------|------------|-------|
195+
| **Success** | `#2ea043` | `#3fb950` | Green, positive actions |
196+
| **Warning** | `#9a6700` | `#d29922` | Amber, caution states |
197+
| **Error** | `#cf222e` | `#f85149` | Red, destructive actions |
198+
| **Info** | `#0969da` | `#58a6ff` | Blue, informational messages |
199+
200+
These colors should be used sparingly and always meet WCAG AA contrast requirements.
201+
202+
---
203+
204+
## Typography
205+
206+
### Typefaces
207+
208+
#### Body Text and UI
209+
210+
Use system font stacks for optimal performance and native appearance:
211+
212+
```css
213+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans",
214+
Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
215+
```
216+
217+
**Characteristics**:
218+
- Clean, modern sans-serif
219+
- Excellent readability across devices
220+
- Native to each operating system
221+
222+
#### Logo Wordmark
223+
224+
The Shipwright logo uses a clean, geometric sans-serif typeface. When the logo is used, no additional typeface is required for the wordmark.
225+
226+
#### Code and Technical Content
227+
228+
For code blocks, inline code, terminal commands, and API references:
229+
230+
```css
231+
font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas,
232+
"Liberation Mono", monospace;
233+
```
234+
235+
**Usage**:
236+
- Command line examples: `` `shp build create` ``
237+
- API objects: `` `BuildRun` ``, `` `BuildStrategy` ``
238+
- File paths: `` `/var/lib/shipwright` ``
239+
- Configuration values: `` `enabled: true` ``
240+
241+
### Type Scale
242+
243+
Recommended type sizes for web and documentation:
244+
245+
| Element | Size | Weight | Usage |
246+
|---------|------|--------|-------|
247+
| **H1** | 2.5rem (40px) | 700 | Page titles |
248+
| **H2** | 2rem (32px) | 600 | Section headings |
249+
| **H3** | 1.5rem (24px) | 600 | Subsection headings |
250+
| **H4** | 1.25rem (20px) | 600 | Component headings |
251+
| **Body** | 1rem (16px) | 400 | Paragraph text |
252+
| **Small** | 0.875rem (14px) | 400 | Captions, metadata |
253+
| **Code** | 0.9375rem (15px) | 400 | Code blocks |
254+
| **Inline Code** | 0.875rem (14px) | 400 | Inline code snippets |
255+
256+
### Line Height
257+
258+
- **Body text**: 1.6 (for optimal readability)
259+
- **Headings**: 1.2-1.3 (tighter spacing)
260+
- **Code blocks**: 1.5 (balance between density and readability)
261+
262+
---
263+
264+
## Tone of Voice
265+
266+
### Brand Personality
267+
268+
Shipwright's voice is:
269+
270+
- **Approachable**: Friendly and welcoming to newcomers
271+
- **Teaching-oriented**: Focused on helping users learn and succeed
272+
- **Technical but not intimidating**: Precise without being overly formal
273+
- **Inclusive**: Respectful of diverse backgrounds and experience levels
274+
275+
### Writing Principles
276+
277+
1. **Be Clear and Concise**
278+
- Use simple, direct language
279+
- Avoid jargon unless it's standard Kubernetes/container terminology
280+
- Define technical terms on first use
281+
282+
2. **Be Helpful**
283+
- Anticipate user questions
284+
- Provide context for why something matters
285+
- Include practical examples
286+
287+
3. **Be Respectful**
288+
- Acknowledge that learning is a journey
289+
- Never assume knowledge or make users feel inadequate
290+
- Celebrate contributions of all sizes
291+
292+
4. **Express Yourself**
293+
- Casual tone is permissible - this is open source
294+
- Use contractions (it's, you're, we'll)
295+
- Show personality while remaining professional
296+
- Encourage contributors to bring their authentic voice
297+
298+
### Voice Examples
299+
300+
**Do**: "Let's build your first container image with Shipwright! We'll use the `shp` command line to make this quick and easy."
301+
302+
**Don't**: "One must configure the BuildStrategy CRD in accordance with the technical specifications outlined herein."
303+
304+
---
305+
306+
**Do**: "The Shipwright Operator handles the heavy lifting of managing your build infrastructure. Think of it as your build system's autopilot."
307+
308+
**Don't**: "The operator component provides automated lifecycle management capabilities."
309+
310+
---
311+
312+
**Do**: "New to Kubernetes? No worries! Here's what you need to know before getting started..."
313+
314+
**Don't**: "This documentation assumes expert-level knowledge of Kubernetes primitives."
315+
316+
### Content Guidelines
317+
318+
#### Documentation
319+
320+
- Start with the user's goal, not the feature
321+
- Use second person ("you") to directly address readers
322+
- Include code examples that can be copied and run
323+
- Explain not just how, but why
324+
325+
#### Blog Posts and Announcements
326+
327+
- Lead with the benefit to users
328+
- Share the story behind features and decisions
329+
- Highlight community contributions
330+
- Use headers and formatting for scanability
331+
332+
#### Error Messages
333+
334+
- Explain what went wrong in plain language
335+
- Suggest how to fix it
336+
- Provide a link to relevant documentation when helpful
337+
338+
**Example**:
339+
```
340+
Error: BuildRun 'example-build' failed
341+
Reason: Source repository not found at https://github.com/example/repo
342+
343+
Check that:
344+
- The repository URL is correct
345+
- The repository is publicly accessible, or credentials are configured
346+
- Network connectivity allows access to GitHub
347+
348+
See: https://shipwright.io/docs/troubleshooting/source-errors
349+
```
350+
351+
---
352+
353+
## Questions or Updates
354+
355+
Brand standards evolve with the project. If you have questions or suggestions:
356+
357+
- Open an issue at [shipwright-io/community](https://github.com/shipwright-io/community/issues)
358+
- Join the discussion in the Shipwright Slack channel
359+
- Submit a pull request with proposed changes
360+
361+
---
362+
363+
*Last updated: April 2, 2026*

0 commit comments

Comments
 (0)