miroru

miroru

Features

miroru story editor is built with an emphasis on ease of theme customization and a modern, extensible architecture. It adheres to Material Design guidelines using ThemeData for all theming, simplifying the process of modifying the app's look and feel.

Intelligent Theme Adaptation Automatically adjusts the theme between dark and light modes based on the brightness of the selected background image, enhancing user experience and readability.

Quick Theme Customization Thanks to the utilization of ThemeData, changing themes to match your preferences or brand identity is straightforward and efficient.

Designed for Flexibility Our architecture ensures easy customization and future expansion, keeping miroru story editor at the forefront of technology advancements.

Multilingual Support miroru story editor supports six languages: English, Japanese, Chinese, Korean, Russian, and Hindi, catering to a diverse user base.

Support Localization

support Language
English
日本語
中文
한국어
Русский
हिन्दी

Getting started

  $ flutter pub add miroru_story_editor

Usage

FilledButton(
  onPressed: () async {
    if (Platform.isAndroid) {
      final deviceInfo = DeviceInfoPlugin();
      final androidInfo = await deviceInfo.androidInfo;
      if (androidInfo.version.sdkInt >= 33) {
        await Permission.photos.request();
      } else {
        await Permission.storage.request();
      }
    } else {
      await Permission.photos.request();
    }

    final file = await ImagePicker().pickImage(
      source: ImageSource.gallery,
    );
    if (file == null) {
      return;
    }

    if (!context.mounted) {
      return;
    }

    final imageData = await showMiroruStoryEditor(
      context,
      imageFile: File(file.path),
    );

    if (imageData == null) {
      return;
    }

      setState(() {
        image = imageData;
      });
    },
    child: const Text('open miroru story editor'),
  ),

Change Theme

you can use #ThemeDataDto

  await showMiroruStoryEditor(
      context,
      imageFile: File(file.path),
      themeDataDto: ThemeDataDto(
        themeLight: yourLightTheme,
        themeDark: yourDarkTheme,
      ),
  );

Change Localization

  await showMiroruStoryEditor(
      context,
      imageFile: File(file.path),
      languageType: LanguageType.ja
  );

Libraries

extensions/color_extension
extensions/context_extension
extensions/string_extension
l10n/l10n
l10n/l10n_en
l10n/l10n_hi
l10n/l10n_ja
l10n/l10n_ko
l10n/l10n_ru
l10n/l10n_zh
miroru_story_editor
model/entities/decoration/decoration_palette/decoration_palette
model/entities/decoration/decorations/background_image/background_image
model/entities/decoration/decorations/decoration_item
model/entities/decoration/decorations/emoji/decoration_emoji
model/entities/decoration/decorations/text/decoration_text
model/entities/decoration/render_item/render_item
model/entities/paint/paint_line/paint_line
model/entities/paint/paint_palette/paint_palette
model/entities/palette/palette
model/entities/theme/theme_data_dto
model/enums/brush_type
model/enums/decoration_type
model/enums/font_type
model/enums/language_type
model/use_cases/background/fetch_blur_hash
model/use_cases/decoration/decoration_palette_state
model/use_cases/image/save_image
model/use_cases/paint/paint_lines_state
model/use_cases/paint/paint_palette_state
model/use_cases/palette/editing_text_item_state
model/use_cases/palette/palette_key
model/use_cases/palette/palette_state
model/use_cases/share/export_image
model/use_cases/theme/common/editor_theme_mode
model/use_cases/theme/common/theme_data_dto
model/use_cases/theme/theme_data/decorating_theme_data
model/use_cases/theme/theme_data/editor_theme_data
model/use_cases/theme/theme_data/painting_theme_dart
presentation/bottom_sheets/common/show_sliver_drag_sheet
presentation/bottom_sheets/show_select_emoji_sheet
presentation/custom_hooks/use_debounce
presentation/custom_hooks/use_global_key
presentation/pages/palette_page
presentation/res/color_schemes.g
presentation/res/decorating_theme
presentation/res/painting_theme
presentation/res/theme
presentation/views/background_image/background_image_blur_view
presentation/views/background_image/background_image_view
presentation/views/decoration/common/decoration_view
presentation/views/decoration/common/text_editing_view
presentation/views/decoration/handler/build_decoration_handler_view
presentation/views/decoration/text/text_tool_header_view
presentation/views/paint/common/paint_palette_edit_view
presentation/views/paint/common/paint_palette_view
presentation/views/paint/common/paint_tool_header_view
presentation/views/palette/header_view
presentation/views/palette/palette_view
presentation/widgets/custom/center_line_x_widget
presentation/widgets/custom/center_line_y_widget
presentation/widgets/custom/cone_widget
presentation/widgets/decoration/common/color_list_selector_widget
presentation/widgets/decoration/common/color_picker_icon
presentation/widgets/decoration/common/decoration_delete_widget
presentation/widgets/decoration/common/render_item_widget
presentation/widgets/decoration/text/font_list_selector_widget
presentation/widgets/decoration/text/render_text_widget
presentation/widgets/decoration/text/text_size_slider_widget
presentation/widgets/paint/line_painter
util/center_image_matrix
util/get_image_size
util/get_theme_from_color
util/get_theme_from_image
util/is_moving_center
util/is_moving_delete_area
util/vibration