Relationship: A ShruggieTech project
The name was fixed on 18 March 2026, before there was a specification to attach it to.
co carries two systems and two parties. A knowledge system and a context system that run apart and meet at a single contract, and a person and a machine working the same material. Cooperation and collaboration start in the same place.
varity is covariance folded into verity. Covariance measures how two quantities move together. Verity is the older word for something true that can be shown to be true. Put side by side they describe the work: watch two things move against each other, and keep a record honest enough that somebody else can check it.
Covarity in title case in prose. covarity in lowercase for technical identifiers, repositories and package names. covarity.ai in a URL, and anywhere an unrelated company of the same name could be confused with this one. Never set Covarity.ai in a wordmark or a headline: a top-level domain is an address, and it dates a mark.
Use the exact delivered masters described on the Logo system sheet. Formal colors and their measured uses are on the Color sheet. Display Space Grotesk, body Geist, and mono Geist Mono are the declared type families.
Where each asset belongs: The Asset catalog lists verified marks, lockups, icons, and platform deliveries by intended surface and size.
Keep delivered artwork geometry unchanged. The Usage limits sheet lists every source rule.
Do not close the aperture or the slot. The opening and the break are the whole idea.
The aperture C is one ring broken once. The long arc is durable knowledge, the short orange terminal is agent context, and the radial slot between them is the adjudication boundary where a reference waits for a verdict. The opening at the right keeps the ring readable as a C at favicon size, and the reduced mark closes the split so the silhouette survives 16 px. Mark means symbol; wide and stacked lockups are separate. Clear means transparent; light and dark name the viewing surface. See Asset Language in the main manual.
One clear-space unit on every side: 100 units on the 1000 × 1000 canvas, 10.0 percent of artwork width. No text, border, icon or crop enters that band.
| mark | 24 px |
| horizontal | 160 px |
| stacked | 144 px |
| wordmark | 120 px |
Below 32 px the reduced master takes over. It ships as its own file. Do not rasterize the full mark down at runtime.
| Lockup | Mark height | Gap | Alignment |
|---|---|---|---|
| Horizontal | 160 units | 34 units | Optical center |
| Stacked | 1.80C | 0.45C | Centered on wordmark ink width |
The horizontal row records its approved master composition. C is the outlined wordmark cap height used by the stacked lockup. X is the clear-space unit declared above. Keep one X clear around every master and never resize the mark and wordmark independently.
These are the exact source usage rules for this identity. The preceding Logo system sheet gives measured sizes and clear space.
Delivered horizontal lockup
Delivered reduced mark
Covariance Purple carries identity, links, focus, and selected state. The inherited orange marks emphasis, required fields, and warnings, and it never stands in for the accent. Surfaces run a purple-tinted near-black so the accent sits on a related ground instead of a neutral one.
The bright accent #C659FF measures 3.15:1 on the light reading surface and is never text there. The light token block substitutes #A000EC at 5.33:1 automatically. The legal foreground on an accent fill is #000000 at 6.27:1. Every fill token in brand.json carries its measured foreground.
| Color | Means |
|---|---|
| Accent | Primary value, selection, links, focus |
| Orange | Needs attention, threshold exceeded |
| Destructive | Failed or timed out. Always with text. |
The emphasis and failure colors may not be reliably separable under deuteranopia. That is acceptable only because state is never carried by color alone: every state ships a written label.
Chart colors serve data visualization. Brand applications use the identity accent and the neutral surfaces. Each chart color is derived from the identity accent and measured against its surface so every entry clears 4.5:1.
Lightness is calculated separately for dark and light surfaces. Data charts also use labels or shapes; hue alone does not carry meaning.
| Series | Dark | Light |
|---|---|---|
| chart-1 | #C75FFF | #A000EC |
| chart-2 | #4499FF | #0073CC |
| chart-3 | #00ADB3 | #007F80 |
| chart-4 | #22B80C | #348300 |
| chart-5 | #BE9000 | #936A00 |
Series order is fixed: chart-1 is always the primary measurement. Never reorder to make a chart look better. Never introduce a sixth color; past five series, switch to a form that does not depend on hue. A series never uses the semantic emphasis or failure colors, because those carry state.
Covarity uses three approved type families. Space Grotesk handles display text, Geist handles interface and reading text, and Geist Mono is reserved for literal command blocks.
| Function | Typeface | Weights |
|---|---|---|
| Display, headings | Space Grotesk | 500, 700 |
| Body, interface | Geist | 400, 500 |
| Literal code blocks | Geist Mono | 400 |
| Axis | Value |
|---|---|
| Radii | 6 / 8 / 12 / 16 / pill |
| Spacing | 4 8 12 16 24 32 48 64 96 120 |
| Focus | 2px ring at 2px offset |
Only the listed local faces are approved. Any other weight makes the renderer synthesize a faux bold, which prints badly and forces outlined glyphs into exported PDFs. Courier Prime is used only for literal command blocks.
| Token | Size | Tracking |
|---|---|---|
| display-xl | 72 | -0.030em |
| display-lg | 56 | -0.025em |
| display-md | 40 | -0.020em |
| display-sm | 28 | -0.015em |
| display-xs | 20 | -0.010em |
| Token | Size | Leading |
|---|---|---|
| body-lg | 18.4 | 1.6 |
| body-md | 16 | 1.7 |
| body-sm | 14 | 1.6 |
| body-xs | 12 | 1.5 |
| eyebrow | 12 | 0.12em caps |
Covarity declares ShruggieTech parentage. Palette sharing and typography are separate explicit choices. The approved mark and colors remain this brand's own source decisions.
The approved mono family, uppercase, positive tracking. Visually subordinate and outside the logo clear space. Never a combined parent-product lockup.
The catalog lists installable theme and component items. For offline fonts, copy nextjs/fonts.ts and fonts/ together from the kit.
| Path | Contents | n |
|---|---|---|
| logos/svg/ | Vector masters, every lockup and colorway | 22 |
| icons/ | Web, Android, Apple, macOS, and Windows application suites | 124 |
| favicons/ | Compatibility aliases for the authoritative web suite | 20 |
| fonts/woff2/ | Web faces plus OFL licences | 5 |
| tokens/ | CSS and JSON with measured contrast | 6 |
| Path | Contents | n |
|---|---|---|
| nextjs/ | globals.css, shadcn registry, fonts, provider | 12 |
| enforcement/ | AGENTS.md, ESLint, stylelint | 21 |
| qc/ | Contact sheets. Proof somebody looked. | 2 |
| guidelines/ | The system rendered from itself | 2 |
| Decision | Declaration |
|---|---|
| Ownership | ShruggieTech owned |
| Parent | ShruggieTech |
| Palette | Shared house emphasis and action, explicitly selected |
| Typography | House families |
Colors for actions and states are distinct from formal identity artwork. A shared HEX is a deliberate choice; meaning also uses words, icons, outlines, or state attributes.
| Color | HEX | Source | Use |
|---|---|---|---|
| Covariance Purple | #C659FF | brand.accent.bright | Primary mark arc and identity applications |
| Terminal Orange | #FF5300 | brand.logo.role_colors.color.emphasis | Approved short mark terminal only |
| Application | Colors and artwork | Use |
|---|---|---|
| Covarity mark | primary, terminal in logo.full | Purple arc with the short orange terminal in the approved full mark |
Correct: use Terminal Orange (#FF5300) in approved identity work; pair the Warning cue (#FF5300) with warning text and icon. Misuse: a lone identity swatch as the only warning signal.
| Cue | Purpose | Dark and light pairing | Additional cue |
|---|---|---|---|
| Action | Primary interactive action | Dark: #C24000, #FFFFFF text 5.21:1; surface 3.80:1 Light: #C24000, #FFFFFF text 5.21:1; surface 4.90:1 Source: semantic.action / semantic.action | A descriptive button or link label |
| Warning | Attention or recoverable risk | Dark: #FF5300, #000000 text 6.49:1; surface 6.13:1 Light: #C24000, #FFFFFF text 5.21:1; surface 4.90:1 Source: semantic.emphasis / semantic.action | Warning text and icon |
| Error | Failure or destructive action | Dark: #E9505F, #000000 text 5.78:1; surface 5.45:1 Light: #C0293A, #FFFFFF text 5.80:1; surface 5.46:1 Source: canon.color.immutable.fault.hex / canon.color.immutable.fault-deep.hex | Error text and icon |
| Success | Completed operation | Dark: #C659FF, #000000 text 6.27:1; surface 5.92:1 Light: #A000EC, #FFFFFF text 5.67:1; surface 5.33:1 Source: brand.accent.bright / brand.accent.accessible | Success text and icon |
| Information | Neutral information or help | Dark: #BF36FF, #000000 text 5.19:1; surface 4.90:1 Light: #A000EC, #FFFFFF text 5.67:1; surface 5.33:1 Source: brand.accent.deep / brand.accent.accessible | Information label and icon |
| Focus | Keyboard focus ring | Dark: #C659FF, #000000 text 6.27:1; surface 5.92:1 Light: #A000EC, #FFFFFF text 5.67:1; surface 5.33:1 Source: brand.accent.bright / brand.accent.accessible | Visible outline and keyboard focus order |
| Selection | Selected control or item | Dark: #C659FF, #000000 text 6.27:1; surface 5.92:1 Light: #A000EC, #FFFFFF text 5.67:1; surface 5.33:1 Source: brand.accent.bright / brand.accent.accessible | Selected label or checked state |
| Disabled | Unavailable control | Dark: #A79CB8, #000000 text 8.09:1; surface 7.64:1 Light: #A79CB8, #000000 text 8.09:1; surface 2.44:1 Source: brand.accent.dim / brand.accent.dim | Disabled attribute and text |