Buckshot [buhk-shot] noun When darts land wildly all over the board.
Buckshot is a UI Framework for modern web applications. It is written in Google Dart and attempts to model the best of .net WPF (Silverlight) and Adobe Flex, but without the need for a plug-in. Buckshot renders all output in HTML5/CSS3, and makes use of features available in today's modern web browsers.
If you've worked with .net WPF or Silverlight then this framework will feel very familiar to you.
Status: Alpha #
Project is currently in the alpha stage of development. It will likely not move to beta or v1.0 until after Dart ships v1.0. This is to ensure that that library is working correctly with the Dart APIs, which are still in flux.
For Modern Web Browsers #
While the project will attempt some compatibility with older/non-compliant browsers, the target focus is centered squarely on modern web browsers. If Buckshot isn't working in your browser of choice, then it isn't modern. Ok that may be a bit harsh, but seriously: Use Chrome.
Getting Started #
See the "getting_started" document in the doc/ folder.
|Template-Driven||Similar to Xaml, but more simplified and flexible. Supports XML, JSON, and YAML formats.|
|Actions||Event-driven actions, like playing animations, changing properties, etc, in XML templates instead of code (you can also do it in code too, if desired)|
|Controls||Dozens of controls included with the core library, everything from primitive shapes to complex template-supporting controls, like ListBox and TreeView|
|Animation||Declaratively set keyframe animations for your elements, and off you go (still new, has some limitations)|
|Data Binding||Buckshot supports 4 different types of binding from XML templates (or in code): Resource binding, element-to-element binding, data binding, and template binding|
|Events||.net folks will find this model to be very familiar. We use it to wrap DOM events and for other internal events, but you can use it in your own apps|
|Style Templates||Use a common style library among multiple elements. Individual changes to style property values will automatically update any elements using that style|
|Extensibility||Everything in Buckshot is designed to be extensible, so you can create libraries of your own controls, resources, and more|
And Much, Much More [More Details Here] (https://github.com/prujohn/Buckshot/wiki/What-is-Buckshot%3F)
Apache 2.0. See license.txt for project licensing information.
Buckshot Discussion Group: https://groups.google.com/forum/#!forum/buckshot-ui
Use this package as a library
1. Depend on it
Add this to your package's pubspec.yaml file:
dependencies: buckshot: ^0.1.3
2. Install it
You can install packages from the command line:
$ pub get
Alternatively, your editor might support
Check the docs for your editor to learn more.
3. Import it
Now in your Dart code, you can use:
import 'package:buckshot/buckshot_browser.dart'; import 'package:buckshot/extensions/controls/accordion/accordion.dart'; import 'package:buckshot/extensions/controls/accordion/accordion_item.dart'; import 'package:buckshot/extensions/controls/canvas/bitmap_canvas.dart'; import 'package:buckshot/extensions/controls/canvas/canvas_base.dart'; import 'package:buckshot/extensions/controls/canvas/webgl_canvas.dart'; import 'package:buckshot/extensions/controls/dock_panel.dart'; import 'package:buckshot/extensions/controls/list_box.dart'; import 'package:buckshot/extensions/controls/media/funny_or_die.dart'; import 'package:buckshot/extensions/controls/media/hulu.dart'; import 'package:buckshot/extensions/controls/media/vimeo.dart'; import 'package:buckshot/extensions/controls/media/youtube.dart'; import 'package:buckshot/extensions/controls/menus/menu.dart'; import 'package:buckshot/extensions/controls/menus/menu_item.dart'; import 'package:buckshot/extensions/controls/menus/menu_item_selected_event_args.dart'; import 'package:buckshot/extensions/controls/menus/menu_lib.dart'; import 'package:buckshot/extensions/controls/menus/menu_strip.dart'; import 'package:buckshot/extensions/controls/modal_dialog.dart'; import 'package:buckshot/extensions/controls/popup.dart'; import 'package:buckshot/extensions/controls/social/plus_one.dart'; import 'package:buckshot/extensions/controls/tab_control/tab_control.dart'; import 'package:buckshot/extensions/controls/tab_control/tab_item.dart'; import 'package:buckshot/extensions/controls/tab_control/tab_selected_event_args.dart'; import 'package:buckshot/extensions/controls/treeview/tree_node.dart'; import 'package:buckshot/extensions/controls/treeview/tree_view.dart'; import 'package:buckshot/extensions/template_providers/json_template_provider.dart'; import 'package:buckshot/extensions/template_providers/yaml/composer.dart'; import 'package:buckshot/extensions/template_providers/yaml/constructor.dart'; import 'package:buckshot/extensions/template_providers/yaml/deep_equals.dart'; import 'package:buckshot/extensions/template_providers/yaml/model.dart'; import 'package:buckshot/extensions/template_providers/yaml/parser.dart'; import 'package:buckshot/extensions/template_providers/yaml/visitor.dart'; import 'package:buckshot/extensions/template_providers/yaml/yaml.dart'; import 'package:buckshot/extensions/template_providers/yaml/yaml_map.dart'; import 'package:buckshot/extensions/template_providers/yaml_template_provider.dart'; import 'package:buckshot/gen/gen_option.dart'; import 'package:buckshot/gen/generator_file.dart'; import 'package:buckshot/gen/genie.dart'; import 'package:buckshot/gen/logger.dart'; import 'package:buckshot/generator_console.dart'; import 'package:buckshot/web/browser.dart'; import 'package:buckshot/web/browser_info.dart'; import 'package:buckshot/web/web.dart';
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
The package version is not analyzed, because it does not support Dart 2. Until this is resolved, the package will receive a health and maintenance score of 0.
Analysis issues and suggestions
Support Dart 2 in
The SDK constraint in
pubspec.yaml doesn't allow the Dart 2.0.0 release. For information about upgrading it to be Dart 2 compatible, please see https://dart.dev/dart-2#migration.