ZontreckWebsite/lib/pages/Portfolio.dart

132 lines
4.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:footer/footer.dart';
import 'package:footer/footer_view.dart';
import 'package:zontreck/Constants.dart';
class PortfolioPage extends StatelessWidget {
const PortfolioPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Zontreck.com - Portfolio"),
backgroundColor: Constants.TITLEBAR_COLOR,
),
body: FooterView(
footer: Footer(
alignment: Alignment.center,
backgroundColor: ThemeData.dark().focusColor,
child:
const Text("${Constants.COPYRIGHT}\n${Constants.VERSION}")),
children: [
Padding(
padding: const EdgeInsets.all(8),
child: SingleChildScrollView(
child: Row(
children: [
PortfolioEntry(
title: const ListTile(
title: Text("Cards of Utter Nonsense")),
body: const Text(
"A product I created for Second Life, but may port to the mobile phone at some point"),
onTap: () {
Navigator.pushNamed(context, "/portfolio/coun");
},
),
PortfolioEntry(
title: const Text("Zontreck.com"),
body: const Text(
("Hey! It's me! Written entirely in Flutter, with some supporting API files in PHP")),
onTap: () {}),
PortfolioEntry(
title: const Text("Minecraft Modding"),
body: const Text(
"These mods are all written in Java. The various mods I currently maintain, previously maintained, or have contributed to are: Thresholds, Aria's Essentials, LibZontreck, Let's Do Beachparty, WatchMyDurability"),
onTap: () {}),
PortfolioEntry(
title: const Text("Lib AC"),
body: const Text(
("Aria's Creations CommonCode Library. Oh hey, this website uses that! This is written in pure Dart, with no Flutter dependencies. The library is meant to be compatible with any dart project I work on")),
onTap: () {
Navigator.pushNamed(context, "/portfolio/libac");
}),
PortfolioEntry(
title: const Text("NBT Editor"),
body: const Text(
"This utilizes the NBT implementation in LibAC. It's a Named Binary Tag editor written entirely in dart or flutter."),
onTap: () {
Navigator.pushNamed(
context, "/portfolio/nbteditor");
})
],
),
),
),
]));
}
}
class PortfolioEntry extends StatelessWidget {
final Widget title;
final Widget body;
final Function() onTap;
const PortfolioEntry(
{super.key,
required this.title,
required this.body,
required this.onTap});
@override
Widget build(BuildContext context) {
return Card(
color: Constants.PORTFOLIO_CARD_COLOR,
elevation: 8,
child: InkWell(
onTap: onTap,
child: Padding(
padding: const EdgeInsets.all(8),
child: SizedBox(
width: 225,
height: 325,
child: Column(
children: [
title,
const Divider(
thickness: 4,
),
body
],
),
),
),
),
);
}
}
class CardsOfUtterNonsense extends StatelessWidget {
const CardsOfUtterNonsense({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Portfolio Entry - Cards of Utter Nonsense"),
backgroundColor: Constants.TITLEBAR_COLOR,
),
body: const Padding(
padding: EdgeInsets.all(8),
child: SingleChildScrollView(
child: Column(
children: [
Text(
"Cards of Utter Nonsense is primarily written in Linden Scripting Language (LSL). It depends upon a MariaDB backend and PHP. The game uses a Heads Up Display (HUD), which is written in Flutter/Dart.")
],
),
),
),
);
}
}