# @react-pdf/primitives

> Define uninitialized elements

Latest version **4.4.0** (published 2026-08-23) · MIT license · 0 weekly downloads

## Install

```sh
npm install @react-pdf/primitives
pnpm add @react-pdf/primitives
yarn add @react-pdf/primitives
bun add @react-pdf/primitives
```

## Health

**Score 80/100 (A)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score; popular repo.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 4.4.0 |
| Published | 2026-08-23 |
| First published | 2020-07-21 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 6.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 16814 |
| Author | Diego Muracciole |
| Maintainers | diegomura |

## Links

- npm: https://www.npmjs.com/package/@react-pdf/primitives
- Repository: https://github.com/diegomura/react-pdf
- Homepage: https://github.com/diegomura/react-pdf#readme
- Issues: https://github.com/diegomura/react-pdf/issues
- npm.io page: https://npm.io/package/@react-pdf/primitives

## Recent versions

- 4.4.0 (latest) — 2026-08-23
- 2.0.0-beta.16 (beta) — 2020-11-01
- 4.3.0 — 2026-04-15
- 4.2.0 — 2026-04-06
- 4.1.1 — 2025-02-17
- 4.1.0 — 2025-02-06
- 4.0.0 — 2024-09-23
- 3.1.1 — 2024-01-18
- 3.1.0 — 2024-01-18
- 3.0.1 — 2022-05-31
- 3.0.0 — 2022-05-31
- 2.0.2 — 2022-01-15
- 2.0.1 — 2021-11-07
- 2.0.0 — 2021-04-06
- 2.0.0-beta.15 — 2020-10-26
- … 3 more at https://npm.io/package/@react-pdf/primitives/versions

## README

<p align="center">
  <img src="https://user-images.githubusercontent.com/5600341/27505816-c8bc37aa-587f-11e7-9a86-08a2d081a8b9.png" height="280px">
</p>

# @react-pdf/primitives

Internal element type constants for react-pdf. This package defines the primitive node types used throughout the react-pdf rendering pipeline.

## Installation

```bash
yarn add @react-pdf/primitives
```

## Usage

```js
import { View, Text, Page, Document } from '@react-pdf/primitives';

console.log(View); // 'VIEW'
console.log(Text); // 'TEXT'
console.log(Page); // 'PAGE'
console.log(Document); // 'DOCUMENT'
```

These constants are primarily used internally by react-pdf packages to identify element types during the rendering process.

## Available Primitives

### Document Structure

| Export     | Value        | Description                       |
| ---------- | ------------ | --------------------------------- |
| `Document` | `'DOCUMENT'` | Root document container           |
| `Page`     | `'PAGE'`     | Individual page within a document |
| `View`     | `'VIEW'`     | Generic container element         |
| `Text`     | `'TEXT'`     | Text content container            |
| `Link`     | `'LINK'`     | Hyperlink element                 |
| `Note`     | `'NOTE'`     | Annotation/note element           |
| `Image`    | `'IMAGE'`    | Image element                     |
| `Canvas`   | `'CANVAS'`   | Custom drawing canvas             |

### Form Elements

| Export      | Value          | Description                   |
| ----------- | -------------- | ----------------------------- |
| `FieldSet`  | `'FIELD_SET'`  | Form field grouping container |
| `TextInput` | `'TEXT_INPUT'` | Text input field              |
| `Select`    | `'SELECT'`     | Dropdown select field         |
| `Checkbox`  | `'CHECKBOX'`   | Checkbox input field          |
| `List`      | `'LIST'`       | List element for forms        |

### SVG Elements

| Export           | Value               | Description                |
| ---------------- | ------------------- | -------------------------- |
| `Svg`            | `'SVG'`             | SVG root container         |
| `G`              | `'G'`               | SVG group element          |
| `Path`           | `'PATH'`            | SVG path element           |
| `Rect`           | `'RECT'`            | SVG rectangle element      |
| `Line`           | `'LINE'`            | SVG line element           |
| `Circle`         | `'CIRCLE'`          | SVG circle element         |
| `Ellipse`        | `'ELLIPSE'`         | SVG ellipse element        |
| `Polygon`        | `'POLYGON'`         | SVG polygon element        |
| `Polyline`       | `'POLYLINE'`        | SVG polyline element       |
| `Tspan`          | `'TSPAN'`           | SVG text span element      |
| `ClipPath`       | `'CLIP_PATH'`       | SVG clipping path          |
| `Defs`           | `'DEFS'`            | SVG definitions container  |
| `Stop`           | `'STOP'`            | Gradient stop element      |
| `LinearGradient` | `'LINEAR_GRADIENT'` | Linear gradient definition |
| `RadialGradient` | `'RADIAL_GRADIENT'` | Radial gradient definition |

### Internal Types

| Export         | Value             | Description                             |
| -------------- | ----------------- | --------------------------------------- |
| `TextInstance` | `'TEXT_INSTANCE'` | Internal representation of text content |

## License

MIT

---
_Source: https://npm.io/package/@react-pdf/primitives · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
