background
Color values
#0A0910rgb(10 9 16)hsl(248.6 28.0% 4.9%)oklch(0.1448 0.0152 291.1)lab(2.66% 1.11 -2.97) (D50)CMYK: output profile required
Approved name: Covarity
Relationship: A ShruggieTech project
Written form: 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.
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.
Mark: 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.
Color: 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.
Type: Display Space Grotesk; body Geist; mono Geist Mono. See colors and type details.
Use the delivered logo and mark files for their declared surfaces and sizes. The asset catalog lists each verified variant and download. The color and type sections give exact values.
The reduced mark takes over at and below 32 px.
Keep the delivered artwork geometry unchanged.
This brand starts with shared ShruggieTech interface rules while keeping its own approved identity. The current hosted documentation facts (JSON) declare schema version 1 and documentation contract version 1.2.0. In a downloaded kit, enforcement/documentation-facts.json governs those pinned bytes.
No brand-specific interface overrides are declared. Use the delivered binding and its default rules.
2.0.01.0.11.1.01.1.01.0.21.0.03.0.11.1.1enforcement/interface-canon.jsonenforcement/component-recipes.jsonweb/adapter.jsonweb/support-matrix.jsonnative/egui/adapter.jsonnative/egui/support-matrix.jsonwordpress/adapter.jsonwordpress/support-matrix.jsonwordpress/covarity-stbb-theme.zipThe registry catalog lists installable theme and component resources; select a resource for the consuming host rather than treating the catalog as an installed component.
Identity accent hue 311.8 in OKLCH. Palette selection is independent of ownership and sibling hues.
These approved source values belong to marks and brand applications. A color used in artwork is not automatically a warning or action cue.
| 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 | Formal colors | Artwork | Use |
|---|---|---|---|
| Covarity mark | primary, terminal | logo.full | Purple arc with the short orange terminal in the approved full mark |
Correct: use Terminal Orange (#FF5300) in its approved identity application; pair the Warning cue (#FF5300) with warning text and icon. Misuse: a lone identity swatch as the only warning signal.
Use words, icons, outlines, or state attributes with color. A shared HEX value does not merge identity and interface roles.
| Cue | HEX | Meaning | Measured pairing | Non-color cue |
|---|---|---|---|---|
| Action | #C24000 | Primary interactive action | #C24000 with #FFFFFF text (5.21:1); 3.80:1 against #0A0910 | A descriptive button or link label |
| Warning | #FF5300 | Attention or recoverable risk | #FF5300 with #000000 text (6.49:1); 6.13:1 against #0A0910 | Warning text and icon |
| Error | #E9505F | Failure or destructive action | #E9505F with #000000 text (5.78:1); 5.45:1 against #0A0910 | Error text and icon |
| Success | #C659FF | Completed operation | #C659FF with #000000 text (6.27:1); 5.92:1 against #0A0910 | Success text and icon |
| Information | #BF36FF | Neutral information or help | #BF36FF with #000000 text (5.19:1); 4.90:1 against #0A0910 | Information label and icon |
| Focus | #C659FF | Keyboard focus ring | #C659FF with #000000 text (6.27:1); 5.92:1 against #0A0910 | Visible outline and keyboard focus order |
| Selection | #C659FF | Selected control or item | #C659FF with #000000 text (6.27:1); 5.92:1 against #0A0910 | Selected label or checked state |
| Disabled | #A79CB8 | Unavailable control | #A79CB8 with #000000 text (8.09:1); 7.64:1 against #0A0910 | Disabled attribute and text |
Use words, icons, outlines, or state attributes with color. A shared HEX value does not merge identity and interface roles.
| Cue | HEX | Meaning | Measured pairing | Non-color cue |
|---|---|---|---|---|
| Action | #C24000 | Primary interactive action | #C24000 with #FFFFFF text (5.21:1); 4.90:1 against #F8F8F6 | A descriptive button or link label |
| Warning | #C24000 | Attention or recoverable risk | #C24000 with #FFFFFF text (5.21:1); 4.90:1 against #F8F8F6 | Warning text and icon |
| Error | #C0293A | Failure or destructive action | #C0293A with #FFFFFF text (5.80:1); 5.46:1 against #F8F8F6 | Error text and icon |
| Success | #A000EC | Completed operation | #A000EC with #FFFFFF text (5.67:1); 5.33:1 against #F8F8F6 | Success text and icon |
| Information | #A000EC | Neutral information or help | #A000EC with #FFFFFF text (5.67:1); 5.33:1 against #F8F8F6 | Information label and icon |
| Focus | #A000EC | Keyboard focus ring | #A000EC with #FFFFFF text (5.67:1); 5.33:1 against #F8F8F6 | Visible outline and keyboard focus order |
| Selection | #A000EC | Selected control or item | #A000EC with #FFFFFF text (5.67:1); 5.33:1 against #F8F8F6 | Selected label or checked state |
| Disabled | #A79CB8 | Unavailable control | #A79CB8 with #000000 text (8.09:1); 2.44:1 against #F8F8F6 | Disabled attribute and text |
HEX uses uppercase pairs; sRGB uses integer 0-255 channels; HSL uses degrees and percentages rounded to one decimal; OKLCH uses four decimals for lightness and chroma plus one for hue; CIELAB uses D50 with lightness as a percentage and two decimals per channel.
#0A0910rgb(10 9 16)hsl(248.6 28.0% 4.9%)oklch(0.1448 0.0152 291.1)lab(2.66% 1.11 -2.97) (D50)CMYK: output profile required
#FFFFFFrgb(255 255 255)hsl(0.0 0.0% 100.0%)oklch(1.0000 0.0000 0.0)lab(100.00% 0.00 0.00) (D50)CMYK: output profile required
#13111Drgb(19 17 29)hsl(250.0 26.1% 9.0%)oklch(0.1863 0.0243 291.5)lab(5.61% 3.09 -7.76) (D50)CMYK: output profile required
#08070Drgb(8 7 13)hsl(250.0 30.0% 3.9%)oklch(0.1335 0.0139 293.0)lab(2.08% 0.92 -2.28) (D50)CMYK: output profile required
#C659FFrgb(198 89 255)hsl(279.4 100.0% 67.5%)oklch(0.6713 0.2436 311.8)lab(57.84% 63.09 -64.84) (D50)CMYK: output profile required
#000000rgb(0 0 0)hsl(0.0 0.0% 0.0%)oklch(0.0000 0.0000 0.0)lab(0.00% 0.00 0.00) (D50)CMYK: output profile required
#15131Ergb(21 19 30)hsl(250.9 22.4% 9.6%)oklch(0.1946 0.0221 292.6)lab(6.44% 3.09 -7.27) (D50)CMYK: output profile required
#9A9A9Argb(154 154 154)hsl(0.0 0.0% 60.4%)oklch(0.6862 0.0000 0.0)lab(63.60% 0.00 0.00) (D50)CMYK: output profile required
#1A1824rgb(26 24 36)hsl(250.0 20.0% 11.8%)oklch(0.2171 0.0234 292.0)lab(8.92% 3.57 -7.97) (D50)CMYK: output profile required
#E9505Frgb(233 80 95)hsl(354.1 77.7% 61.4%)oklch(0.6437 0.1882 18.6)lab(56.66% 60.52 26.02) (D50)CMYK: output profile required
#262626rgb(38 38 38)hsl(0.0 0.0% 14.9%)oklch(0.2686 0.0000 0.0)lab(15.16% -0.00 0.00) (D50)CMYK: output profile required
#C75FFFrgb(199 95 255)hsl(279.0 100.0% 68.6%)oklch(0.6794 0.2362 311.7)lab(58.95% 60.76 -63.05) (D50)CMYK: output profile required
#4499FFrgb(68 153 255)hsl(212.7 100.0% 63.3%)oklch(0.6802 0.1717 254.9)lab(61.81% -0.04 -59.22) (D50)CMYK: output profile required
#00ADB3rgb(0 173 179)hsl(182.0 100.0% 35.1%)oklch(0.6791 0.1155 199.2)lab(63.91% -36.42 -14.26) (D50)CMYK: output profile required
#22B80Crgb(34 184 12)hsl(112.3 87.8% 38.4%)oklch(0.6813 0.2245 141.8)lab(65.55% -59.47 62.36) (D50)CMYK: output profile required
#BE9000rgb(190 144 0)hsl(45.5 100.0% 37.3%)oklch(0.6786 0.1389 85.7)lab(62.89% 10.40 66.76) (D50)CMYK: output profile required
#BF36FFrgb(191 54 255)hsl(280.9 100.0% 60.6%)oklch(0.6302 0.2785 311.7)lab(52.17% 74.16 -74.02) (D50)CMYK: output profile required
#FF5300rgb(255 83 0)hsl(19.5 100.0% 50.0%)oklch(0.6738 0.2190 38.3)lab(60.29% 64.46 71.50) (D50)CMYK: output profile required
#C24000rgb(194 64 0)hsl(19.8 100.0% 38.0%)oklch(0.5519 0.1759 39.3)lab(46.55% 51.32 58.37) (D50)CMYK: output profile required
#F8F8F6rgb(248 248 246)hsl(60.0 12.5% 96.9%)oklch(0.9786 0.0026 106.4)lab(97.54% -0.26 0.96) (D50)CMYK: output profile required
#0A0A0Argb(10 10 10)hsl(0.0 0.0% 3.9%)oklch(0.1448 0.0000 0.0)lab(2.74% 0.00 0.00) (D50)CMYK: output profile required
#FFFFFFrgb(255 255 255)hsl(0.0 0.0% 100.0%)oklch(1.0000 0.0000 0.0)lab(100.00% 0.00 0.00) (D50)CMYK: output profile required
#A000ECrgb(160 0 236)hsl(280.7 100.0% 46.3%)oklch(0.5521 0.2823 308.0)lab(42.62% 75.76 -79.17) (D50)CMYK: output profile required
#F0EFEDrgb(240 239 237)hsl(40.0 9.1% 93.5%)oklch(0.9523 0.0029 84.6)lab(94.48% 0.08 1.09) (D50)CMYK: output profile required
#6B6B6Brgb(107 107 107)hsl(0.0 0.0% 42.0%)oklch(0.5278 0.0000 0.0)lab(45.22% 0.00 0.00) (D50)CMYK: output profile required
#C0293Argb(192 41 58)hsl(353.2 64.8% 45.7%)oklch(0.5308 0.1857 20.9)lab(43.62% 59.48 30.04) (D50)CMYK: output profile required
#888887rgb(136 136 135)hsl(60.0 0.4% 53.1%)oklch(0.6264 0.0015 106.4)lab(56.68% -0.15 0.54) (D50)CMYK: output profile required
#0073CCrgb(0 115 204)hsl(206.2 100.0% 40.0%)oklch(0.5510 0.1621 251.4)lab(46.91% -0.82 -54.68) (D50)CMYK: output profile required
#007F80rgb(0 127 128)hsl(180.5 100.0% 25.1%)oklch(0.5404 0.0921 195.7)lab(47.65% -29.96 -9.47) (D50)CMYK: output profile required
#348300rgb(52 131 0)hsl(96.2 100.0% 25.7%)oklch(0.5390 0.1663 137.9)lab(48.30% -40.41 50.66) (D50)CMYK: output profile required
#936A00rgb(147 106 0)hsl(43.3 100.0% 28.8%)oklch(0.5517 0.1137 81.8)lab(48.04% 11.17 54.47) (D50)CMYK: output profile required
#BF36FFrgb(191 54 255)hsl(280.9 100.0% 60.6%)oklch(0.6302 0.2785 311.7)lab(52.17% 74.16 -74.02) (D50)CMYK: output profile required
#C24000rgb(194 64 0)hsl(19.8 100.0% 38.0%)oklch(0.5519 0.1759 39.3)lab(46.55% 51.32 58.37) (D50)CMYK: output profile required
The bright accent #C659FF measures 3.15:1 on the light
reading surface and is never text there. The light block substitutes #A000EC at
5.33:1. The legal foreground on an accent fill is #000000 at 6.27:1.
Chart colors serve data visualization. Each is derived from the accent and measured against its surface. Use labels or shapes so chart meaning does not depend on hue alone.
Body text on the generated dark surface.
Body text on the generated light surface.
Body in Geist at 400. Approved weights are display 500, 700, body 400, 500, and mono 400. Undeclared weights are prohibited.
| token | value |
|---|---|
| radius | 6 / 8 / 12 / 16 |
| spacing | 4 8 12 16 24 32 48 64 |
| focus | 2px ring, 2px offset |
A brand mark is the symbol alone; a logo lockup combines approved elements. Wide and stacked layouts are separate designs. Full and reduced identify source detail. Full color or monochrome identifies ink treatment. A clear background is transparent; for light or dark names the intended viewing surface. Social share images are separate opaque compositions. Preferred descriptive filenames and existing paths contain the same approved artwork. Full asset glossary.
Canvas 1000 × 1000 units, clear space 100 units (10.0 percent of artwork width). Below 32 px the reduced master takes over.
| 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 70-unit G channel. Keep one X clear around every master. Never resize the mark and wordmark independently.
Compatibility aliases are listed with their canonical delivery group; byte-identical aliases do not create duplicate previews.
Read the instructions for each platform before installing its assets.
Use the declared lockup form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared lockup form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared lockup form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared lockup form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared lockup form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared lockup form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared lockup form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared lockup form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared mark form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared mark form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared mark form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared mark form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared mark form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared mark form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared mark form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared mark form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared wordmark form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared wordmark form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared wordmark form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared wordmark form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.
Use the declared target-size form on compatible backgrounds. Smallest delivered raster: 36 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared target-size form on compatible backgrounds. Smallest delivered raster: 16 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared target-size form on compatible backgrounds. Smallest delivered raster: 36 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared target-size form on compatible backgrounds. Smallest delivered raster: 16 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared adaptive-foreground form on compatible backgrounds. Smallest delivered raster: 432 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared adaptive-monochrome form on compatible backgrounds. Smallest delivered raster: 432 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared classic-ico form on compatible backgrounds. Use the declared container or vector at its listed destination. Preserve declared plate and transparency behavior.
Use the declared target-size form on compatible backgrounds. Smallest delivered raster: 36 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared target-size form on compatible backgrounds. Smallest delivered raster: 16 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared adaptive-background form on compatible backgrounds. Use the declared container or vector at its listed destination. Preserve declared plate and transparency behavior.
Use the declared adaptive-declaration form on compatible backgrounds. Use the declared container or vector at its listed destination. Preserve declared plate and transparency behavior.
Use the declared color-resource form on compatible backgrounds. Use the declared container or vector at its listed destination. Preserve declared plate and transparency behavior.
Use the declared platform-manifest form on compatible backgrounds. Use the declared container or vector at its listed destination. Preserve declared plate and transparency behavior.
Use the declared asset-catalog form on compatible backgrounds. Use the declared container or vector at its listed destination. Preserve declared plate and transparency behavior.
Use the declared platform-manifest form on compatible backgrounds. Use the declared container or vector at its listed destination. Preserve declared plate and transparency behavior.
Use the declared asset-catalog form on compatible backgrounds. Use the declared container or vector at its listed destination. Preserve declared plate and transparency behavior.
Use the declared platform-manifest form on compatible backgrounds. Use the declared container or vector at its listed destination. Preserve declared plate and transparency behavior.
Use the declared icon-index form on compatible backgrounds. Use the declared container or vector at its listed destination. Preserve declared plate and transparency behavior.
Use the declared platform-manifest form on compatible backgrounds. Use the declared container or vector at its listed destination. Preserve declared plate and transparency behavior.
Use the declared web-manifest form on compatible backgrounds. Use the declared container or vector at its listed destination. Preserve declared plate and transparency behavior.
Use the declared manifest-fragment form on compatible backgrounds. Use the declared container or vector at its listed destination. Preserve declared plate and transparency behavior.
Use the declared platform-manifest form on compatible backgrounds. Use the declared container or vector at its listed destination. Preserve declared plate and transparency behavior.
Use the declared app-icon form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared app-icon form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared legacy-launcher form on compatible backgrounds. Smallest delivered raster: 48 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared play-store form on compatible backgrounds. Smallest delivered raster: 512 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared app-icon form on compatible backgrounds. Smallest delivered raster: 1024 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared asset-catalog-icon form on compatible backgrounds. Smallest delivered raster: 16 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared favicon-ico form on compatible backgrounds. Use the declared container or vector at its listed destination. Preserve declared plate and transparency behavior.
Use the declared maskable form on compatible backgrounds. Smallest delivered raster: 192 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared favicon form on compatible backgrounds. Smallest delivered raster: 48 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared favicon form on compatible backgrounds. Smallest delivered raster: 16 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared msix-scale form on compatible backgrounds. Smallest delivered raster: 44 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared store-logo form on compatible backgrounds. Smallest delivered raster: 50 px. Do not synthesize missing sizes. Preserve declared plate and transparency behavior.
Use the declared social-image form on compatible backgrounds. Smallest delivered raster: 1280 px. Do not synthesize missing sizes. Follow the clear-space and reduction threshold above.