Skribble Docs

API Overview

High-level map of the Skribble public API — exports, key types, and where to find them.

The main library is imported via a single barrel file:

import 'package:skribble/skribble.dart';

This exports 89 files covering the full widget set, rough engine, theming, and canvas system.

API layers#

The public API is organized into five layers, from lowest to highest:

1. Rough engine#

The Dart port of rough.js that generates hand-drawn paths.

ExportPurpose
skribble_rough.dartFull rough engine re-export

Key types:

  • DrawConfig — roughness, bowing, seed, and curve settings
  • Generator — creates Drawable shapes (rectangle, circle, polygon, arc, etc.)
  • Filler — abstract fill pattern (HachureFiller, DotFiller, SolidFiller, etc.)
  • FillerConfig — gap, angle, dash settings for fillers
  • RoughFilter — enum mapping to filler types
  • Drawable — output of Generator, contains OpSets for rendering
  • PointD — 2D point with double precision
  • RoughBoxDecoration — drop-in BoxDecoration replacement
  • RoughDrawingStyle — stroke/fill style for decorations
  • RoughBoxShape — shape enum (rectangle, roundedRectangle, circle, ellipse)

2. Canvas and painting#

Low-level painting infrastructure.

ExportPurpose
wired_canvas.dartHookWidget that renders rough shapes via CustomPaint
wired_painter.dartCustomPainter implementation for rough shapes
wired_painter_base.dartAbstract base class for shape painters

Key types:

  • WiredPainterBase — override paintRough(Canvas, Size, DrawConfig, Filler)
  • WiredCanvas — widget that takes a painter + filler type
  • WiredPainter — CustomPainter adapter for WiredPainterBase

3. Base utilities#

Shared constants, paint helpers, and repaint isolation.

ExportPurpose
wired_base.dartWiredBase, WiredBaseWidget, painters, constants

Key types:

  • WiredBase — static fillPainter(Color) and pathPainter(double, {Color})
  • WiredBaseWidget — abstract HookWidget with built-in RepaintBoundary
  • WiredRepaintMixin — mixin for RepaintBoundary wrapping
  • buildWiredElement() — standalone helper function
  • WiredRectangleBase, WiredCircleBase, WiredLineBase, WiredRoundedRectangleBase, WiredInvertedTriangleBase — concrete painters
  • kWiredButtonHeight — standard button height (42.0)

4. Theme system#

Colors, roughness, and Material bridge.

ExportPurpose
wired_theme.dartWiredThemeData + WiredTheme InheritedWidget
wired_material_app.dartWiredMaterialApp (.router)

Key types:

  • WiredThemeData — borderColor, textColor, fillColor, strokeWidth, roughness, drawConfig
  • WiredTheme — InheritedWidget, accessed via WiredTheme.of(context)
  • WiredMaterialApp — MaterialApp wrapper that syncs WiredTheme + Material ThemeData

5. Widgets (80+)#

All widgets follow the Wired* naming convention and extend HookWidget.

Buttons (10)

WidgetFile
WiredButtonwired_button.dart
WiredElevatedButtonwired_elevated_button.dart
WiredFilledButtonwired_filled_button.dart
WiredFloatingActionButtonwired_fab.dart
WiredIconButtonwired_icon_button.dart
WiredOutlinedButtonwired_outlined_button.dart
WiredTextButtonwired_text_button.dart
WiredToggleButtonswired_toggle_buttons.dart
WiredSegmentedButtonwired_segmented_button.dart
WiredCupertinoButtonwired_cupertino_button.dart

Inputs (17)

WidgetFile
WiredInputwired_input.dart
WiredTextAreawired_text_area.dart
WiredSearchBarwired_search_bar.dart
WiredCheckboxwired_checkbox.dart
WiredCheckboxListTilewired_checkbox_list_tile.dart
WiredRadiowired_radio.dart
WiredRadioListTilewired_radio_list_tile.dart
WiredSwitchwired_switch.dart
WiredSwitchListTilewired_switch_list_tile.dart
WiredSliderwired_slider.dart
WiredRangeSliderwired_range_slider.dart
WiredTogglewired_toggle.dart
WiredFormwired_form.dart
WiredAutocompletewired_autocomplete.dart
WiredCupertinoTextFieldwired_cupertino_text_field.dart
WiredCupertinoSliderwired_cupertino_slider.dart
WiredCupertinoSwitchwired_cupertino_switch.dart
WidgetFile
WiredAppBarwired_app_bar.dart
WiredBottomNavigationBarwired_bottom_nav.dart
WiredNavigationBarwired_navigation_bar.dart
WiredNavigationRailwired_navigation_rail.dart
WiredNavigationDrawerwired_navigation_drawer.dart
WiredTabBarwired_tab_bar.dart
WiredDrawerwired_drawer.dart
WiredPopupMenuButtonwired_popup_menu.dart
WiredMenuBarwired_menu_bar.dart
WiredBottomAppBarwired_bottom_app_bar.dart
WiredSliverAppBarwired_sliver_app_bar.dart
WiredCupertinoNavigationBar wired_cupertino_navigation_bar.dart
WiredCupertinoTabBarwired_cupertino_tab_bar.dart

Selection (12)

WidgetFile
WiredChipwired_chip.dart
WiredChoiceChipwired_choice_chip.dart
WiredFilterChipwired_filter_chip.dart
WiredInputChipwired_input_chip.dart
WiredCombowired_combo.dart
WiredDatePickerwired_date_picker.dart
WiredTimePickerwired_time_picker.dart
WiredCalendarDatePickerwired_calendar_date_picker.dart
WiredColorPickerwired_color_picker.dart
WiredCupertinoPickerwired_cupertino_picker.dart
WiredCupertinoDatePickerwired_cupertino_date_picker.dart
WiredCupertinoSegmentedControl wired_cupertino_segmented_control.dart

Feedback (13)

WidgetFile
WiredDialogwired_dialog.dart
WiredSnackBarContentwired_snack_bar.dart
WiredTooltipwired_tooltip.dart
WiredProgresswired_progress.dart
WiredCircularProgresswired_circular_progress.dart
WiredBadgewired_badge.dart
WiredBottomSheetwired_bottom_sheet.dart
WiredAboutDialogwired_about_dialog.dart
WiredContextMenuwired_context_menu.dart
WiredAnimatedIconwired_animated_icon.dart
WiredMaterialBannerwired_material_banner.dart
WiredCupertinoAlertDialog wired_cupertino_alert_dialog.dart
WiredCupertinoActionSheet wired_cupertino_action_sheet.dart

Layout (16)

WidgetFile
WiredCardwired_card.dart
WiredDividerwired_divider.dart
WiredListTilewired_list_tile.dart
WiredExpansionTilewired_expansion_tile.dart
WiredDataTablewired_data_table.dart
WiredStepperwired_stepper.dart
WiredCalendarwired_calendar.dart
WiredScrollbarwired_scrollbar.dart
WiredScaffoldwired_scaffold.dart
WiredReorderableListViewwired_reorderable_list_view.dart
WiredDismissiblewired_dismissible.dart
WiredSelectableTextwired_selectable_text.dart
WiredDrawerHeaderwired_drawer_header.dart
WiredAvatarwired_avatar.dart
WiredPageScaffoldwired_cupertino_scaffold.dart
WiredTabScaffoldwired_cupertino_scaffold.dart

Icons

WidgetFile
WiredIconwired_icon.dart
WiredSvgIconDatawired_svg_icon_data.dart
WiredAnimatedIconwired_animated_icon.dart

Package dependencies#

The main library depends on:

PackageVersionPurpose
flutterSDKCore Flutter framework
flutter_hooks ^0.21.3 HookWidget, useState, useEffect, etc.
google_fonts^8.0.2Hand-drawn font access
path_parsing ^1.1.0 SVG path parsing for rough icon rendering

Companion packages#

PackagePurpose
skribble_icons30 curated hand-drawn custom icons + unified API
skribble_emojiHand-drawn emoji from OpenMoji + WiredEmoji widget
skribble_lints Shared lint rules (extends very_good_analysis)
skribble_icons_custom Example custom icon set with SVG-manifest pipeline

skribble_icons#

import 'package:skribble_icons/skribble_icons.dart';
ExportTypePurpose
kSkribbleIcons Map<int, WiredSvgIconData> All custom icons keyed by codepoint
kSkribbleIconsCodePoints Map<String, int> Icon identifier to codepoint mapping
lookupSkribbleIconByIdentifier() function Look up custom icon data by name
WiredSvgIconData class SVG icon data (re-exported from skribble)
WiredSvgPrimitive class SVG primitive types (re-exported from skribble)

skribble_emoji#

import 'package:skribble_emoji/skribble_emoji.dart';
ExportTypePurpose
kSkribbleEmoji Map<int, WiredSvgIconData> All emoji keyed by Unicode codepoint
kSkribbleEmojiCodePoints Map<String, int> Emoji name to Unicode codepoint mapping
lookupSkribbleEmojiByName() function Look up emoji data by name
lookupSkribbleEmojiByUnicode() function Look up emoji data by Unicode codepoint
WiredEmojiwidgetHookWidget for rendering hand-drawn emoji
WiredSvgIconData class SVG icon data (re-exported from skribble)

API documentation#

Full dartdoc API reference is available at: