@hulla/ui the revolutionary UI lib builder for new age of coding
Important
If you're looking to add components to your application, use the hulla CLI
github.com/hulladev/cli
This repository is mainly aimed at developers/teams who want to create their own UI Libraries coppatible with hulla cli or people who want to update or add new components to the hulla ui library.
packages/ui: core generation API (createLibrary,resolve, types)packages/components: component source templates per frameworkgenerated: generated framework outputs from the build pipeline (what you use inhullacli)apps/*: local playground/example apps for framework validation
See contributing.md for setup, development workflow, sandbox sync behavior, and repo conventions.
Components are authored in packages/components/src by framework:
astro/react/solid/svelte/vue/+css/- Shared styles/classes between frameworks
A library definition lives in packages/components/src/ui.ts.
@hulla/ui exports:
createLibrary(config)resolve(...)withRootDir(...)- public types from
types.public.ts
import { createLibrary } from "@hulla/ui"
export const ui = createLibrary({
name: "your-library-name",
version: "0.0.0",
frameworks: ["react", "vue"],
inputDirs: {
react: "./src/react",
vue: "./src/vue",
},
outputDirs: {
rootDir: "./generated",
frameworks: {
react: "./react",
vue: "./vue",
},
},
packageJson: {
installDepCommand: "bun add",
installDevDepCommand: "bun add -D",
},
scripts: {},
})frameworks: frameworks to generateinputDirs: source directories per frameworkoutputDirs: root and framework output directoriescopyFiles: optional files copied into generated outputspackageJson: dependency installation commands + optional modifierstsconfig: optional modifiers for generated tsconfig filesscripts: optionalpreBuild/postBuildhooks
From this repository root:
bun install
bun run buildFor direct generator usage, @hulla/ui also ships uigen:
uigen ./packages/components/src/ui.ts(Used internally by the build flow and typically wrapped by the hulla CLI.)