Skip to main content
Tint is a family of 21 clean themes, each painted from one hue. Every tint is the same design: a card that fades from a pale tint of the hue to cream, a title in the hue’s deep shade, a dotted grid, translucent bars square at the axis and rounded at their free end, and groups told apart by lightness steps of the one hue rather than by other colors.
Every tint ships in one package, @graphysdk/theme-tint, still on 0.x. A minor release may change their look, so pin a caret range (^0.1.0) to take only patches. Tell us what works and what doesn’t on Discord.

Install

Its peer dependencies are @graphysdk/react and React 19. Pass one of the tints to createGraphyKit and import its fonts once:
Every graph drawn through kit.GraphProvider takes the theme. The spec is written as usual and names no theme:
Without a kit, pass the theme to the provider instead: <GraphProvider theme={tintSage}>. The provider reads the theme once, when it mounts. To switch themes, remount the provider, for example with a React key.

The tints

The family comes in three groups: the core hues, soft pastels whose deepest step stays gentle, and deep jewel and ink tones. Each tint is its own export. Sunflower adds its flower’s seed brown and leaf green to its groups, and Sorbet takes six pastel flavors, so their groups differ in hue as well as lightness.

What the theme decides

Changing the look of one graph

A spec’s own styles(), scales and config() sit above the theme. This graph keeps the card and draws its bars fully opaque:
The theme is drawn for a graph about 600 pixels wide. style.graph({ textScale }) scales its type for a larger or smaller one.

With a geom package

Tint repaints the polar bar only. A geom from a package, such as the dumbbell, is drawn in the tint’s colors and type like a built-in one.

Fonts

fonts.css loads Inter Tight from Google Fonts, in weights 400, 500 and 600. To host the font yourself, leave the import out and load a family named Inter Tight before the first graph is drawn.