Skip to content

Commit

Permalink
Updated skills page design
Browse files Browse the repository at this point in the history
  • Loading branch information
GreyLabsDev committed Oct 11, 2024
1 parent 8f8d1b2 commit e779b76
Show file tree
Hide file tree
Showing 16 changed files with 344 additions and 188 deletions.
Binary file added assets/img/card_conf_mb.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/img/card_conf_pl.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/img/card_conf_st.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/img/card_conf_uic.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 19 additions & 8 deletions lib/pages/TestPage.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,14 @@ import 'package:threeactions_area/resources/Resources.dart';
import 'package:threeactions_area/widgets/base/TextContent.dart';
import 'package:threeactions_area/widgets/base/TextSubtitle.dart';
import 'package:threeactions_area/widgets/base/TextTitle.dart';
import 'package:threeactions_area/widgets/cv_elements/EventsBlock.dart';
import 'package:url_launcher/url_launcher_string.dart';

import '../widgets/base/ImageGallery.dart';
import '../widgets/base/MainPageInfoButton.dart';
import '../widgets/base/SkillsColumn.dart';
import '../widgets/base/SocialButton.dart';
import '../widgets/cv_elements/WorkExpTimeline.dart';
import 'base/BaseInfoPage.dart';

class TestPage extends StatefulWidget {
Expand Down Expand Up @@ -130,24 +133,32 @@ class TestPageState extends State {
logoImageAsset: "assets/img/logo_skills_big.png",
subtitle: "Hard & Soft",
accentFilterColor: AppColors.ContentDarkBlue,
content: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
content:Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
EventsBlock(titleColor: AppColors.ContentDarkBlue,),
SizedBox(height: 32.0,),
Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
WorkExpTimeline(),
Spacer(),
SizedBox(width: 60.0,),
SkillsColumn([
SkillItem("Main", ["Android", "Kotlin", "Java", "Flutter"]),
SkillItem("UI", ["Jetpack Compose", "XML"]),
SkillItem(
"Data", ["Realm", "Room", "SQL", "Retrofit", "GraphQL"]),
"Data", ["Realm", "Room", "SQL", "Retrofit", "GraphQL", "JSON"]),
SkillItem(
"Architecture", ["Clean", "MVP", "MVVM", "MVI", "Redux"]),
SkillItem("DI", ["Dagger 2", "Koin", "Hilt"]),
SkillItem("Async", ["RxJava 2", "Kotlin Coroutines", "Hilt"]),
])
]),
SizedBox(width: 16.0,),
WorkExpTimeline(),
],
),
)
],
),
);
}

Expand Down
153 changes: 3 additions & 150 deletions lib/pages/UiTestPage.dart
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
import 'dart:math';
import 'dart:core';

import 'package:flutter/material.dart';
import 'package:threeactions_area/pages/base/BaseInfoPage.dart';
import 'package:threeactions_area/resources/Resources.dart';
import 'package:threeactions_area/widgets/base/TextContent.dart';
import 'package:threeactions_area/widgets/base/TextContentMin.dart';
import 'package:threeactions_area/widgets/base/TextSubtitle.dart';
import 'package:threeactions_area/widgets/base/TextTitle.dart';
import 'package:threeactions_area/widgets/base/TextTitleBig.dart';

import '../widgets/cv_elements/EventsBlock.dart';

class UiTestpage extends StatefulWidget {
@override
Expand All @@ -24,152 +20,9 @@ class UiTestPageState extends State {
title: "UiTestPage",
mainImageAsset: "assets/img/button_bg_skills.png",
logoImageAsset: "assets/img/logo_skills_big.png",
content: Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
WorkExpTimeline(),
SkillsColumn([
SkillItem("Main", ["Android", "Kotlin", "Java", "Flutter"]),
SkillItem("UI", ["Jetpack Compose", "XML"]),
SkillItem(
"Data", ["Realm", "Room", "SQL", "Retrofit", "GraphQL"]),
SkillItem(
"Architecture", ["Clean", "MVP", "MVVM", "MVI", "Redux"]),
SkillItem("DI", ["Dagger 2", "Koin", "Hilt"]),
SkillItem("Async", ["RxJava 2", "Kotlin Coroutines", "Hilt"]),
])
],
));
}
}

class SkillItem {
String name;
List<String> skillsList;

SkillItem(this.name, this.skillsList);
}

class SkillsColumn extends StatelessWidget {
final List<SkillItem> items;

SkillsColumn(this.items);

@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.end,
children: _buildRowContent(),
);
}

List<Widget> _buildRowContent() {
return items.map((item) => SkillsBlock(item)).toList();
content: EventsBlock(titleColor: AppColors.ContentDarkBlue,));
}
}

class SkillsBlock extends StatelessWidget {
final SkillItem item;

SkillsBlock(this.item);

@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.only(bottom: 8.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
TextSubtitle(text: item.name, textColor: AppColors.ContentDarkBlue,),
Wrap(
spacing: 4.0,
children: _buildWrapContent(item.skillsList),
)
],
),
);
}

List<Widget> _buildWrapContent(List<String> items) {
return items
.map((item) => Container(
padding: EdgeInsets.all(4.0),
color: Colors.blueGrey,
child: TextContent(text: item, textColor: Colors.black),
))
.toList();
}
}

class WorkExpTimeline extends StatelessWidget {
Widget _buildExpItem(String date, String companyInfo, String description) {
return Padding(
padding: EdgeInsets.only(bottom: 16.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Container(
width: 16.0,
height: 2.0,
// color: Colors.white,
color: Color(0xff6EA1A9),
),
SizedBox(
width: 8.0,
),
Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextSubtitle(text: date, textColor: AppColors.ContentDarkBlue,),
TextContent(text: companyInfo, textColor: AppColors.ContentDarkBlue),
TextContentMin(text: description, textColor: AppColors.ContentDarkBlue)
],
)
],
),
);
}

@override
Widget build(BuildContext context) {
return IntrinsicHeight(
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: 2.0,
// color: Colors.white,
color: Color(0xff6EA1A9),
),
Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildExpItem(
"2016-2018",
"HOSTCO - Information Security Analyst",
"Audit and integration of security\nsystems in IT companies"),
_buildExpItem("2018", "ARGIN - Android Developer",
"Augmented reality projects, video/image\ntracking"),
_buildExpItem("2018-2019", "EastWind - Android Developer",
"Custom development, projects in\nbanking, services and marketplaces"),
_buildExpItem(
"2019-2021",
"Home Credit Bank - Middle Android Developer",
"FinTech (financial technology), private\nbanking, marketplace, loan projects"),
_buildExpItem(
"2021 - Current time",
"Skyeng - Senior Android Developer",
"EdTech (educational technology),\ninternational language learning projects"),
],
)
],
),
);
}
}
10 changes: 5 additions & 5 deletions lib/pages/base/BaseInfoPage.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:threeactions_area/resources/Resources.dart';
import 'package:threeactions_area/widgets/base/TextTitle.dart';
import 'package:threeactions_area/widgets/base/TextTitleBig.dart';

import '../../widgets/base/TextSubtitle.dart';
Expand Down Expand Up @@ -79,21 +80,20 @@ class BaseInfoPage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Align(
alignment: Alignment.bottomLeft,
alignment: Alignment.bottomCenter,
child: isPaddingEnabled
? Padding(
padding: EdgeInsets.only(left: 32.0, top: 32.0),
child: TextSubtitle(
padding: EdgeInsets.only(top: 32.0),
child: TextTitle(
text: subtitle!,
textColor: accentFilterColor ?? AppColors.ContentWhite,
),
)
: TextSubtitle(
: TextTitle(
text: subtitle!,
textColor: accentFilterColor ?? AppColors.ContentWhite,
),
),
// SizedBox(height: 32.0),
Flexible(child: _buildContentContainer(content))
],
);
Expand Down
7 changes: 7 additions & 0 deletions lib/resources/Resources.dart
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,13 @@ class TextStylesContent {
fontFamily: 'NohemiRegular',
letterSpacing: 1.0);

static const ContentBig = TextStyle(
color: Color(0xffffffff),
// color: Color(0xff6EA1A9),
fontSize: 22.0,
fontFamily: 'NohemiRegular',
letterSpacing: 1.0);

static const ContentMain = TextStyle(
color: Color(0xffffffff),
fontSize: 18.0,
Expand Down
2 changes: 1 addition & 1 deletion lib/widgets/base/MainPageInfoButton.dart
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ class MainPageInfoButtonState extends State
fit: BoxFit.cover,
opacity: opacityAcnimation.value)),
padding: EdgeInsets.only(
left: 32.0, right: 32.0, bottom: 96.0, top: 16.0),
left: 32.0, right: 32.0, bottom: 218.0, top: 16.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expand Down
66 changes: 66 additions & 0 deletions lib/widgets/base/SkillsColumn.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';

import '../../resources/Resources.dart';
import 'TextContent.dart';
import 'TextSubtitle.dart';

class SkillItem {
String name;
List<String> skillsList;

SkillItem(this.name, this.skillsList);
}

class SkillsColumn extends StatelessWidget {
final List<SkillItem> items;

SkillsColumn(this.items);

@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.end,
children: _buildRowContent(),
);
}

List<Widget> _buildRowContent() {
return items.map((item) => SkillsBlock(item)).toList();
}
}

class SkillsBlock extends StatelessWidget {
final SkillItem item;

SkillsBlock(this.item);

@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.only(bottom: 8.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
TextSubtitle(text: item.name, textColor: AppColors.ContentDarkBlue,),
Wrap(
spacing: 4.0,
children: _buildWrapContent(item.skillsList),
)
],
),
);
}

List<Widget> _buildWrapContent(List<String> items) {
return items
.map((item) => Container(
padding: EdgeInsets.all(4.0),
color: Colors.blueGrey,
child: TextContent(text: item, textColor: Colors.black),
))
.toList();
}
}
23 changes: 23 additions & 0 deletions lib/widgets/base/TextContentBig.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import 'package:flutter/material.dart';
import 'package:threeactions_area/resources/Resources.dart';

class TextContentBig extends StatelessWidget {
final String text;
Color textColor = AppColors.ContentWhite;
TextAlign textAlign = TextAlign.start;

TextContentBig(
{super.key,
required this.text,
this.textColor = AppColors.ContentWhite,
this.textAlign = TextAlign.start});

@override
Widget build(BuildContext context) {
return (Text(
text,
style: TextStylesContent.ContentBig.copyWith(color: textColor),
textAlign: textAlign,
));
}
}
Loading

0 comments on commit e779b76

Please sign in to comment.