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.
- 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
│ ├── widgets/
│ │ ├── editable_text_widget.dart
│ │ └── font_controls.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.
DemoTextEditing.mov
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.
For questions or suggestions, feel free to contact:
- Author: Satyam Jha
- Email: satyamj210@gmail.com
- GitHub: may-tas