Ghanaian symbols for software.

Adinkra, the Cedi, national emblems — Ghanaian symbols gathered in one place and standardised, so they all behave the same. 106 so far, as plain SVG for any framework, typed React components, and an index you can build on.

Free and open source under MIT. 106 symbols across 3 categories, and the core package has no dependencies.

Why this exists

Ghanaian symbols are scattered. Wanting Gye Nyame, the Cedi sign or a national emblem means searching the web and turning up a PNG on one page, a hand-traced SVG on another, a screenshot on a third. Different sizes, different line weights, different quality — and nothing built to sit beside anything else.

GHIcons gathers them in one place and puts them all on the same footing. One canvas, one colour model, one naming convention, one install. Any two symbols in the collection line up next to each other and take the same props, because they are all produced from the same source by the same pipeline.

Because many of these carry real meaning, the project also documents what it knows and says plainly when it does not. More on the symbols and how they are researched

What counts as a Ghanaian symbol

All of them. Not only the cultural ones. Adinkra is where the collection started and it is still the largest part, but the aim is every symbol that is Ghanaian or belongs to Ghanaian life.

  • Tribal and cultural symbolsAdinkra and the symbol systems of Ghana's peoples. Here now.
  • CurrencyThe Cedi and the marks of Ghanaian money and trade. Here now.
  • National and state emblemsThe flag, the Black Star, the coat of arms, and the symbols of government. Partly here, growing.
  • Movements and organisationsThe marks of Ghanaian institutions, movements and civic bodies. Planned.
  • Ghanaian brandsA longer-term ambition, and the one that needs the most care — trademarks belong to their owners, so this will not be approached casually.

How it works

One SVG becomes every package. Contributors only ever draw an icon — nobody writes the same symbol twice for a second framework.

  1. An icon is one SVG

    Every symbol lives once, in a single file on a 24×24 canvas using currentColor. That file is the source of truth for everything downstream.

  2. It is checked against a spec

    Canvas, colour, naming and safety rules are enforced automatically on the whole collection, so an icon cannot drift out of shape unnoticed.

  3. Packages are generated

    The SVGs, the registry and the React components are all produced from that one source. Adding Vue or Svelte means adding an output, not redrawing 106 icons.

Two packages

@ghicons/react

Typed React components. Tree-shakeable, no runtime dependencies.

npm install @ghicons/react
import { GyeNyame } from '@ghicons/react';

<GyeNyame size={32} color="gold" />

ghicons

The SVG files and a machine-readable index. Works with any framework, or none.

npm install ghicons
import { getIcon } from 'ghicons';

<img src="node_modules/ghicons/svg/adinkra/GyeNyame.svg">

Vue, Svelte, Web Components and Flutter are planned. See what is coming

Add a symbol

The collection grows by contribution, and most of what it needs is not code. If a symbol belongs to Ghanaian life and is not here yet, it should be. Drawing one takes an SVG. Documenting what it means takes research and careful sourcing — many icons still have no recorded meaning, and that is the work the project most needs right now.