This project provides an interactive user interface to control font properties such as font size, font family, font color, and font style. Built using Flutter and Bloc for state management, it ensures a modern, responsive, and smooth user experience.
- Font Size Control:
- Increase or decrease font size dynamically using intuitive buttons.
- Font Family Selection:
- Change font family via a dropdown menu with predefined options.
- Font Color Control:
- Select a font color from a palette of predefined colors.
- Font Style Selection:
- Switch between different font styles (e.g., bold, italic).
- Responsive UI:
- Smooth horizontal scrolling and adaptive design for various screen sizes.
- Flutter: Framework for UI development.
- Cubit: State management for dynamic changes.
- Dart: Programming language.
- Material Design: For sleek and intuitive UI components.
| Platform | Status | Version |
|---|---|---|
| β Supported | API 33+ | |
| β Supported | iOS 17+ | |
| β Supported | Modern Browsers |
-
Clone the repository:
git clone <repository-url>
-
Navigate to the project directory:
cd project directory -
Install dependencies:
flutter pub get
-
Run the app:
flutter run
lib/
βββ constants/
β βββ font_family_list.dart
βββ cubit/
β βββ canvas_cubit.dart
β βββ canvas_state.dart
βββ models/
β βββ text_item_model.dart
βββ ui/
β βββ screens/
β β βββ canvas_screen.dart
β β βββ save_page_dialog.dart
β β βββ saved_pages.dart
β β βββ splash_screen.dart
β βββ widgets/
β βββ background_color_tray.dart
β βββ background_options_sheet.dart
β βββ editable_text_widget.dart
β βββ font_controls.dart
βββutils/
β βββcustom_snackbar.dart
βββ main.dart
- constants: Contains app-wide constant values.
font_family_list.dart: List of available font families.
- cubit: Manages application state using the Cubit package.
canvas_cubit.dart: Handles business logic for canvas operations.canvas_state.dart: Defines the state of the canvas.
- models: Contains data models used in the app.
text_item_model.dart: Model representing text items on the canvas.
- ui: Contains user interface components.
- screens: Holds all screen-related files.
canvas_screen.dart: Main screen where the canvas is displayed.
- widgets: Reusable UI components.
editable_text_widget.dart: Widget for editable text items.font_controls.dart: Widget for controlling font properties.
- screens: Holds all screen-related files.
main.dart: Entry point of the application.
- Flutter SDK
- Dart SDK
- Use the
+and-buttons to adjust the font size.
- Select a font from the dropdown menu to update the displayed text.
- Choose a color from the palette to change the text color.
- Add bold, italic styles to your text using additional controls.
- Lets you control how your text is positioned horizontally
- Add highlighted colors to your text for dynamic view
- Copy the text
- Lets user to go back to the default view for the text
WhatsApp.Video.2025-09-21.at.00.11.01_ac48a860.mp4
WhatsApp.Video.2025-09-22.at.00.09.52_2d1f20be.mp4
Contributions are welcome! Please follow these steps:
-
Fork the repository.
-
Create a new branch for your feature or bugfix:
git checkout -b feature-name
-
Commit your changes:
git commit -m "Add some feature" -
Push to your branch:
git push origin feature-name
-
Open a pull request.
π If you find this project helpful, please consider giving it a star!
It helps others discover the project and motivates us to keep improving. Your support means a lot! π
This project is licensed under the MIT License. See the LICENSE file for details.
Special thanks to:
- Flutter Team for the amazing framework
- Bloc Library for state management
- Material Design for design guidelines
- All our contributors for making this project better
- The open-source community for inspiration and support
For questions or suggestions, feel free to contact:
- Author: Satyam Jha
- Email: satyamj210@gmail.com