iced-rs

REVIEW · 65
Registry indexed

Iced 0.14 GUI expert: custom widgets via iced::advanced, overlays, Canvas, Shader, pane_grid, theming, subscriptions, Elm architecture, with a bundled full-API reference. Load whenever building or debugging an Iced UI.

Verified installs0
Stars64
Version1.0.0
Quality65/100 · Promising
Trust65/100 · Sandbox only
Audit78/100 · Needs review

Supply asset profile

Coding and developer agents

Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.

Browse track

Scenario

GitHub automation

I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.

Agent fit

Claude Code + Cursor + CLI

Codex, Claude Code, Cursor, CLI, or custom agents.

Install

Ready

npx skills add vanillagreencom/kendex --skill iced-rs

Maintenance

fresh

Pushed today

Risk

Needs review

Dependency or permission surface needs review

GitHub quality

64

65/100 Quality · 73/100 Trust

Coverage tags

CodingGitHub automationdesign-creativeuiagent-skill

Review notes

Dependency or permission surface needs review · Permission surface may require sandboxing

Agent adoption scorecard

Trust, audit, and install readiness at a glance

These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.

Quality

Promising
65

Useful candidate, but compare it with alternatives before adopting.

Trust

Sandbox only
65

Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.

Audit

Needs review
78

A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.

OpenAgentSkill Trust Score v5

Human review before install

Run only in a sandbox and compare close alternatives before using it for real work.

CodexClaude CodeCursorOpenAgentSkill CLI

Stars

64 GitHub stars

Repo activity

64 stars, 23 forks

Maintenance

Pushed today

License

MIT

Install

npx skills add vanillagreencom/kendex --skill iced-rs

Install safety

standard package or runtime install path

Permission surface

shell or command execution, filesystem or document access

Agent outcomes

No agent outcome data yet

Docs

Strong README/SKILL.md context

Risk summary

Review before production

  • Quality score needs review
  • Permission surface needs review: shell or command execution, filesystem or document access
  • GitHub adoption: 64 GitHub stars
  • Stars/forks activity: 64 stars, 23 forks; issue activity unavailable in current metadata

Install readiness

Install path available

  • Install path is available
  • Repository evidence is available
  • License is declared
  • No Agent Proven outcome evidence yet

Agent-readable metadata

Machine-readable decision data for this skill.

Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.

Open JSON

Suited tasks

  • GitHub automation workflows
  • Claude Code teams
  • builders willing to evaluate younger projects
  • Inspect repository metadata

Suited agents

CodexClaude CodeCursorOpenAgentSkill CLICLI

Install decision

Command
npx skills add vanillagreencom/kendex --skill iced-rs
Policy
review
Human review
yes

Trust and risk

Trust
65/100
Audit
78/100
Risk level
Needs review

Outcome loop

Endpoint
/api/agent/outcome
Event ID
resolve
Outcomes
5

Install command

npx skills add vanillagreencom/kendex --skill iced-rs

Do not use when

  • teams that need a vendor-supported SLA
  • high-compliance environments without internal security review
  • No OpenAgentSkill engagement data yet
  • High-risk permission hints: Shell or command execution
  • Dependency or permission surface needs review

Agent safety v2

42/100 · Avoid automatic install

Experimentalreview

Sparse or mixed signals. Useful for discovery, but not for autonomous installation.

Test manually in an isolated workspace and compare against safer alternatives.

Resolve via API

high

Shell or command execution

Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.

medium

Browser automation

Skill may drive a browser or interact with web pages.

medium

Network access

Skill likely fetches remote pages, APIs, repositories, or external services.

medium

Filesystem access

Skill may read or write project files, documents, generated artifacts, or local workspace state.

  • High-risk permission hints: Shell or command execution
  • Dependency or permission surface needs review

Install targets

Install this skill in your agent workflow

Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.

skill install

OpenAgentSkill CLI

Resolve policy, run the source installer safely, and report a verified install receipt.

$ npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.2.1/openagentskill-0.2.1.tgz install vanillagreencom-iced-rs

Agent resolve plan

Let an agent verify fit before installing.

The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.

Open text plan

Agent should check

  • Task fit and alternatives from Resolve API.
  • Audit score, trust score, and safety policy warnings.
  • Install target compatibility for Codex, Claude Code, Cursor, or CLI.

Copy prompt

Task: Use iced-rs in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20iced-rs%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/vanillagreencom-iced-rs/install
Install command: npx skills add vanillagreencom/kendex --skill iced-rs
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.

Agent handoff

Give an agent the install path, not another directory page.

Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.

Open install API

Agent prompt

Use iced-rs for this task. Review https://www.openagentskill.com/api/skills/vanillagreencom-iced-rs/install, then install with: npx skills add vanillagreencom/kendex --skill iced-rs

Registry metadata

Agent-readable profile for automatic skill selection.

This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.

Open manifest

Agent fit

64/100

GitHub automation

Platforms

Claude Code, Cursor

Audit report

Needs review · 78/100

A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.

View audit reportView eval report

Agent decision cockpit

Fallback candidate for GitHub automation

Prototype with this skill first; keep a fallback candidate ready.

64
Readiness
Prototype
Stage

Role in stack

Fallback candidate

Primary fit

GitHub automation

Trust label

Prototype first

Install path

Command ready

Use when

  • GitHub automation workflows
  • Claude Code teams
  • builders willing to evaluate younger projects

Evidence

  • recent repository activity
  • install command or GitHub repo available
  • 65/100 quality profile

review first

  • No OpenAgentSkill engagement data yet

Implementation path

  1. 1Install it in a sandbox agent and run one GitHub automation task end to end.
  2. 2Compare output quality, latency, and failure behavior against at least one alternative.
  3. 3Promote it into production only after reviewing repository permissions, license, and maintenance signals.

Trust profile

Sandbox only

Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.

65
OpenAgentSkill Trust Score

GitHub adoption

CHECK

64 GitHub stars

Stars/forks activity

CHECK

64 stars, 23 forks; issue activity unavailable in current metadata

Recent maintenance

PASS

Pushed today

License clarity

PASS

MIT

Good signals

  • AI review approved
  • Install path is available
  • Repository evidence is available
  • Recently maintained repository
  • Install command has no obvious high-risk pattern
  • Outcome loop is ready but needs first real agent run

Review before install

  • Quality score needs review
  • Permission surface needs review: shell or command execution, filesystem or document access
  • GitHub adoption: 64 GitHub stars
  • Stars/forks activity: 64 stars, 23 forks; issue activity unavailable in current metadata
  • Dependency/runtime risk: command execution surface, external package install surface
  • Permission surface: shell or command execution, filesystem or document access
  • No real agent outcome reports yet
  • Human review required before unattended installation

Recommended action

Run only in a sandbox and compare close alternatives before using it for real work.

Quality profile

Promising candidate for agent workflows

Useful candidate, but compare it with alternatives before adopting.

65
GitHub stars
64
Freshness
Today
Install ready
Yes
License
MIT

Workflow fit

Use this skill in these scenarios

Workflow fit

Add it to a complete workflow

Alternative shortlist

Compare before you install

Similar skills that may fit this task.

Compare all

Overview

--- name: iced-rs description: "Iced 0.14 GUI expert: custom widgets via iced::advanced, overlays, Canvas, Shader, pane_grid, theming, subscriptions, Elm architecture, with a bundled full-API reference. Load whenever building or debugging an Iced UI." license: MIT user-invocable: true metadata: author: vanillagreen source: kendex repository: "https://github.com/vanillagreencom/kendex" bugs: "https://github.com/vanillagreencom/kendex/issues" version: "3.0.0" tags: [ui] ---

# Iced 0.14

> **Problem with this skill?** Run `kendex report` — it files to the owning repo automatically. Do not hand-file.

## Workflow

1. Classify the surface against `references/guide-surface-selection.md`. Do not skip. 2. Read the canonical example in `examples/` — never generate 0.14 code from memory. 3. Read the guide for that surface; for animated layered UI, `references/guide-animated-layout.md` comes first. 4. Stuck: the guide's "Common failure modes" / "Gotchas", then `references/guide-animation-debugging.md` for animation and render bugs. The three most common: missing `capture_event`, missing `invalidate_layout`, 0.13 event signatures.

Surface choice: built-in widgets + `.style(closure)` for standard UI; `Canvas` for 2D custom drawing; `Shader` for GPU-dense rendering; `iced::advanced::Widget` for custom events, state, or layout; for a floating layer try `tooltip`, `float`, or `stack`+`opaque` before a custom `Overlay`.

## Bundled resources

### `references/` — API refs and guides

Full list in `references/INDEX.md`; load on demand.

| Guide | Use | |---|---| | `guide-surface-selection.md` | Pick the right primitive | | `guide-custom-widgets.md` | `iced::advanced::Widget` | | `guide-custom-overlays.md` | `iced::advanced::overlay::Overlay` | | `guide-animated-layout.md` | Animated transitions, measured positions, keyed identity, clipping | | `guide-animation-debugging.md` | Symptom→cause checklist for animation/render bugs | | `widgets.md` | Widget catalog: every 0.14 widget, notes, canonical example |

API refs: `advanced-*.md`, `widget-*.md`, `canvas*.md`, `shader.md`, `element.md`, `length.md`, `padding.md`, `alignment.md`, `task.md`, `subscription.md`, `application.md`, `window.md`, `keyboard.md`, `mouse.md`, `theme*.md`, `catalog.md`, `pane-grid.md`, `animation*.md`, `api-module-tree.md`.

### `examples/` — every upstream Iced 0.14 example

| Need | Read first | |---|---| | Custom Widget impl | `examples/custom_widget/src/main.rs` | | GPU shader pipeline | `examples/custom_shader/` (full dir) | | Mesh / vector geometry widget | `examples/geometry/src/main.rs` | | Canvas 2D drawing | `examples/bezier_tool`, `examples/clock`, `examples/color_palette` | | Canvas animation | `examples/solar_system`, `examples/the_matrix`, `examples/game_of_life` | | Arc/ring animation | `examples/loading_spinners`, `examples/arc` | | Modal dialog | `examples/modal/src/main.rs` (stack + opaque) | | Toast/notification overlay | `examples/toast/src/main.rs` | | Tooltip / zoom-on-hover | `examples/loupe/src/main.rs` | | Styled components | `examples/styling/` | | pane_grid layout | `examples/pane_grid/` | | Multi-window | `examples/multi_window/` | | WebSocket subscription | `examples/websocket/` | | Text editing | `examples/editor/` |

### `iced_wgpu/` — iced's own wgpu renderer source

| File | Use | |---|---| | `iced_wgpu/src/engine.rs` | Device/Queue per-frame lifecycle | | `iced_wgpu/src/layer.rs` | Layer composition | | `iced_wgpu/src/quad.rs`, `quad/solid.rs`, `quad/gradient.rs` | Instanced quad pipeline template | | `iced_wgpu/src/triangle.rs`, `triangle/msaa.rs` | Mesh pipeline with MSAA | | `iced_wgpu/src/primitive.rs` | Custom shader primitive interface | | `iced_wgpu/src/buffer.rs` | Resizable growable buffer pattern | | `iced_wgpu/src/shader/quad.wgsl` | Reference WGSL for instanced quads |

### External fallbacks

Local references are pinned to 0.14.0 — prefer them. For newer API surface: `ctx7 docs /websites/rs_iced_iced "<query>"`, `https://docs.rs/iced/0.14.0/iced/`, or upstream master at `https://github.com/iced-rs/iced` (may have unreleased APIs).

## Breaking changes from Iced 0.13

- `Widget::update` takes `event: &Event` (by ref, not by value) - `Widget::layout` takes `&mut Tree` - Entry points split: `iced::daemon(boot, update, view)` multi-window, `iced::application(new, update, view)` single-window - Shrink prioritized over Fill in layout resolution - Theme palette uses Oklch - Keyboard subscriptions unified into `keyboard::listen`

## Rules (non-negotiable framework invariants)

### Widget tree consistency

Conditional wrapping changes tree shape and breaks event tracking. Always wrap; conditionally attach the handler.

```rust // WRONG: conditional wrapping changes tree shape if dragging { mouse_area(label).into() } else { label.into() }

// RIGHT let mut area = mouse_area(label); if enable { area = area.on_press(msg); } area ```

`MouseArea` has no `on_press_maybe` (`button`-only); gate the `on_press` call, not the wrapper.

### view() is pure

No side effects, no memoization dependent on call frequency. All mutable state lives in `State` and is mutated only in `update()`. Never trigger redraws from `view()`.

### Redraw vs rebuild

`request_redraw()` repaints but does **not** call `view()`. Animation state must live in `widget::Tree` state — widget struct fields are frozen between `view()` calls. See `references/animation.md` § "Redraw vs rebuild."

### Animation invalidation

Paint-only changes (color, opacity, rotation within fixed bounds) need `shell.request_redraw()`. Layout-affecting changes (size, position, expand/collapse, clipping bounds) need `shell.request_redraw()` **and** `shell.invalidate_layout()`. A widget that "only updates on the second click" has stale layout — add `invalidate_layout()`.

### Draw order is z-order

In custom widget `draw()`, child iteration order determines z-order; last drawn is on top. `stack` semantics do not apply inside manual draw loops.

### Overlay visibility requires layout invalidation

A widget that conditionally returns an overlay must call `shell.invalidate_layout()` when visibility changes.

```rust Event::Mouse(mouse::Event::CursorEntered) => { if !self.show_overlay { self.show_overlay = true; shell.invalidate_layout(); // required } } ```

### Custom overlays are the #1 panic source

Prefer built-ins (`tooltip`, `float`, `stack`+`opaque`). A violated contract panics as `container.rs unwrap() on None`. The contract: `children()` returns a fixed count; `diff()` reconciles all children regardless of visibility; `layout()` returns nodes matching children; `draw()` walks the same tree layout produced. Full spec: `references/guide-custom-overlays.md`.

### Overlay viewport contract

When calling descendant `Widget` methods from inside an `Overlay` impl, pass `Rectangle::INFINITE` as the viewport, **never** the stored viewport from the parent's `overlay()`. `Overlay::layout()` may still use `bounds: Size` for its own coordinate space.

### Overlay state isolation

Overlay layers (`stack` children beyond the base) must not affect base-layer widget structure. Never change base-layer construction based on overlay presence.

### Overlay starvation

Stacked `mouse_area(...).interaction(...)` layers can block underlying hover/move handlers even without `opaque(...)`. Set `Interaction::Grabbing` on the real drag target, and reserve `opaque(...)` for true capture zones.

### Hover stability

Hover sensors must not wrap content whose size changes during the animation they trigger. Use a stable outer hitbox. See `references/guide-custom-widgets.md` § "Stable hover hit regions."

### Scroll state initialization

`scrollable.on_scroll` fires only after user scrolling, never at initial layout. Use `sensor.on_show` for initial layout and `sensor.on_resize` for changes.

### Single message per interaction

One widget interaction produces one message. Composite actions (tab press becoming a drag) use a state machine in `update()`. When `mouse_area` handles semantics while `button` provides visual feedback, exactly one layer publishes:

```rust // RIGHT: mouse_area owns semantics; button is visual-only mouse_area(button(content)).on_press(Message::Activate)

// WRONG: both layers publish mouse_area(button(content).on_press(Message::Activate)).on_press(Message::Activate) ```

`button.on_press` fires on mouse-up; `mouse_area.on_press` fires on mouse-down — use it for drag initiation.

### pane_grid

- `PaneGrid::min_size` is uniform. Per-pane minimums must be enforced in pane content or in split/resize state. - TitleBar content must use `Shrink` width so empty space remains for the pick area; `Fill` eliminates it. - `button` and `mouse_area` both `capture_event()` on press: tab elements capturing means a custom tab drag, an empty title bar means native pane_grid drag. Tab drag is `mouse_area.on_press` per tab plus `listen_with` for `CursorMoved`/`ButtonReleased`, with an Idle → Pressed(origin) → Dragging state machine at an 8px threshold. - In `pane_grid::Content::update` the title bar processes before the body. Do not unconditionally clear state in body-exit handlers that the title bar just established. - Keep drag feedback inside the picked pane subtree or in `pane_grid::Style`. `mouse_area`/`opaque` pane-drag overlays are rebuild-sensitive and can prevent `Dropped` events; drag previews must reuse the same TitleBar/body shell.

### Subscriptions

Each data source needs stable identity — `Subscription::run_with(id, stream)` or `.with(id)`, batched with `Subscription::batch`. See `references/subscription.md`.

Pre-aggregate high-frequency data in the subscription worker: emit one batch per non-empty ~16ms window, over bounded channels with producer-side `try_send()`.

### Theming — no custom Theme type for tokens

Build the palette with `Theme::custom_with_fn("My Dark", palette, |p| theme::palette::Extended::generate(p))`, keep app tokens in a `LazyLock<AppTokens>` sidecar, and route every visual value through it from style closures that ignore the passed `&Theme`. Introduce a custom `Theme` type only when runtime theme switching demands it.

Built-in palette roles are `primary`, `success`, `danger`, `warning`. Fonts load on the entry point (`.font(include_bytes!(...))`); `Font::MONOSPACE` resolves to the first loaded monospace font and `Font::with_name("...")` to a system font. See `references/theme.md`, `references/theme-palette.md`, `references/catalog.md`.

### Cache staleness

Before writing cached or mirrored UI state, enumerate every mutation path that can stale it. Extend the existing global event path rather than adding a parallel subscription for the same event family; add at least one regression test per non-obvious invalidation or source-window gate.

## Architecture

`Message` enum and `State` struct live in the root module; extracted modules receive `&State` or `&mut State`. Extract when a feature is gated and self-contained, forms a cohesive responsibility group, or exceeds ~30 lines over a well-defined `State` subset.

Multi-window: `window::open(settings) -> Task<window::Id>`, `window::close(id)` — `references/window.md`. Testing: `iced_test` provides `Simulator` (headless widget), `Emulator` (full runtime), and snapshot support.

## Dev tools

| Tool | Purpose | Install | |---|---|---| | `cargo-hot` | Live UI patching | `cargo install cargo-hot` | | `comet` | Debugger: frame metrics, widget tree, message inspector | `cargo install --locked --git https://github.com/iced-rs/comet.git` |

`features = ["debug"]` plus F12 enables the built-in debugger. Stress-test with `ICED_PRESENT_MODE=Immediate` and `unconditional-rendering`. Measure with `iced::debug::time` and `comet` before optimizing:

```rust fn update(&mut self, message: Message) -> Task<Message> { iced::debug::time(format!("{message:?}"), || match message { /* ... */ }) } ```

Technical details

Version
1.0.0
License
MIT
Last updated
Aug 24, 2026
Published
Aug 24, 2026

Decision snapshot

Fallback candidate

64
Ready
Prototype
Stage

recent repository activity

Audit

Install review

Install and adoption review

78
Needs review
Security
79/100
Maintenance
100/100
Install
92/100
Open full auditView eval report

Agent-proven evidence

Agent-proven evidence

Outcome reports after resolve, review, install, and one narrow run.

0
Proven
Needs first agent runAuto-install: review firstLast: Unknown
Success rate
Recent failure
Outcomes
0
Output quality
Failed
0
Not relevant
0
Installs
0
Risk blocked
0
Setup needed
0
Production
0

No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.

Install

Add to agent workflow

Free and open source. Review the report before installing into production agents.

Growth loop

Share kit

X

Scenario-led draft for iced-rs, ready for a manual X post.

Curator note
A practical pick for design or creative work:

iced-rs: Iced 0.14 GUI expert: custom widgets via iced::advanced, overlays, Canvas, Shader, pane_grid, theming, subscriptions, Elm a...

64 stars

https://www.openagentskill.com/skills/vanillagreencom-iced-rs?ref=x
Open X draft
Optional reply with install command
Listing + install path for iced-rs:
https://www.openagentskill.com/skills/vanillagreencom-iced-rs?ref=x

Install: npx skills add vanillagreencom/kendex --skill iced-rs

Listing source

Registry indexed

Claimable

This listing was indexed from public sources and is not marked official until a maintainer claim is approved.

Indexed by
OpenAgentSkill community index

Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.

Claim this skill

Owner claim

Claim this skill listing

This Registry indexed listing is attributed to vanillagreencom but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.

Creator backlink kit

Add the evidence badges to your README

Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.

[![Listed on OpenAgentSkill](https://www.openagentskill.com/api/badge/vanillagreencom-iced-rs?metric=listed&label=Listed)](https://www.openagentskill.com/skills/vanillagreencom-iced-rs)
[![OpenAgentSkill Trust](https://www.openagentskill.com/api/badge/vanillagreencom-iced-rs?metric=trust&label=Trust)](https://www.openagentskill.com/skills/vanillagreencom-iced-rs)
[![OpenAgentSkill Audit](https://www.openagentskill.com/api/badge/vanillagreencom-iced-rs?metric=audit&label=Audit)](https://www.openagentskill.com/skills/vanillagreencom-iced-rs/audit)
[![Agent Proven](https://www.openagentskill.com/api/badge/vanillagreencom-iced-rs?metric=proven&label=Agent%20Proven)](https://www.openagentskill.com/skills/vanillagreencom-iced-rs)

Author

V

vanillagreencom

@vanillagreencom

Platform fit

Health signals

GitHub stars
64
Quality score
36/100
Last GitHub push
Aug 24, 2026
Framework hints
Unknown
OpenAgentSkill views
0
Install copies
0
Outbound clicks
0

Community signal

Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.

Trust & safety

Sandbox only

65
  • GitHub adoption64 GitHub starsCHECK
  • Stars/forks activity64 stars, 23 forks; issue activity unavailable in current metadataCHECK
  • Recent maintenancePushed todayPASS
  • License clarityMITPASS
  • README/SKILL.md completenessMetadata includes enough usage and workflow contextPASS
  • Dependency/runtime riskcommand execution surface, external package install surfaceCHECK