Thank you for your interest in contributing to gradiente.
gradiente is a lightweight, renderer-agnostic gradient toolkit for modern rendering systems. The project aims to provide a robust and composable foundation for gradient processing across platforms.
Please read this document before contributing.
Review the project direction and architecture guidelines first:
Contributions should align with the project's architecture and long-term vision.
Install dependencies:
pnpm install --frozen-lockfileRun development build:
pnpm devRun tests:
pnpm testRun type checks:
pnpm typecheckBuild package:
pnpm build- One PR / commit should address one concern
- Avoid bundling unrelated fixes/refactors/features together
gradiente prioritizes:
- Renderer-agnostic core architecture
- Lightweight design
- Minimal public API surface
- Composable functional utilities
- Strong TypeScript typings
When practical:
- New features should include tests
- Bug fixes should include regression coverage
- Parser/serializer changes should include roundtrip validation
Be thoughtful when changing public exports or API contracts.
Public API additions should provide:
- Broad usefulness
- Architectural value
- Clear composability benefits
Avoid unnecessary API surface expansion.
- Use TypeScript with strict typing
- Avoid
anyunless absolutely necessary - Prefer pure functions over class-heavy abstractions
- Keep files focused and reasonably small
- Add comments for non-obvious math or logic
If your change affects public behavior or API:
- Update relevant documentation
- Update examples when applicable
- Add changelog entries for notable user-facing changes
For major architectural ideas or breaking changes, open an issue before implementing.
Early discussion is preferred over large speculative PRs.
Thank you for helping improve gradiente.