diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml
index 05ad340..d6d2375 100644
--- a/.idea/libraries/Dart_Packages.xml
+++ b/.idea/libraries/Dart_Packages.xml
@@ -9,6 +9,13 @@
+
+
+
+
+
+
+
@@ -328,6 +335,7 @@
+
diff --git a/justMUSIC/lib/main.dart b/justMUSIC/lib/main.dart
index 7516de1..6834ce3 100644
--- a/justMUSIC/lib/main.dart
+++ b/justMUSIC/lib/main.dart
@@ -1,9 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
-import 'package:justmusic/screens/login_screen.dart';
import 'package:justmusic/screens/registration_screen.dart';
-import 'package:justmusic/screens/welcome_screen.dart';
void main() {
runApp(const MyApp());
@@ -16,6 +14,7 @@ class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky);
+ Paint.enableDithering = true;
return ScreenUtilInit(
builder: (context, child) {
return MaterialApp(
diff --git a/justMUSIC/lib/screens/registration_screen.dart b/justMUSIC/lib/screens/registration_screen.dart
index 7a97e3b..a022578 100644
--- a/justMUSIC/lib/screens/registration_screen.dart
+++ b/justMUSIC/lib/screens/registration_screen.dart
@@ -1,3 +1,6 @@
+import 'dart:ui';
+
+import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
@@ -22,261 +25,347 @@ class _RegistrationScreenState extends State {
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: bgColor,
- body: Padding(
- padding: EdgeInsets.symmetric(horizontal: defaultPadding),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- verticalDirection: VerticalDirection.up,
- children: [
- SizedBox(height: 51),
- SignInButton(
- Buttons.Google,
- text: "Login with Google",
- onPressed: () {},
- ),
- SizedBox(height: 47.h),
- ConstrainedBox(
- constraints: BoxConstraints(maxWidth: 600.w),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [
- Expanded(
- child: Container(
- color: Color(0xFF3D3D3D),
- height: 1,
- ),
- ),
- Padding(
- padding: const EdgeInsets.only(
- left: defaultPadding, right: defaultPadding),
- child: Text(
- 'Ou',
- style: GoogleFonts.plusJakartaSans(
- color: Colors.white, fontWeight: FontWeight.bold),
- ),
+ body: Stack(
+ children: [
+ SingleChildScrollView(
+ child: SizedBox(
+ width: double.infinity,
+ child: Column(
+ children: [
+ Padding(
+ padding: EdgeInsets.only(top: 100.h),
+ child: AutoSizeText(
+ "On a besoin de ça!",
+ style: GoogleFonts.plusJakartaSans(
+ color: Colors.white,
+ fontWeight: FontWeight.w600,
+ fontSize: 30.w),
+ maxLines: 1,
+ maxFontSize: 50,
+ overflow: TextOverflow.fade,
),
- Expanded(
- child: Container(
- height: 1,
- color: Color(0xFF3D3D3D),
- )),
- ],
- ),
- ),
- SizedBox(height: 98.h),
- SizedBox(width: 600.w, child: LoginButton()),
- Padding(
- padding: EdgeInsets.only(bottom: 25),
- child: TextFormField(
- obscureText: passenable,
- validator: (value) {
- if (value == null || value.isEmpty) {
- return 'TODO';
- }
- return null;
- },
- cursorColor: primaryColor,
- keyboardType: TextInputType.emailAddress,
- style: GoogleFonts.plusJakartaSans(color: primaryColor),
- decoration: InputDecoration(
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(width: 1, color: strokeTextField),
- borderRadius: BorderRadius.all(Radius.circular(10))),
- contentPadding:
- EdgeInsets.only(top: 0, bottom: 0, left: defaultPadding),
- fillColor: bgTextField,
- filled: true,
- focusColor: Color.fromRGBO(255, 255, 255, 0.30),
- enabledBorder: OutlineInputBorder(
- borderSide: BorderSide(width: 1, color: strokeTextField),
- borderRadius: BorderRadius.all(Radius.circular(10))),
- hintText: 'Confirmation du Mot de passe',
- hintStyle:
- GoogleFonts.plusJakartaSans(color: strokeTextField),
- suffixIcon: Container(
- padding: EdgeInsets.only(right: 10),
- margin: EdgeInsets.all(5),
- height: 3,
- child: InkWell(
- onTap: () {
- setState(() {
- if (passenable) {
- passenable = false;
- } else {
- passenable = true;
- }
- });
- }, // Image tapped
- splashColor: Colors.white10, // Splash color over image
- child: Image(
- image: passenable
- ? AssetImage("assets/images/show_icon.png")
- : AssetImage("assets/images/hide_icon.png"),
- height: 2,
- ),
- )),
),
- ),
- ),
- Padding(
- padding: EdgeInsets.only(bottom: 21),
- child: TextFormField(
- obscureText: passenable,
- validator: (value) {
- if (value == null || value.isEmpty) {
- return 'TODO';
- }
- return null;
- },
- cursorColor: primaryColor,
- keyboardType: TextInputType.emailAddress,
- style: GoogleFonts.plusJakartaSans(color: primaryColor),
- decoration: InputDecoration(
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(width: 1, color: strokeTextField),
- borderRadius: BorderRadius.all(Radius.circular(10))),
- contentPadding:
- EdgeInsets.only(top: 0, bottom: 0, left: defaultPadding),
- fillColor: bgTextField,
- filled: true,
- focusColor: Color.fromRGBO(255, 255, 255, 0.30),
- enabledBorder: OutlineInputBorder(
- borderSide: BorderSide(width: 1, color: strokeTextField),
- borderRadius: BorderRadius.all(Radius.circular(10))),
- hintText: 'Mot de passe',
- hintStyle:
- GoogleFonts.plusJakartaSans(color: strokeTextField),
- suffixIcon: Container(
- padding: EdgeInsets.only(right: 10),
- margin: EdgeInsets.all(5),
- height: 3,
- child: InkWell(
- onTap: () {
- setState(() {
- if (passenable) {
- passenable = false;
- } else {
- passenable = true;
- }
- });
- }, // Image tapped
- splashColor: Colors.white10, // Splash color over image
- child: Image(
- image: passenable
- ? AssetImage("assets/images/show_icon.png")
- : AssetImage("assets/images/hide_icon.png"),
- height: 2,
+ ConstrainedBox(
+ constraints: BoxConstraints(maxWidth: 600),
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ Padding(
+ padding:
+ EdgeInsets.symmetric(horizontal: defaultPadding),
+ child: Padding(
+ padding: EdgeInsets.only(bottom: 50.h),
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.end,
+ children: [
+ SizedBox(
+ height: 15.h,
+ ),
+ SizedBox(
+ width: 230.h,
+ child: AutoSizeText(
+ "Promis c’est rapide.",
+ style: GoogleFonts.plusJakartaSans(
+ color: Colors.white,
+ fontWeight: FontWeight.w400,
+ fontSize: 17.w),
+ maxFontSize: 20,
+ textAlign: TextAlign.center,
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.only(
+ bottom: 16.h,
+ left: defaultPadding,
+ right: defaultPadding),
+ child: TextFormField(
+ validator: (value) {
+ if (value == null || value.isEmpty) {
+ return 'TODO';
+ }
+ return null;
+ },
+ cursorColor: primaryColor,
+ keyboardType: TextInputType.emailAddress,
+ style: GoogleFonts.plusJakartaSans(
+ color: primaryColor, fontSize: 15),
+ decoration: InputDecoration(
+ focusedBorder: OutlineInputBorder(
+ borderSide: BorderSide(
+ width: 1.sp, color: strokeTextField),
+ borderRadius: const BorderRadius.all(
+ Radius.circular(10))),
+ contentPadding: const EdgeInsets.only(
+ top: 0, bottom: 0, left: defaultPadding),
+ fillColor: bgTextField,
+ filled: true,
+ focusColor:
+ const Color.fromRGBO(255, 255, 255, 0.30),
+ enabledBorder: const OutlineInputBorder(
+ borderSide: BorderSide(
+ width: 1, color: strokeTextField),
+ borderRadius: BorderRadius.all(
+ Radius.circular(10))),
+ hintText: 'Pseudo',
+ hintStyle: GoogleFonts.plusJakartaSans(
+ color: strokeTextField)),
+ )),
+ Padding(
+ padding: EdgeInsets.only(
+ bottom: 16.h,
+ left: defaultPadding,
+ right: defaultPadding),
+ child: TextFormField(
+ validator: (value) {
+ if (value == null || value.isEmpty) {
+ return 'TODO';
+ }
+ return null;
+ },
+ cursorColor: primaryColor,
+ keyboardType: TextInputType.emailAddress,
+ style: GoogleFonts.plusJakartaSans(
+ color: primaryColor),
+ decoration: InputDecoration(
+ focusedBorder: OutlineInputBorder(
+ borderSide: BorderSide(
+ width: 1, color: strokeTextField),
+ borderRadius: BorderRadius.all(
+ Radius.circular(10))),
+ contentPadding: EdgeInsets.only(
+ top: 0, bottom: 0, left: defaultPadding),
+ fillColor: bgTextField,
+ filled: true,
+ focusColor:
+ Color.fromRGBO(255, 255, 255, 0.30),
+ enabledBorder: OutlineInputBorder(
+ borderSide: BorderSide(
+ width: 1, color: strokeTextField),
+ borderRadius: BorderRadius.all(
+ Radius.circular(10))),
+ hintText: 'Email',
+ hintStyle: GoogleFonts.plusJakartaSans(
+ color: strokeTextField)),
+ )),
+ Padding(
+ padding: EdgeInsets.only(
+ bottom: 16.h,
+ left: defaultPadding,
+ right: defaultPadding),
+ child: TextFormField(
+ obscureText: passenable,
+ validator: (value) {
+ if (value == null || value.isEmpty) {
+ return 'TODO';
+ }
+ return null;
+ },
+ cursorColor: primaryColor,
+ keyboardType: TextInputType.emailAddress,
+ style: GoogleFonts.plusJakartaSans(
+ color: primaryColor),
+ decoration: InputDecoration(
+ focusedBorder: OutlineInputBorder(
+ borderSide: BorderSide(
+ width: 1, color: strokeTextField),
+ borderRadius:
+ BorderRadius.all(Radius.circular(10))),
+ contentPadding: EdgeInsets.only(
+ top: 0, bottom: 0, left: defaultPadding),
+ fillColor: bgTextField,
+ filled: true,
+ focusColor: Color.fromRGBO(255, 255, 255, 0.30),
+ enabledBorder: OutlineInputBorder(
+ borderSide: BorderSide(
+ width: 1, color: strokeTextField),
+ borderRadius:
+ BorderRadius.all(Radius.circular(10))),
+ hintText: 'Mot de passe',
+ hintStyle: GoogleFonts.plusJakartaSans(
+ color: strokeTextField),
+ suffixIcon: Container(
+ padding: EdgeInsets.only(right: 10),
+ margin: EdgeInsets.all(5),
+ height: 3,
+ child: InkWell(
+ onTap: () {
+ setState(() {
+ if (passenable) {
+ passenable = false;
+ } else {
+ passenable = true;
+ }
+ });
+ }, // Image tapped
+ splashColor: Colors
+ .white10, // Splash color over image
+ child: Image(
+ image: passenable
+ ? AssetImage(
+ "assets/images/show_icon.png")
+ : AssetImage(
+ "assets/images/hide_icon.png"),
+ height: 2,
+ ),
+ )),
+ ),
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.only(
+ bottom: 16.h,
+ left: defaultPadding,
+ right: defaultPadding),
+ child: TextFormField(
+ obscureText: passenable,
+ validator: (value) {
+ if (value == null || value.isEmpty) {
+ return 'TODO';
+ }
+ return null;
+ },
+ cursorColor: primaryColor,
+ keyboardType: TextInputType.emailAddress,
+ style: GoogleFonts.plusJakartaSans(
+ color: primaryColor),
+ decoration: InputDecoration(
+ focusedBorder: OutlineInputBorder(
+ borderSide: BorderSide(
+ width: 1, color: strokeTextField),
+ borderRadius:
+ BorderRadius.all(Radius.circular(10))),
+ contentPadding: EdgeInsets.only(
+ top: 0, bottom: 0, left: defaultPadding),
+ fillColor: bgTextField,
+ filled: true,
+ focusColor: Color.fromRGBO(255, 255, 255, 0.30),
+ enabledBorder: OutlineInputBorder(
+ borderSide: BorderSide(
+ width: 1, color: strokeTextField),
+ borderRadius:
+ BorderRadius.all(Radius.circular(10))),
+ hintText: 'Confirmation du Mot de passe',
+ hintStyle: GoogleFonts.plusJakartaSans(
+ color: strokeTextField),
+ suffixIcon: Container(
+ padding: EdgeInsets.only(right: 10),
+ margin: EdgeInsets.all(5),
+ height: 3,
+ child: InkWell(
+ onTap: () {
+ setState(() {
+ if (passenable) {
+ passenable = false;
+ } else {
+ passenable = true;
+ }
+ });
+ }, // Image tapped
+ splashColor: Colors
+ .white10, // Splash color over image
+ child: Image(
+ image: passenable
+ ? AssetImage(
+ "assets/images/show_icon.png")
+ : AssetImage(
+ "assets/images/hide_icon.png"),
+ height: 2,
+ ),
+ )),
+ ),
+ ),
+ ),
+ Padding(
+ padding:
+ EdgeInsets.symmetric(horizontal: defaultPadding),
+ child: SizedBox(width: 600, child: LoginButton()),
+ ),
+ ],
+ )),
+ SizedBox(height: 50.h),
+ ConstrainedBox(
+ constraints: BoxConstraints(maxWidth: 600),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+ children: [
+ Expanded(
+ child: Container(
+ color: Color(0xFF3D3D3D),
+ height: 1,
),
+ ),
+ Padding(
+ padding: const EdgeInsets.only(
+ left: defaultPadding, right: defaultPadding),
+ child: Text(
+ 'Ou',
+ style: GoogleFonts.plusJakartaSans(
+ color: Colors.white, fontWeight: FontWeight.bold),
+ ),
+ ),
+ Expanded(
+ child: Container(
+ height: 1,
+ color: Color(0xFF3D3D3D),
)),
+ ],
+ ),
),
- ),
- ),
- Padding(
- padding: EdgeInsets.only(bottom: 21),
- child: TextFormField(
- validator: (value) {
- if (value == null || value.isEmpty) {
- return 'TODO';
- }
- return null;
- },
- cursorColor: primaryColor,
- keyboardType: TextInputType.emailAddress,
- style: GoogleFonts.plusJakartaSans(color: primaryColor),
- decoration: InputDecoration(
- focusedBorder: OutlineInputBorder(
- borderSide:
- BorderSide(width: 1, color: strokeTextField),
- borderRadius: BorderRadius.all(Radius.circular(10))),
- contentPadding: EdgeInsets.only(
- top: 0, bottom: 0, left: defaultPadding),
- fillColor: bgTextField,
- filled: true,
- focusColor: Color.fromRGBO(255, 255, 255, 0.30),
- enabledBorder: OutlineInputBorder(
- borderSide:
- BorderSide(width: 1, color: strokeTextField),
- borderRadius: BorderRadius.all(Radius.circular(10))),
- hintText: 'Email',
- hintStyle:
- GoogleFonts.plusJakartaSans(color: strokeTextField)),
- )),
- Padding(
- padding: EdgeInsets.only(bottom: 21),
- child: TextFormField(
- validator: (value) {
- if (value == null || value.isEmpty) {
- return 'TODO';
- }
- return null;
- },
- cursorColor: primaryColor,
- keyboardType: TextInputType.emailAddress,
- style: GoogleFonts.plusJakartaSans(color: primaryColor),
- decoration: InputDecoration(
- focusedBorder: OutlineInputBorder(
- borderSide:
- BorderSide(width: 1, color: strokeTextField),
- borderRadius: BorderRadius.all(Radius.circular(10))),
- contentPadding: EdgeInsets.only(
- top: 0, bottom: 0, left: defaultPadding),
- fillColor: bgTextField,
- filled: true,
- focusColor: Color.fromRGBO(255, 255, 255, 0.30),
- enabledBorder: OutlineInputBorder(
- borderSide:
- BorderSide(width: 1, color: strokeTextField),
- borderRadius: BorderRadius.all(Radius.circular(10))),
- hintText: 'Pseudo',
- hintStyle:
- GoogleFonts.plusJakartaSans(color: strokeTextField)),
- )),
- Flexible(
- flex: 3,
- child: Padding(
- padding: EdgeInsets.only(bottom: 63.h),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.end,
- children: [
- Text(
- "On a besoin de ça!",
- style: GoogleFonts.plusJakartaSans(
- color: Colors.white,
- fontWeight: FontWeight.w600,
- fontSize: 34.h),
- ),
- SizedBox(
- height: 15.h,
+ SizedBox(height: 47.h),
+ ConstrainedBox(
+ constraints: BoxConstraints(maxWidth: 540),
+ child: SizedBox(
+ width: 300.sp,
+ height: 50,
+ child: SignInButton(
+ Buttons.Google,
+ text: "Login with Google",
+ onPressed: () {},
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.all(Radius.circular(20))),
),
- SizedBox(
- width: 230.w,
- child: Text(
- "Promis c’est rapide.",
- style: GoogleFonts.plusJakartaSans(
- color: Colors.white,
- fontWeight: FontWeight.w400,
- fontSize: 17.h),
- textAlign: TextAlign.center,
- ),
- ),
- ],
+ ),
),
- ),
+ ],
),
- Padding(
- padding: EdgeInsets.only(top: 45.h),
- child: ClipRRect(
- borderRadius: BorderRadius.circular(10.0),
- child: LinearProgressIndicator(
- minHeight: 2.5.h,
- value: 0.5,
- backgroundColor: grayColor,
- color: primaryColor,
+ )),
+ IgnorePointer(
+ child: Container(
+ height: 240.h,
+ decoration: BoxDecoration(
+ gradient: LinearGradient(begin: Alignment.topRight, stops: [
+ 0,
+ 1
+ ], colors: [
+ bgColor.withOpacity(1),
+ bgColor.withOpacity(0)
+ ])),
+ ),
+ ),
+ Align(
+ alignment: Alignment.topCenter,
+ child: ConstrainedBox(
+ constraints: BoxConstraints(maxWidth: 800),
+ child: Padding(
+ padding: EdgeInsets.only(
+ top: 45, left: defaultPadding, right: defaultPadding),
+ child: ClipRRect(
+ borderRadius: BorderRadius.circular(10.0),
+ child: LinearProgressIndicator(
+ minHeight: 5,
+ value: 0.5,
+ backgroundColor: grayColor,
+ color: primaryColor,
+ ),
),
),
),
- ],
- ),
+ ),
+ ],
),
);
}
diff --git a/justMUSIC/lib/screens/welcome_screen.dart b/justMUSIC/lib/screens/welcome_screen.dart
index d792170..5ba91e5 100644
--- a/justMUSIC/lib/screens/welcome_screen.dart
+++ b/justMUSIC/lib/screens/welcome_screen.dart
@@ -47,12 +47,15 @@ class WellcomeScreen extends StatelessWidget {
SizedBox(
height: 25,
),
- Text(
- "Explore les nouvelles découvertes musicales de tes amis, et partage leur ton mood.",
- style: GoogleFonts.plusJakartaSans(
- color: Colors.white,
- fontWeight: FontWeight.w200,
- fontSize: 15),
+ ConstrainedBox(
+ constraints: BoxConstraints(maxWidth: 520),
+ child: Text(
+ "Explore les nouvelles découvertes musicales de tes amis, et partage leur ton mood.",
+ style: GoogleFonts.plusJakartaSans(
+ color: Colors.white,
+ fontWeight: FontWeight.w200,
+ fontSize: 15),
+ ),
),
],
),
diff --git a/justMUSIC/pubspec.lock b/justMUSIC/pubspec.lock
index 30c8c75..7f422d0 100644
--- a/justMUSIC/pubspec.lock
+++ b/justMUSIC/pubspec.lock
@@ -8,6 +8,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.9.0"
+ auto_size_text:
+ dependency: "direct main"
+ description:
+ name: auto_size_text
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "3.0.0"
boolean_selector:
dependency: transitive
description:
diff --git a/justMUSIC/pubspec.yaml b/justMUSIC/pubspec.yaml
index 7a33469..e781d02 100644
--- a/justMUSIC/pubspec.yaml
+++ b/justMUSIC/pubspec.yaml
@@ -41,6 +41,7 @@ dependencies:
smooth_corner: ^1.1.0
flutter_signin_button: ^2.0.0
flutter_screenutil: ^5.7.0
+ auto_size_text: ^3.0.0
dev_dependencies:
flutter_test: