Correções em dashboard aluno

This commit is contained in:
2026-05-08 12:22:41 +01:00
parent 490cdf5aab
commit bf13bfd326

View File

@@ -9,214 +9,214 @@ class QuickAccessWidget extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Acesso Rápido',
style: TextStyle(
color: const Color(0xFF2D3748),
fontSize: 20,
fontWeight: FontWeight.bold,
),
),
const SizedBox(height: 16),
Row(
children: [ children: [
// Tutor IA Card (Primary) Text(
Expanded( 'Acesso Rápido',
flex: 3, style: TextStyle(
child: _buildTutorIACard(context), color: const Color(0xFF2D3748),
fontSize: 20,
fontWeight: FontWeight.bold,
),
), ),
const SizedBox(width: 16), const SizedBox(height: 16),
// Quiz Card (Secondary)
Expanded( Row(
flex: 2, children: [
child: _buildQuizCard(context), // Tutor IA Card (Primary)
Expanded(flex: 3, child: _buildTutorIACard(context)),
const SizedBox(width: 16),
// Quiz Card (Secondary)
Expanded(flex: 2, child: _buildQuizCard(context)),
],
), ),
], ],
), )
], .animate()
).animate().slideY( .slideY(
duration: const Duration(milliseconds: 800), duration: const Duration(milliseconds: 800),
curve: Curves.easeOut, curve: Curves.easeOut,
).then(delay: const Duration(milliseconds: 200)); )
.then(delay: const Duration(milliseconds: 200));
} }
Widget _buildTutorIACard(BuildContext context) { Widget _buildTutorIACard(BuildContext context) {
return Container( return Container(
height: 135, height: 150,
decoration: BoxDecoration( decoration: BoxDecoration(
gradient: LinearGradient( gradient: const LinearGradient(
begin: Alignment.topLeft, begin: Alignment.topLeft,
end: Alignment.bottomRight, end: Alignment.bottomRight,
colors: [ colors: [Color(0xFF82C9BD), Color(0xFF6BA8A0)],
const Color(0xFF82C9BD), ),
const Color(0xFF6BA8A0), borderRadius: BorderRadius.circular(16),
], boxShadow: [
), BoxShadow(
borderRadius: BorderRadius.circular(16), color: const Color(0xFF82C9BD).withOpacity(0.3),
boxShadow: [ blurRadius: 15,
BoxShadow( offset: const Offset(0, 8),
color: const Color(0xFF82C9BD).withOpacity(0.3), ),
blurRadius: 15, ],
offset: const Offset(0, 8),
), ),
], child: Material(
), color: Colors.transparent,
child: Material( child: InkWell(
color: Colors.transparent, borderRadius: BorderRadius.circular(16),
child: InkWell( onTap: () => context.go('/tutor'),
borderRadius: BorderRadius.circular(16), child: Padding(
onTap: () => context.go('/tutor'), padding: const EdgeInsets.all(20),
child: Padding( child: Column(
padding: const EdgeInsets.all(20),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
children: [
Container(
padding: const EdgeInsets.all(10),
decoration: BoxDecoration(
color: Colors.white.withOpacity(0.2),
borderRadius: BorderRadius.circular(10),
),
child: const Icon(
Icons.psychology,
color: Colors.white,
size: 24,
),
),
const Spacer(),
Container(
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 4),
decoration: BoxDecoration(
color: const Color(0xFFF68D2D),
borderRadius: BorderRadius.circular(12),
),
child: const Text(
'NOVO',
style: TextStyle(
color: Colors.white,
fontSize: 10,
fontWeight: FontWeight.bold,
),
),
),
],
),
const SizedBox(height: 12),
const Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Text( Row(
'Tutor IA', children: [
style: TextStyle( Container(
color: Colors.white, padding: const EdgeInsets.all(7),
fontSize: 18, decoration: BoxDecoration(
fontWeight: FontWeight.bold, color: Colors.white.withOpacity(0.2),
), borderRadius: BorderRadius.circular(10),
),
child: const Icon(
Icons.psychology,
color: Colors.white,
size: 24,
),
),
const Spacer(),
Container(
padding: const EdgeInsets.symmetric(
horizontal: 10,
vertical: 4,
),
decoration: BoxDecoration(
color: const Color(0xFFF68D2D),
borderRadius: BorderRadius.circular(12),
),
child: const Text(
'NOVO',
style: TextStyle(
color: Colors.white,
fontSize: 10,
fontWeight: FontWeight.bold,
),
),
),
],
), ),
SizedBox(height: 4), const SizedBox(height: 12),
Text( const Column(
'Assistente de estudos', crossAxisAlignment: CrossAxisAlignment.start,
maxLines: 1, children: [
overflow: TextOverflow.ellipsis, Text(
style: TextStyle( 'Tutor IA',
color: Colors.white, style: TextStyle(
fontSize: 12, color: Colors.white,
height: 1.2, fontSize: 18,
), fontWeight: FontWeight.bold,
),
),
//SizedBox(height: 4),
Text(
'Assistente de estudos',
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: Colors.white,
fontSize: 12,
height: 1.2,
),
),
],
), ),
], ],
), ),
], ),
), ),
), ),
), )
), .animate()
).animate().scale( .scale(
duration: const Duration(milliseconds: 600), duration: const Duration(milliseconds: 600),
curve: Curves.elasticOut, curve: Curves.elasticOut,
).then(delay: const Duration(milliseconds: 100)); )
.then(delay: const Duration(milliseconds: 100));
} }
Widget _buildQuizCard(BuildContext context) { Widget _buildQuizCard(BuildContext context) {
return Container( return Container(
height: 135, height: 150,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(16), borderRadius: BorderRadius.circular(16),
border: Border.all( border: Border.all(color: const Color(0xFFE2E8F0), width: 1),
color: const Color(0xFFE2E8F0), boxShadow: [
width: 1, BoxShadow(
), color: Colors.black.withOpacity(0.05),
boxShadow: [ blurRadius: 10,
BoxShadow( offset: const Offset(0, 4),
color: Colors.black.withOpacity(0.05), ),
blurRadius: 10, ],
offset: const Offset(0, 4),
), ),
], child: Material(
), color: Colors.transparent,
child: Material( child: InkWell(
color: Colors.transparent, borderRadius: BorderRadius.circular(16),
child: InkWell( onTap: () => context.go('/quiz'),
borderRadius: BorderRadius.circular(16), child: Padding(
onTap: () => context.go('/quiz'), padding: const EdgeInsets.all(14),
child: Padding( child: Column(
padding: const EdgeInsets.all(20),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(
padding: const EdgeInsets.all(10),
decoration: BoxDecoration(
color: const Color(0xFFF68D2D).withOpacity(0.1),
borderRadius: BorderRadius.circular(10),
),
child: const Icon(
Icons.quiz,
color: Color(0xFFF68D2D),
size: 24,
),
),
const SizedBox(height: 12),
const Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Text( Container(
'Quiz', padding: const EdgeInsets.all(10),
style: TextStyle( decoration: BoxDecoration(
color: Color(0xFF2D3748), color: const Color(0xFFF68D2D).withOpacity(0.1),
fontSize: 16, borderRadius: BorderRadius.circular(10),
fontWeight: FontWeight.bold, ),
child: const Icon(
Icons.quiz,
color: Color(0xFFF68D2D),
size: 24,
), ),
), ),
SizedBox(height: 4), const SizedBox(height: 12),
Text( const Column(
'Teste conhecimentos', crossAxisAlignment: CrossAxisAlignment.start,
maxLines: 1, children: [
overflow: TextOverflow.ellipsis, Text(
style: TextStyle( 'Quiz',
color: Color(0xFF718096), style: TextStyle(
fontSize: 12, color: Color(0xFF2D3748),
height: 1.2, fontSize: 16,
), fontWeight: FontWeight.bold,
),
),
SizedBox(height: 4),
Text(
'Teste conhecimentos',
maxLines: 2,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: Color(0xFF718096),
fontSize: 12,
height: 1.2,
),
),
],
), ),
], ],
), ),
], ),
), ),
), ),
), )
), .animate()
).animate().scale( .scale(
duration: const Duration(milliseconds: 600), duration: const Duration(milliseconds: 600),
curve: Curves.elasticOut, curve: Curves.elasticOut,
).then(delay: const Duration(milliseconds: 200)); )
.then(delay: const Duration(milliseconds: 200));
} }
} }