# Color engine


The engine is a separate entry point, so you can use it without pulling in any
React:

```ts
import { parse, toFormat, ingest } from "chroma-panel/core";
```

## Why HSVA is the internal model

HSV has two places where information disappears. At zero saturation there is no
hue to speak of, and at zero brightness there is neither. Keeping state as RGB or
hex loses the hue you picked the moment brightness hits zero.

The engine keeps the full HSVA value and merges changes into it, so dragging to
an extreme and back returns the colour you started with. See
[about](/react/overview/about).

## Where to go next

- [Parsing](/react/utils/parsing) — strings in
- [Serializing](/react/utils/serializing) — strings out
- [Converting](/react/utils/converting) — between models
- [Contrast](/react/utils/contrast) — APCA and WCAG helpers
