W3C Design Tokens
3 filesCross-tool design-token spec (DTCG/W3C). Light + dark mode siblings.
Penpot is the open-source design and prototyping platform — a browser-based design tool with components, libraries, and dev- handoff, built on web standards and licensed under MPL-2.0. The brand voice is open, community-led, and craft-confident. Visually, the identity is the Penpot Mint mark (#31EFB8) — an electric mint green — on a near-black canvas with white display type. Penpot's marketing surface leans dark to put the mint forward.
Use the [email protected] brand from brand-atoms.com.
Fetch https://brand-atoms.com/dist/brands/penpot/1.0.0/json/brand.json
and apply its role mappings (primary, accent, identity, etc.),
reference the fonts in references.fonts, and honor every rule where
severity is "error". Surface any deviation you choose to make.
All converter outputs for [email protected]. Served from
/dist/brands/penpot/1.0.0/.
Cross-tool design-token spec (DTCG/W3C). Light + dark mode siblings.
Plain JSON mirror of the resolved brand — palette, fonts, roles, rules.
CSS custom properties on :root with prefers-color-scheme dark.
SCSS variables + Sass maps for swatches, roles, and fonts.
Tailwind v3 theme.extend.colors + fontFamily.
Figma Tokens plugin JSON (Tokens Studio compatible).
Swift enums for SwiftUI / UIKit color + font tokens.
Kotlin objects for Jetpack Compose color + typography tokens.
Human-readable brand guide. Same source as the on-page Brand Guide.
Inline rendering of the Markdown brand guide. Same source as the
markdown/brand-guide.md download.
Penpot is the open-source design and prototyping platform — a browser-based design tool with components, libraries, and dev- handoff, built on web standards and licensed under MPL-2.0. The brand voice is open, community-led, and craft-confident. Visually, the identity is the Penpot Mint mark (#31EFB8) — an electric mint green — on a near-black canvas with white display type. Penpot's marketing surface leans dark to put the mint forward.
Tags: open-source, design-tools, penpot, mpl-2-0
Penpot · [email protected] · MPL-2.0
Penpot's brand palette, anchored on Penpot Mint (#31EFB8) — the signature electric mint green that carries the wordmark and the "P" mark of the open-source design and prototyping platform. The institutional voice pairs that mint with a near-black canvas (Penpot's marketing surface is dark-leaning) and white display type. Penpot is open-source under MPL-2.0; its brand assets are published openly.
| Role | Font | License | Classification |
|---|---|---|---|
heading |
Inter ([email protected]) |
OFL-1.1 | sans-serif |
body |
Inter ([email protected]) |
OFL-1.1 | sans-serif |
mono |
JetBrainsMono Nerd Font ([email protected]) |
OFL-1.1 | monospace |
| ID | Name | Value |
|---|---|---|
penpot-mint |
Penpot Mint | #31EFB8 |
penpot-white |
Penpot White | #FFFFFF |
penpot-black |
Penpot Black | #18181A |
penpot-canvas-dark |
Penpot Canvas Dark | #18181A |
penpot-surface-light |
Penpot Surface Light | #F5F5F5 |
penpot-surface-dark |
Penpot Surface Dark | #2A2A2D |
penpot-text-secondary |
Penpot Text Secondary | #6E6E76 |
penpot-text-tertiary |
Penpot Text Tertiary | #A0A0A8 |
penpot-mint-hover |
Penpot Mint Hover | #5EF3C7 |
| Role | Swatch | Hex |
|---|---|---|
background |
penpot-white |
#FFFFFF |
surface |
penpot-surface-light |
#F5F5F5 |
surface-elevated |
penpot-white |
#FFFFFF |
text-primary |
penpot-black |
#18181A |
text-secondary |
penpot-text-secondary |
#6E6E76 |
text-tertiary |
penpot-text-tertiary |
#A0A0A8 |
primary |
penpot-mint |
#31EFB8 |
primary-hover |
penpot-mint-hover |
#5EF3C7 |
accent |
penpot-mint |
#31EFB8 |
accent-hover |
penpot-mint-hover |
#5EF3C7 |
warning |
penpot-mint |
#31EFB8 |
warning-hover |
penpot-mint-hover |
#5EF3C7 |
error |
penpot-mint |
#31EFB8 |
success |
penpot-mint |
#31EFB8 |
| Role | Swatch | Hex |
|---|---|---|
background |
penpot-canvas-dark |
#18181A |
surface |
penpot-surface-dark |
#2A2A2D |
surface-elevated |
penpot-surface-dark |
#2A2A2D |
text-primary |
penpot-white |
#FFFFFF |
text-secondary |
penpot-text-tertiary |
#A0A0A8 |
text-tertiary |
penpot-text-secondary |
#6E6E76 |
primary |
penpot-mint |
#31EFB8 |
primary-hover |
penpot-mint-hover |
#5EF3C7 |
accent |
penpot-mint |
#31EFB8 |
accent-hover |
penpot-mint-hover |
#5EF3C7 |
warning |
penpot-mint |
#31EFB8 |
warning-hover |
penpot-mint-hover |
#5EF3C7 |
error |
penpot-mint |
#31EFB8 |
success |
penpot-mint |
#31EFB8 |
| Role | Swatch | Hex |
|---|---|---|
identity |
penpot-mint |
#31EFB8 |
on-identity |
penpot-black |
#18181A |
primary |
penpot-mint |
#31EFB8 |
primary-hover |
penpot-mint-hover |
#5EF3C7 |
accent |
penpot-mint |
#31EFB8 |
accent-hover |
penpot-mint-hover |
#5EF3C7 |
success |
penpot-mint |
#31EFB8 |
warning |
penpot-mint |
#31EFB8 |
error |
penpot-mint |
#31EFB8 |
background-light |
penpot-white |
#FFFFFF |
background-dark |
penpot-canvas-dark |
#18181A |
surface-light |
penpot-surface-light |
#F5F5F5 |
surface-dark |
penpot-surface-dark |
#2A2A2D |
text-primary-light |
penpot-black |
#18181A |
text-primary-dark |
penpot-white |
#FFFFFF |
| Role | Font role key |
|---|---|
display |
heading |
prose |
body |
code |
mono |
colorChoice → logo.markThe Penpot mark renders in Penpot Mint as the canonical fill, with white and near-black as the only sanctioned monochrome alternates. The MPL-2.0 license covers the code; Penpot's brand guidance restricts recoloring of the mark.
forbiddenTreatment → logoPenpot's brand surfaces ask consumers not to stretch, rotate, recolor, or apply decorative effects to the mark — open-source distribution does not waive brand-use discipline.
contrastRatio → text-primarybackground4.5WCAG-AAWCAG 2.1 Level AA contrast minimum for body text. Penpot White (#FFFFFF) on Penpot Black (#18181A) clears AA at very high contrast — the dark-canvas voice of the brand already satisfies the accessibility floor.
variantSelection → logologo-mintbackgroundColorScheme="dark"On the canonical dark canvas, use the Penpot Mint mark variant; do not invert the mark into white on dark, as that loses the brand's signature mint identity.
accessibilityRequirement → *WCAG-AA1.4.3WCAG 2.1 Success Criterion 1.4.3 (Contrast Minimum) — Level AA. Penpot-skinned surfaces must clear AA on body text; note that Penpot Mint must not be used as a body-text color on white because it fails AA.
enumMembership → typography.heading.fontWeightPenpot's marketing surfaces render display headings in the 500–700 band against the dark canvas; lighter weights lose contrast on the dark surface.
variantSelection → logologo-darkbackgroundColorScheme="light"On light surfaces, the Penpot Mint mark may render at low contrast on white; consider a dark-fill monochrome variant for body-text-adjacent placements where contrast matters.
compositionConstraint → roles.colors.identityPenpot Mint is calibrated to read on the near-black canvas Penpot prefers in marketing. Pairing it with another saturated hue at the same weight breaks the focused open- source voice of the brand surface.
MPL-2.02026-05-18Generated by the brand-atoms converter. Source: [email protected] from the encyclopedia.
Every block below renders from the resolved palette + font references on this brand. Swap the brand and the same template re-themes — no per-brand component code required.
Body copy renders in the brand's prose font on the brand's background.
Inline links and highlighted phrases pick up
the brand's primary and highlight roles. Code spans like brand.references.palette
fall back to the monospace face.
A blockquote uses the brand's accent color as its rule. Useful for pulling tagline copy out of running prose.
Neutral status — provides supplemental context without urgency. Uses the brand's primary as the rule.
Confirms a completed action — palette role success determines the rule color.
Calls out something that needs attention but isn't an error — palette role warning.
Surfaces a failure that blocks progress — palette role error. Use sparingly.
| Role | Resolves to | Mode |
|---|---|---|
| primary | brand color #1 | light + dark |
| accent | brand color #2 | light + dark |
| warning | brand warning | light + dark |
| error | brand error | light + dark |
Brand-level role overrides on top of palette-default mappings. Each role resolves to a concrete swatch or font reference.
→ penpot-mint #31EFB8 → penpot-mint-hover #5EF3C7 → penpot-canvas-dark #18181A → penpot-white #FFFFFF → penpot-mint #31EFB8 → penpot-mint #31EFB8 → penpot-black #18181A → penpot-mint #31EFB8 → penpot-mint-hover #5EF3C7 → penpot-mint #31EFB8 → penpot-surface-dark #2A2A2D → penpot-surface-light #F5F5F5 → penpot-white #FFFFFF → penpot-black #18181A → penpot-mint #31EFB8 → mono JetBrainsMono Nerd Font → heading Inter → body Inter → penpot-mint → penpot-mint-hover → penpot-white → penpot-mint → penpot-mint → penpot-mint-hover → penpot-mint → penpot-surface-light → penpot-white → penpot-black → penpot-text-secondary → penpot-text-tertiary → penpot-mint → penpot-mint-hover → penpot-mint → penpot-mint-hover → penpot-canvas-dark → penpot-mint → penpot-mint → penpot-mint-hover → penpot-mint → penpot-surface-dark → penpot-surface-dark → penpot-white → penpot-text-tertiary → penpot-text-secondary → penpot-mint → penpot-mint-hover colorChoice logo.mark allowed penpot-mint, penpot-white, penpot-black forbidden any-non-brand-color The Penpot mark renders in Penpot Mint as the canonical fill, with white and near-black as the only sanctioned monochrome alternates. The MPL-2.0 license covers the code; Penpot's brand guidance restricts recoloring of the mark.
forbiddenTreatment logo treatments stretched, rotated, recolored, drop-shadow, on-busy-photo, gradient-fill Penpot's brand surfaces ask consumers not to stretch, rotate, recolor, or apply decorative effects to the mark — open-source distribution does not waive brand-use discipline.
contrastRatio text-primary against background minRatio 4.5 standard WCAG-AA WCAG 2.1 Level AA contrast minimum for body text. Penpot White (#FFFFFF) on Penpot Black (#18181A) clears AA at very high contrast — the dark-canvas voice of the brand already satisfies the accessibility floor.
variantSelection logo use logo-mint when backgroundColorScheme="dark" On the canonical dark canvas, use the Penpot Mint mark variant; do not invert the mark into white on dark, as that loses the brand's signature mint identity.
accessibilityRequirement * standard WCAG-AA criterion 1.4.3 WCAG 2.1 Success Criterion 1.4.3 (Contrast Minimum) — Level AA. Penpot-skinned surfaces must clear AA on body text; note that Penpot Mint must not be used as a body-text color on white because it fails AA.
enumMembership typography.heading.fontWeight allowed 500, 600, 700 Penpot's marketing surfaces render display headings in the 500–700 band against the dark canvas; lighter weights lose contrast on the dark surface.
variantSelection logo use logo-dark when backgroundColorScheme="light" On light surfaces, the Penpot Mint mark may render at low contrast on white; consider a dark-fill monochrome variant for body-text-adjacent placements where contrast matters.
compositionConstraint roles.colors.identity pairsWith penpot-black, penpot-canvas-dark, penpot-white Penpot Mint is calibrated to read on the near-black canvas Penpot prefers in marketing. Pairing it with another saturated hue at the same weight breaks the focused open- source voice of the brand surface.
MPL-2.02026-05-18