BalmUI is an open source project that accepts contributions from community members.
If you’ve never contributed to an open source project before, take a look at GitHub’s Contributing to Open Source on GitHub to learn some of the basics.
Before submitting your contribution, please make sure to take a moment and read through the following guidelines:
- Code of Conduct
- Issue Reporting Guidelines
- Pull Request Guidelines
- Development Setup
- Project Structure
- Financial Contribution
If you find a bug in the source code or a mistake in the documentation, you can help us by submitting an issue to the GitHub repository for that platform.
Even better: propose a fix with a pull request and link it to the issue!
-
The
main
branch is just a snapshot of the latest stable release. All development should be done in dedicated branches. Do not submit PRs against themain
branch. -
Checkout a topic branch from a base branch, e.g.
10.x-dev
, and merge back against that branch. -
If adding a new feature:
- Add accompanying test case.
- Provide a convincing reason to add this feature. Ideally, you should open a suggestion issue first and have it approved before working on it.
-
If fixing a bug:
- If you are resolving a special issue, add
(fix #xxxx[,#xxxx])
(#xxxx is the issue id) in your PR title for a better release log, e.g.update entities encoding/decoding (fix #1024)
. - Provide a detailed description of the bug in the PR. Live demo preferred.
- Add appropriate test coverage if applicable.
- If you are resolving a special issue, add
-
It's OK to have multiple small commits as you work on the PR - GitHub can automatically squash them before merging.
-
Make sure tests pass!
-
Commit messages must follow the commit message convention.
-
No need to worry about code style as long as you have installed the dev dependencies - modified files are automatically formatted with Prettier on commit.
Install Node.js® and npm if they are not already on your machine.
Verify that you are running at least node
18
by runningnode -v
in a terminal/console window. Older versions maybe produce errors, but newer versions are fine.
The BalmUI depends on BalmJS, so we need to install the balm-core
globally.
npm install -g balm-core
# OR
yarn global add balm-core
After cloning the repo, run:
npm install
# OR
yarn
Checkout your branch, enjoy:
npm run dev
project
├── config // BalmJS config files. (In most cases you don't need to touch them)
├── docs // BalmUI documentation and demos. (DEV)
│ ├── data // mock data
│ ├── ...
│ ├── scripts
│ │ ├── docs // API docs
│ │ ├── snippets // code snippets
│ │ ├── views // official demos
│ │ └── ...
│ └── styles
├── examples // BalmUI rumtime examples. (TEST)
├── scripts // Build-related configuration files.
├─┬ src // contains the source code, obviously.
│ ├── material-components-web // Stable mdc-web source code.
│ ├── material-icons // Stable Material Icons fonts.
│ ├── scripts // BalmUI core scripts (DEV)
│ │ ├── ...
│ │ ├── index.js // Official Google Material Components entry.
│ │ ├── plus.js // BalmJS Team Material Components entry.
│ │ └── next.js // Experimental Material Components entry.
│ └── styles // BalmUI core styles (DEV)
│ ├── ...
│ └── balm-ui.scss // BalmUI style entry.
├── test // contains all tests. (TEST)
└── ...
docs/{styles,scripts}
: Contributing documentationsrc/{styles,scripts}
: Contributing componentstest
: Contributing tests
dist
,components
,directives
,plugins
andutils
: Note these directories are only updated when a release happens; they do not reflect the latest changes in development branches.
As a pure community-driven project without major corporate backing, we also welcome financial contributions via OpenCollective.