Skip to content
Snippets Groups Projects
Commit 110f18cc authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Improve charts colors

parent 686b8d10
No related branches found
No related tags found
1 merge request!13Resolve "Improve charts colors"
Pipeline #4467 passed
org.gradle.jvmargs=-Xmx1536M org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
app.versionName=0.0.11 app.versionName=0.0.12
app.versionCode=11 app.versionCode=12
Improve charts colors.
Amélioration des couleurs des graphiques.
...@@ -25,7 +25,7 @@ class ChartCountsByDayCard extends StatelessWidget { ...@@ -25,7 +25,7 @@ class ChartCountsByDayCard extends StatelessWidget {
return Card( return Card(
elevation: 2, elevation: 2,
shadowColor: Theme.of(context).colorScheme.shadow, shadowColor: Theme.of(context).colorScheme.shadow,
color: Theme.of(context).colorScheme.primary, color: Theme.of(context).colorScheme.surface,
shape: const RoundedRectangleBorder( shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all( borderRadius: BorderRadius.all(
Radius.circular(12), Radius.circular(12),
......
...@@ -14,7 +14,7 @@ class CountsByDayCardContentChart extends StatelessWidget { ...@@ -14,7 +14,7 @@ class CountsByDayCardContentChart extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
height: 100.0, height: 120.0,
child: LayoutBuilder(builder: (context, constraints) { child: LayoutBuilder(builder: (context, constraints) {
final double maxWidth = constraints.maxWidth; final double maxWidth = constraints.maxWidth;
final int barsCount = this.chartData.data.keys.length; final int barsCount = this.chartData.data.keys.length;
...@@ -23,7 +23,7 @@ class CountsByDayCardContentChart extends StatelessWidget { ...@@ -23,7 +23,7 @@ class CountsByDayCardContentChart extends StatelessWidget {
return BarChart( return BarChart(
BarChartData( BarChartData(
barGroups: getDataCounts(barWidth), barGroups: getDataCounts(barWidth),
backgroundColor: Theme.of(context).colorScheme.onBackground, backgroundColor: Theme.of(context).colorScheme.onSurface,
borderData: getBorderData(), borderData: getBorderData(),
gridData: getGridData(), gridData: getGridData(),
titlesData: getTitlesData(), titlesData: getTitlesData(),
...@@ -54,6 +54,19 @@ class CountsByDayCardContentChart extends StatelessWidget { ...@@ -54,6 +54,19 @@ class CountsByDayCardContentChart extends StatelessWidget {
return scale * ((number ~/ scale).toInt() + 1); 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> getDataCounts(double barWidth) {
List<BarChartGroupData> data = []; List<BarChartGroupData> data = [];
...@@ -87,16 +100,20 @@ class CountsByDayCardContentChart extends StatelessWidget { ...@@ -87,16 +100,20 @@ class CountsByDayCardContentChart extends StatelessWidget {
default: default:
} }
final gradient = getGradient(barColor);
final borderColor = barColor.darken(20);
data.add(BarChartGroupData( data.add(BarChartGroupData(
x: day, x: day,
barRods: [ barRods: [
BarChartRodData( BarChartRodData(
toY: counts, toY: counts,
color: barColor, color: barColor,
gradient: gradient,
width: barWidth, width: barWidth,
borderRadius: BorderRadius.all(Radius.zero), borderRadius: BorderRadius.all(Radius.zero),
borderSide: BorderSide( borderSide: BorderSide(
color: barColor.darken(20), color: borderColor,
), ),
), ),
], ],
...@@ -120,6 +137,8 @@ class CountsByDayCardContentChart extends StatelessWidget { ...@@ -120,6 +137,8 @@ class CountsByDayCardContentChart extends StatelessWidget {
FlGridData getGridData() { FlGridData getGridData() {
return const FlGridData( return const FlGridData(
show: true, show: true,
drawHorizontalLine: true,
drawVerticalLine: false,
); );
} }
......
...@@ -26,7 +26,7 @@ class ChartCountsByHourCard extends StatelessWidget { ...@@ -26,7 +26,7 @@ class ChartCountsByHourCard extends StatelessWidget {
return Card( return Card(
elevation: 2, elevation: 2,
shadowColor: Theme.of(context).colorScheme.shadow, shadowColor: Theme.of(context).colorScheme.shadow,
color: Theme.of(context).colorScheme.primary, color: Theme.of(context).colorScheme.surface,
shape: const RoundedRectangleBorder( shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all( borderRadius: BorderRadius.all(
Radius.circular(12), Radius.circular(12),
......
...@@ -13,7 +13,7 @@ class CountsByHourCardContentChart extends StatelessWidget { ...@@ -13,7 +13,7 @@ class CountsByHourCardContentChart extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
height: 100.0, height: 120.0,
child: LayoutBuilder(builder: (context, constraints) { child: LayoutBuilder(builder: (context, constraints) {
final double maxWidth = constraints.maxWidth; final double maxWidth = constraints.maxWidth;
final int barsCount = this.chartData.data.keys.length; final int barsCount = this.chartData.data.keys.length;
...@@ -22,7 +22,7 @@ class CountsByHourCardContentChart extends StatelessWidget { ...@@ -22,7 +22,7 @@ class CountsByHourCardContentChart extends StatelessWidget {
return BarChart( return BarChart(
BarChartData( BarChartData(
barGroups: getDataCounts(barWidth), barGroups: getDataCounts(barWidth),
backgroundColor: Theme.of(context).colorScheme.onBackground, backgroundColor: Theme.of(context).colorScheme.onSurface,
borderData: getBorderData(), borderData: getBorderData(),
gridData: getGridData(), gridData: getGridData(),
titlesData: getTitlesData(), titlesData: getTitlesData(),
...@@ -53,25 +53,41 @@ class CountsByHourCardContentChart extends StatelessWidget { ...@@ -53,25 +53,41 @@ class CountsByHourCardContentChart extends StatelessWidget {
return scale * ((number ~/ scale).toInt() + 1); 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> getDataCounts(double barWidth) {
List<BarChartGroupData> data = []; List<BarChartGroupData> data = [];
final baseColor = AppColors.contentColorCyan.darken(30);
final gradient = getGradient(baseColor);
final borderColor = baseColor.darken(20);
this.chartData.data.keys.forEach((day) { this.chartData.data.keys.forEach((day) {
final double? counts = this.chartData.data[day]; final double? counts = this.chartData.data[day];
if (counts != null) { if (counts != null) {
final Color barColor = AppColors.contentColorCyan.darken(30);
data.add(BarChartGroupData( data.add(BarChartGroupData(
x: day, x: day,
barRods: [ barRods: [
BarChartRodData( BarChartRodData(
toY: counts, toY: counts,
color: barColor, color: baseColor,
gradient: gradient,
width: barWidth, width: barWidth,
borderRadius: BorderRadius.all(Radius.zero), borderRadius: BorderRadius.all(Radius.zero),
borderSide: BorderSide( borderSide: BorderSide(
color: barColor.darken(20), color: borderColor,
), ),
), ),
], ],
......
...@@ -25,7 +25,7 @@ class ChartTimelineCard extends StatelessWidget { ...@@ -25,7 +25,7 @@ class ChartTimelineCard extends StatelessWidget {
return Card( return Card(
elevation: 2, elevation: 2,
shadowColor: Theme.of(context).colorScheme.shadow, shadowColor: Theme.of(context).colorScheme.shadow,
color: Theme.of(context).colorScheme.primary, color: Theme.of(context).colorScheme.surface,
shape: const RoundedRectangleBorder( shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all( borderRadius: BorderRadius.all(
Radius.circular(12), Radius.circular(12),
......
...@@ -23,7 +23,7 @@ class ChartTimelineCounts extends StatelessWidget { ...@@ -23,7 +23,7 @@ class ChartTimelineCounts extends StatelessWidget {
return BarChart( return BarChart(
BarChartData( BarChartData(
barGroups: getDataCounts(barWidth), barGroups: getDataCounts(barWidth),
backgroundColor: Theme.of(context).colorScheme.onBackground, backgroundColor: Theme.of(context).colorScheme.onSurface,
borderData: getBorderData(), borderData: getBorderData(),
gridData: getGridData(), gridData: getGridData(),
titlesData: getTitlesData(), titlesData: getTitlesData(),
...@@ -55,9 +55,26 @@ class ChartTimelineCounts extends StatelessWidget { ...@@ -55,9 +55,26 @@ class ChartTimelineCounts extends StatelessWidget {
return scale * ((number ~/ scale).toInt() + 1); 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> getDataCounts(double barWidth) {
List<BarChartGroupData> data = []; List<BarChartGroupData> data = [];
final baseColor = AppColors.contentColorOrange;
final gradient = getGradient(baseColor);
final borderColor = baseColor.darken(20);
this.chartData.data.keys.forEach((key) { this.chartData.data.keys.forEach((key) {
TimelineDataValue? value = this.chartData.data[key]; TimelineDataValue? value = this.chartData.data[key];
if (value != null) { if (value != null) {
...@@ -69,11 +86,12 @@ class ChartTimelineCounts extends StatelessWidget { ...@@ -69,11 +86,12 @@ class ChartTimelineCounts extends StatelessWidget {
barRods: [ barRods: [
BarChartRodData( BarChartRodData(
toY: counts, toY: counts,
color: AppColors.contentColorOrange, color: baseColor,
gradient: gradient,
width: barWidth, width: barWidth,
borderRadius: BorderRadius.all(Radius.zero), borderRadius: BorderRadius.all(Radius.zero),
borderSide: BorderSide( borderSide: BorderSide(
color: AppColors.contentColorOrange.darken(20), color: borderColor,
), ),
), ),
], ],
...@@ -97,6 +115,8 @@ class ChartTimelineCounts extends StatelessWidget { ...@@ -97,6 +115,8 @@ class ChartTimelineCounts extends StatelessWidget {
FlGridData getGridData() { FlGridData getGridData() {
return const FlGridData( return const FlGridData(
show: true, show: true,
drawHorizontalLine: true,
drawVerticalLine: false,
); );
} }
......
...@@ -4,6 +4,7 @@ import 'package:fl_chart/fl_chart.dart'; ...@@ -4,6 +4,7 @@ import 'package:fl_chart/fl_chart.dart';
import '../../../config/app_colors.dart'; import '../../../config/app_colors.dart';
import '../../../models/timeline.dart'; import '../../../models/timeline.dart';
import '../../../utils/color_extensions.dart';
class ChartTimelineEclecticism extends StatelessWidget { class ChartTimelineEclecticism extends StatelessWidget {
final TimelineData chartData; final TimelineData chartData;
...@@ -13,11 +14,11 @@ class ChartTimelineEclecticism extends StatelessWidget { ...@@ -13,11 +14,11 @@ class ChartTimelineEclecticism extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
height: 100.0, height: 120.0,
child: LineChart( child: LineChart(
LineChartData( LineChartData(
lineBarsData: getDataEclecticism(), lineBarsData: getDataEclecticism(),
backgroundColor: Theme.of(context).colorScheme.onBackground, backgroundColor: Theme.of(context).colorScheme.onSurface,
borderData: getBorderData(), borderData: getBorderData(),
gridData: getGridData(), gridData: getGridData(),
titlesData: getTitlesData(), titlesData: getTitlesData(),
...@@ -30,6 +31,19 @@ class ChartTimelineEclecticism extends StatelessWidget { ...@@ -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<LineChartBarData> getDataEclecticism() {
List<FlSpot> spots = []; List<FlSpot> spots = [];
...@@ -43,14 +57,22 @@ class ChartTimelineEclecticism extends StatelessWidget { ...@@ -43,14 +57,22 @@ class ChartTimelineEclecticism extends StatelessWidget {
} }
}); });
final baseColor = AppColors.contentColorCyan;
final gradient = getGradient(baseColor);
final borderColor = baseColor.darken(20);
return [ return [
LineChartBarData( LineChartBarData(
isCurved: true, isCurved: true,
color: AppColors.contentColorCyan, color: borderColor,
barWidth: 3, barWidth: 3,
isStrokeCapRound: false, isStrokeCapRound: false,
dotData: const FlDotData(show: false), dotData: const FlDotData(show: false),
belowBarData: BarAreaData(show: true), belowBarData: BarAreaData(
show: true,
color: baseColor,
gradient: gradient,
),
spots: spots, spots: spots,
), ),
]; ];
...@@ -69,6 +91,8 @@ class ChartTimelineEclecticism extends StatelessWidget { ...@@ -69,6 +91,8 @@ class ChartTimelineEclecticism extends StatelessWidget {
FlGridData getGridData() { FlGridData getGridData() {
return const FlGridData( return const FlGridData(
show: true, show: true,
drawHorizontalLine: true,
drawVerticalLine: false,
); );
} }
......
...@@ -3,7 +3,7 @@ description: Display scrobbles data and charts ...@@ -3,7 +3,7 @@ description: Display scrobbles data and charts
publish_to: 'none' publish_to: 'none'
version: 0.0.11+11 version: 0.0.12+12
environment: environment:
sdk: '^3.0.0' sdk: '^3.0.0'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment