Skip to content

Replace the logo and move the site onto the scikit-learn palette - #74

Merged
xhan97 merged 1 commit into
mainfrom
feat/new-logo
Aug 16, 2026
Merged

Replace the logo and move the site onto the scikit-learn palette#74
xhan97 merged 1 commit into
mainfrom
feat/new-logo

Conversation

@xhan97

@xhan97 xhan97 commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator

What was there

The old mark was a raster shield reading "PYIKT" — from before the library was renamed. A 158 KB, 414×393 (not even square) PNG derived from a JPEG, serving as both logo and favicon. At 16px it was an indistinct blue smear.

And neither README actually showed it. The markup pointed at img/ikpykit_logo_1.jpg, a file that does not exist in the repo, so at some point the whole block was commented out. That's fixed here too.

The new mark

An ik monogram over a Voronoi partition. The partition is generated, not drawnscripts/gen_logo.py fits one aNNE estimator and uses the cells it produces:

IsoKernel(method="anne", n_estimators=1, max_samples=4, random_state=3)

Cells are shaded by area and the largest one is orange. That is the property the kernel rests on: a point with no near neighbour occupies a large cell, and is therefore easy to isolate. Change a constant, rerun the script, get a new mark — the logo can't drift out of sync with itself.

Palette

scikit-learn's blue #3499cd and orange #f89939, and the site theme moves with it — a mark in one palette over a site in another reads as a mistake.

IKPyKit implements the scikit-learn API, and that colour pair is how the surrounding ecosystem signals membership. Only the palette is borrowed: the form is a monogram, not scikit-learn's blobs, so it reads as a sibling rather than as something official.

Material has no named colour for these, so the palette is custom and the exact values live in extra.css, covering both the default and slate schemes.

Two fixes the mark needed to survive its own palette

Both found by rendering against the real backgrounds, not by inspection:

Problem Fix
The i's dot is orange, so it vanished whenever the partition put an orange cell behind it White ring on the dot
The disc is mostly blue and so is the site header — the logo dissolved into it, which the first social card render showed plainly White ring on the disc. Invisible on a light background; the only reason the mark survives the header

Verified against white, header blue, slate and orange.

Assets

docs/img/logo.svg          1.6 KB   logo + favicon
docs/img/logo-512.png               social cards, PyPI
docs/img/logo-180.png               iOS home screen
docs/img/favicon-32.png             legacy raster favicon

Four old images deleted (favicon.png, favicon.jpg, ikt_logo_2.jpg, pyikt_logo_1.jpg) — nothing referenced them any more.

Verification

  • mkdocs build --strict passes; primary: custom resolves and the brand variables ship in the built CSS
  • Social cards regenerate on the new background with the logo legible
  • logo.svg is byte-identical when regenerated, so the script really is the source
  • All pre-commit hooks pass

One note: codespell flags vor (the conventional scipy Voronoi variable) as a typo for "for". Renamed the variable to diagram rather than adding vor to the global ignore list, which would have suppressed genuine typos elsewhere.

🤖 Generated with Claude Code

The old mark was a raster shield with "PYIKT" on it, from before the library
was renamed. It was a 158 KB, 414x393 JPEG-derived PNG doing duty as both logo
and favicon, and at 16 pixels it was an indistinct blue smear. Neither README
showed it at all: the markup there pointed at img/ikpykit_logo_1.jpg, a file
that does not exist, so someone had commented the whole block out.

The new mark is an "ik" monogram over a Voronoi partition, and the partition is
generated rather than drawn: scripts/gen_logo.py fits one aNNE estimator and
uses the cells it produces. Cells are shaded by area and the largest is orange,
which is the property the kernel rests on -- a point with no near neighbour
occupies a large cell and is therefore easy to isolate.

The palette is scikit-learn's blue and orange, and the theme follows it, since
a mark in one palette over a site in another looks like a mistake. IKPyKit
implements the scikit-learn API and that colour pair is how the surrounding
ecosystem signals membership. Only the palette is borrowed: the form is a
monogram, not scikit-learn's blobs, so it reads as a sibling rather than as
something official. The palette is set to "custom" and the exact values live in
extra.css, because Material's named colours have no entry for these.

Two things the mark needs to survive its own palette. The i's dot is orange, so
it disappears when the partition puts an orange cell behind it; it carries a
white ring. The disc is mostly blue and so is the site header, so the disc
carries one too -- invisible against a light background, and the only reason
the logo does not dissolve into the header.

Assets are logo.svg plus PNG fallbacks at 512, 180 and 32. The four old images
are deleted; nothing referenced them any more.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@xhan97
xhan97 merged commit 3c0db9e into main Aug 16, 2026
17 checks passed
@xhan97
xhan97 deleted the feat/new-logo branch August 16, 2026 13:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant