@knime/kds-components
@knime/kds-components
Vue 3 components library for the KNIME Design System.
This is part of the KNIME Design System.
Installation
vue and @vueuse/core are peer dependencies. @knime/kds-styles provides
the design tokens every component styles against; it comes along as a
dependency, but install it directly too so your app can import its CSS:
pnpm add @knime/kds-components @knime/kds-styles vue @vueuse/core
Usage
Import the CSS variables once in your app entry, then use the components:
// main.ts — required once; components render unstyled without it
import "@knime/kds-styles/kds-variables.css";
<script setup lang="ts">
import { KdsButton, KdsIcon } from "@knime/kds-components";
</script>
<template>
<!-- Components are configured through props; slot exposure is kept minimal
on purpose so usage stays consistent across KNIME applications. -->
<KdsButton label="Confirm" leading-icon="checkmark" variant="filled" />
<KdsIcon name="checkmark" />
</template>
See the @knime/kds-styles README for the other CSS
entry points (index.css, fonts.css) and for enabling dark mode.
Using with Vitest, Nuxt, or Vite SSR
The published JavaScript imports its CSS as a side effect (e.g.
import "./index.css"), which bundlers handle automatically. When the package
is instead evaluated by Node's native ESM loader — as Vitest and
Vite/Nuxt SSR do by default, since they externalize node_modules — Node
has no .css loader and throws Unknown file extension ".css". Configure the
consuming project once so @knime/* packages are processed instead of
externalized:
// Vitest — vitest.config.ts
export default defineConfig({
test: { server: { deps: { inline: [/@knime\//] } } },
});
// Vite SSR — vite.config.ts
export default defineConfig({ ssr: { noExternal: [/@knime\//] } });
// Nuxt — nuxt.config.ts
export default defineNuxtConfig({ build: { transpile: [/@knime\//] } });
Available components
The component set changes frequently, so the authoritative, always-current list is the live Storybook, which documents every component's props, events, and slots.
Everything re-exported from src/index.ts is public API, grouped as:
| Group | Source | Examples |
|---|---|---|
| Accessories | src/components/accessories |
KdsIcon, KdsBadge, KdsAvatar, KdsDivider, KdsLoadingSpinner |
| Buttons | src/components/buttons |
KdsButton, KdsMenuButton, KdsSplitButton, KdsToggleButton |
| Feedback | src/components/feedback |
KdsEmptyState, KdsInlineMessage, KdsProgressBar |
| Forms | src/components/forms |
KdsCheckbox, KdsRadioButton, KdsToggleSwitch, inputs/selects |
| Lists | src/components/lists |
KdsMenu, KdsContextMenu, KdsListContainer |
| Rich text | src/components/richText |
KdsDescription |
| Visualizations | src/components/visualizations |
KdsDonutChart |
| Layouts | src/layouts |
cards, explorer, overlays (incl. the vKdsTooltip directive), panels |
| Utilities | src/util |
composables, e.g. useKdsDarkMode(), useKdsIsTruncated() |
To discover components from an AI agent, use the /frontend:kds-components
skill rather than reading the sources.
Development
Building
Run from the monorepo root (this package's build depends on @knime/kds-styles
and @knime/utils being built first):
pnpm build # all packages, in dependency order
pnpm build:components # only this package
License
KNIME-Commercial-License-2.0
Related Packages
Storybook for Vue: Develop Vue Component in isolation with Hot Reloading.
Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.
Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.
Version History
| Version | Released | License |
|---|---|---|
| 11.4.0 | KNIME-Commercial-License-2.0 | |
| 11.3.0 | KNIME-Commercial-License-2.0 | |
| 11.2.0 | KNIME-Commercial-License-2.0 | |
| 11.1.1 | KNIME-Commercial-License-2.0 | |
| 11.1.0 | KNIME-Commercial-License-2.0 | |
| 11.0.0 | KNIME-Commercial-License-2.0 | |
| 10.2.0 | KNIME-Commercial-License-2.0 | |
| 10.1.0 | KNIME-Commercial-License-2.0 | |
| 10.0.0 | KNIME-Commercial-License-2.0 | |
| 9.1.1 | KNIME-Commercial-License-2.0 | |
| 9.1.0 | KNIME-Commercial-License-2.0 | |
| 9.0.0 | KNIME-Commercial-License-2.0 | |
| 8.2.2 | KNIME-Commercial-License-2.0 | |
| 8.2.1 | GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE) | |
| 8.2.0 | GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE) | |
| 8.1.0 | GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE) | |
| 8.0.0 | GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE) | |
| 7.2.3 | GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE) | |
| 7.2.2 | GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE) | |
| 7.2.1 | GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE) | |
| 7.2.0 | GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE) | |
| 7.1.0 | GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE) | |
| 7.0.0 | GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE) | |
| 6.12.2 | GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE) | |
| 6.12.1 | GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE) | |
| 6.12.0 | GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE) | |
| 6.11.0 | GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE) | |
| 6.10.0 | GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE) | |
| 6.9.0 | GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE) | |
| 6.8.1 | GPL 3 and Additional Permissions according to Sec. 7 (SEE the file LICENSE) |
Showing the latest 30 of 186. See every release on npm