D3 Viz
calesthio/OpenMontage
Creating interactive data visualisations using d3.js. An agent skill from calesthio/OpenMontage.
Vue 3 components for the Unovis data visualization framework, @unovis/vue 1.7.0.
$ npx skills add skilld-dev/vue-ecosystem-skills --skill unovis-vue-skilld -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install skilld-dev/vue-ecosystem-skills unovis-vue-skilld --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/skilld-dev/vue-ecosystem-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/unovis-vue-skilld .claude/skills/unovis-vue-skilld && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "unovis-vue-skilld" agent skill from https://github.com/skilld-dev/vue-ecosystem-skills/tree/main/skills/unovis-vue-skilld into .claude/skills/unovis-vue-skilld/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unovis-vue-skilld", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/skilld-dev/vue-ecosystem-skills/tree/main/skills/unovis-vue-skilldType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add skilld-dev/vue-ecosystem-skills --skill unovis-vue-skilld -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install skilld-dev/vue-ecosystem-skills unovis-vue-skilld --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/skilld-dev/vue-ecosystem-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/unovis-vue-skilld .agents/skills/unovis-vue-skilld && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "unovis-vue-skilld" agent skill from https://github.com/skilld-dev/vue-ecosystem-skills/tree/main/skills/unovis-vue-skilld into .agents/skills/unovis-vue-skilld/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unovis-vue-skilld", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add skilld-dev/vue-ecosystem-skills --skill unovis-vue-skilld -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install skilld-dev/vue-ecosystem-skills unovis-vue-skilld --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/skilld-dev/vue-ecosystem-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/unovis-vue-skilld .cursor/skills/unovis-vue-skilld && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "unovis-vue-skilld" agent skill from https://github.com/skilld-dev/vue-ecosystem-skills/tree/main/skills/unovis-vue-skilld into .cursor/skills/unovis-vue-skilld/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unovis-vue-skilld", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/skilld-dev/vue-ecosystem-skills.git --path skills/unovis-vue-skilld--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add skilld-dev/vue-ecosystem-skills --skill unovis-vue-skilld -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install skilld-dev/vue-ecosystem-skills unovis-vue-skilld --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/skilld-dev/vue-ecosystem-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/unovis-vue-skilld .gemini/skills/unovis-vue-skilld && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "unovis-vue-skilld" agent skill from https://github.com/skilld-dev/vue-ecosystem-skills/tree/main/skills/unovis-vue-skilld into .gemini/skills/unovis-vue-skilld/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unovis-vue-skilld", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install skilld-dev/vue-ecosystem-skills unovis-vue-skilldInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add skilld-dev/vue-ecosystem-skills --skill unovis-vue-skilld -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/skilld-dev/vue-ecosystem-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/unovis-vue-skilld .github/skills/unovis-vue-skilld && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "unovis-vue-skilld" agent skill from https://github.com/skilld-dev/vue-ecosystem-skills/tree/main/skills/unovis-vue-skilld into .github/skills/unovis-vue-skilld/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unovis-vue-skilld", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add skilld-dev/vue-ecosystem-skills --skill unovis-vue-skilld -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install skilld-dev/vue-ecosystem-skills unovis-vue-skilld --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/skilld-dev/vue-ecosystem-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/unovis-vue-skilld .opencode/skills/unovis-vue-skilld && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "unovis-vue-skilld" agent skill from https://github.com/skilld-dev/vue-ecosystem-skills/tree/main/skills/unovis-vue-skilld into .opencode/skills/unovis-vue-skilld/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unovis-vue-skilld", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
unovis-vue-skilldVue 3 components for the Unovis data visualization framework, @unovis/vue 1.7.0.
Unovis Vue Skilld is an agent skill from skilld-dev/vue-ecosystem-skills. Vue 3 components for the Unovis data visualization framework, @unovis/vue 1.7.0. Use when writing, debugging, or updating code that imports @unovis/vue or renders Vis components such as VisXYContainer, VisSingleContainer, VisArea, VisLine, VisStackedBar, VisCrosshair, or VisTooltip. Covers the component catalog, props, events, tooltips, colors, patterns, SSR, and the 1.7.0 API changes.
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/color-patterns.md`, `references/components.md` and `references/events-tooltips.md`).
It sits in Data & Analytics, covering Data visualization. It works with Vue.js and npm. The repository describes itself as: Agent Skills for the Vue ecosystem, written from current docs, issues, and releases. The licence is MIT.
Read from SKILL.md and the folder at commit c8994af. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
unovis.devAlso links to:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Unovis Vue Skilld loads about 2.5k tokens when it runs, and up to ~9.1k if it reads all its reference files. Until then it costs about 102 tokens; SKILL.md has 761 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from skilld-dev/vue-ecosystem-skills at commit c8994af, republished under its MIT licence (© skilld-dev). 761 words, ~2,477 tokens.
.claude/skills/unovis-vue-skilld/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Unovis is a modular data visualization framework. @unovis/vue provides autogenerated Vue 3 wrappers for the core classes in @unovis/ts (README.md).
@unovis/vue@1.7.0.@unovis/ts pinned to exactly 1.7.0, and vue ^3 (package.json:56-59). Install both at the exact same version: npm install -P @unovis/ts @unovis/vue (README.md:16). A version mismatch between the two packages breaks peer resolution.type: module, subpath exports under ./*, and sideEffects: false (package.json:28-39).index.js:1).https://unovis.dev/docs/components/<Name>. Gallery: https://unovis.dev/gallery.Every Vis* component is a thin wrapper around one @unovis/ts class. Verify these rules before writing code:
AreaConfigInterface. Use camelCase in script and kebab-case in templates: :line-width="2", :stack-min-height="true".:x="d => d.x", :y="['sales', 'cost'].map(k => d => d[k])".data can live on the container or on a component. The container shares its data with all children. A child falls back to its own data only when the container has none (components/area/index.js:35). Pass data at the container level for multi component charts.setConfig then render on the core class. A data change calls setData. Both update the chart in place, without remounting.component, a ref to the core @unovis/ts instance, through defineExpose. Use a template ref to call core methods: chart.value?.component?.destroy().VisAxisSelectors equals Axis.selectors from @unovis/ts. Use selectors with the events prop and tooltip triggers (events and tooltips).Vis* children in the container's default slot. The XY container defers chart creation until at least one child registers (containers/xy-container/index.js:50-52), so v-for and conditional children work.VisBulletLegend, VisFlowLegend, VisRollingPinLegend, VisLeafletMap, and VisLeafletFlowMap render into their own DOM node. Use them outside containers. All other components require a container context.<script setup lang="ts">
import { ref } from 'vue'
import { VisXYContainer, VisLine, VisAxis } from '@unovis/vue'
type DataRecord = { x: number; y: number }
const data = ref<DataRecord[]>([
{ x: 0, y: 0 },
{ x: 1, y: 2 },
{ x: 2, y: 1 },
])
const x = (d: DataRecord) => d.x
const y = (d: DataRecord) => d.y
</script>
<template>
<VisXYContainer :data="data" :height="300">
<VisLine :x="x" :y="y" />
<VisAxis type="x" />
<VisAxis type="y" />
</VisXYContainer>
</template>Sizing: the container fits its parent's width. Set height explicitly, or the default of 300px applies (XY Container docs).
Two containers: VisXYContainer for XY charts with axes, VisSingleContainer for one standalone visualization plus an optional tooltip. Full list with key props: components.md.
VisArea, VisLine, VisScatter, VisStackedBar, VisGroupedBar, VisBoxplot (new in 1.7), VisTimeline, VisXYLabels.VisAxis, VisCrosshair, VisTooltip, VisBrush, VisFreeBrush, VisPlotband, VisPlotline, VisAnnotations.VisDonut, VisNestedDonut, VisRadialBar (new in 1.7), VisHeatmap (new in 1.7), VisTreemap, VisSankey, VisChordDiagram, VisGraph, VisTopoJSONMap.VisBulletLegend, VisFlowLegend, VisRollingPinLegend, VisLeafletMap, VisLeafletFlowMap.Return the index from the x accessor. Format the axis ticks back to labels.
<script setup lang="ts">
const x = (d: DataRecord, i: number) => i
const tickFormat = (i: number) => data.value[i]?.category ?? ''
</script>
<template>
<VisXYContainer :data="data">
<VisStackedBar :x="x" :y="d => d.value" />
<VisAxis type="x" :tick-format="tickFormat" />
</VisXYContainer>
</template><script setup lang="ts">
import { VisStackedBarSelectors } from '@unovis/vue'
const triggers = {
[VisStackedBarSelectors.bar]: (d: DataRecord) => `${d.category}: ${d.value}`,
}
</script>
<template>
<VisXYContainer :data="data">
<VisStackedBar :x="x" :y="d => d.value" />
<VisCrosshair :template="triggers" />
<VisAxis type="x" />
</VisXYContainer>
</template>More patterns, including snap mode and events: events-tooltips.md.
<script setup lang="ts">
const gradientDef = `
<linearGradient id="area-gradient" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#4d8cfd" stop-opacity="0.8" />
<stop offset="100%" stop-color="#4d8cfd" stop-opacity="0.1" />
</linearGradient>`
</script>
<template>
<VisXYContainer :data="data" :svg-defs="gradientDef">
<VisArea :x="x" :y="y" color="url(#area-gradient)" />
</VisXYContainer>
</template>VisStackedBar gained baseline in 1.7 for floating bars (components/stacked-bar/index.js:11). Pair it with barStyle for dashed projected values (components/stacked-bar/index.js:10).
<script setup lang="ts">
// data records carry the floating bar start and end
const baseline = (d: WaterfallRecord) => d.start
const y = (d: WaterfallRecord) => d.end - d.start
const color = (d: WaterfallRecord) => (d.delta >= 0 ? '#00c19a' : '#ff6b7e')
</script>
<template>
<VisXYContainer :data="data">
<VisStackedBar :x="x" :y="y" :baseline="baseline" :color="color" />
<VisAxis type="x" />
<VisAxis type="y" />
</VisXYContainer>
</template>bleed overrides the space the container reserves for edge marks. It takes a Spacing object or a function. Capture the horizontal bleed of the chart with the largest marks from onRenderComplete, then pass it to the other charts (containers/xy-container/index.js:29-30). Guide: https://unovis.dev/docs/guides/bleed.
<script setup lang="ts">
import { ref } from 'vue'
const horizontalBleed = ref<{ left?: number; right?: number }>()
const onRenderComplete = (svg: SVGSVGElement, margin: unknown, bleed: { left: number; right: number }) => {
horizontalBleed.value = { left: bleed.left, right: bleed.right }
}
</script>
<template>
<VisXYContainer :data="data" :on-render-complete="onRenderComplete">
<VisScatter :x="x" :y="y" :size="25" />
</VisXYContainer>
<VisXYContainer :data="data" :bleed="horizontalBleed">
<VisLine :x="x" :y="y" />
</VisXYContainer>
</template>1.7 adds chart wide color synchronization and pattern fills:
colorFunction on VisXYContainer, VisSingleContainer, and VisBulletLegend maps a key to a color (containers/xy-container/index.js:39, html-components/bullet-legend/index.js:17).colorKeys on a component names the stable keys aligned with its y accessors (components/area/index.js:25).pattern on VisArea, VisLine, VisScatter, VisGroupedBar, VisStackedBar, VisDonut, and others adds stripes, dots, and hatches.Details and examples: color-patterns.md.
@unovis/ts and @unovis/vue to the same exact version. The peer range is 1.7.0, with no caret (package.json:57).VisCrosshair, VisTimeline, and VisBoxplot declare only data as a Vue prop. All other config travels as attributes. If a config prop seems ignored on these three, upgrade to 1.7.0: their data prop was silently dropped between 1.6.5 and 1.7 (fix PR).margin, for example :margin="{ top: 10, right: 10, bottom: 10, left: 10 }".document errors appear, wrap the chart in <ClientOnly> (issue 607). For headless rendering in Node 20+, use the separate @unovis/ssr package (https://unovis.dev/releases/1.7).window.UNOVIS_NONCE before the library is imported. Guide: https://unovis.dev/docs/guides/csp.theme-dark to body. Override --vis-dark-* variables per component (theming guide).© skilld-dev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in skills/unovis-vue-skilld of skilld-dev/vue-ecosystem-skills.
Open the folder on GitHubat commit c8994af
Unovis Vue Skilld next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Unovis Vue Skilld this skillskilld-dev/vue-ecosystem-skills | 181 | — | ~2.5k | Automated safety check: Pass | MIT | |
| D3 Vizcalesthio/OpenMontage | 66k | 3 repos | ~5.4k | Automated safety check: Pass | AGPL-3.0 | |
| Mvizmatsonj/mviz | 227 | — | ~11k | Automated safety check: Pass | None | |
| Agent D3js SkillDokhacgiakhoa/Agent-Skills-4-Vibe-Coding-CLI | 508 | — | ~753 | Automated safety check: Pass | Custom licence | |
| Data Visualization Disciplinedaymade/claude-code-skills | 1.4k | — | ~9.2k | Automated safety check: Pass | MIT | |
| Vuetify Skilldlogue/vite-vuetify-ts-starter | 181 | 1 repos | ~1.9k | Automated safety check: Pass | MIT |
calesthio/OpenMontage
Creating interactive data visualisations using d3.js. An agent skill from calesthio/OpenMontage.
matsonj/mviz
A chart & report builder for AI. An agent skill from matsonj/mviz.
Dokhacgiakhoa/Agent-Skills-4-Vibe-Coding-CLI
Creating interactive data visualisations using d3.js. An agent skill from Dokhacgiakhoa/Agent-Skills-4-Vibe-Coding-CLI.
daymade/claude-code-skills
数据可视化的判断层 SSOT——画任何图表、dashboard、看板之前先加载它,不是画完之后。管"该不该这么画":这张图想让读者得出什么结论、用均值还是中位数、能不能聚合、堆叠还是折线、能不能上双轴、配色与颜色数量、同一实体跨图是否同色同位、表格该留几列。介质无关:HTML 报告页、React/Vue dashboard、PPT…
logue/vite-vuetify-ts-starter
Vue Material Component Framework. An agent skill from logue/vite-vuetify-ts-starter.
MarkBind/markbind
Complete guide for migrating JavaScript files to TypeScript in the MarkBind project, including the two-commit strategy, import/export syntax conversion, and best practices.
skilld-dev/vue-ecosystem-skills
Floating UI for Vue (@floating-ui/vue@2.0.1). An agent skill from skilld-dev/vue-ecosystem-skills.
skilld-dev/vue-ecosystem-skills
A skill your agent uses whenever writing, debugging, or reviewing code that imports @formkit/core — FormKit's framework-agnostic core (node trees, values, events, hooks, message stores, ledgers…
skilld-dev/vue-ecosystem-skills
Data fetching layer for Vue built on Pinia. An agent skill from skilld-dev/vue-ecosystem-skills.
skilld-dev/vue-ecosystem-skills
A skill your agent uses when writing, debugging, or refactoring code that imports "pinia", the Vue 3 store library.
skilld-dev/vue-ecosystem-skills
A skill your agent uses when writing, debugging, or updating code that imports primevue (PrimeVue v5, UI component library for Vue 3).
skilld-dev/vue-ecosystem-skills
Build, configure, and debug apps with the Quasar framework (quasar npm package, v2.33.1).
Categories
Vue 3 components for the Unovis data visualization framework, @unovis/vue 1.7.0. Unovis Vue Skilld is an agent skill from skilld-dev/vue-ecosystem-skills.0.
Unovis Vue Skilld fits situations like: updating code that imports @unovis/vue; renders Vis components such as VisXYContainer; visSingleContainer.
Run `npx skills add skilld-dev/vue-ecosystem-skills --skill unovis-vue-skilld -a claude-code`. Or copy the skill folder (skills/unovis-vue-skilld in skilld-dev/vue-ecosystem-skills) into .claude/skills/unovis-vue-skilld in your project. Claude Code loads it when a task matches its description.
Run `npx skills add skilld-dev/vue-ecosystem-skills --skill unovis-vue-skilld -a codex`. Or copy the skill folder (skills/unovis-vue-skilld in skilld-dev/vue-ecosystem-skills) into .agents/skills/unovis-vue-skilld in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add skilld-dev/vue-ecosystem-skills --skill unovis-vue-skilld -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/unovis-vue-skilld, .gemini/skills/unovis-vue-skilld, .github/skills/unovis-vue-skilld and .opencode/skills/unovis-vue-skilld in your project.
Going by SKILL.md and its folder, Unovis Vue Skilld needs the command-line tools its instructions call (npm). Our summary lists: Node.js.
SKILL.md names 2 domains. In commands or code: unovis.dev; the agent is likely to contact it when it follows the instructions. As links in the text: github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Unovis Vue Skilld is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 9.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Unovis Vue Skilld: D3 Viz (calesthio/OpenMontage, 66k stars), Mviz (matsonj/mviz, 227 stars), Agent D3js Skill (Dokhacgiakhoa/Agent-Skills-4-Vibe-Coding-CLI, 508 stars) and Data Visualization Discipline (daymade/claude-code-skills, 1.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
skilld-dev (a GitHub organization) maintains it in skilld-dev/vue-ecosystem-skills, which has 181 GitHub stars. The repository holds 34 skills in this directory. The repository was last updated on September 22, 2026.
Source: skilld-dev/vue-ecosystem-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.