/ lib / main.dart
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