English | 简体中文
Thank you for taking your time to contribute and make this project better! Here are some guidelines to help you get started. Please make sure to take a moment and read through them before submitting your contributions.
This project is governed by the Contributor Covenant Code of Conduct. By participating, you are expected to adhere to it.
All work happens directly on GitHub. Both core team members and external contributors send pull requests which go through the same code review process.
This project follows semantic versioning. We release patch versions for bug fixes or other changes that do not change the behavior of the API, minor versions for new features that are backward-compatible, and major versions for any breaking changes.
Every significant change is documented in the changelog file.
We use Github issues for bug reports and feature requests. Before reporting an issue, please make sure you have searched for similar issues as they may have been already answered or being fixed. For bug reporting, please include the minimum code that can be used to reproduce the problem. For feature request,
- Fork the repository,and create your branch from
main. For new feature, please submit your changes directly to thefeaturebranch. Other changes should go againstmainbranch. - Use
pnpm installinstall the dependencies - Run
pnpm run buildto build all components, presets, utils - Please run
pnpm run playto debug the component, andpnpm run dev:docsto debug the documentation site - Modify according to your needs, whether it is to modify presets or components, you need to manually run
pnpm run buildin the corresponding directory after modification. Additionally, you can usepnpm run watchfor automatic building of your changes. - Make changes to the codebase. Please add tests if applicable.
- Make sure the test suite passes with
pnpm run test. - Commit your changes, adhering to the Commit Guidelines.
- Open a new pull request, referencing corresponding issues if available.
I know DX is not very good, if you have a good method, welcome to submit a PR
Run pnpm run create:new:comp <component name> to create a new component.
For instance, you can run pnpm run create:new:comp button to automatically generate the button directory along with its base template. and will also add the new component to the root package.json as a dependency.
svelte-ui
├─ components
│ ├─ Button
│ │ ├─ __test__
│ │ │ └─ button.spec.ts
│ │ ├─ package.json
│ │ ├─ src
│ │ │ ├─ index.svelte
│ │ │ ├─ index.ts
│ │ │ └─ types.ts
│ │ └─ tsconfig.json
Commit messages are required to follow the conventional-changelog standard:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
// such as
feat(components/Button): typing and classesThe following is a list of commit types:
- feat: A new feature or functionality
- fix: A bug fix
- docs: Documentation only changes
- style: Code formatting or component style changes
- refactor: Code changes that neither fixes a bug nor adds a feature.
- perf: Improve performance.
- test: Add missing or correct existing tests.
This repository is managed by pnpm:
component: component library entry, each component is a separate package@ikun-ui/xxxxdocs: Component Library Documentation Siteplay: A svelte kig project, used during developmentplayground: Component Library Playground (🚧 TODO)preset:UnoCSSpreset for component library (@ikun-ui/preset)scripts: Some tool scripts used by the component libraryutils: Component library utility methods (@ikun-ui/utils)
By contributing your code to the repository, you agree to license your contribution under the MIT license.