diff --git a/android/gradle.properties b/android/gradle.properties
index f0be9fb67d6fe0b36ce90df03ff2f3f1551d738c..d9abd55731010fe508f39321892e8002f10e79ef 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,5 +1,5 @@
 org.gradle.jvmargs=-Xmx1536M
 android.useAndroidX=true
 android.enableJetifier=true
-app.versionName=0.0.11
-app.versionCode=11
+app.versionName=0.0.12
+app.versionCode=12
diff --git a/fastlane/metadata/android/en-US/changelogs/12.txt b/fastlane/metadata/android/en-US/changelogs/12.txt
new file mode 100644
index 0000000000000000000000000000000000000000..acb5996e3b53cecd80b1a3049d12c4770297e4d0
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/12.txt
@@ -0,0 +1 @@
+Improve charts colors.
diff --git a/fastlane/metadata/android/fr-FR/changelogs/12.txt b/fastlane/metadata/android/fr-FR/changelogs/12.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8a2a1ab28264f6c8f8b64a1da85fb5cdee57255e
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/12.txt
@@ -0,0 +1 @@
+Amélioration des couleurs des graphiques.
diff --git a/lib/ui/widgets/main_screen/counts_by_day_card.dart b/lib/ui/widgets/main_screen/counts_by_day_card.dart
index 6cd39c1ccc7a33d8a10ac1f0d96215be0e1b5a23..ab392104473b3409189bdc309bfd61ac5314a198 100644
--- a/lib/ui/widgets/main_screen/counts_by_day_card.dart
+++ b/lib/ui/widgets/main_screen/counts_by_day_card.dart
@@ -25,7 +25,7 @@ class ChartCountsByDayCard extends StatelessWidget {
         return Card(
           elevation: 2,
           shadowColor: Theme.of(context).colorScheme.shadow,
-          color: Theme.of(context).colorScheme.primary,
+          color: Theme.of(context).colorScheme.surface,
           shape: const RoundedRectangleBorder(
             borderRadius: BorderRadius.all(
               Radius.circular(12),
diff --git a/lib/ui/widgets/main_screen/counts_by_day_chart.dart b/lib/ui/widgets/main_screen/counts_by_day_chart.dart
index 10e01e8860d6fe0ea4c5d38b43b223b3b7cff741..9804b61161f8eb1c60be3e421731b302de05d36f 100644
--- a/lib/ui/widgets/main_screen/counts_by_day_chart.dart
+++ b/lib/ui/widgets/main_screen/counts_by_day_chart.dart
@@ -14,7 +14,7 @@ class CountsByDayCardContentChart extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     return Container(
-      height: 100.0,
+      height: 120.0,
       child: LayoutBuilder(builder: (context, constraints) {
         final double maxWidth = constraints.maxWidth;
         final int barsCount = this.chartData.data.keys.length;
@@ -23,7 +23,7 @@ class CountsByDayCardContentChart extends StatelessWidget {
         return BarChart(
           BarChartData(
             barGroups: getDataCounts(barWidth),
-            backgroundColor: Theme.of(context).colorScheme.onBackground,
+            backgroundColor: Theme.of(context).colorScheme.onSurface,
             borderData: getBorderData(),
             gridData: getGridData(),
             titlesData: getTitlesData(),
@@ -54,6 +54,19 @@ class CountsByDayCardContentChart extends StatelessWidget {
     return scale * ((number ~/ scale).toInt() + 1);
   }
 
+  LinearGradient getGradient(Color baseColor) {
+    return LinearGradient(
+      begin: Alignment.topLeft,
+      end: Alignment(0.8, 1),
+      colors: <Color>[
+        baseColor.lighten(30),
+        baseColor,
+        baseColor.darken(30),
+      ],
+      tileMode: TileMode.mirror,
+    );
+  }
+
   List<BarChartGroupData> getDataCounts(double barWidth) {
     List<BarChartGroupData> data = [];
 
@@ -87,16 +100,20 @@ class CountsByDayCardContentChart extends StatelessWidget {
           default:
         }
 
+        final gradient = getGradient(barColor);
+        final borderColor = barColor.darken(20);
+
         data.add(BarChartGroupData(
           x: day,
           barRods: [
             BarChartRodData(
               toY: counts,
               color: barColor,
+              gradient: gradient,
               width: barWidth,
               borderRadius: BorderRadius.all(Radius.zero),
               borderSide: BorderSide(
-                color: barColor.darken(20),
+                color: borderColor,
               ),
             ),
           ],
@@ -120,6 +137,8 @@ class CountsByDayCardContentChart extends StatelessWidget {
   FlGridData getGridData() {
     return const FlGridData(
       show: true,
+      drawHorizontalLine: true,
+      drawVerticalLine: false,
     );
   }
 
diff --git a/lib/ui/widgets/main_screen/counts_by_hour_card.dart b/lib/ui/widgets/main_screen/counts_by_hour_card.dart
index 4c030f7ddb406b5ebd4037b225e171bdeb6c1304..a5def579771e95956539d90f48d25a442427ffc5 100644
--- a/lib/ui/widgets/main_screen/counts_by_hour_card.dart
+++ b/lib/ui/widgets/main_screen/counts_by_hour_card.dart
@@ -26,7 +26,7 @@ class ChartCountsByHourCard extends StatelessWidget {
         return Card(
           elevation: 2,
           shadowColor: Theme.of(context).colorScheme.shadow,
-          color: Theme.of(context).colorScheme.primary,
+          color: Theme.of(context).colorScheme.surface,
           shape: const RoundedRectangleBorder(
             borderRadius: BorderRadius.all(
               Radius.circular(12),
diff --git a/lib/ui/widgets/main_screen/counts_by_hour_chart.dart b/lib/ui/widgets/main_screen/counts_by_hour_chart.dart
index b8154fcb7ac458718fe507aa076f03121bc4beb5..97965bf77d922ba164d3decce62a5bb2073ea4ad 100644
--- a/lib/ui/widgets/main_screen/counts_by_hour_chart.dart
+++ b/lib/ui/widgets/main_screen/counts_by_hour_chart.dart
@@ -13,7 +13,7 @@ class CountsByHourCardContentChart extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     return Container(
-      height: 100.0,
+      height: 120.0,
       child: LayoutBuilder(builder: (context, constraints) {
         final double maxWidth = constraints.maxWidth;
         final int barsCount = this.chartData.data.keys.length;
@@ -22,7 +22,7 @@ class CountsByHourCardContentChart extends StatelessWidget {
         return BarChart(
           BarChartData(
             barGroups: getDataCounts(barWidth),
-            backgroundColor: Theme.of(context).colorScheme.onBackground,
+            backgroundColor: Theme.of(context).colorScheme.onSurface,
             borderData: getBorderData(),
             gridData: getGridData(),
             titlesData: getTitlesData(),
@@ -53,25 +53,41 @@ class CountsByHourCardContentChart extends StatelessWidget {
     return scale * ((number ~/ scale).toInt() + 1);
   }
 
+  LinearGradient getGradient(Color baseColor) {
+    return LinearGradient(
+      begin: Alignment.topLeft,
+      end: Alignment(0.8, 1),
+      colors: <Color>[
+        baseColor.lighten(30),
+        baseColor,
+        baseColor.darken(30),
+      ],
+      tileMode: TileMode.mirror,
+    );
+  }
+
   List<BarChartGroupData> getDataCounts(double barWidth) {
     List<BarChartGroupData> data = [];
 
+    final baseColor = AppColors.contentColorCyan.darken(30);
+    final gradient = getGradient(baseColor);
+    final borderColor = baseColor.darken(20);
+
     this.chartData.data.keys.forEach((day) {
       final double? counts = this.chartData.data[day];
 
       if (counts != null) {
-        final Color barColor = AppColors.contentColorCyan.darken(30);
-
         data.add(BarChartGroupData(
           x: day,
           barRods: [
             BarChartRodData(
               toY: counts,
-              color: barColor,
+              color: baseColor,
+              gradient: gradient,
               width: barWidth,
               borderRadius: BorderRadius.all(Radius.zero),
               borderSide: BorderSide(
-                color: barColor.darken(20),
+                color: borderColor,
               ),
             ),
           ],
diff --git a/lib/ui/widgets/main_screen/timeline_card.dart b/lib/ui/widgets/main_screen/timeline_card.dart
index bd3d14a8fc6f86452534d98ea0191aa2ac585198..843b93ba356ecbd9f1b173ed59a0fc6302a215e2 100644
--- a/lib/ui/widgets/main_screen/timeline_card.dart
+++ b/lib/ui/widgets/main_screen/timeline_card.dart
@@ -25,7 +25,7 @@ class ChartTimelineCard extends StatelessWidget {
         return Card(
           elevation: 2,
           shadowColor: Theme.of(context).colorScheme.shadow,
-          color: Theme.of(context).colorScheme.primary,
+          color: Theme.of(context).colorScheme.surface,
           shape: const RoundedRectangleBorder(
             borderRadius: BorderRadius.all(
               Radius.circular(12),
diff --git a/lib/ui/widgets/main_screen/timeline_chart_counts.dart b/lib/ui/widgets/main_screen/timeline_chart_counts.dart
index 409d7dc19712e72c3a66a947146146ef3c4fd5ca..08eb91c158e0d1a34bb347a628bc75136585819c 100644
--- a/lib/ui/widgets/main_screen/timeline_chart_counts.dart
+++ b/lib/ui/widgets/main_screen/timeline_chart_counts.dart
@@ -23,7 +23,7 @@ class ChartTimelineCounts extends StatelessWidget {
         return BarChart(
           BarChartData(
             barGroups: getDataCounts(barWidth),
-            backgroundColor: Theme.of(context).colorScheme.onBackground,
+            backgroundColor: Theme.of(context).colorScheme.onSurface,
             borderData: getBorderData(),
             gridData: getGridData(),
             titlesData: getTitlesData(),
@@ -55,9 +55,26 @@ class ChartTimelineCounts extends StatelessWidget {
     return scale * ((number ~/ scale).toInt() + 1);
   }
 
+  LinearGradient getGradient(Color baseColor) {
+    return LinearGradient(
+      begin: Alignment.topLeft,
+      end: Alignment(0.8, 1),
+      colors: <Color>[
+        baseColor.lighten(30),
+        baseColor,
+        baseColor.darken(30),
+      ],
+      tileMode: TileMode.mirror,
+    );
+  }
+
   List<BarChartGroupData> getDataCounts(double barWidth) {
     List<BarChartGroupData> data = [];
 
+    final baseColor = AppColors.contentColorOrange;
+    final gradient = getGradient(baseColor);
+    final borderColor = baseColor.darken(20);
+
     this.chartData.data.keys.forEach((key) {
       TimelineDataValue? value = this.chartData.data[key];
       if (value != null) {
@@ -69,11 +86,12 @@ class ChartTimelineCounts extends StatelessWidget {
           barRods: [
             BarChartRodData(
               toY: counts,
-              color: AppColors.contentColorOrange,
+              color: baseColor,
+              gradient: gradient,
               width: barWidth,
               borderRadius: BorderRadius.all(Radius.zero),
               borderSide: BorderSide(
-                color: AppColors.contentColorOrange.darken(20),
+                color: borderColor,
               ),
             ),
           ],
@@ -97,6 +115,8 @@ class ChartTimelineCounts extends StatelessWidget {
   FlGridData getGridData() {
     return const FlGridData(
       show: true,
+      drawHorizontalLine: true,
+      drawVerticalLine: false,
     );
   }
 
diff --git a/lib/ui/widgets/main_screen/timeline_chart_eclecticism.dart b/lib/ui/widgets/main_screen/timeline_chart_eclecticism.dart
index 64598bb854c3eb6bfc6d3d55fec6030c78ddd8ec..acdf4ba08584a95d624f27f63a288a6fc36acfb8 100644
--- a/lib/ui/widgets/main_screen/timeline_chart_eclecticism.dart
+++ b/lib/ui/widgets/main_screen/timeline_chart_eclecticism.dart
@@ -4,6 +4,7 @@ import 'package:fl_chart/fl_chart.dart';
 
 import '../../../config/app_colors.dart';
 import '../../../models/timeline.dart';
+import '../../../utils/color_extensions.dart';
 
 class ChartTimelineEclecticism extends StatelessWidget {
   final TimelineData chartData;
@@ -13,11 +14,11 @@ class ChartTimelineEclecticism extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     return Container(
-      height: 100.0,
+      height: 120.0,
       child: LineChart(
         LineChartData(
           lineBarsData: getDataEclecticism(),
-          backgroundColor: Theme.of(context).colorScheme.onBackground,
+          backgroundColor: Theme.of(context).colorScheme.onSurface,
           borderData: getBorderData(),
           gridData: getGridData(),
           titlesData: getTitlesData(),
@@ -30,6 +31,19 @@ class ChartTimelineEclecticism extends StatelessWidget {
     );
   }
 
+  LinearGradient getGradient(Color baseColor) {
+    return LinearGradient(
+      begin: Alignment.topCenter,
+      end: Alignment.bottomCenter,
+      colors: <Color>[
+        baseColor.lighten(30),
+        baseColor,
+        baseColor.darken(30),
+      ],
+      tileMode: TileMode.mirror,
+    );
+  }
+
   List<LineChartBarData> getDataEclecticism() {
     List<FlSpot> spots = [];
 
@@ -43,14 +57,22 @@ class ChartTimelineEclecticism extends StatelessWidget {
       }
     });
 
+    final baseColor = AppColors.contentColorCyan;
+    final gradient = getGradient(baseColor);
+    final borderColor = baseColor.darken(20);
+
     return [
       LineChartBarData(
         isCurved: true,
-        color: AppColors.contentColorCyan,
+        color: borderColor,
         barWidth: 3,
         isStrokeCapRound: false,
         dotData: const FlDotData(show: false),
-        belowBarData: BarAreaData(show: true),
+        belowBarData: BarAreaData(
+          show: true,
+          color: baseColor,
+          gradient: gradient,
+        ),
         spots: spots,
       ),
     ];
@@ -69,6 +91,8 @@ class ChartTimelineEclecticism extends StatelessWidget {
   FlGridData getGridData() {
     return const FlGridData(
       show: true,
+      drawHorizontalLine: true,
+      drawVerticalLine: false,
     );
   }
 
diff --git a/pubspec.yaml b/pubspec.yaml
index 4336e1012987165494ed4e41cb566eae56756bd0..d51ded105b56c8a72138567f8ec2f7ed4fc16ed7 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,7 +3,7 @@ description: Display scrobbles data and charts
 
 publish_to: 'none'
 
-version: 0.0.11+11
+version: 0.0.12+12
 
 environment:
   sdk: '^3.0.0'