Elements UI is designed to be infinitely expandable. Add new packages for any framework or use case.
elements/
├── packages/
│ ├── core/ # @bitbybit-b3/elements-core
│ └── react/ # @bitbybit-b3/elements-react
├── docs-site/ # VitePress documentation
├── .github/workflows/ # CI/CD automation
└── .claude/commands/ # AI agents for automation
-
@bitbybit-b3/elements-core
- Design tokens and theme
- Framework-agnostic
- CSS variables and utilities
-
@bitbybit-b3/elements-react
- 49+ React components
- Radix UI primitives
- Tailwind CSS styling
The system automatically creates new packages when needed:
Framework-Specific:
@bitbybit-b3/elements-nextjs- Next.js specific (Server Components, App Router, etc.)@bitbybit-b3/elements-vue- Vue components@bitbybit-b3/elements-svelte- Svelte components@bitbybit-b3/elements-solid- SolidJS components@bitbybit-b3/elements-angular- Angular components
Tool-Specific:
@bitbybit-b3/elements-vite- Vite utilities@bitbybit-b3/elements-webpack- Webpack utilities@bitbybit-b3/elements-turbo- Turborepo utilities
Utility Packages:
@bitbybit-b3/elements-utils- Framework-agnostic utilities@bitbybit-b3/elements-hooks- React hooks library@bitbybit-b3/elements-types- Shared TypeScript types@bitbybit-b3/elements-icons- Icon library@bitbybit-b3/elements-animations- Animation utilities
Platform-Specific:
@bitbybit-b3/elements-mobile- React Native components@bitbybit-b3/elements-electron- Electron utilities@bitbybit-b3/elements-tauri- Tauri utilities
Create a new package when you find:
-
Framework-Specific Features
- Server Components (Next.js)
- SFC (Vue Single File Components)
- Svelte stores
- Framework-specific routing
-
Tool-Specific Features
- Build tool specific utilities
- Development tool integrations
- Framework-specific optimizations
-
Clear Separation of Concerns
- Client vs Server
- Web vs Mobile
- UI vs Logic
-
Dependency Isolation
- Avoid bloating main packages
- Optional peer dependencies
- Framework version conflicts
packages/[NAME]/
├── src/
│ ├── index.ts # Main exports
│ ├── components/ # Components (if applicable)
│ ├── hooks/ # Hooks (if applicable)
│ ├── utils/ # Utilities
│ └── types/ # TypeScript types
├── package.json # Package configuration
├── tsconfig.json # TypeScript configuration
├── tsup.config.ts # Build configuration
└── README.md # Package documentation
Intelligently updates library from source projects:
- Scans for components and utilities
- Determines appropriate package (existing or new)
- Creates new packages if needed
- Updates GitHub Actions
- Updates documentation
- Fixes imports and dependencies
Creates a new package:
- Sets up directory structure
- Configures build tools
- Updates GitHub Actions
- Creates documentation
- Adds to workspace
The publish workflow automatically:
- Detects all packages in
packages/* - Bumps versions for all packages
- Builds all packages
- Publishes all packages to GitHub Packages
No manual updates needed! Just create a new package directory and it's automatically included.
- Auto-deploys VitePress docs to GitHub Pages
- Supports unlimited package documentation
- SEO optimized
Each framework/tool gets its own package. Never mix concerns.
Create as many packages as needed. The system scales infinitely.
Agents handle setup automatically. Minimal manual work.
Full TypeScript support across all packages.
All packages follow the same structure for predictability.
Each package can be versioned independently if needed.
- Common build tools (tsup)
- Common testing setup
- Common CI/CD pipelines
- Shared documentation
Use the /update-components command:
/update-components /path/to/project/with/new/frameworkThe agent will:
- Analyze the project
- Detect framework/tools
- Create appropriate package(s)
- Configure everything
- Update CI/CD
- Create documentation
- Create directory:
packages/[name]/ - Copy structure from existing package
- Update package.json with proper metadata
- Configure build (tsup.config.ts, tsconfig.json)
- Update documentation
- Verify:
pnpm install && pnpm build
GitHub Actions will automatically detect and publish the new package.
Scalable - Add unlimited packages Maintainable - Clear separation of concerns Flexible - Support any framework/tool Automated - AI agents handle most work Type-Safe - Full TypeScript support Tested - Each package builds independently Documented - Auto-generated docs Versioned - Git-based versioning Published - Auto-published to GitHub Packages
This architecture supports:
- Unlimited frameworks - React, Vue, Svelte, Solid, Angular, etc.
- Unlimited tools - Vite, Webpack, Turbo, etc.
- Unlimited platforms - Web, Mobile, Desktop, etc.
- Unlimited utilities - Any shared code
The library grows with your needs!
When adding components:
- Run
/update-components <source-path> - Review the changes
- Test the build
- Commit and push
- CI/CD handles the rest
That's it! The system handles package creation, configuration, and deployment automatically.