@mittwald/flow-remote-vue-components
| Install | |
|---|---|
npm install @mittwald/flow-remote-vue-components |
|
| Latest Version: | 1.5.27 |
| Vue: | 3 |
| License: | MIT |
| Last Updated: | Oct 21, 2026 |
| Links: | GitHub · npm |
Flow
mStudio Design System
A React component library and a remote-rendering system, built by mittwald.
Flow gives mittwald a single, accessible UI foundation — and lets mStudio extensions render sandboxed interfaces with those same components from inside an iframe.
- 📘 Documentation: https://flow.mittwald.de
- 🎛️ Storybook: https://storybook.flow-components.de
- 🧩 Extension developer portal: https://developer.mittwald.de
Highlights
- Various components covering actions, forms, overlays, navigation, data visualization, content, and status.
- Accessible by default — most components wrap react-aria-components, so keyboard behavior, focus management, and ARIA come built in.
- Design tokens compiled from YAML to CSS variables via style-dictionary — colors, typography, spacing, and radii stay consistent and themeable.
- Contextual composability — components adapt to where they're used (an
Iconinside anAlertsizes itself; aHeadinginherits its level) instead of needing props threaded through by hand. - Remote rendering — the same components render inside sandboxed mStudio extensions across a versioned, backwards-compatible protocol.
- Two icon sets (Tabler + FontAwesome), a standalone stylesheet, i18n (German + English, ICU MessageFormat), RTL support, and light/dark themes.
Installation
npm install @mittwald/flow-react-components
React 19 and react-dom 19 are peer dependencies.
Quick start
Import the stylesheet once at your app's entry point, then use components anywhere:
import "@mittwald/flow-react-components/all.css";
import { Button } from "@mittwald/flow-react-components";
export default function App() {
return <Button>Hello Flow</Button>;
}
Building an app or mStudio extension in your own project? Read packages/components/USAGE.md before you lay out anything — templates, layout and spacing, what is safe to depend on. It routes extension developers on.
Prefer to override Flow's styles without specificity tricks? Import the
CSS Cascade Layers
variant instead — @mittwald/flow-react-components/all-layered.css. See the
stylesheet guide
for when to use which.
Set application-wide component defaults once by wrapping your app in
ComponentDefaultsProvider; every individual usage still wins over the default.
How Flow is built
Flow is three systems in one monorepo.
1. Design system core
React components in packages/components, styled with
SCSS modules and design-token CSS variables. The icon sets, the standalone
stylesheet, and the docs site build on top.
2. Remote DOM (flr = Flow Remote)
mStudio extensions run in a hidden iframe and render UI that the host materializes with real Flow components — so an extension gets native look, feel, and accessibility without shipping its own copy of the design system.
extension (iframe) host (mStudio)
RemoteRoot + remote components ───► RemoteRenderer + RemoteReceiver
│ @quilted/threads connection │
└─ hidden remote DOM (flr-* elements) ───► maps flr-* to Flow components
The connection protocol is versioned — the host negotiates with each remote version, and the props of remote-capable components are a stable contract with extension developers. Full picture: docs/remote-ui.md.
An extension is written in React (@mittwald/flow-remote-react-components) or —
in beta — in Vue (@mittwald/flow-remote-vue-components). The Vue binding
renders the same Flow components in the host, but its API carries no stability
promise yet; see its README.
3. Token pipeline
packages/design-tokens holds token YAML — the design
authority, defined together with UX. style-dictionary compiles it to CSS
variables and JSON that every other package consumes.
Packages
nx + pnpm workspace monorepo. The published packages:
| Package | Description |
|---|---|
@mittwald/flow-react-components |
The component library — the heart of Flow. |
@mittwald/flow-design-tokens |
Design tokens (YAML source → CSS variables + JSON). |
@mittwald/flow-icons |
Icon set generated from Tabler. |
@mittwald/flow-icons-pro |
Icon set generated from FontAwesome. |
@mittwald/flow-stylesheet |
The components' stylesheet as a standalone, framework-agnostic CSS package. |
@mittwald/flow-remote-core |
Remote connection + serialization layer (versioned protocol). |
@mittwald/flow-remote-elements |
Custom flr-* elements for the remote side. |
@mittwald/flow-remote-react-components |
React API used inside remote apps (extensions). |
@mittwald/flow-remote-react-renderer |
Host-side renderer mapping flr-* elements to Flow components. |
@mittwald/flow-remote-vue-components |
Beta. Vue API used inside remote apps (extensions). |
@mittwald/ext-bridge |
mStudio extension bridge (node / browser / react / i18next entries). |
@mittwald/react-tunnel |
Generic "portal for components" utility. |
@mittwald/mstudio-ext-react-components |
Helpers for mStudio extension developers (page header customization). |
Apps live in apps/: the documentation site (apps/docs)
and a remote-rendering demo (apps/remote-dom-demo).
Migration
One command bumps every Flow dependency to the target version, installs, and runs the codemod of every migration up to that version:
npx @mittwald/flow-codemods@latest upgrade
It is not the whole migration — most entries in the
Migration Guide have no codemod, and the
command prints those when it is done. list shows them upfront without changing
anything. Full history is in CHANGELOG.md.
Contributing
Contributions are welcome — the full guide is in CONTRIBUTE.md. To get started:
corepack enable && pnpm install # setup (Node >= 24)
pnpm nx dev components # component dev environment (Storybook on :6006)
Common tasks:
pnpm build # build everything (runs all generators)
pnpm test # unit + compile tests
pnpm lint # eslint + stylelint + format:check
Working on Flow itself, as a human or an AI coding agent? Start with the root
AGENTS.md. Most packages add their own AGENTS.md with the
patterns and footguns of that area.
License
MIT © Mittwald CM Service GmbH & Co. KG and contributors
Version History
| Version | Released | License |
|---|---|---|
| 1.5.27 | MIT | |
| 1.5.26 | MIT | |
| 1.5.25 | MIT | |
| 1.5.24 | MIT | |
| 1.5.23 | MIT | |
| 1.5.22 | MIT | |
| 1.5.21 | MIT | |
| 1.5.20 | MIT | |
| 1.5.19 | MIT | |
| 1.5.18 | MIT | |
| 1.5.17 | MIT | |
| 1.5.16 | MIT | |
| 1.5.15 | MIT | |
| 1.5.14 | MIT | |
| 1.5.13 | MIT | |
| 1.5.12 | MIT | |
| 1.5.11 | MIT | |
| 1.5.10 | MIT | |
| 1.5.9 | MIT | |
| 1.5.8 | MIT | |
| 1.5.7 | MIT | |
| 1.5.6 | MIT | |
| 1.5.5 | MIT | |
| 1.5.4 | MIT | |
| 1.5.3 | MIT | |
| 1.5.2 | MIT | |
| 1.5.1 | MIT | |
| 1.5.0 | MIT |
Pre-releases (27)
| Version | Released | License |
|---|---|---|
| 1.6.0-next.24 | MIT | |
| 1.6.0-next.23 | MIT | |
| 1.6.0-next.22 | MIT | |
| 1.6.0-next.21 | MIT | |
| 1.6.0-next.20 | MIT | |
| 1.6.0-next.19 | MIT | |
| 1.6.0-next.18 | MIT | |
| 1.6.0-next.17 | MIT | |
| 1.6.0-next.16 | MIT | |
| 1.6.0-next.15 | MIT | |
| 1.6.0-next.14 | MIT | |
| 1.6.0-next.13 | MIT | |
| 1.6.0-next.12 | MIT | |
| 1.6.0-next.11 | MIT | |
| 1.6.0-next.10 | MIT | |
| 1.6.0-next.9 | MIT | |
| 1.6.0-next.8 | MIT | |
| 1.6.0-next.7 | MIT | |
| 1.6.0-next.6 | MIT | |
| 1.6.0-next.5 | MIT | |
| 1.6.0-next.4 | MIT | |
| 1.6.0-next.3 | MIT | |
| 1.6.0-next.2 | MIT | |
| 1.6.0-next.1 | MIT | |
| 1.6.0-next.0 | MIT | |
| 1.5.0-next.35 | MIT | |
| 0.0.0-stage |