Skip to content
Agentmart
Submit a tool

nuxt-ui-tools-display

Use this skill when showing read-only content with nuxt-ui-tools display blocks, inside a form (the `info` field with `display` and `props`) or on their own…

Skill by ChronicStone

IndexedMIT★ 2
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/chronicstone-nuxt-ui-tools-display

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use this skill when showing read-only content with nuxt-ui-tools display blocks, inside a form (the `info` field with `display` and `props`) or on their own (`UiDisplay`). Covers the 19 kinds (heading, text, alert, facts, stat, breakdown, meter, chart, table, diff, record, person, list, timeline, date, media, code, empty, accordion) and their variants, props that follow form values or load through a promise or TanStack Query options with skeleton and error states, the form api in props callbacks, the label shell, lazy file links, presets, slot classes, and tones, including tones an app registers.

Use cases: design, backend, data, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/nuxt-ui-tools-display

What's inside

Skill name
nuxt-ui-tools-display
Description
Use this skill when showing read-only content with nuxt-ui-tools display blocks, inside a form (the `info` field with `display` and `props`) or on their own (`UiDisplay`). Covers the 19 kinds (heading, text, alert, facts, stat, breakdown, meter, chart, table, diff, record, person, list, timeline, date, media, code, empty, accordion) and their variants, props that follow form values or load through a promise or TanStack Query options with skeleton and error states, the form api in props callbacks, the label shell, lazy file links, presets, slot classes, and tones, including tones an app registers.
License
MIT
Instructions
101 lines in SKILL.md · view on GitHub

Agent Skills spec issues

  • name: "nuxt-ui-tools-display" does not match folder "display"

Files (4)

  • SKILL.md
  • info-field.md · references/
  • kinds.md · references/
  • theming.md · references/

SKILL.md (first lines)

# nuxt-ui-tools Display

Display blocks draw read-only content: notices, label/value facts, totals, gauges, records,
people, lists, timelines, dates, media, code, empty states. Each block is one **kind** with a few
**variants**, configured by plain props.

Use them in two places:

- in a form, as an `info` field with `display` and `props`, where `props` can read the form values,
  load data, and act on the form;
- anywhere else, with the `UiDisplay` component (`NutDisplay` with the `Nut` prefix).

```ts
import { defineFormSchema } from '#ui-tools/form'

defineFormSchema({
  fields: [
    { key: 'seats', type: 'number', label: 'Candidates', default: 30 },
    {
      key: 'quote',
      type: 'info',
      display: 'breakdown',
      dependencies: ['seats'],
      props: ({ deps }) => ({
        lines: [
          { label: 'Licences', detail: `${deps.get<number>('seats')} × €96`, value: total(deps) },
        ],
        total: { label: 'Total', value: totalWithVat(deps) },
      }),
    },
  ],
})
```

```vue
<UiDisplay
  display="facts"
  :props="{
    layout: 'grid',
    items: [{ label: 'Status', chip: { label: 'Active', tone: 'success' } }],
  }"
/>
```

## References

- `skills/consumer/display/references/kinds.md` — every kind, its variants and props, with examples
- `skills/consumer/display/references/info-field.md` — the form `info` field: static, derived and
  loaded props, the form `api`, the label shell, presets, the legacy notice
- `skills/consumer/display/references/theming.md` — tones (built-in and registered), slot classes,
  presets, icons, CSS variables, translations

## Kinds at a glance

| Kind        | Variants                                                                       | For                                         |
| ----------- | ------------------------------------------------------------------------------ | ------------------------------------------- |
| `heading`   | `title` (`sm`, `md`, `lg`), `eyebrow`                                          | titling a group of fields                   |
| `text`      | `body`, `lead`, `muted`, `caption`, `quote`, `legal`, `prose`                  | copy, quotes, legal notes                   |
| `alert`     | `soft`, `outline`, `subtle`, `solid`, `callout`, `inline`, `banner`            | notices with items, lists, details, actions |
| `facts`     | `ledger`, `grid`, `inline`, `columns`, `tiles`                                 | label → value pairs                         |
| `stat`      | `hero`, `price`, `row`, `trend`                                                | one figure or a row of them                 |
| `breakdown` | `open`, `collapsible`, `compare`                                               | lines adding up to a total                  |
| `meter`     | `bar`, `segments`, `split`, `ring`, `scale`                                    | usage, shares, scores, levels               |
| `chart`     | `bars`, `line`, `donut`, `funnel`                                              | small charts in the dashboard palette       |
| `table`     | —                                                                              | a light read-only table                     |
| `diff`      | `inline`, `columns`                                                            | what a change will do                       |
| `record`    | `row`, `card`, `compact`, `stack`                                              | one entity or a stack of them               |
| `person`    | `user`, `group`, `contact`                                                     | people                                      |
| `list`      | `bullets`, `numbered`, `icons`, `checks`, `steps`, `columns`, `files`, `chips` | lists                                       |
| `timeline`  | `vertical`, `log`, `pipeline`, `schedule`                                      | history and plans                           |
| `date`      | `tile`, `range`, `countdown`                                                   | a moment, a span, a deadline                |
| `media`     | `image`, `gallery`, `video`, `document`, `link`                                | files and links                             |
| `code`      | `block`, `value`, `secret`                                                     | values people copy                          |
| `empty`     | `dashed`, `plain`                                                              | nothing yet, and how to fix it              |
| `accordion` | `separated`, `flush`                                                           | folded content, nested blocks               |

## Shared props

Every kind takes `loading` (draws its skeleton) and `ui` (slot classes). Most take some of:

- `tone`: `primary`, `secondary`, `success`, `info`, `warning`, `error`, `neutral`, or a tone the
  app registered (see theming)
- `surface`: `plain`, `muted`, `bordered`, `elevated`
- `size`: `sm`, `md`, `lg`
- `max`, `step`, `empty` on lists: fold after `max` items with a « Show more · N » button, reveal
  `step` more at a time, and say what is missing when there is nothing
- `actions`: `UButton` props with a lazy `label`
- `copy` on facts, people and code values

Text props accept a string, a lazy translation (`() => t('key')`), a VNode, or a render function.

## Gotchas

- `props` is required on an info display field; with a `preset`, the preset fills the props you
  leave out.
- A registered tone needs both the `display.tones` entry (its colors) and the
  `DisplayToneRegistry` augmentation (its name in types).
- Pass dates as `Date`, ISO strings or epoch milliseconds; blocks format them with the locale.
- File links can be functions returning a signed URL; they run only when the link is used.

From ChronicStone/nuxt-ui-tools, MIT.

More from ChronicStone/nuxt-ui-tools

Signals

Stars
2
Forks
0
Open issues
0
Last commit (this folder)
Oct 23, 2026 (6 days ago)
Last release
Oct 23, 2026 (5 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from ChronicStone

Cite this page

nuxt-ui-tools-display skill. Agent Mart. https://agentmart.dev/skills/chronicstone-nuxt-ui-tools-display (last updated 2026-10-24)