refactor: css color parse

This commit is contained in:
Rongjian Zhang 2022-09-12 22:59:17 +08:00
parent cac6385e6e
commit 08f70164f4
8 changed files with 32 additions and 32 deletions

View File

@ -1,17 +1,19 @@
import 'package:universal_io/io.dart';
import 'package:flutter/material.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:git_touch/models/theme.dart';
import 'package:git_touch/widgets/border_view.dart';
import 'package:intl/intl.dart';
import 'package:primer/primer.dart';
import 'package:provider/provider.dart';
import 'package:tuple/tuple.dart';
import 'package:universal_io/io.dart';
import 'package:url_launcher/url_launcher.dart';
export 'extensions.dart';
export 'package:flutter_vector_icons/flutter_vector_icons.dart'
show Octicons, Ionicons;
export 'extensions.dart';
class StorageKeys {
@deprecated
static const account = 'account';
@ -40,20 +42,6 @@ class CommonStyle {
static final monospace = Platform.isIOS ? 'Menlo' : 'monospace'; // FIXME:
}
Color convertColor(String? cssHex) {
if (cssHex == null) {
return const Color(0xffededed); // Default color
}
if (cssHex.startsWith('#')) {
cssHex = cssHex.substring(1);
}
if (cssHex.length == 3) {
cssHex = cssHex.split('').map((char) => char + char).join('');
}
return Color(int.tryParse('ff$cssHex', radix: 16) ?? 0);
}
Color getFontColorByBrightness(Color color) {
var grayscale = color.red * 0.3 + color.green * 0.59 + color.blue * 0.11;
// Fimber.d('color: $color, $grayscale');

View File

@ -1,6 +1,7 @@
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:from_css_color/from_css_color.dart';
import 'package:git_touch/models/theme.dart';
import 'package:git_touch/utils/utils.dart';
import 'package:provider/provider.dart';
@ -86,10 +87,10 @@ class ContributionWidget extends StatelessWidget {
height: 10,
child: DecoratedBox(
decoration: BoxDecoration(
color: convertColor(
color: fromCssColor(
theme.brightness == Brightness.dark
? darkMapper[day.hexColor!]
: day.hexColor,
? darkMapper[day.hexColor!]!
: day.hexColor!,
),
borderRadius: BorderRadius.circular(2)),
),

View File

@ -1,11 +1,12 @@
import 'package:flutter/material.dart';
import 'package:from_css_color/from_css_color.dart';
import 'package:git_touch/models/theme.dart';
import 'package:git_touch/utils/utils.dart';
import 'package:git_touch/widgets/avatar.dart';
import 'package:git_touch/widgets/link.dart';
import 'package:github/github.dart' as github;
import 'package:provider/provider.dart';
import 'package:timeago/timeago.dart' as timeago;
import 'package:github/github.dart' as github;
class GistsItem extends StatelessWidget {
final String? description;
@ -102,8 +103,8 @@ class GistsItem extends StatelessWidget {
width: 12,
height: 12,
decoration: BoxDecoration(
color: convertColor(
github.languageColors[language!]),
color: fromCssColor(
github.languageColors[language!]!),
shape: BoxShape.circle,
),
),

View File

@ -1,6 +1,6 @@
import 'package:antd_mobile/antd_mobile.dart';
import 'package:flutter/material.dart';
import 'package:git_touch/utils/utils.dart';
import 'package:from_css_color/from_css_color.dart';
class HexColorTag extends StatelessWidget {
final String name;
@ -16,7 +16,7 @@ class HexColorTag extends StatelessWidget {
Widget build(BuildContext context) {
return AntTag(
round: true,
color: convertColor(color),
color: fromCssColor(color),
child: Text(name),
);
}

View File

@ -1,8 +1,9 @@
import 'package:flutter/cupertino.dart';
import 'package:from_css_color/from_css_color.dart';
import 'package:git_touch/models/theme.dart';
import 'package:git_touch/utils/utils.dart';
import 'package:provider/provider.dart';
import 'package:github/github.dart' as github;
import 'package:provider/provider.dart';
class LanguageBarItem {
String? name;
@ -45,7 +46,7 @@ class LanguageBar extends StatelessWidget {
const SizedBox(width: 1),
items
.map((lang) => Container(
color: convertColor(lang.hexColor),
color: fromCssColor(lang.hexColor!),
width: langWidth * lang.ratio!))
.toList(),
),
@ -73,7 +74,7 @@ class LanguageBar extends StatelessWidget {
width: 18,
height: 18,
decoration: BoxDecoration(
color: convertColor(edge.hexColor),
color: fromCssColor(edge.hexColor!),
shape: BoxShape.circle,
),
),

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:from_css_color/from_css_color.dart';
import 'package:git_touch/graphql/__generated__/github.data.gql.dart';
import 'package:git_touch/models/bitbucket.dart';
import 'package:git_touch/models/gitlab.dart';
@ -8,9 +9,9 @@ import 'package:git_touch/models/theme.dart';
import 'package:git_touch/utils/utils.dart';
import 'package:git_touch/widgets/avatar.dart';
import 'package:git_touch/widgets/link.dart';
import 'package:github/github.dart' as github;
import 'package:provider/provider.dart';
import 'package:timeago/timeago.dart' as timeago;
import 'package:github/github.dart' as github;
class RepositoryItem extends StatelessWidget {
final String? owner;
@ -224,8 +225,8 @@ class RepositoryItem extends StatelessWidget {
width: 12,
height: 12,
decoration: BoxDecoration(
color: convertColor(primaryLanguageColor ??
github.languageColors[primaryLanguageName!]),
color: fromCssColor(primaryLanguageColor ??
github.languageColors[primaryLanguageName!]!),
shape: BoxShape.circle,
),
),

View File

@ -322,6 +322,13 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
from_css_color:
dependency: "direct main"
description:
name: from_css_color
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
frontend_server_client:
dependency: transitive
description:

View File

@ -67,6 +67,7 @@ dependencies:
pub_semver:
google_fonts:
go_router:
from_css_color:
antd_mobile:
path: ../ant-design-mobile-flutter