WhatTheStar · /design
primitives icon

    Primitive · v2

    Icon

    Font Awesome Pro Sharp, inlined as SVG at build time — no sprite to fetch, no icon font, no runtime library. Only the glyphs a page actually references ship with it, so an icon cannot arrive late, flash, or fail. 53 names, 30 of them with a true duotone pass.

    — The weight is semantic

    regular

    A resting control. The default, and what most of the interface wears all the time.

    solid

    Active or current: the open panel, the running playback, the page you are on. Survives night mode, where every tone collapses to the same red, and colour blindness, where a hue change says nothing.

    duotone

    Identity — this is a galaxy. Reserved for things in the sky and the measures that double as them. Both layers inherit currentColor, so one declaration tints the whole mark.

    — Fallback

    resolveIcon(name, weight) falls back to solid when a name has no duotone pass, rather than throwing. A duotone request for a chevron renders a chevron instead of a hole in the interface. Those names are marked fallback below.

    — Things in the sky 14

    The only group that regularly wants duotone: these name what a thing is, and identity is the weight that says so.

    resting
    active
    identity
    star
    resting
    active
    identity
    galaxy
    resting
    active
    identity
    nebula
    resting
    active
    identity
    cluster
    resting
    active
    identity
    planet
    resting
    active
    identity
    moon
    resting
    active
    identity
    sun
    resting
    active
    identity
    comet
    resting
    active
    identity
    meteor
    resting
    active
    identity
    satellite
    resting
    active
    identity
    eclipse
    resting
    active
    identity
    conjunction
    resting
    active
    identity
    asterism
    resting
    active
    identity
    constellation

    — How you would look at it 3

    Naked eye, binoculars, telescope — the equipment bar an observing note is really answering.

    resting
    active
    identity
    eye
    resting
    active
    identity
    binoculars
    resting
    active
    identity
    telescope

    — Interface 16

    Controls and affordances. No duotone: a chevron is not a kind of thing, and tinting half of it would only add noise.

    resting
    active
    identity
    search
    resting
    active
    identity
    layers
    resting
    active
    identity
    close
    resting
    active
    identity
    chevron-down
    resting
    active
    identity
    chevron-up
    resting
    active
    identity
    chevron-right
    resting
    active
    identity
    chevron-left
    resting
    active
    identity
    help
    resting
    active
    identity
    info
    resting
    active
    identity
    warn
    resting
    active
    identity
    idea
    resting
    active
    identity
    external
    resting
    active
    identity
    arrow-right
    resting
    active
    identity
    play
    resting
    active
    identity
    pause
    resting
    active
    identity
    checklist

    — Observing instruments and measures 15

    Quantities and conditions. Duotone where the glyph doubles as an object in the sky — the Moon, the horizon, the clock on a transit row.

    resting
    active
    identity
    location
    resting
    active
    identity
    clock
    resting
    active
    identity
    calendar
    resting
    active
    identity
    sunset
    resting
    active
    identity
    sunrise
    resting
    active
    identity
    compass
    resting
    active
    identity
    camera
    resting
    active
    identity
    bortle
    resting
    active
    identity
    ruler
    resting
    active
    identity
    horizon
    resting
    active
    identity
    altitude
    resting
    active
    identity
    crosshairs
    resting
    active
    identity
    centre
    resting
    active
    identity
    target
    resting
    active
    identity
    bell

    — Destinations 5

    The six places the nav can send you. Regular when you are elsewhere, solid for the page you are on.

    resting
    active
    identity
    home
    resting
    active
    identity
    guides
    resting
    active
    identity
    challenge
    resting
    active
    identity
    archive
    resting
    active
    identity
    learn

    — Sizes

    Sizes are rungs of the type scale, not a pixel grid: an icon is height: 1em with its font-size set by the rung, so it rides the text it sits beside and scales with density.

    2xs
    xs
    sm
    md
    lg
    xl
    2xl

    When to use

    Reach for a name in this registry before inventing a glyph. If an object has a kind, do not hand-place its icon at all — use <TypePill>, which reads both the glyph and the tone out of skyTypes.ts so the sky and the interface cannot disagree.

    Adding one

    Import the three weights in src/design/icons/registry.ts and add one entry to ICONS. duotone is optional and should stay that way for anything that is not a thing in the sky. Placement in the file decides which section it lands in on this page.