PyPI (Python Package Index)

PyPI — the Python Package Index — is the official third-party software repository for the Python language and the default source from which `pip install <name>` resolves packages. PyPI is operated under the Python Software Foundation (PSF) and has its own USPTO-registered trademarks ("PyPI" and "Python Package Index") and a distinct "blocks logo" mark that is separate from the two-snake PSF / Python language identity. The voice is institutional and registry-direct: package pages, version histories, advisories, and the trust metadata that pip and other installers consume. Visually, PyPI shares the Python-family blue (#3775A9) and yellow (#FFD43B) anchors but expresses them through its own blocks-logo mark.

1 palette 3 fonts 0 assets 8 rules pypipythonpackage-managerpsfregistrybrandblueyellow
Preview prompt
Use the [email protected] brand from brand-atoms.com.
Fetch https://brand-atoms.com/dist/brands/pypi/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.

Downloads

All converter outputs for [email protected]. Served from /dist/brands/pypi/1.0.0/.

Brand Guide

Inline rendering of the Markdown brand guide. Same source as the markdown/brand-guide.md download.

PyPI (Python Package Index)

[email protected]

PyPI — the Python Package Index — is the official third-party software repository for the Python language and the default source from which pip install <name> resolves packages. PyPI is operated under the Python Software Foundation (PSF) and has its own USPTO-registered trademarks ("PyPI" and "Python Package Index") and a distinct "blocks logo" mark that is separate from the two-snake PSF / Python language identity. The voice is institutional and registry-direct: package pages, version histories, advisories, and the trust metadata that pip and other installers consume. Visually, PyPI shares the Python-family blue (#3775A9) and yellow (#FFD43B) anchors but expresses them through its own blocks-logo mark.

Tags: pypi, python, package-manager, psf, registry, brand, blue, yellow

Atoms

Palette

PyPI (Python Package Index) · [email protected] · Proprietary — All Rights Reserved

PyPI brand palette anchored on PyPI Blue (#3775A9) — the Python-family blue inherited from the PSF logo, paired with Python Yellow (#FFD43B) as the secondary accent and a clean light-grey UI scale. PyPI is a registered trademark of the Python Software Foundation and the "blocks logo" is its distinguishing mark, separate from the two-snake PSF / Python language identity even though both share the blue+yellow color anchor.

Fonts

Role Font License Classification
heading Inter ([email protected]) OFL-1.1 sans-serif
body Inter ([email protected]) OFL-1.1 sans-serif
mono Source Code Pro ([email protected]) OFL-1.1 monospace

Swatches

ID Name Value
pypi-blue PyPI Blue #3775A9
pypi-blue-dark PyPI Blue Dark #1E415E
pypi-yellow PyPI Yellow #FFD43B
pypi-yellow-dark PyPI Yellow Dark #FFC331
pypi-black PyPI Black #0E1217
pypi-charcoal PyPI Charcoal #1C232C
pypi-slate PyPI Slate #3D4554
pypi-gray PyPI Gray #6B7280
pypi-light-gray PyPI Light Gray #D5D9DE
pypi-off-white PyPI Off-White #F4F5F7
pypi-white PyPI White #FFFFFF
pypi-error PyPI Error Red #BD4147

Mode role mappings

Light mode

Role Swatch Hex
background pypi-white #FFFFFF
surface pypi-off-white #F4F5F7
surface-elevated pypi-white #FFFFFF
text-primary pypi-blue-dark #1E415E
text-secondary pypi-slate #3D4554
text-tertiary pypi-gray #6B7280
primary pypi-blue #3775A9
primary-hover pypi-blue-dark #1E415E
accent pypi-yellow #FFD43B
accent-hover pypi-yellow-dark #FFC331
warning pypi-yellow-dark #FFC331
warning-hover pypi-yellow #FFD43B
error pypi-error #BD4147
success pypi-blue #3775A9
border pypi-light-gray #D5D9DE

Dark mode

Role Swatch Hex
background pypi-black #0E1217
surface pypi-charcoal #1C232C
surface-elevated pypi-charcoal #1C232C
text-primary pypi-white #FFFFFF
text-secondary pypi-light-gray #D5D9DE
text-tertiary pypi-yellow #FFD43B
primary pypi-yellow #FFD43B
primary-hover pypi-yellow-dark #FFC331
accent pypi-blue #3775A9
accent-hover pypi-blue-dark #1E415E
warning pypi-yellow #FFD43B
warning-hover pypi-yellow-dark #FFC331
error pypi-error #BD4147
success pypi-blue #3775A9
border pypi-slate #3D4554

Brand semantic roles

Colors

Role Swatch Hex
identity pypi-blue #3775A9
on-identity pypi-white #FFFFFF
primary pypi-blue #3775A9
primary-hover pypi-blue-dark #1E415E
accent pypi-yellow #FFD43B
accent-hover pypi-yellow-dark #FFC331
mark pypi-blue #3775A9
background pypi-white #FFFFFF
surface pypi-off-white #F4F5F7
text-primary pypi-blue-dark #1E415E
text-secondary pypi-slate #3D4554
error pypi-error #BD4147
success pypi-blue #3775A9
border pypi-light-gray #D5D9DE

Typography

Role Font role key
display heading
prose body
code mono

Rules

🛑 error (5)

colorChoiceroles.colors.identity

  • allowed: pypi-blue, pypi-yellow
  • forbidden: pypi-slate, pypi-gray, pypi-error

The PyPI blocks-logo mark and the Python-family identity it inherits are anchored on the blue + yellow pairing. Substituting slate, gray, or red for the identity color breaks the registered-mark expression and conflicts with the PSF Trademark Usage Policy's reproduction requirements.

contextRestrictiontrademark.use

  • forbiddenContexts: implied-endorsement, generic-name-for-any-package-registry, product-name-prefix-without-approval, paid-merchandise-without-approval, blocks-logo-substituted-for-snakes-logo, snakes-logo-substituted-for-blocks-logo

Per pypi.org/trademarks/: "Any other use by any other party is prohibited." Use of "PyPI" as a generic synonym for a package registry, as a product-name prefix without PSF approval, on paid merchandise without PSF approval, or substituting the PSF two-snake logo for the PyPI blocks logo (or vice versa) all cross policy lines — the two marks have separate registrations and signify different things.

forbiddenTreatmentlogo

  • treatments: recolored, rotated, skewed, stretched, derived-without-approval, drop-shadow, blocks-recombined, blocks-color-mixed

The PSF Trademark Usage Policy requires that Foundation logos be reproduced "with the right colors and fonts" and that derived versions require PSF approval before use. The PyPI blocks logo is defined by the specific arrangement and color assignment of its blocks; recombining the blocks, mixing the colors across blocks, recoloring, or rotation violates the policy.

contrastRatiotext-primary

  • against: background
  • minRatio: 4.5
  • standard: WCAG-AA

PyPI Blue Dark (#1E415E) on PyPI White exceeds 9:1 — well above the WCAG AA threshold for body text on the registry's package pages and version histories.

accessibilityRequirement*

  • standard: WCAG-AA
  • criterion: 1.4.3

WCAG 2.1 Success Criterion 1.4.3 (Contrast Minimum) — Level AA. PyPI is the registry of record for the Python ecosystem; broad legibility is a load-bearing requirement.

⚠️ warning (1)

contrastRatioroles.colors.accent

  • against: background
  • minRatio: 3
  • standard: WCAG-AA-large

PyPI Yellow (#FFD43B) on White sits around 1.5:1 — does NOT clear WCAG AA or AA-large for text. Reserve the yellow for large surfaces, callout backgrounds with dark text on top, the mark itself, and accent illustration; use PyPI Blue or PyPI Blue Dark for any interactive or text-bearing foreground.

💡 recommendation (2)

fontPairingtypography.heading

  • requires: body
  • minSizeRatio: 1.5

pypi.org uses a single humanist sans across heading and body. Maintain at least a 1.5× heading-to-body ratio on package detail pages, search results, and release history listings.

compositionConstraintroles.colors.identity

  • pairsWith: pypi-white, pypi-off-white, pypi-yellow, pypi-blue-dark
  • doesNotPairWith: pypi-error

PyPI Blue pairs cleanly with the white canvas, the Python-family yellow, and its own deeper navy. Placing it directly adjacent to PyPI Error Red mixes registered-mark identity with status semantics and flattens the brand's institutional voice — reserve error red for advisories and yanked-release callouts.

Provenance

  • Source: https://pypi.org/trademarks/
  • License: Proprietary — All Rights Reserved
  • Attribution: "PyPI", "Python Package Index", and the blocks logos are registered trademarks of the Python Software Foundation (USPTO #5608450; International #1384149 for "PyPI"; USPTO #5764496; International #1382296 for "Python Package Index"). Brand-atoms' encoding draws from the PyPI trademarks page (pypi.org/trademarks/), the PSF Trademark Usage Policy that governs the Python language mark, and the canonical PyPI Blue value (#3775A9) carried by the simple-icons project's "PyPI" entry.
  • Imported: 2026-05-19
  • Notes: PyPI's trademarks page states verbatim: "'PyPI', 'Python Package Index', and the blocks logos are registered trademarks of the Python Software Foundation referring to products and services associated with pypi.org. Any other use by any other party is prohibited." Although PyPI inherits the Python-family blue/yellow palette, the PyPI blocks-logo mark is distinct from the PSF two-snake mark and has its own registration — substituting one for the other crosses the boundary between two distinct registered marks of the Foundation. The Python language brand is encoded separately in the sibling python@1 atom.

Generated by the brand-atoms converter. Source: [email protected] from the encyclopedia.

Components — same template, themed by PyPI (Python Package Index)

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.

PyPI (Python Package Index)

A clear hierarchy in PyPI (Python Package Index)'s typeface

Tertiary heading — supporting structure

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.
Bulleted list
  • Bullet markers inherit the brand's primary color.
  • Item spacing reads as a deliberate vertical rhythm.
  • Nested items still resolve to the same primary.
    • Second-level item using the accent.
    • Third bullet wraps cleanly at narrow widths.
Numbered list
  1. Open the brand's resolved spec.
  2. Apply roles to the component template.
  3. Render the surface in the brand's identity.
  4. Audit the output against the typed rules.
Buttons
Callout boxes
Info

Neutral status — provides supplemental context without urgency. Uses the brand's primary as the rule.

Success

Confirms a completed action — palette role success determines the rule color.

Warning

Calls out something that needs attention but isn't an error — palette role warning.

Error

Surfaces a failure that blocks progress — palette role error. Use sparingly.

Table
Role Resolves to Mode
primarybrand color #1light + dark
accentbrand color #2light + dark
warningbrand warninglight + dark
errorbrand errorlight + dark

Atoms

Brand semantic roles

Brand-level role overrides on top of palette-default mappings. Each role resolves to a concrete swatch or font reference.

Colors

accent → pypi-yellow #FFD43B
accent-hover → pypi-yellow-dark #FFC331
background → pypi-white #FFFFFF
border → pypi-light-gray #D5D9DE
error → pypi-error #BD4147
identity → pypi-blue #3775A9
mark → pypi-blue #3775A9
on-identity → pypi-white #FFFFFF
primary → pypi-blue #3775A9
primary-hover → pypi-blue-dark #1E415E
success → pypi-blue #3775A9
surface → pypi-off-white #F4F5F7
text-primary → pypi-blue-dark #1E415E
text-secondary → pypi-slate #3D4554

Typography

code → mono Source Code Pro
display → heading Inter
prose → body Inter

Palette mode mappings (from pypi)

Light mode (15 roles)

accent → pypi-yellow
accent-hover → pypi-yellow-dark
background → pypi-white
border → pypi-light-gray
error → pypi-error
primary → pypi-blue
primary-hover → pypi-blue-dark
success → pypi-blue
surface → pypi-off-white
surface-elevated → pypi-white
text-primary → pypi-blue-dark
text-secondary → pypi-slate
text-tertiary → pypi-gray
warning → pypi-yellow-dark
warning-hover → pypi-yellow

Dark mode (15 roles)

accent → pypi-blue
accent-hover → pypi-blue-dark
background → pypi-black
border → pypi-slate
error → pypi-error
primary → pypi-yellow
primary-hover → pypi-yellow-dark
success → pypi-blue
surface → pypi-charcoal
surface-elevated → pypi-charcoal
text-primary → pypi-white
text-secondary → pypi-light-gray
text-tertiary → pypi-yellow
warning → pypi-yellow
warning-hover → pypi-yellow-dark

Rules (8 typed constraints)

error · 5 rules

colorChoice roles.colors.identity
allowed pypi-blue, pypi-yellow
forbidden pypi-slate, pypi-gray, pypi-error

The PyPI blocks-logo mark and the Python-family identity it inherits are anchored on the blue + yellow pairing. Substituting slate, gray, or red for the identity color breaks the registered-mark expression and conflicts with the PSF Trademark Usage Policy's reproduction requirements.

contextRestriction trademark.use
forbiddenContexts implied-endorsement, generic-name-for-any-package-registry, product-name-prefix-without-approval, paid-merchandise-without-approval, blocks-logo-substituted-for-snakes-logo, snakes-logo-substituted-for-blocks-logo

Per pypi.org/trademarks/: "Any other use by any other party is prohibited." Use of "PyPI" as a generic synonym for a package registry, as a product-name prefix without PSF approval, on paid merchandise without PSF approval, or substituting the PSF two-snake logo for the PyPI blocks logo (or vice versa) all cross policy lines — the two marks have separate registrations and signify different things.

forbiddenTreatment logo
treatments recolored, rotated, skewed, stretched, derived-without-approval, drop-shadow, blocks-recombined, blocks-color-mixed

The PSF Trademark Usage Policy requires that Foundation logos be reproduced "with the right colors and fonts" and that derived versions require PSF approval before use. The PyPI blocks logo is defined by the specific arrangement and color assignment of its blocks; recombining the blocks, mixing the colors across blocks, recoloring, or rotation violates the policy.

contrastRatio text-primary
against background
minRatio 4.5
standard WCAG-AA

PyPI Blue Dark (#1E415E) on PyPI White exceeds 9:1 — well above the WCAG AA threshold for body text on the registry's package pages and version histories.

accessibilityRequirement *
standard WCAG-AA
criterion 1.4.3

WCAG 2.1 Success Criterion 1.4.3 (Contrast Minimum) — Level AA. PyPI is the registry of record for the Python ecosystem; broad legibility is a load-bearing requirement.

warning · 1 rule

contrastRatio roles.colors.accent
against background
minRatio 3
standard WCAG-AA-large

PyPI Yellow (#FFD43B) on White sits around 1.5:1 — does NOT clear WCAG AA or AA-large for text. Reserve the yellow for large surfaces, callout backgrounds with dark text on top, the mark itself, and accent illustration; use PyPI Blue or PyPI Blue Dark for any interactive or text-bearing foreground.

recommendation · 2 rules

fontPairing typography.heading
requires body
minSizeRatio 1.5

pypi.org uses a single humanist sans across heading and body. Maintain at least a 1.5× heading-to-body ratio on package detail pages, search results, and release history listings.

compositionConstraint roles.colors.identity
pairsWith pypi-white, pypi-off-white, pypi-yellow, pypi-blue-dark
doesNotPairWith pypi-error

PyPI Blue pairs cleanly with the white canvas, the Python-family yellow, and its own deeper navy. Placing it directly adjacent to PyPI Error Red mixes registered-mark identity with status semantics and flattens the brand's institutional voice — reserve error red for advisories and yanked-release callouts.

Provenance

Source
https://pypi.org/trademarks/
License
Proprietary — All Rights Reserved
Attribution
"PyPI", "Python Package Index", and the blocks logos are registered trademarks of the Python Software Foundation (USPTO #5608450; International #1384149 for "PyPI"; USPTO #5764496; International #1382296 for "Python Package Index"). Brand-atoms' encoding draws from the PyPI trademarks page (pypi.org/trademarks/), the PSF Trademark Usage Policy that governs the Python language mark, and the canonical PyPI Blue value (#3775A9) carried by the simple-icons project's "PyPI" entry.
Imported
2026-05-19
Notes
PyPI's trademarks page states verbatim: "'PyPI', 'Python Package Index', and the blocks logos are registered trademarks of the Python Software Foundation referring to products and services associated with pypi.org. Any other use by any other party is prohibited." Although PyPI inherits the Python-family blue/yellow palette, the PyPI blocks-logo mark is distinct from the PSF two-snake mark and has its own registration — substituting one for the other crosses the boundary between two distinct registered marks of the Foundation. The Python language brand is encoded separately in the sibling `python@1` atom.