Awesome Jaspr Components
Awesome Jaspr Components is an open-source Dart package that brings a Flutter-like development experience to the Jaspr framework. With a familiar API and a rich set of components, you can easily build reactive web apps using Jaspr, just like you would in Flutter.
Features
- Flutter-like Widgets: Use components similar to Flutter’s widgets like
Scaffold,AppBar,Column, and more. - Routing: Includes a flexible routing system with support for nested routes, tabs, and navigation.
- Component-based Architecture: Build your UI using reusable components.
- Easy-to-use API: A developer-friendly API that feels familiar to Flutter developers.
Getting Started
To use Awesome Jaspr Components, add it to your pubspec.yaml file:
dependencies:
awesome_jaspr_components: ^0.0.1
Then run:
dart pub get
Example Usage
Here's a simple example to get you started.
App Root
import 'package:jaspr/jaspr.dart';
import 'package:awesome_jaspr_components/awesome_jaspr_components.dart';
class MyApp extends StatelessComponent {
const MyApp({super.key});
@override
Iterable<Component> build(BuildContext context) sync* {
yield AwsomeApp(
router: Router(routes: [
ShellRoute(
builder: (context, state, child) =>
Fragment(children: [HomeScreen(child: child)]),
routes: [
Route(path: '/', title: 'Home', builder: (context, state) => const Home()),
Route(path: '/about', title: 'About', builder: (context, state) => const About()),
],
),
]),
);
}
}
Home Screen with Tabs
class HomeScreen extends StatelessComponent {
const HomeScreen({
super.key,
required this.child,
});
final Component child;
@override
Iterable<Component> build(BuildContext context) sync* {
yield Scaffold(
appBar: TabBar(
color: Colors.lightBlue,
tabs: [
TabData(label: 'Home', path: '/'),
TabData(label: 'About', path: '/about'),
],
),
body: child,
);
}
}
Contributing
Contributions are welcome! If you find a bug or have a feature request, feel free to open an issue or submit a pull request.
- Fork the repo.
- Create a new branch (git checkout -b feature-branch).
- Commit your changes (git commit -m 'Add some feature').
- Push to the branch (git push origin feature-branch).
- Open a pull request.
Libraries
- awseome_jaspr_components
- Support for doing something awesome.
- utils/components/app_bar
- utils/components/awsome_app
- utils/components/center
- utils/components/column
- utils/components/components
- utils/components/container
- utils/components/headings
- utils/components/icons/icon
- utils/components/icons/icons
- utils/components/images
- utils/components/inkwell
- utils/components/row
- utils/components/scaffold
- utils/components/sized_box
- utils/components/tab
- utils/components/tab_bar
- utils/components/text_component
- utils/components/text_field
- utils/controllers/controllers
- utils/controllers/text_editing_controller
- utils/properties/actions
- utils/properties/alignment
- utils/properties/decoration
- utils/properties/input_decoration
- utils/properties/properties
- utils/properties/tab_data