Skip to content

Instantly share code, notes, and snippets.

View Zujaj's full-sized avatar

Zujaj Misbah Khan Zujaj

  • @TelicSolutionsInc
View GitHub Profile
@Zujaj
Zujaj / home.dart
Created May 19, 2022 10:55
The Home Widget.
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:svg_colorization/providers/previous_color.dart';
import 'package:svg_colorization/providers/svg_data.dart';
import 'package:svg_colorization/widgets/scene_renderer.dart';
import 'package:svg_colorization/widgets/slider_options.dart';
class Home extends StatelessWidget {
const Home({Key? key}) : super(key: key);
@Zujaj
Zujaj / util.dart
Created May 19, 2022 10:48
The Util Class.
import 'dart:convert';
// ignore: avoid_web_libraries_in_flutter
import 'dart:html' as html;
import 'dart:ui';
import 'package:flutter/services.dart';
/// A class that handles basic utility functions.
class Util {
/// Prevents From Object Instantiation.
@Zujaj
Zujaj / color_text_field.dart
Created May 19, 2022 10:48
The ColorTextField Widget.
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_colorpicker/flutter_colorpicker.dart';
import 'package:svg_colorization/utils/util.dart';
/// A [CupertinoTextField] widget that copies the selected or typed color.
class ColorTextField extends StatelessWidget {
const ColorTextField({
@Zujaj
Zujaj / hex_color_dialog.dart
Created May 19, 2022 10:46
The Hex Color Dialog
import 'package:flutter/material.dart';
import 'package:flutter_colorpicker/flutter_colorpicker.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart';
import 'package:svg_colorization/providers/previous_color.dart';
import 'package:svg_colorization/providers/svg_data.dart';
import 'package:svg_colorization/utils/util.dart';
import 'package:svg_colorization/widgets/color_text_field.dart';
@Zujaj
Zujaj / slider_options.dart
Created May 19, 2022 10:41
The SliderOptions Widget.
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart';
import 'package:svg_colorization/providers/svg_data.dart';
import 'package:svg_colorization/utils/util.dart';
import 'package:svg_colorization/widgets/circular_button.dart';
import 'package:svg_colorization/widgets/hex_color_dialog.dart';
@Zujaj
Zujaj / circular_button.dart
Created May 19, 2022 10:37
The CircularButton Widget.
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
/// A Custom Rounded [Container] widget.
class CircularButton extends StatelessWidget {
final Color innerColor;
final List<BoxShadow>? shadow;
final GestureTapCallback? onTap;
final Widget child;
@Zujaj
Zujaj / scene_renderer.dart
Created May 19, 2022 10:34
The SceneRenderer Widget.
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:provider/provider.dart';
import 'package:svg_colorization/providers/svg_data.dart';
/// An [SvgPicture] widget that renders the svg.
class SceneRenderer extends StatelessWidget {
const SceneRenderer({Key? key}) : super(key: key);
@Zujaj
Zujaj / previous_color.dart
Created May 19, 2022 10:10
The PreviousColor ChangeNotifier class.
import 'package:flutter/material.dart';
/// A [ChangeNotifier] that holds the previous hex color value.
class PreviousColor with ChangeNotifier {
/// Holds the Hex Color Value.
String value = '';
PreviousColor(this.value);
void updateValue(String newValue) {
@Zujaj
Zujaj / svg_data.dart
Last active May 19, 2022 10:52
The SVGData ChangeNotifier class.
import 'package:flutter/material.dart';
/// A [ChangeNotifier] that holds the svg text data.
class SVGData with ChangeNotifier {
/// Holds the `SVG` Formatted Code.
String code = '';
SVGData(this.code);
void updateCode(String previousColor, String newColor) {
@Zujaj
Zujaj / main.dart
Created May 19, 2022 10:08
The SVG Colorization App Main File.
/// Holds the svg asset text.
String svgCode = '';
void main() async {
// Do Not Remove This Line.
WidgetsFlutterBinding.ensureInitialized();
// Extract The Text From The Asset SVG File.
svgCode = await rootBundle.loadString("assets/car_front.svg");