# `html-cem/no-unknown-element`

Disallow custom-element tags (any tag whose name contains `-`) that are not declared in any loaded Custom Elements Manifest.

## Why

Custom elements that aren't registered render as inert `HTMLElement`s and silently fail. Most cases are typos (`<my-buton>`) or imports that didn't ship.

## Rule details

A tag is flagged if:
- Its name contains `-` (the spec requirement for custom elements), AND
- It does not appear in any CEM listed in `settings['html-cem'].manifests`, AND
- It is not in the `ignore` option.

Standard HTML elements are never flagged.

## Options

| Option | Type | Default | Description |
| --- | --- | --- | --- |
| `ignore` | `string[]` | `[]` | Tag names to skip (e.g. `["color-profile"]` for SVG foreign content, or third-party elements provided at runtime). |

## Examples

CEM declares `my-button`.

❌ Incorrect

```html
<my-buton></my-buton>
<undefined-thing></undefined-thing>
```

✅ Correct

```html
<my-button></my-button>
<div><span></span></div>
```
