# inferno-vnode-flags

> Provides an enum of all possible VNode Flags used when calling Inferno.createVNode

Latest version **9.1.0** (published 2026-04-07) · MIT license · 0 weekly downloads

## Install

```sh
npm install inferno-vnode-flags
pnpm add inferno-vnode-flags
yarn add inferno-vnode-flags
bun add inferno-vnode-flags
```

## Health

**Score 65/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; high maintenance score; popular repo.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 9.1.0 |
| Published | 2026-04-07 |
| First published | 2016-11-14 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM |
| Dependencies | 0 |
| Unpacked size | 18.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 16455 |
| Author | Dominic Gannaway |
| Maintainers | longlho, nightwolfz, lukesheard, trueadm, havunen |
| Keywords | babel, react, inferno, framework, interfaces, user interfaces, html, renderToString, server, dom, browser, rollup, vnode, createVNode, flags |

## Links

- npm: https://www.npmjs.com/package/inferno-vnode-flags
- Repository: https://github.com/infernojs/inferno
- Homepage: https://github.com/infernojs/inferno#readme
- Issues: https://github.com/infernojs/inferno/issues
- npm.io page: https://npm.io/package/inferno-vnode-flags

## Alternatives

- [@tsparticles/shape-image](https://npm.io/package/@tsparticles/shape-image.md) — 303.7K weekly downloads
- [@tsparticles/shape-line](https://npm.io/package/@tsparticles/shape-line.md) — 233.7K weekly downloads
- [stringify-attributes](https://npm.io/package/stringify-attributes.md) — 58.6K weekly downloads
- [mobile-drag-drop](https://npm.io/package/mobile-drag-drop.md) — 46.3K weekly downloads
- [@comunica/actor-rdf-parse-html](https://npm.io/package/@comunica/actor-rdf-parse-html.md) — 29.2K weekly downloads

## Recent versions

- 9.1.0 (latest) — 2026-04-07
- 9.0.12-alpha.1 (next) — 2026-04-06
- 3.9.0-alpha.1a5cdaaa (canary) — 2017-09-01
- 4.0.0-alpha1 (alpha#4-1) — 2017-06-25
- 4.0.0 (alpha) — 2017-06-19
- 1.0.0-beta44 (beta44) — 2016-12-28
- 1.0.0-beta43 (beta43) — 2016-12-27
- 1.0.0-beta42 (beta42) — 2016-12-23
- 1.0.0-beta41 (beta41) — 2016-12-23
- 1.0.0-beta40 (beta40) — 2016-12-23
- 1.0.0-beta39 (beta39) — 2016-12-22
- 1.0.0-beta38 (beta38) — 2016-12-22
- 1.0.0-beta37 (beta37) — 2016-12-19
- 1.0.0-beta36 (beta36) — 2016-12-17
- 1.0.0-beta35 (beta35) — 2016-12-16
- … 223 more at https://npm.io/package/inferno-vnode-flags/versions

## README

# inferno-vnode-flags

Inferno VNode Flags is a small utility library for [Inferno](https://github.com/infernojs/inferno).

Usage of `inferno-vnode-flags` should be limited to assigning `VNodeFlags` and `ChildFlags` when using creating vNodes.

## Install

```
npm install --save inferno-vnode-flags
```

## Contents

**VNodeFlags:**

- `VNodeFlags.HtmlElement`
- `VNodeFlags.ComponentUnknown`
- `VNodeFlags.ComponentClass`
- `VNodeFlags.ComponentFunction`
- `VNodeFlags.Text`
- `VNodeFlags.SvgElement`
- `VNodeFlags.InputElement`
- `VNodeFlags.TextareaElement`
- `VNodeFlags.SelectElement`
- `VNodeFlags.Portal`
- `VNodeFlags.ReCreate` (JSX **$ReCreate**) always re-creates the vNode
- `VNodeFlags.ContentEditable`
- `VNodeFlags.Fragment`
- `VNodeFlags.InUse`
- `VnodeFlags.ForwardRef`
- `VNodeFlags.Normalized`

**VNodeFlags Masks:**

- `VNodeFlags.ForwardRefComponent` Functional component wrapped in forward ref
- `VNodeFlags.FormElement` - Is form element
- `VNodeFlags.Element` - Is vNode element
- `VNodeFlags.Component` - Is vNode Component
- `VNodeFlags.DOMRef` - Bit set when vNode holds DOM reference
- `VNodeFlags.InUseOrNormalized` - VNode is used somewhere else or came from normalization process
- `VNodeFlags.ClearInUseNormalized` - Opposite mask of InUse or Normalized

**ChildFlags**

- `ChildFlags.UnknownChildren` needs Normalization
- `ChildFlags.HasInvalidChildren` is invalid (null, undefined, false, true)
- `ChildFlags.HasVNodeChildren` (JSX **$HasVNodeChildren**) is single vNode (Element/Component)
- `ChildFlags.HasNonKeyedChildren` (JSX **$HasNonKeyedChildren**) is Array of vNodes non keyed (no nesting, no holes)
- `ChildFlags.HasKeyedChildren` (JSX **$HasKeyedChildren**) is Array of vNodes keyed (no nesting, no holes)
- `ChildFlags.HasTextChildren` (JSX **$HasTextChildren**) vNode contains only text

**ChildFlags Masks**

- `ChildFlags.MultipleChildren` Is Array

You can easily combine multiple flags, by using bitwise operators. A common use case is an element that has keyed children:

---
_Source: https://npm.io/package/inferno-vnode-flags · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
