@jctrejosi/components-seed
v1.0.4
Published
Librería de componentes React (variantes por _constelación_) para portafolios y landing pages. Componentes modulares, estilizados con **CSS variables** (`var(--...)`), listos para consumir desde otros proyectos y para publicar en npm.
Readme
components-seed
Librería de componentes React (variantes por constelación) para portafolios y
landing pages. Componentes modulares, estilizados con CSS variables
(var(--...)), listos para consumir desde otros proyectos y para publicar en
npm.
Qué hace
- Exporta componentes listos (
HeroSectionAndromeda,ContactFormAndromeda,ScrollSnapAndromeda,WorkSectionAndromeda, etc.). - Estilos por componente; uso intensivo de
var(--...)para tematización. - Incluye carpeta
bundle/con los builds compilados (index.css,index.es.js,index.umd.js). - Script TypeScript
scripts/update-css-vars.tsque inserta en cada.cssun comentario inicial con las variables--xxxusadas (documentación automática).
Instalación
Desde npm (consumidor)
npm install components-seedEn desarrollo (usar el paquete local)
# en la librería
npm install
npm link
npm run bundle:watch # mantiene a la escucha para generar /bundle
# en el proyecto consumidor
npm link components-seedEjemplo de uso
Importa los estilos de la librería en el main.tsx
import 'components-seed/bundle/index.css'Importa un componente desde la librería
import { ExampleComponent } from 'components-seed'
export const Home = () => (
<ExampleComponent someProp="value" />
)Recuerda: las variables CSS globales (:root { --base-color-7: ... }) deben
definirse en el proyecto para que los colores concuerden.
Estructura del proyecto
.
├── bundle
│ ├── index.css
│ ├── index.es.js
│ └── index.umd.js
├── src
│ ├── components
│ │ ├── ContactForm(Type-Component)
│ │ │ └── Andromeda(Constelation-Name)
│ │ │ ├── index.tsx
│ │ │ └── styles.module.css
│ └── index.ts
├── scripts
│ ├── generate-components-index.ts
│ ├── generate-types-index.ts
│ ├── generate-utils-index.ts
│ └── update-css-vars.ts
├── package.json
├── .prettierrc
└── eslint.config.jsScripts (package.json)
{
"scripts": {
"dev": "vite",
"build": "tsc -b && vite build",
"preview": "vite preview",
"lint": "eslint . --ext .ts,.tsx --fix",
"lint:fix": "eslint . --fix",
"lint:css": "stylelint \"**/*.css\" --fix",
"format": "prettier --write .",
"generate:types": "ts-node ./src/scripts/generate-types-index.ts",
"generate:utils": "ts-node ./src/scripts/generate-utils-index.ts",
"generate:components": "ts-node ./src/scripts/generate-components-index.ts",
"comment-css-variables": "ts-node ./src/scripts/comment-css-variables.ts",
"generate-indexes": "ts-node ./src/scripts",
"bundle": "npm run generate-indexes && tsc -b && vite build",
"bundle:watch": "vite build --watch"
}
}Publicar en npm
- Ejecuta localmente:
npm run lint
npm run format
npm run bundle- Bump de versión:
npm version patch- Login (si es necesario):
npm login- Publicar:
npm publish --access public- En proyecto consumidor:
npm install [email protected]VS Code — configuración recomendada (pegar en .vscode/ del workspace consumidor)
.vscode/settings.json
{
"editor.defaultFormatter": "dbaeumer.vscode-eslint",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "always",
"source.organizeImports": "always",
"source.removeUnusedImports": "always",
"source.sortImports": "always"
}
}Notas VS Code
prettier.configPathapunta al.prettierrcdentro del paquetecomponents-seedinstalado. Esto unifica formato entre librería y consumidor.- Si usas path-aliases en
tsconfig.json, añadeeslint-import-resolver-typescriptpara que ESLint resuelva importaciones.
Buenas prácticas antes de publicar
npm run lint && npm run format && npm run build && npm run comment-css-variables.- Verifica
bundle/index.cssy builds (index.es.js,index.umd.js). - Prueba localmente instalando el paquete desde la ruta:
npm install /ruta/a/components-seedy ejecuta el proyecto consumidor. - Mantén
prepublishOnlypara no olvidar pasos.
Cómo añadir una nueva constelación (rápido)
- Copia la carpeta base del componente (p. ej.
src/components/HeroSection/Andromeda) → renombraAntlia. - Ajusta
index.tsxy el.csscorrespondiente. - Ejecuta
npm run comment-css-variables. - Ejecuta
npm run bundle. - Bump version y publicar.
