Skip to content

Commit

Permalink
Maximum Speed πŸƒβ€β™‚οΈ
Browse files Browse the repository at this point in the history
  • Loading branch information
felipecastrosales authored Apr 20, 2021
2 parents 7ef3d75 + ef8bdb6 commit f771015
Show file tree
Hide file tree
Showing 16 changed files with 392 additions and 47 deletions.
2 changes: 1 addition & 1 deletion README-pt.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<h1 align="center">DevQuiz</h1>

- βœ… Liftoff πŸ’ͺ
- πŸ”„ Maaximum Speed πŸƒβ€β™‚οΈ
- βœ… Maaximum Speed πŸƒβ€β™‚οΈ
- πŸ”„ In Orbit πŸ‘¨β€πŸš€
- πŸ”„ Landing πŸ”₯
- πŸ”„ Surface Exploration ⚑
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<h1 align="center">DevQuiz</h1>

- βœ… Liftoff πŸ’ͺ
- πŸ”„ Maaximum Speed πŸƒβ€β™‚οΈ
- βœ… Maaximum Speed πŸƒβ€β™‚οΈ
- πŸ”„ In Orbit πŸ‘¨β€πŸš€
- πŸ”„ Landing πŸ”₯
- πŸ”„ Surface Exploration ⚑
Expand Down
29 changes: 29 additions & 0 deletions lib/challenge/challenge_page.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import 'package:flutter/material.dart';

import 'widgets/question_indicator/question_indicator_widget.dart';
import 'widgets/quiz/quiz_widget.dart';

class ChallengePage extends StatefulWidget {
ChallengePage({Key? key}) : super(key: key);

@override
_ChallengePageState createState() => _ChallengePageState();
}

class _ChallengePageState extends State<ChallengePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: PreferredSize(
preferredSize: Size.fromHeight(60),
child: SafeArea(
top: true,
child: QuestionIndicatorWidget(),
),
),
body: QuizWidget(
title: 'What does the Flutter do in your wholeness?',
),
);
}
}
78 changes: 78 additions & 0 deletions lib/challenge/widgets/answer/answer_widget.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
import 'package:flutter/material.dart';

import 'package:devquiz/core/core.dart';

class AnswerWidget extends StatelessWidget {
final String title;
final bool isRight;
final bool isSelected;

const AnswerWidget({
Key? key,
required this.title,
this.isRight = false,
this.isSelected = false,
}) : super(key: key);

Color get _selectedColorRight =>
isRight ? AppColors.darkGreen : AppColors.darkRed;

Color get _selectedBorderRight =>
isRight ? AppColors.lightGreen : AppColors.lightRed;

Color get _selectedColorCardRight =>
isRight ? AppColors.lightGreen : AppColors.lightRed;

Color get _selectedBorderCardRight =>
isRight ? AppColors.green : AppColors.red;

TextStyle get _selectedTextStyleRight =>
isRight ? AppTextStyles.bodyDarkGreen : AppTextStyles.bodyDarkRed;

IconData get _selectedIconRight => isRight ? Icons.check : Icons.close;

@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 4),
child: Container(
padding: EdgeInsets.all(16),
decoration: BoxDecoration(
color: isSelected ? _selectedColorCardRight : AppColors.white,
borderRadius: BorderRadius.circular(10),
border: Border.fromBorderSide(BorderSide(
color: isSelected ? _selectedBorderCardRight : AppColors.border),
),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(
child: Text(
title, style: isSelected
? _selectedTextStyleRight : AppTextStyles.body,
),
),
SizedBox(width: 16),
Container(
width: 24,
height: 24,
decoration: BoxDecoration(
color: isSelected ? _selectedColorRight : AppColors.white,
borderRadius: BorderRadius.circular(500),
border: Border.fromBorderSide(
BorderSide(
color: isSelected ? _selectedBorderRight : AppColors.border,
),
),
),
child: isSelected
? Icon(_selectedIconRight, color: AppColors.white, size: 16)
: null,
),
],
),
),
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import 'package:flutter/material.dart';

import 'package:devquiz/core/core.dart';
import 'package:devquiz/shared/widgets/progress_indicator/progress_indicator_widget.dart';

class QuestionIndicatorWidget extends StatelessWidget {
const QuestionIndicatorWidget({Key? key}) : super(key: key);

@override
Widget build(BuildContext context) {
return Container(
padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 10),
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text('Question 04', style: AppTextStyles.body),
Text('of 10', style: AppTextStyles.body),
],
),
SizedBox(height: 16),
ProgressIndicatorWidget(value: 0.4),
],
),
);
}
}
40 changes: 40 additions & 0 deletions lib/challenge/widgets/quiz/quiz_widget.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import 'package:flutter/material.dart';

import 'package:devquiz/challenge/widgets/answer/answer_widget.dart';
import 'package:devquiz/core/core.dart';

class QuizWidget extends StatelessWidget {
final String title;
const QuizWidget({Key? key, required this.title}) : super(key: key);

@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: [
Padding(
padding: const EdgeInsets.symmetric(horizontal: 20),
child: Text(title, style: AppTextStyles.heading),
),
SizedBox(height: 24),
AnswerWidget(
isRight: true,
isSelected: true,
title: 'Enables the creation of applications natively compiled',
),
AnswerWidget(
isRight: false,
isSelected: true,
title: 'Enables the creation of applications natively compiled',
),
AnswerWidget(
title: 'Enables the creation of applications natively compiled',
),
AnswerWidget(
title: 'Enables the creation of applications natively compiled',
),
],
),
);
}
}
6 changes: 3 additions & 3 deletions lib/core/app_colors.dart
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@ class AppColors {
static final Color levelButtonEasy = Color(0xFFEBEBFC);
static final Color levelButtonMiddle = lightGreen;
static final Color levelButtonHard = Color(0xFFF5EFE9);
static final Color levelButtonPerito = lightRed;
static final Color levelButtonExpert = lightRed;

static final Color levelButtonBorderEasy = Color(0xFFCECEF5);
static final Color levelButtonBorderMiddle = green;
static final Color levelButtonBorderHard = Color(0xFFE5D5C5);
static final Color levelButtonBorderPerito = red;
static final Color levelButtonBorderExpert = red;

static final Color levelButtonTextEasy = Color(0xFF6363DB);
static final Color levelButtonTextMiddle = darkGreen;
static final Color levelButtonTextHard = Color(0xFFE8891C);
static final Color levelButtonTextPerito = darkRed;
static final Color levelButtonTextExpert = darkRed;
}
8 changes: 5 additions & 3 deletions lib/core/app_widget.dart
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
import 'package:devquiz/home/home_page.dart';
// import 'package:devquiz/splash/splash_page.dart';
import 'package:flutter/material.dart';

import 'package:devquiz/challenge/challenge_page.dart';
// import 'package:devquiz/splash/splash_page.dart';
//import 'package:devquiz/home/home_page.dart';

class AppWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'DevQuiz',
debugShowCheckedModeBanner: false,
home: HomePage(),
home: ChallengePage(),
);
}
}
42 changes: 41 additions & 1 deletion lib/home/home_page.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import 'package:devquiz/home/widgets/appbar/app_bar_widget.dart';
import 'package:flutter/material.dart';

import 'package:devquiz/home/widgets/appbar/app_bar_widget.dart';
import 'package:devquiz/home/widgets/quiz_card/quiz_card_widget.dart';
import 'package:devquiz/home/widgets/level_button/level_button_widget.dart';

class HomePage extends StatefulWidget {
HomePage({Key? key}) : super(key: key);

Expand All @@ -13,6 +16,43 @@ class _HomePageState extends State<HomePage> {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBarWidget(),
body: Padding(
padding: const EdgeInsets.symmetric(horizontal: 20),
child: Column(
children: [
SizedBox(
height: 32,
child: ListView(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
children: [
LevelButtonWidget(label: 'Easy'),
SizedBox(width: 10),
LevelButtonWidget(label: 'Middle'),
SizedBox(width: 10),
LevelButtonWidget(label: 'Hard'),
SizedBox(width: 10),
LevelButtonWidget(label: 'Expert'),
],
),
),
SizedBox(height: 20),
Expanded(
child: GridView.count(
crossAxisSpacing: 16,
mainAxisSpacing:16,
crossAxisCount: 2,
children: [
QuizCardWidget(),
QuizCardWidget(),
QuizCardWidget(),
QuizCardWidget(),
],
),
),
],
),
),
);
}
}
55 changes: 29 additions & 26 deletions lib/home/widgets/appbar/app_bar_widget.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import 'package:devquiz/core/app_gradients.dart';
import 'package:devquiz/core/app_text_styles.dart';
import 'package:devquiz/home/widgets/score_card/score_card_widget.dart';
import 'package:flutter/material.dart';

import 'package:devquiz/core/core.dart';
import 'package:devquiz/home/widgets/score_card/score_card_widget.dart';

class AppBarWidget extends PreferredSize {
AppBarWidget() : super(
preferredSize: Size.fromHeight(250),
Expand All @@ -15,32 +15,35 @@ class AppBarWidget extends PreferredSize {
padding: const EdgeInsets.fromLTRB(20, 0, 20, 20),
width: double.maxFinite,
decoration: BoxDecoration(gradient: AppGradients.linear),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text.rich(
TextSpan(
text: 'OlΓ‘, ',
style: AppTextStyles.title,
children: [
TextSpan(
text: 'Felipe Sales', style: AppTextStyles.titleBold
),
],
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 20),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text.rich(
TextSpan(
text: 'Hello, ',
style: AppTextStyles.title,
children: [
TextSpan(
text: 'Felipe Sales', style: AppTextStyles.titleBold
),
],
),
),
),
Container(
height: 58,
width: 58,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
image: DecorationImage(
image: NetworkImage('https://avatars.githubusercontent.com/u/59374587'),
fit: BoxFit.cover,
Container(
height: 58,
width: 58,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
image: DecorationImage(
image: NetworkImage('https://avatars.githubusercontent.com/u/59374587'),
fit: BoxFit.cover,
),
),
),
),
],
],
),
),
),
Align(
Expand Down
6 changes: 3 additions & 3 deletions lib/home/widgets/chart/chart_widget.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import 'package:flutter/material.dart';

import 'package:devquiz/core/app_colors.dart';
import 'package:devquiz/core/app_text_styles.dart';
import 'package:devquiz/core/core.dart';

class ChartWidget extends StatelessWidget {
const ChartWidget({Key? key}) : super(key: key);
Expand All @@ -21,7 +20,8 @@ class ChartWidget extends StatelessWidget {
strokeWidth: 10,
value: .75,
backgroundColor: AppColors.chartSecondary,
valueColor: AlwaysStoppedAnimation<Color>(AppColors.chartPrimary),
valueColor:
AlwaysStoppedAnimation<Color>(AppColors.chartPrimary),
),
),
),
Expand Down
Loading

0 comments on commit f771015

Please sign in to comment.