main.dart
1 // File: lib/main.dart 2 // TEST 3 import 'package:flutter/material.dart'; 4 import 'package:flutter_markdown/flutter_markdown.dart'; 5 6 void main() { 7 runApp(const MyApp()); 8 } 9 10 class MyApp extends StatelessWidget { 11 const MyApp({super.key}); 12 13 @override 14 Widget build(BuildContext context) { 15 return MaterialApp( 16 debugShowCheckedModeBanner: false, 17 theme: ThemeData( 18 brightness: Brightness.dark, 19 fontFamily: 'RobotoMono', // Unisize font 20 ), 21 home: const LandingPage(), 22 ); 23 } 24 } 25 26 class LandingPage extends StatelessWidget { 27 const LandingPage({super.key}); 28 29 @override 30 Widget build(BuildContext context) { 31 32 const List<List<Color>> colors = [ 33 [ 34 Color(0xFFA3D0EE), 35 Color(0xFFdcedf8), 36 Color(0xFFf3faf9), 37 Color(0x88f9fcfc), 38 ], 39 [ 40 Color(0xFFc78283), 41 Color(0xFFe9cfd0), 42 Color(0xFFd5accf), 43 Color(0xa8edddeb), 44 ], 45 [ 46 Color(0xFF4eac47), 47 Color(0xFFadd8aa), 48 Color(0xFFbfbbb4), 49 Color(0xFFf2f1f0), 50 ], 51 ]; 52 // Sample Markdown content 53 const String markdownContent = ''' 54 # RebuildForge 55 Building FOSS that works perfectly with no scumbag-tech-company shenanigans. 56 57 ## Our Projects 58 59 ### Forge Memory 60 A spaced repetition system built on Anki\'s foundation. We\'re focusing on: 61 - Clean, consistent experience across all platforms 62 - Modern, customizable UI you can actually modify 63 - Component system for sharing custom flows 64 - Community marketplace for extensions 65 - Seamless integration with other tools 66 67 *Built with respect for Anki\'s massive contribution to learning technology.* 68 69 ### Forge Reader 70 A clean, efficient e-reader that just works. Because handling files on your own computer shouldn\'t involve ads. 71 - Open source 72 - No bloat 73 - Your content, your control 74 - Foundation for advanced tools 75 76 ### Forge Lingua 77 Professional-grade language learning built on Forge Reader. Because learning languages shouldn\'t require navigating paywalls. 78 - Free and open source, forever 79 - Progress tracking that makes sense 80 - Multiple dictionary support 81 - Seamless Forge Memory integration 82 83 ## Our Principles 84 1. Make the free version actually useful 85 2. Build shit that works together 86 3. Let people modify everything 87 4. Share knowledge freely 88 5. Keep it simple 89 90 ## About 91 I design and document software systems that work together. My focus: 92 - Architecture design (making pieces fit) 93 - Technical documentation (so others can build) 94 - Project leadership (getting shit done) 95 - Technical writing (making complex stuff clear) 96 97 Currently building tools for language learning and knowledge management that actually serve users, not shareholders. 98 99 [botking@rebuildforge.xyz](botking@rebuildforge.xyz) 100 101 ## Want to Help? 102 We need people for: 103 - Engineering 104 - Design 105 - Marketing 106 - More (email a pitch for what you want to contribute) 107 108 Check out the [Discord](google.com). 109 '''; 110 111 int currentColorSetIndex = 2; 112 113 print("color i: ${currentColorSetIndex}"); 114 print("color set is: ${colors[currentColorSetIndex][1]}"); 115 116 return Scaffold( 117 body: Container( 118 // color: Colors.purple[900], 119 child: Padding( 120 padding: const EdgeInsets.all(16.0), 121 child: Center(child:Markdown( 122 data: markdownContent, 123 styleSheet: MarkdownStyleSheet( 124 125 p: TextStyle(fontSize: 16.0, color: colors[currentColorSetIndex][3]), 126 h1: TextStyle(fontSize: 32.0, fontWeight: FontWeight.bold, color: colors[currentColorSetIndex][0]), 127 h2: TextStyle(fontSize: 24.0, fontWeight: FontWeight.w600, color: colors[currentColorSetIndex][1]), 128 h3: TextStyle(fontSize: 20.0, fontWeight: FontWeight.w400, color: colors[currentColorSetIndex][2]), 129 //a: TextStyle(color: Colors.blue), 130 code: TextStyle( 131 fontSize: 14.0, 132 color: colors[currentColorSetIndex][3], 133 backgroundColor: Color(0xFF333333), 134 ), 135 ), 136 ),), 137 ),), 138 ); 139 } 140 } 141