All Projects → erickzanardo → Dashbook

erickzanardo / Dashbook

Licence: mit
Development tools to help you building UI on Flutter

Programming Languages

dart
5743 projects

Labels

Projects that are alternatives of or similar to Dashbook

Thingsboard
Open-source IoT Platform - Device management, data collection, processing and visualization.
Stars: ✭ 10,526 (+7527.54%)
Mutual labels:  widgets
Pock
Widgets manager for MacBook Touch Bar
Stars: ✭ 9,591 (+6850%)
Mutual labels:  widgets
Awesome flutter ui
This repository demonstrates use of various widgets in flutter and tricks to create beautiful UI elements in flutter for Android and IOS
Stars: ✭ 120 (-13.04%)
Mutual labels:  widgets
Screenplay
READONLY MIRROR (https://gitlab.com/kelteseth/screenplay) - Modern, Cross Plattform, Live Wallpaper & Widgets ! Free on Steam : https://store.steampowered.com/app/672870/ScreenPlay/
Stars: ✭ 70 (-49.28%)
Mutual labels:  widgets
Noodlesplate
Offline Shader Editor with many cool features
Stars: ✭ 79 (-42.75%)
Mutual labels:  widgets
Evntouchiddemo
🆔 iOS fingerprint login process implementation
Stars: ✭ 98 (-28.99%)
Mutual labels:  widgets
Toothyprogress
A polyline determinated ProgressBar written in Kotlin
Stars: ✭ 56 (-59.42%)
Mutual labels:  widgets
Spperspective
Widgets iOS 14 animation with 3D and dynamic shadow. Customisable transform and duration.
Stars: ✭ 127 (-7.97%)
Mutual labels:  widgets
Iced
A cross-platform GUI library for Rust, inspired by Elm
Stars: ✭ 12,176 (+8723.19%)
Mutual labels:  widgets
Responsible Ai Widgets
This project provides responsible AI user interfaces for Fairlearn, interpret-community, and Error Analysis, as well as foundational building blocks that they rely on.
Stars: ✭ 107 (-22.46%)
Mutual labels:  widgets
Django Suit Dashboard
Create a dashboard within Django admin interface.
Stars: ✭ 75 (-45.65%)
Mutual labels:  widgets
So Widgets Bundle
The SiteOrigin Widgets Bundle gives you a collection of widgets that you can use and customize. Widgets are great. No matter where you’re using them. In a Page Builder page or on your widgetized areas. It’s even compatible with other popular page building plugins. If you're using the Block Editor you can insert a SiteOrigin Widget block.
Stars: ✭ 79 (-42.75%)
Mutual labels:  widgets
Devextreme
HTML5 JavaScript Component Suite for Responsive Web Development
Stars: ✭ 1,385 (+903.62%)
Mutual labels:  widgets
Flui
A powerful UI framework for Google Flutter.
Stars: ✭ 1,153 (+735.51%)
Mutual labels:  widgets
Cyclotron
A web platform for constructing dashboards.
Stars: ✭ 1,554 (+1026.09%)
Mutual labels:  widgets
Ttkwidgets
A collection of widgets for Tkinter's ttk extensions by various authors
Stars: ✭ 57 (-58.7%)
Mutual labels:  widgets
Scriptable Scripts
My scripts for the Scriptable app. https://scriptable.app/
Stars: ✭ 95 (-31.16%)
Mutual labels:  widgets
Litegui.js
Javascript Library to create webapps with a desktop look-alike interface. All the widgets are created from Javascript instead of using HTML.
Stars: ✭ 131 (-5.07%)
Mutual labels:  widgets
Instantsearch Android
A library of widgets and helpers to build instant-search applications on Android.
Stars: ✭ 129 (-6.52%)
Mutual labels:  widgets
Horus ui
HorusUI Immediate Mode Graphical User Interface
Stars: ✭ 106 (-23.19%)
Mutual labels:  widgets

Dashbook

Dashbook is a UI development tool for Flutter, it works as a development enviroment for the project widgets and also a showcase for common widgets on the app, it is heavly inspired by Storybook library, so it should be very easy for people who has already used Storybook, to use Dashbook.

It currently supports both mobile and web, having a friendly layout built to work nice on web and large resolutions.

How to use

Add the dependency to your pubspec.yaml

dashbook: ^0.1.0

A Dashbook instance has a collection of the app widgets (Stories) and its variants (Chapters). Here you can see a very simple example of how to use it.

import 'package:flutter/material.dart';

import 'package:dashbook/dashbook.dart';

void main() {
  final dashbook = Dashbook();

  // Adds the Text widget stories
  dashbook
      .storiesOf('Text')
      // Decorators are easy ways to apply a common layout to all of the story chapters, here are using onde of Dashbook's decorators,
      // which will center all the widgets on the center of the screen
      .decorator(CenterDecorator())
      // The Widget story can have as many chapters as needed
      .add('default', (ctx) {
        return Container(width: 300, child: Text(
          ctx.textProperty("text", "Text Example"),
          textAlign: ctx.listProperty(
              "text align",
              TextAlign.center,
              TextAlign.values,
          ),
          textDirection: ctx.listProperty(
              "text direction",
              TextDirection.rtl,
              TextDirection.values,
          ),
          style: TextStyle(
              fontWeight: ctx.listProperty(
                  "font weight",
                  FontWeight.normal,
                  FontWeight.values,
              ),
              fontStyle: ctx.listProperty(
                  "font style",
                  FontStyle.normal,
                  FontStyle.values,
              ),
              fontSize: ctx.numberProperty("font size", 20)),
        ));
      });

  dashbook
      .storiesOf('RaisedButton')
      .decorator(CenterDecorator())
      .add('default', (ctx) => RaisedButton(child: Text('Ok'), onPressed: () {}));

  // Since dashbook is a widget itself, you can just call runApp passing it as a parameter
  runApp(dashbook);
}

Preview area

By default Dashbook will provide the whole screen area for the preview, which means that its controll icons will appear floating above the example.

That behavior can be changed with the use of the usePreviewSafeArea parameter on Dashbook constructors, when setting this parameter to true, Dashbook will make sure that its icons will not appear floating above the example creating a safe area for the example preview.

Managing themes

Dashbook offers three of ways to let you change themes when viewing your stories. Dashbook iteself is built to use the provided theme to stylize its own UI, so whatever theme is provided, the Dashbook UI show works nice.

Single theme

Using the default constructor of the Dashbook, use the optional theme parameter to set the theme.

final dashbook = Dashbook(theme: ThemeData());

Dual theme

When your app has two theme, the dualTheme constructor can be used. Two parameters light and dark can be informed to set which ThemeData represents a light theme, and which represents the dark theme, an additional parameter initWithLight can be used to tell Dashbook which theme should be used initially (defaults to true).

When using this, Dashbook will present an icon for the user to toggle between light and dark themes

final dashbook = Dashbook.dualTheme(
  light: YourLightTheme(),
  dark: YourDarkTheme(),
);

Multiple themes

When an app have more than two themes, the multiTheme contructor can be used. It receives a themes parameter, which is a Map<String, ThemeData>, and an optional parameter initialTheme to inform which theme should be used initially (defaults to the first entry of the map).

When using this, Dashbook will present an icon, which shows a modal with a dropdown menu to enable the user to choose between the informed themes

final dashbook = Dashbook.multiTheme(
  themes: {
    'theme1': Theme1(),
    'theme2': Theme2(),
    'theme3': Theme3(),
  }
);

Example

dashbook_13

Structure

Dashbook is just a widget, so it can be ran in any way wanted, as there is no required structure that must be followed, although, we do recommend the following approach:

  • Create a file named main_dashbook.dart on the root source of your project (e.g. lib/main_dashbook.dart)
  • Create the Dashbook instance inside that file, calling the runApp method in the end (look on the example above)
  • Run it with the command flutter run -t lib/main_dashbook.dart
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].