Skip to content
Resource Center by Canine Development
DocumentationAssertSigned

The Assert design system

The logo, colours, type, shapes, states and charts that make up Assert, with their exact values.

How Assert looks: its logo, colours, type, shapes, states and charts, with their exact values. Everything made for Assert follows it: the website, the team view, the reports and social posts.

The logo is a pulse inside the family braces, followed by "Assert" in Schibsted Grotesk 800. The braces and the name are in ink. The pulse is drawn in warm steel metal, running from #A7A7CA through #56557A to #2D2C4C, and lifted on dark grounds to #DFDFF1, #B6B6D6 and #8282A4.

  • The braces are shared by Canine's four products and mark them as one family. The pulse and its warm steel belong to Assert.
  • The pulse belongs to the logo only, and is never drawn as a chart or a state.
  • The light version goes on light grounds and the dark version on dark grounds. The name is never retyped next to a drawn mark, and the braces are never redrawn.
  • The logo is at least 24 px high, with clear space of half its height around it. Under 32 px, a small mark takes its place: the same symbol with heavier strokes and fewer parts. In browser tabs it sits on a rounded dark tile.
  • "by Canine Development" goes below the logo or in the footer, and "Powered by Canine Code Analyzer" goes in the footer.

Colour

Assert has one accent: warm steel. As a flat colour it is #56557A on light grounds and #B6B6D6 on dark. It marks the main action, the current sprint, work with the agents and resolved findings. It is never used for a warning.

RoleLightDark
Page background#FCFCFD#15191E
Alternate website band#F3F5F8#191E24
Cards, panels, tables and reports#FFFFFF#1C2127
Headlines, text and icons#1C2126#E4E9ED
Sublines, secondary text and file paths#3D4650#C3CBD3
Labels, dates and meta text#616B76#8694A1
Accent#56557A, text on it #FFFFFF#B6B6D6, text on it #15191E
Active navigation item and tags#EFEFF9 with #444367 text#262635 with #CBCBE5 text
Hairlines and card borders#E2E6EB#2B323A
Example tag border#C3CAD2#3A434D
Buttons, quiet metal#5D5C81, #56557A, #3D3B5D, white letteringThe same
The current sprint bar#76769D, #56557A, #2D2C4C#DFDFF1, #B6B6D6, #8B8BAE
Earlier sprints and quarters in charts#8B95A0#67717C
Graphite top: header and first section#29323C, #161B21, #0C1014, bar #1B2128The same
Text on the graphite top#E4E9ED, muted #A3AFBBThe same
A card's finish and edge on the graphite top#FFFFFF, #F4F5F8, edge #C9CCD4#232A31, #1A1F25, edge #3A434D
Module map, most to fewest open findingsWarm steel tints from #9B9BBE to #EDF0F3Lifted warm steel from 45% to 12% strength
  • Pages sit on the page background, alternate bands on the band colour, and cards and tables on the card colour.
  • Depth comes from 1 px borders in both modes. Cards carry no shadow. The only shadow is on metal buttons.
  • The website's header and first section sit on the graphite top in both themes, with light falling from the top left. Sections below follow the theme.
  • The accent is drawn as warm steel metal on buttons, the logo's pulse and the current sprint bar. Buttons take quiet metal: a short run with no shine. The metal stays on small parts, never on large areas.

Type

RoleTypefaceSizes
Headlines and large numbersSchibsted Grotesk 90064, 46 and 26 px; reports 68 px; numbers 30 px
Text and interfaceSchibsted Grotesk 400 and 700Lead 20 px, body 17 px, interface 15 px, small 13 px
Labels, chart values and filesMartian Mono 400Labels 11 px in capitals, code 13 px, values 11 px
  • Headlines are tightened by 2% and wrap balanced. Body lines stay near 65 characters.
  • A heading that ends on its payoff draws that last part in the warm steel metal, and the rest stays in text colour. Labels, questions, steps and legal headings stay in one colour.
  • Schibsted Grotesk is also the logo's typeface.
  • Mono is for small things only: labels, the Example tag, chart values, sprint names, module names and file paths.
  • Both typefaces are open source, under the SIL Open Font License.

Shape and space

  • Buttons, cards, panels and tables have 6 px corners. Map tiles and tags have 4 px. Chart bars round their top corners by 3 px. Cards in social posts have 12 px.
  • Lines are 1 px hairlines; the chart baseline is in ink.
  • Space separates groups; rows inside a group stay close.
  • Controls are at least 44 px high.

Finding states

StateShape
OpenA ring in ink
ClaimedA half-filled ring in ink
With your agentsAn accent ring with an accent centre
DisputedA muted ring with a slash
ResolvedA filled accent circle; the finding struck through

A state is never shown by colour alone.

Charts

  • Sprint chart: bars start at zero. Earlier sprints are grey, the current sprint is warm steel, and each bar carries its value.
  • Module map: tile size and colour strength both follow the number of open findings, and a caption says so. Each tile carries its module name and count.
  • Score by quarter follows the sprint chart's rules.
  • The score is a plain number on the 0 to 100 scale, with its change. Never a percentage.

Pictures

Product moments only: the sprint chart, the module map, the team view and the reports. No stock photos, avatars or faces, and nothing that reads as certification, such as shields or seals. Every illustrative figure carries the Example tag.

Formats

FormatSizeMode
WebsiteFluid, content up to 1200 px wideLight and dark
Team viewDesigned at 1440 px wideLight and dark
Sprint review report1200 by 900 on screenLight
CTO reportA4Light, for print
LinkedIn post1080 by 1350Light and dark

Accessibility

Every design meets WCAG 2.2 AA in both modes, and chart bars reach 3:1 against their card. States carry words and shapes. Focus is always visible. Every layout works at 320 px wide.

On this page

Document recordSigned
Version
v1
Published
29 October 2026
Signed by
Jimmy Borchsigned with a login · 29 October 2026
sha256
00caf60ee96e659eb03fc271aa50eff2
5c41ae88f1d39722f126efcfe72b8ca7

Go deeper

GuideWhich gate to add firstRelated guideGuideSet your survey cadence, and the daily watchRelated guideGuideSecurity is not a CVE listRelated guide