# Icon sets and status icons

> Page: https://docs.plotwork.dev/reference/language/icon-sets. Index of every page: https://docs.plotwork.dev/llms.txt

The icon sets a diagram can draw from, how a provider product is written, and the status icons that keep their own color.

## TL;DR

| Question | Answer |
|---|---|
| How many icons are bundled? | 2283, in 12 sets: `lucide`, `simple`, `status`, `aws`, `gcp`, `azure`, `alibaba`, `oci`, `ibm`, `cloudflare`, `digitalocean`, `vercel`. |
| How is an icon written? | `set:name`, such as `lucide:database` or `aws:lambda`. |
| How do I find a name? | Call `search_icons` or `map_icons`. Never guess a name. |
| Which icons keep their own color? | The 20 status icons, such as `status:yes`, `status:no`, `status:success`. |
| Does an item get an icon without icon=? | Yes, when its label names one for certain: `node db database "Postgres"` draws the Postgres mark. `icon=none` keeps one item plain, and `icons=off` on the header keeps them all plain. |

## Icon sets

| Set | Contents |
|---|---|
| `lucide` | General icons such as `lucide:database` and `lucide:user`. |
| `simple` | Technology and brand logos such as `simple:postgresql`. |
| `status` | Colored status and outcome icons such as `status:success`; each keeps its own color on any node. |
| `aws` | Amazon Web Services: the provider (`aws:cloud`) and 825 products, such as `aws:ec2`. |
| `gcp` | Google Cloud: the provider (`gcp:cloud`) and 78 products, such as `gcp:compute-engine`. |
| `azure` | Microsoft Azure: the provider (`azure:cloud`) and 668 products, such as `azure:virtual-machines`. |
| `alibaba` | Alibaba Cloud: the provider (`alibaba:cloud`) and 17 products, such as `alibaba:ecs`. |
| `oci` | Oracle Cloud Infrastructure: the provider (`oci:cloud`) and 8 products, such as `oci:compute`. |
| `ibm` | IBM Cloud: the provider (`ibm:cloud`) and 12 products, such as `ibm:code-engine`. |
| `cloudflare` | Cloudflare: the provider (`cloudflare:cloud`) and 41 products, such as `cloudflare:workers`. |
| `digitalocean` | DigitalOcean: the provider (`digitalocean:cloud`) and 7 products, such as `digitalocean:droplets`. |
| `vercel` | Vercel: the provider (`vercel:cloud`) and 3 products, such as `vercel:functions`. |

## Provider icons

Cloud and platform products are written `<provider>:<product>`, for example `aws:lambda`, `gcp:bigquery`, `azure:functions`, and `alibaba:oss`. Each provider set also holds `<provider>:cloud`, the provider itself, for the group that holds its resources. A product with a licensed brand mark draws it. Every other product draws one glyph for its kind of service (a function, a queue, object storage), so the same kind of service looks the same across providers. Where whoever runs the renderer has installed the official AWS, Azure, or Google Cloud icon pack, the products it covers draw the vendor's own artwork instead, unmodified, on a light tile; the names stay the same. Search understands product names, abbreviations, and phrases: `lambda`, `s3`, `gke`, `cosmos db`, `serverless function`, and `azure object storage` all find the right icon. The [icon reference](https://docs.plotwork.dev/reference/icons.md) lists every product.

## Status icons

Status icons keep their own color whatever tone their node has, so a green check stays green on a violet node. Use them on nodes, actors, tables, groups, and the terminal pill.

| Icon | Color | Meaning |
|---|---|---|
| `status:yes` | green | An affirmative answer or a passed check; shown on a branch labelled yes. |
| `status:no` | red | A negative answer or a failed check; shown on a branch labelled no. |
| `status:success` | green | Succeeded, passed, or done. |
| `status:error` | red | Failed or rejected. |
| `status:warning` | amber | Needs attention but did not fail. |
| `status:info` | blue | Informational note. |
| `status:pending` | neutral | Waiting for something. |
| `status:running` | blue | In progress. |
| `status:retry` | amber | Will be tried again. |
| `status:skipped` | neutral | Intentionally not run. |
| `status:proceed` | green | Allowed to continue to the next step. |
| `status:allowed` | green | Access or a request was granted. |
| `status:denied` | red | Access or a request was refused. |
| `status:blocked` | red | Stopped by a rule or policy. |
| `status:bug` | red | A defect or known issue. |
| `status:verified` | green | Checked and confirmed, such as a verified token or identity. |
| `status:expired` | amber | No longer valid because time ran out. |
| `status:revoked` | red | Taken back on purpose; a revoked grant or token. |
| `status:up` | green | Increase or improvement. |
| `status:down` | red | Decrease or regression. |

## Icons a label names

auto (the default): an item with no icon= gets the icon its label, else its sub= or tech=, names for certain: a brand ("Postgres"), a cloud product ("Amazon S3"), or in some kinds a role ("Email"). A name that is also an everyday word ("Vault") stays plain. icon=none keeps one item plain; off keeps all plain, with flow edge labels, and stops a flow group taking its type from its name. Example: `flow "Checkout" icons=off`

The header of these kinds takes `icons=` (auto, off): `flow`, `sequence`, `mindmap`, `treemap`, `pie`, `quadrant`, `layers`, `c4`, `matrix`, `sankey`, `xychart`, `swimlane`. The other kinds draw a mark of their own, or hold moments and conditions rather than things, so they never guess.

The plain icons for common roles are drawn on a flow or sequence `service` or `external` item, a C4 element, a layers block, a mind map topic, and a swimlane lane, when the label is three words or fewer. The last role word wins, so `Payment queue` is a queue.

| Icon | Words in the label |
|---|---|
| `lucide:chart-line` | `analytics` |
| `lucide:key-round` | `auth`, `authentication` |
| `lucide:credit-card` | `billing`, `payment`, `payments` |
| `lucide:hard-drive` | `bucket`, `storage` |
| `lucide:database-zap` | `cache` |
| `lucide:globe` | `cdn` |
| `lucide:message-square` | `chat` |
| `lucide:shopping-cart` | `checkout` |
| `lucide:user` | `customer`, `user` |
| `lucide:users` | `customers`, `team`, `users` |
| `lucide:mail` | `email`, `emails`, `mailer` |
| `lucide:log-in` | `login` |
| `lucide:scroll-text` | `logging`, `logs` |
| `lucide:activity` | `monitoring` |
| `lucide:bell` | `notification`, `notifications` |
| `lucide:layers` | `queue` |
| `lucide:calendar-clock` | `scheduler` |
| `lucide:search` | `search` |
| `lucide:webhook` | `webhook`, `webhooks` |

## See also

| Doc | Why |
|---|---|
| [Language reference](https://docs.plotwork.dev/reference/language.md) | Every page of the reference and what each covers |
| [Icon reference](https://docs.plotwork.dev/reference/icons.md) | Every bundled icon |
| [Icon names and lookup](https://docs.plotwork.dev/cloud-architecture/icon-names.md) | How a product name maps to an icon |
| [Trademarks and icons](https://docs.plotwork.dev/trademarks-and-icons.md) | What the vendor and brand marks may be used for |
