Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork0
Web Awesome's open source components.
License
home-assistant/webawesome
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
- Works with all frameworks 🧩
- Works with CDNs 🚛
- Fully customizable with CSS 🎨
- Includes an official dark theme 🌛
- Built with accessibility in mind ♿️
- Open source 😸
Built by the folks behindFont Awesome.
Documentation:webawesome.com
Source:github.com/shoelace-style/webawesome
Twitter:@webawesomer
Developers can use this documentation to learn how to build Web Awesome from source. You will need Node >= 14.17 to build and run the project locally.
You don't need to do any of this to use Web Awesome! This page is for people who want to contribute to the project, tinker with the source, or create a custom build of Web Awesome.
If that's not what you're trying to do, thedocumentation website is where you want to be.
Components are built withLitElement, a custom elements base class that provides an intuitive API and reactive data binding. The build is a custom script with bundling powered byesbuild.
Web Awesome usesNPM workspaces for its monorepo structure and is fairly minimal in what it provides.
By using a NPM workspaces and a monorepo structure, we can get consistent builds, shared configurations, and reduced duplication across repositories which reduces regressions and forces consistency acrosswebawesome
,webawesome-pro
, andwebawesome-app
.
Generally, if you plan to only work with the free version ofwebawesome
it is easiest to go topackages/webawesome
and run all commands from there.
Any dependencies intended to be used across all packages (IE:prettier
,eslint
) that areNOT used at runtime should be in the rootdevDependencies
ofpackage.json
.
npm install -D -w prettier
Any dependencies that will be used at runtime by a package should be part of the specific package's"dependencies"
such aslit
. This is required because if that dependency is not in thepackages/*/package.json
, it will not be installed when used via NPM.
Individual packages are also free to install devDependencies as needed as long as they are specific to that package only.
To do install a package specific to a package, change your working directory to that package's root
IE:cd packages/webawesome && npm install <package-name>
Start byforking the repo on GitHub, then clone it locally and install dependencies.
git clone https://github.com/YOUR_GITHUB_USERNAME/webawesomecd webawesomenpm install
Once you've cloned the repo, run the following command from the respective directory withinpackages/*
cd packages/webawesomenpm start
This will spin up the dev server. After the initial build, a browser will open automatically. There is currently no hot module reloading (HMR), as browser's don't provide a way to reregister custom elements, but most changes to the source will reload the browser automatically.
To generate a production build, run the following command.
cd packages/webawesomenpm run build
You can also runnpm run build:serve
to start anhttp-server
instance onhttp://localhost:4000
after the build completes, so you can preview the production build.
To scaffold a new component, run the following command, replacingwa-tag-name
with the desired tag name.
cd packages/webawesomenpm run create wa-tag-name
This will generate a source file, a stylesheet, and a docs page for you. When you start the dev server, you'll find the new component in the "Components" section of the sidebar.
Right now the only additional packages are in private repositories.
To add additional packages from other repositories, run:git clone <url> packages/<package-name>
to clone your repo intopackages/
.
Make sure to runnpm install
at the root of the monorepo after adding your package!
Web Awesome is an open source project and contributions are encouraged! If you're interesting in contributing, please review thecontribution guidelines first.
Web Awesome is available under the terms of the MIT license.
About
Web Awesome's open source components.
Resources
License
Code of conduct
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Languages
- TypeScript58.4%
- CSS17.4%
- Nunjucks17.0%
- JavaScript7.0%
- Handlebars0.1%
- HTML0.1%