Flux Elements
Flux Elements provides front-end developers & engineers a collection of reusable web components to build Flux applications. Adopting the library enables developers to use consistent markup, styles, and behavior in prototype and production work.
⏩ tl;dr
npm install
npm run start
📚 Documentation
Guidelines
- All components should do one thing, and do that thing well.
- Don't use Objects or Arrays as props for Web Components. Try to rethink the issue and see if you can make two elements like
select
andoption
. Read more about best practises here - New functionality should be reviewed by at least one other person before going into Flux Elements.
Contributing
Development
To develop on the project, please first read our guidelines and the contributing section above.
To add a new feature:
- Create a new branch (
git checkout -b feature/branchname
) - Work on your feature, and commit your changes
- Update the version number in the package.json file. You can read more about versioning below
- Create a pull request into the
development
branch and ask for a review
To modify an existing feature follow the same process, but also remember the versioning system. If there is a breaking change, or if this might impact existing sites using Flux Elements, update the version number. See below for details.
Versioning
Flux Elements uses semantic versioning to make sure once a site starts using it, web components won't suddenly change and break the site. The version number is located in package.json
When a breaking change is added, a new major version is required.
Publishing a new version on NPM
The development
branch works as our beta
branch, so we can try out new features before we roll them out into production.
To publish a beta version:
- Checkout to
development
- Bump the package.json for example from
0.6.10-beta.9
to0.6.10-beta.10
- Run
npm publish --tag beta
master
is used as our production branch, so when publishing a new version, make sure you have tested all the new features, and taken into account breaking changes etc.
To publish to production:
- Checkout to
master
- Bump the package.json for example from
0.6.9
to0.6.10
depending on the types of changes - Run
npm publish
🔨 Hosting
The documentation is hosted on Netlify. Each time code is pushed to the master
branch, a new build of the documentation will be deployed. Netlify also creates a unique build per pull request so it's easy for other people to review and see the changes live.
Flux Elements is published on NPM and can be installed simply by running npm install --save @junto-foundation/junto-elements
. If you want to use a CDN, we reccommend that you use JSDeliver.
⭐ Adding icons
🌐 Browser support
📂 Application structure
Found a bug?
- If you've found a bug, you can create a new issue via github.
- If you want to fix this issue yourself, do so and then follow the development guide above.
📦 Dependencies
We try to have as few dependencies as possible in Flux Elements. This makes it easier to maintain in the long run, and it makes it more secure as we are not using some unkown third party code in our projects.
- LitElement - A small web component library
- Popper - Library for tooltip positioning