From bff89833d4308d63d5710c74e090ac17c626e74c Mon Sep 17 00:00:00 2001 From: Ronan Berder Date: Wed, 12 Nov 2025 09:56:02 +0800 Subject: [PATCH] Attempting to fix #84 --- AGENTS.md | 25 +++++++++++++++++++++++++ docs/src/installation.njk | 3 ++- packages/css/package.json | 2 ++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index 1247087..f8ca2b4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -56,6 +56,19 @@ Basecoat is a vanilla JavaScript/HTML/CSS port of shadcn/ui components. It reuse - If it's just composition of existing elements (users can do it with standard HTML/Tailwind) - If behavior is fully native (e.g., fieldset, legend) +## Adding new components + +Before creating a component, ask: +1. Does shadcn/ui have it? → Port it +2. Is it pure composition? → Document pattern, no component +3. Does it need JS behavior? → Create component +4. Is it just CSS? → Add to basecoat.css, document usage + +Examples: +- Field/Fieldset: CSS-only patterns (no JS component) +- Empty/Item/Input Group: Pure composition (docs only) +- Command/Select: JS behavior required (full component) + ## Common tasks - Update a component's CSS/JS: Edit `src/css/basecoat.css` and/or `src/js/*.js`. @@ -81,6 +94,18 @@ No automated testing configured. User validates manually via the docs site (`npm - Tailwind via `@tailwindcss/cli` v4. - Build uses Tailwind CLI and `terser`; both are provided via devDependencies. +## Git workflow + +- `.gitattributes` configures merge strategies for generated files +- `docs/src/assets/styles.css` auto-resolves to incoming changes (regenerated by Tailwind) +- Always run `npm run build` before publishing packages + +## Publishing packages + +1. Bump version in root `package.json` +2. Run `npm run build` to generate dist files +3. Run `npm publish --workspaces` to publish both packages + ## Package references - `packages/css` usage and details: see `packages/css/README.md`. diff --git a/docs/src/installation.njk b/docs/src/installation.njk index b13cb70..dacc504 100644 --- a/docs/src/installation.njk +++ b/docs/src/installation.njk @@ -112,7 +112,8 @@ toc:

Or cherry-pick specific components, for example:

- {% set code %}{% raw %}import 'basecoat-css/popover'; + {% set code %}{% raw %}import 'basecoat-css/basecoat'; +import 'basecoat-css/popover'; import 'basecoat-css/tabs';{% endraw %}{% endset %} {{ code_block(code, "js") }}
diff --git a/packages/css/package.json b/packages/css/package.json index bbbab26..cd580fe 100644 --- a/packages/css/package.json +++ b/packages/css/package.json @@ -40,6 +40,8 @@ "exports": { ".": "./dist/basecoat.css", "./css": "./dist/basecoat.css", + "./basecoat": "./dist/js/basecoat.js", + "./basecoat.min": "./dist/js/basecoat.min.js", "./all": "./dist/js/all.js", "./all.min": "./dist/js/all.min.js", "./command": "./dist/js/command.js",