Compare commits

...
5 Commits
Author SHA1 Message Date
marco 0b92efc56d Made text selectable 2026-07-16 14:39:13 +02:00
marco 3782145857 updated profile picture 2026-07-16 14:29:47 +02:00
marco b5254fa104 changed mail to link 2026-07-16 14:29:38 +02:00
marco 7fb16c6319 fixed text clipping 2026-07-16 14:23:55 +02:00
marco fa0065a3f4 fixed english translations 2026-07-16 14:23:48 +02:00
5 changed files with 79 additions and 82 deletions
+2 -2
View File
@@ -19,7 +19,7 @@
{
"name": "Nagarro GmbH",
"location": "Pirmasens, Germany",
"title": "Development",
"title": "SAP-Development",
"description": "Development of custom SAP applications using ABAP OO and SQL. Mobile application developed with Dart and Flutter as part of my bachelor's thesis.",
"startDate": "October 2021",
"endDate": "May 2022"
@@ -27,7 +27,7 @@
{
"name": "psb GmbH",
"location": "Pirmasens, Germany",
"title": "Interne Full-Stack Development",
"title": "Internal Full-Stack Development",
"description": "Development of internal applications using C#, WPF, and Oracle SQL to optimize internal business processes.",
"startDate": "July 2019",
"endDate": "December 2020"
Executable → Regular
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 KiB

After

Width:  |  Height:  |  Size: 1.0 MiB

+12 -8
View File
@@ -50,7 +50,8 @@ class _LandingPageState extends State<LandingPage> {
(MediaQuery.of(context).size.width - _getMainContentWidth()) / 2;
Widget _getSideBar() {
return Column(
return SelectionArea(
child: Column(
children: [
ContentBlock(
blockTitle: AppLocalizations.of(context)!.skills,
@@ -64,12 +65,20 @@ class _LandingPageState extends State<LandingPage> {
content: contentProvider.getContent(ContentType.language),
),
],
),
);
}
Widget _getMainContent() {
return Column(
return SelectionArea(
child: Column(
children: [
ContentBlock(
blockTitle: AppLocalizations.of(context)!.about_me,
contentType: ContentType.text,
content: contentProvider.getContent(ContentType.text),
),
const Padding(padding: EdgeInsets.only(bottom: 25)),
ContentBlock(
blockTitle: AppLocalizations.of(context)!.work_experience,
contentType: ContentType.experience,
@@ -87,13 +96,8 @@ class _LandingPageState extends State<LandingPage> {
contentType: ContentType.generalSkills,
content: contentProvider.getContent(ContentType.generalSkills),
),
const Padding(padding: EdgeInsets.only(bottom: 25)),
ContentBlock(
blockTitle: AppLocalizations.of(context)!.about_me,
contentType: ContentType.text,
content: contentProvider.getContent(ContentType.text),
),
],
),
);
}
+12 -24
View File
@@ -71,21 +71,16 @@ class ContentListTile extends StatelessWidget {
title: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text(name),
Text(', $location'),
if (Breakpoints.xl < screenWidth) const Text(' - '),
if (Breakpoints.xl < screenWidth)
Text(
title,
style:
TextStyle(color: Theme.of(context).colorScheme.primary),
name,
style: Theme.of(context).textTheme.titleLarge,
maxLines: 2,
),
],
Text(
location,
style: Theme.of(context).textTheme.bodyMedium,
maxLines: 2,
),
if (Breakpoints.xl >= screenWidth)
Text(
title,
style: TextStyle(color: Theme.of(context).colorScheme.primary),
@@ -119,21 +114,14 @@ class ContentListTile extends StatelessWidget {
title: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text(name),
Text(', $location'),
if (Breakpoints.xl < screenWidth) const Text(' - '),
if (Breakpoints.xl < screenWidth)
Text(
title,
style:
TextStyle(color: Theme.of(context).colorScheme.primary),
name,
style: Theme.of(context).textTheme.titleLarge,
),
],
Text(
location,
style: Theme.of(context).textTheme.bodyMedium,
),
if (Breakpoints.xl >= screenWidth)
Text(
title,
style: TextStyle(color: Theme.of(context).colorScheme.primary),
+9 -4
View File
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
class Profile extends StatelessWidget {
const Profile({super.key});
@@ -32,10 +33,14 @@ class Profile extends StatelessWidget {
style: Theme.of(context).textTheme.titleLarge,
),
const Padding(padding: EdgeInsets.symmetric(vertical: 5)),
Text(
'marco@skup.in',
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.bodyMedium,
TextButton(
onPressed: () => launchUrl(Uri.parse('mailto:marco@skup.in')),
style: ButtonStyle(
textStyle: WidgetStatePropertyAll(
Theme.of(context).textTheme.bodyMedium,
),
),
child: const Text('marco@skup.in'),
),
],
),