VVibeFlui

Adapter Theme

The root adapter value can influence the default theme preset. Plugin packages can also register theme and adapter metadata.

Adapter to theme preset

When theme.preset is omitted, normalization can derive a preset from root adapter.

AdapterDefault theme preset
tailwinddefault
tailadmintailadmin
shadcnshadcn
mantinecustom
antdcustom
material-uicustom
customcustom
TS
export const usersSchema = {
  resource: "users",
  adapter: "tailadmin",
  table: {
    columns: ["name", "email", "status"]
  }
} as const;

This resolves the theme preset to tailadmin unless theme.preset is explicitly provided.

Plugin metadata

Optional packages such as @vibeflui/shadcn and @vibeflui/tailadmin register theme and adapter metadata through plugins.

TSX
import { FluiKitProvider } from "@vibeflui/core";
import { createTailAdminPlugin } from "@vibeflui/tailadmin";

const tailAdminPlugin = createTailAdminPlugin();

export function AppProviders({ children }: { children: React.ReactNode }) {
  return <FluiKitProvider plugins={[tailAdminPlugin]}>{children}</FluiKitProvider>;
}

Important distinction

adapter and theme.preset do not automatically install external UI components. Field adapters, renderers, providers, and plugin-specific behavior still need runtime registration through FluiKitProvider.

Common mistakes

  • adapter: "antd" does not make every field render with Ant Design by itself. Register the Ant Design plugin and set field adapters where needed.
  • theme.preset changes class presets; renderer and field adapter registration are handled separately.