# Custom types

> Create and edit your own diaper types

A **custom type** is a diaper type you create yourself, for a product that is not in the
official catalog. Custom types work everywhere an official type does: stock, history and
stats.

<tip>

If your custom type is a real product that is missing from the catalog, consider
[proposing it for the official catalog](/application/catalog/proposing-to-catalog) so
everyone benefits.

</tip>

## Create a custom type

1. In the **Catalog**, tap
<flutter-top-bar-action icon="lucide:plus" label="Create custom diaper">



</flutter-top-bar-action>

.
2. Fill in the four steps.
3. Tap **Save** (enabled once the **Name** is at least 3 characters and there is at
least one **size**).

### Step 1 — General

- **Name** — required, at least 3 characters.
- **Brand** — optional; start typing to pick an existing catalog brand, or leave it
empty.
- **Usage** — **Disposable** or **Reusable**.
- **Category** — filtered by the usage you chose.
- **Image link** — optional. A link to an image of the diaper. It must be a URL ending
in `.png`, `.jpg`, `.jpeg` or `.webp` —
[there is no file upload](/qanda#can-i-upload-pictures-in-historydiaper).

![Step 1 of the custom type stepper: General](/images/guide/catalog/custom-type-step1.png)

### Step 2 — Features

All optional, and the fields shown depend on the usage and category: **Target**,
**Fasteners** with **Tabs per side**, **Backing material**, **Wetness indicator**,
**Landing Zone**, and a **Discontinued** switch.

### Step 3 — Sizes

At least one size is required.

Each size has:

- **Size Name** — for example `M`, `L`, `2XL`, `8-15`, `5`, `5+`.
- **Absorption** — optional, in millilitres.
- **Sizes recommendations** — optional fit guidelines. Each has a **Category**, a
**Unit** (the conversion between units is automatic, so you only fill one), a **Min
Value** and/or **Max Value**, and an optional **Origin**.

If you intend to propose the type, name sizes the way the catalog does — see the
[size nomenclature rules](/contribute/catalog/rules#size-nomenclature): factorise
repeated X's (`2XS`, `3XL`, not `XXS`/`XXXL`), list sizes in ascending order, use
English, use age instead of weight for youth diapers, and separate range boundaries
with a dash (`8y-15y`).

![The New size bottom sheet](/images/guide/catalog/custom-type-size-sheet.png)

### Step 4 — Variants

Optional. Define product variations such as gender, colour or design. Each variant has a
**Variant Name**, an optional **Image**, and a **Discontinued** switch. The *What is a
valid variant?* info sheet gives valid and invalid examples.

## Edit or delete a custom type

Open the custom type's page and use the **Edit** button (or long-press its tile in the
catalog list). This reopens the same four-step form, pre-filled.

![The Edit split button menu with Merge and Delete](/images/guide/catalog/custom-type-edit-menu.png)

- **Merge with official type** — merge this custom type into an existing official type.
- **Delete** — remove the custom type. *The history will not be affected.*
