Kundali Chart

pub package License: MIT Flutter

🏛️ Kundali Chart 🏛️

A comprehensive Flutter package for creating beautiful and highly customizable Vedic astrology charts (Kundali/Birth Charts). Perfect for astrology applications, educational tools, and spiritual apps.

📸 Preview

Kundali Chart Preview

Beautiful Vedic astrology birth chart with customizable styling

🌟 Features

  • 🎯 Kundali Chart Widget: Ready-to-use Vedic astrology birth charts
  • 🎨 Birth Chart Widget: Fully customizable birth chart with flexible styling
  • 🏷️ House Labels: Built-in support for Sanskrit house names and custom labels
  • 🪐 Planet Placement: Accurate visual representation of planetary positions
  • 🌙 Dark Mode Support: Seamless theme switching with built-in dark/light mode extensions
  • ⚙️ Highly Customizable: Complete control over colors, line widths, text styles, and layout
  • 📱 Responsive Design: Works perfectly on all screen sizes
  • 🚀 Performance Optimized: Efficient custom painters for smooth rendering

📦 Installation

Add kundali_chart to your pubspec.yaml:

dependencies:
  kundali_chart: ^0.0.1

Install it:

flutter pub get

Import it:

import 'package:kundali_chart/kundali_chart.dart';

🚀 Quick Start

Simple Birth Chart

import 'package:flutter/material.dart';
import 'package:kundali_chart/kundali_chart.dart';

class AstrologyPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // Define planetary positions for 12 houses
    final houses = <List<String>>[
      ['Sa'],       // House 1: Saturn
      ['Ra'],       // House 2: Rahu
      ['Mo'],       // House 3: Moon
      [],           // House 4: Empty
      ['Ma'],       // House 5: Mars
      ['Su', 'Me'], // House 6: Sun and Mercury
      ['Ve'],       // House 7: Venus
      ['Ke'],       // House 8: Ketu
      [],           // House 9: Empty
      ['Ju'],       // House 10: Jupiter
      [],           // House 11: Empty
      [],           // House 12: Empty
    ];

    return Scaffold(
      appBar: AppBar(title: Text('Birth Chart')),
      body: Center(
        child: Padding(
          padding: EdgeInsets.all(16.0),
          child: KundaliChart(
            houses: houses,
            strokeColor: Colors.black87,
            houseLabels: [
              '1\nLagna\nDhanus',   // Ascendant/Sagittarius
              '2\nDhana\nMakar',    // Wealth/Capricorn
              '3\nSahaja\nKumbh',   // Siblings/Aquarius
              '4\nMeen',            // Home/Pisces
              '5\nMesh',            // Children/Aries
              '6\nRipu\nVrish',     // Enemies/Taurus
              '7\nKalatra\nMithun', // Marriage/Gemini
              '8\nAyu\nKark',       // Longevity/Cancer
              '9\nDharma\nSimha',   // Religion/Leo
              '10\nKarma\nKanya',   // Career/Virgo
              '11\nLabha\nTula',    // Gains/Libra
              '12\nVyaya\nVrish',   // Losses/Scorpio
            ],
          ),
        ),
      ),
    );
  }
}

Advanced Customization

KundaliChart(
  houses: planetaryData,
  strokeColor: Colors.deepPurple,
  lineWidth: 1.5,
  paddingFactor: 0.85,
  houseLabelStyle: TextStyle(
    fontSize: 11,
    fontWeight: FontWeight.w600,
    color: Colors.indigo,
  ),
  planetStyle: TextStyle(
    fontSize: 13,
    fontWeight: FontWeight.bold,
    color: Colors.orange,
  ),
  textStyle: TextStyle(
    fontSize: 10,
    color: Colors.black87,
  ),
)

Dark Mode Integration

// Automatic dark mode support with built-in theme
KundaliChart(
  houses: houses,
  strokeColor: Colors.black87,
  // Colors automatically adapt to current theme
)

// Or use theme extensions for manual control
Container(
  color: context.isDarkMode ? Colors.black : Colors.white,
  child: VedicChart(
    houses: houses,
    strokeColor: context.isDarkMode ? Colors.white70 : Colors.black87,
    // ... other properties
  ),
)

🎨 Visual Showcase

Standard Chart
Standard Chart
Default styling with traditional layout

Different Chart Variations

  • 🌅 Light Theme: Clean, traditional appearance with high contrast
  • 🌙 Dark Theme: Eye-friendly dark mode with adjusted colors
  • 🎨 Custom Styling: Personalized color schemes and fonts
  • 📱 Responsive: Adapts beautifully to any screen size

For developers: Add your own screenshot images to the screenshots/ folder to showcase different configurations.

📚 API Reference

Core Widgets

KundaliChart

The main widget for creating Vedic astrology birth charts with comprehensive customization options.

KundaliChart({
  Key? key,
  required List<List<String>> houses,     // Planetary positions (required)
  required Color strokeColor,              // Chart line color (required)
  TextStyle? textStyle,                   // General text styling
  TextStyle? houseLabelStyle,             // House label styling
  TextStyle? planetStyle,                 // Planet text styling
  double lineWidth = 1.0,                 // Line thickness
  double paddingFactor = 0.8,             // Chart padding
  List<String>? houseLabels,              // Optional house labels
  BirthChartStyle style,                  // Chart style (North/South Indian)
  BirthChartTheme? theme,                 // Theme configuration
})

VedicChart & AstrologyChart

Alternative names for KundaliChart providing the same functionality with different naming conventions.

VedicChart({
  // Same parameters as KundaliChart
})

AstrologyChart({
  // Same parameters as KundaliChart
})

Theme Extensions

Convenient extensions for theme management:

context.isDarkMode     // Boolean: true if dark theme
context.theme          // Current ThemeData
context.colorScheme    // Current ColorScheme
context.textTheme      // Current TextTheme

🪐 Planet Abbreviations

Standard Vedic astrology abbreviations supported:

Abbreviation English Sanskrit Element
Su Sun Surya Fire
Mo Moon Chandra Water
Ma Mars Mangal Fire
Me Mercury Budh Earth
Ju Jupiter Guru Air
Ve Venus Shukra Water
Sa Saturn Shani Air
Ra Rahu North Node Shadow
Ke Ketu South Node Shadow

🏠 House System

Traditional Vedic 12-house system with Sanskrit names:

House English Sanskrit Significance
1 Ascendant Lagna Self, Personality
2 Wealth Dhana Money, Family
3 Siblings Sahaja Communication, Courage
4 Home Sukha Mother, Property
5 Children Putra Creativity, Romance
6 Enemies Ripu Health, Service
7 Marriage Kalatra Partnership, Spouse
8 Longevity Ayu Transformation, Occult
9 Religion Dharma Luck, Higher Learning
10 Career Karma Profession, Status
11 Gains Labha Income, Friends
12 Losses Vyaya Expenses, Spirituality

💡 Example App

The package includes a comprehensive example demonstrating:

  • Basic birth chart implementation
  • Custom styling and theming
  • Planetary position handling
  • Responsive design patterns
  • Dark/light mode integration

Run the Example

git clone https://github.com/LeanQChris/kundali_chart.git
cd kundali_chart/example
flutter pub get
flutter run

The example shows a birth chart for November 9, 1998, 8:02 AM, Kathmandu, Nepal.

🎯 Use Cases

Perfect for building:

  • 📱 Astrology Mobile Apps - Personal horoscope applications
  • 🌐 Web Astrology Platforms - Online chart calculation services
  • 🎓 Educational Tools - Teaching Vedic astrology concepts
  • 🔮 Spiritual Apps - Meditation and spiritual guidance apps
  • 📊 Chart Analysis Tools - Professional astrology software

🛣️ Roadmap

Future enhancements planned:

  • Multiple chart styles (South Indian, Western)
  • Transit and progression overlays
  • Aspect line visualization
  • Export to PDF/Image functionality
  • Animation support for planetary movements
  • Dasha period indicators
  • Multi-language support

🤝 Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Contributing Screenshots 📸

Help showcase the package by contributing screenshots:

  1. Create beautiful chart configurations using the package
  2. Take high-quality screenshots (400x400px recommended)
  3. Add them to the screenshots/ directory
  4. Update the README showcase section
  5. Submit a PR with your visual contributions

Development Setup

git clone https://github.com/LeanQChris/kundali_chart.git
cd kundali_chart
flutter pub get
flutter test

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

⭐ Support

If this package helped you, please consider:

  • Starring the repository
  • 🐛 Reporting bugs and issues
  • 💡 Suggesting new features
  • 📢 Sharing with other developers

📞 Contact


Made with ❤️ for the Flutter and Astrology communities.