EEnterUI
DocsComponentsThemesDonation
Get Started
  • Overview
  • Introduction
  • InstallationInstall packages and import CSS.
  • SolidJS Renderer
  • Theming
  • Styling Philosophy
  • Production Checklist
  • Migration & Versioning
EnterUIDocsGetting StartedInstallation
Getting StartedUpdated 6 May 2026

Installation

Choose the React or SolidJS renderer, then load FroggDesign theme CSS before renderer CSS.

EnterUI ships separate renderer packages. Use this page for package installation and global CSS setup. Renderer-specific coverage and API notes live in the dedicated framework guides.

React / Next.js

Use @froggdesign/enter-ui-react for React 18, React 19, and Next.js App Router apps. This is the primary renderer and includes the full component surface.

Read more

SolidJS

Use @froggdesign/enter-ui-solid for SolidJS apps. It shares the visual contract and currently covers stateless and presentational primitives.

Read more

#React

Install the React renderer with the FroggDesign theme package.

Code
pnpm install @froggdesign/enter-ui-react @froggdesign/theme

React and React DOM are peer dependencies. Your app should already provide them.

Import FroggDesign theme CSS before React renderer CSS. In Next.js App Router, this usually belongs in app/layout.tsx.

app/layout.tsx
import "@froggdesign/theme/styles.css";
import "@froggdesign/enter-ui-react/styles.css";

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html lang="en">
      <body>{children}</body>
    </html>
  );
}

Import order

Theme CSS must load first. EnterUI components read --eui-* variables that default to FroggDesign --fd-* variables.

Import React components from @froggdesign/enter-ui-react.

Code
import {
  Badge,
  Button,
  Card,
  CardContent,
  DataTable,
  type DataTableColumn,
} from "@froggdesign/enter-ui-react";

type Release = {
  id: string;
  name: string;
  status: string;
};

const columns: DataTableColumn<Release>[] = [
  { id: "name", header: "Name", accessorKey: "name" },
  { id: "status", header: "Status", accessorKey: "status" },
];

export function ReactExample({ rows }: { rows: Release[] }) {
  return (
    <Card>
      <CardContent>
        <Badge variant="success">React</Badge>
        <Button>Deploy</Button>
        <DataTable columns={columns} data={rows} />
      </CardContent>
    </Card>
  );
}

#Framework Notes

  • Next.js Server Components can render static EnterUI components.
  • Interactive components such as dialogs, menus, tabs, date pickers, form controls with state, and table tooling should live inside Client Components.
  • Import global CSS once at the app boundary, not inside individual components.

React peer dependencies

@froggdesign/enter-ui-react expects React and React DOM from the consuming app. Complex primitives use focused React runtime dependencies for behavior such as focus management, menus, portals, and typeahead.

#SolidJS

Install the SolidJS renderer with the FroggDesign theme package.

Code
pnpm install @froggdesign/enter-ui-solid @froggdesign/theme solid-js

Import FroggDesign theme CSS before SolidJS renderer CSS.

src/root.tsx
import "@froggdesign/theme/styles.css";
import "@froggdesign/enter-ui-solid/styles.css";

SolidJS renderer scope

After installing, continue with the SolidJS renderer guide for usage examples, current exports, styling guidance, and the framework boundary for complex interactive components.

#Renderer Boundary

  • React apps import from @froggdesign/enter-ui-react and @froggdesign/enter-ui-react/styles.css.
  • SolidJS apps import from @froggdesign/enter-ui-solid and @froggdesign/enter-ui-solid/styles.css.
  • Both renderers import @froggdesign/theme/styles.css first.
  • Do not deep-import package internals.
  • Do not import the React package into a SolidJS app to reach a missing component.

#Tailwind Is Optional

EnterUI does not require Tailwind. You can use either renderer with plain CSS, CSS Modules, Sass, vanilla-extract, Panda CSS, Emotion, Tailwind, or an existing custom design system.

#Internal Workspace Consumers

Inside this monorepo, apps should use workspace dependencies. Published consumers install from npm.

package.json
{
  "dependencies": {
    "@froggdesign/enter-ui-react": "workspace:*",
    "@froggdesign/enter-ui-solid": "workspace:*",
    "@froggdesign/theme": "workspace:*"
  }
}

#Verify Setup

After installing, run the app and check:

  • theme CSS loads before EnterUI CSS
  • focus-visible states are visible
  • dark mode still has enough contrast
  • package imports come from the matching renderer package
  • there are no deep imports from src/components or dist
PreviousIntroduction
NextSolidJS Renderer

On this page

  1. React
  2. Framework Notes
  3. SolidJS
  4. Renderer Boundary
  5. Tailwind Is Optional
  6. Internal Workspace Consumers
  7. Verify Setup