Getting Started #
- Create a new Angular Dart project. Refer to this docs for more details.
- Grab Tachyon css and Material icons from any of CDN providers out there, place them in the of web/index.html as well as another necessary dependencies. You might want to copy over our demo index.html for starters.
- Add ngadmin to your package's pubspec.yaml file :
dependencies: ng_admin: ^<latest_version>
- Profit! :)
Why Dart for web #
It makes it easier for us to reuse business logic across platform (Web and Mobile). As much as I can't wait for Flutter to be available for web, IMO it's not ready yet for now. The strategy for us currently is to utilize both Angular Dart for web as well as Flutter for mobile and try to reuse as much platform agnostic logic as possible in one package that is shared for both of them.
Why not Dart for web #
Of course Dart is not a silver bullet for all edge cases. Sometimes you might want to stick with npm-js combo as they come with set of utilities that are not available in Dart environment just yet e.g. purge css, static site generator, etc. Rule of thumb for me is use npm for building company profile websites that need to be SEOed and loaded faster, and Dart for the rest.
Why Tachyon CSS #
Atomic CSS is very powerful (debatable of course) and I've been utilizing it for a year, I'm by no means an expert in CSS and I feel that it helps me a lot when it comes to building complex components. Personally I prefer using Tailwind as it comes with more utilities and all that (FYI, I've been using it for making numerous company profile websites (combined with Gatsby js) and I can reduce the development time by miles, you should try it too!). Unfortunately the CDN build is very large and there's no way for us to purge it like how we could in the common npm project. that's where Tachyon shines as the CDN build is less than 100kb which is completely acceptable. It pretty much can do whatever Tailwind can and comes with better docs for use cases vs Tailwind IMO.
Use at your own risk! Please expect some bugs (and breaking changes too) here and there as it's meant to be used internally and still very much WIP for now. There are no unit tests coverage, very limited docs, etc. Currently I'm still busy working on some client projects that depends on this package. I will for sure provide those eventually :) Feel free to report bugs, submit feature requests, etc. on our github repo.