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.
| Adapter | Default theme preset |
|---|---|
tailwind | default |
tailadmin | tailadmin |
shadcn | shadcn |
mantine | custom |
antd | custom |
material-ui | custom |
custom | custom |
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.presetchanges class presets; renderer and field adapter registration are handled separately.