mirror of
https://github.com/git-touch/git-touch
synced 2025-02-22 14:27:46 +01:00
refactor: css color parse
This commit is contained in:
parent
cac6385e6e
commit
08f70164f4
@ -1,17 +1,19 @@
|
|||||||
import 'package:universal_io/io.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter/gestures.dart';
|
import 'package:flutter/gestures.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
import 'package:git_touch/models/theme.dart';
|
import 'package:git_touch/models/theme.dart';
|
||||||
import 'package:git_touch/widgets/border_view.dart';
|
import 'package:git_touch/widgets/border_view.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:primer/primer.dart';
|
import 'package:primer/primer.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:tuple/tuple.dart';
|
import 'package:tuple/tuple.dart';
|
||||||
|
import 'package:universal_io/io.dart';
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
export 'extensions.dart';
|
|
||||||
export 'package:flutter_vector_icons/flutter_vector_icons.dart'
|
export 'package:flutter_vector_icons/flutter_vector_icons.dart'
|
||||||
show Octicons, Ionicons;
|
show Octicons, Ionicons;
|
||||||
|
|
||||||
|
export 'extensions.dart';
|
||||||
|
|
||||||
class StorageKeys {
|
class StorageKeys {
|
||||||
@deprecated
|
@deprecated
|
||||||
static const account = 'account';
|
static const account = 'account';
|
||||||
@ -40,20 +42,6 @@ class CommonStyle {
|
|||||||
static final monospace = Platform.isIOS ? 'Menlo' : 'monospace'; // FIXME:
|
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) {
|
Color getFontColorByBrightness(Color color) {
|
||||||
var grayscale = color.red * 0.3 + color.green * 0.59 + color.blue * 0.11;
|
var grayscale = color.red * 0.3 + color.green * 0.59 + color.blue * 0.11;
|
||||||
// Fimber.d('color: $color, $grayscale');
|
// Fimber.d('color: $color, $grayscale');
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
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/models/theme.dart';
|
||||||
import 'package:git_touch/utils/utils.dart';
|
import 'package:git_touch/utils/utils.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
@ -86,10 +87,10 @@ class ContributionWidget extends StatelessWidget {
|
|||||||
height: 10,
|
height: 10,
|
||||||
child: DecoratedBox(
|
child: DecoratedBox(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: convertColor(
|
color: fromCssColor(
|
||||||
theme.brightness == Brightness.dark
|
theme.brightness == Brightness.dark
|
||||||
? darkMapper[day.hexColor!]
|
? darkMapper[day.hexColor!]!
|
||||||
: day.hexColor,
|
: day.hexColor!,
|
||||||
),
|
),
|
||||||
borderRadius: BorderRadius.circular(2)),
|
borderRadius: BorderRadius.circular(2)),
|
||||||
),
|
),
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
import 'package:flutter/material.dart';
|
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/models/theme.dart';
|
||||||
import 'package:git_touch/utils/utils.dart';
|
import 'package:git_touch/utils/utils.dart';
|
||||||
import 'package:git_touch/widgets/avatar.dart';
|
import 'package:git_touch/widgets/avatar.dart';
|
||||||
import 'package:git_touch/widgets/link.dart';
|
import 'package:git_touch/widgets/link.dart';
|
||||||
|
import 'package:github/github.dart' as github;
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:timeago/timeago.dart' as timeago;
|
import 'package:timeago/timeago.dart' as timeago;
|
||||||
import 'package:github/github.dart' as github;
|
|
||||||
|
|
||||||
class GistsItem extends StatelessWidget {
|
class GistsItem extends StatelessWidget {
|
||||||
final String? description;
|
final String? description;
|
||||||
@ -102,8 +103,8 @@ class GistsItem extends StatelessWidget {
|
|||||||
width: 12,
|
width: 12,
|
||||||
height: 12,
|
height: 12,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: convertColor(
|
color: fromCssColor(
|
||||||
github.languageColors[language!]),
|
github.languageColors[language!]!),
|
||||||
shape: BoxShape.circle,
|
shape: BoxShape.circle,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import 'package:antd_mobile/antd_mobile.dart';
|
import 'package:antd_mobile/antd_mobile.dart';
|
||||||
import 'package:flutter/material.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 {
|
class HexColorTag extends StatelessWidget {
|
||||||
final String name;
|
final String name;
|
||||||
@ -16,7 +16,7 @@ class HexColorTag extends StatelessWidget {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return AntTag(
|
return AntTag(
|
||||||
round: true,
|
round: true,
|
||||||
color: convertColor(color),
|
color: fromCssColor(color),
|
||||||
child: Text(name),
|
child: Text(name),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import 'package:flutter/cupertino.dart';
|
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/models/theme.dart';
|
||||||
import 'package:git_touch/utils/utils.dart';
|
import 'package:git_touch/utils/utils.dart';
|
||||||
import 'package:provider/provider.dart';
|
|
||||||
import 'package:github/github.dart' as github;
|
import 'package:github/github.dart' as github;
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class LanguageBarItem {
|
class LanguageBarItem {
|
||||||
String? name;
|
String? name;
|
||||||
@ -45,7 +46,7 @@ class LanguageBar extends StatelessWidget {
|
|||||||
const SizedBox(width: 1),
|
const SizedBox(width: 1),
|
||||||
items
|
items
|
||||||
.map((lang) => Container(
|
.map((lang) => Container(
|
||||||
color: convertColor(lang.hexColor),
|
color: fromCssColor(lang.hexColor!),
|
||||||
width: langWidth * lang.ratio!))
|
width: langWidth * lang.ratio!))
|
||||||
.toList(),
|
.toList(),
|
||||||
),
|
),
|
||||||
@ -73,7 +74,7 @@ class LanguageBar extends StatelessWidget {
|
|||||||
width: 18,
|
width: 18,
|
||||||
height: 18,
|
height: 18,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: convertColor(edge.hexColor),
|
color: fromCssColor(edge.hexColor!),
|
||||||
shape: BoxShape.circle,
|
shape: BoxShape.circle,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter/cupertino.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/graphql/__generated__/github.data.gql.dart';
|
||||||
import 'package:git_touch/models/bitbucket.dart';
|
import 'package:git_touch/models/bitbucket.dart';
|
||||||
import 'package:git_touch/models/gitlab.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/utils/utils.dart';
|
||||||
import 'package:git_touch/widgets/avatar.dart';
|
import 'package:git_touch/widgets/avatar.dart';
|
||||||
import 'package:git_touch/widgets/link.dart';
|
import 'package:git_touch/widgets/link.dart';
|
||||||
|
import 'package:github/github.dart' as github;
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:timeago/timeago.dart' as timeago;
|
import 'package:timeago/timeago.dart' as timeago;
|
||||||
import 'package:github/github.dart' as github;
|
|
||||||
|
|
||||||
class RepositoryItem extends StatelessWidget {
|
class RepositoryItem extends StatelessWidget {
|
||||||
final String? owner;
|
final String? owner;
|
||||||
@ -224,8 +225,8 @@ class RepositoryItem extends StatelessWidget {
|
|||||||
width: 12,
|
width: 12,
|
||||||
height: 12,
|
height: 12,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: convertColor(primaryLanguageColor ??
|
color: fromCssColor(primaryLanguageColor ??
|
||||||
github.languageColors[primaryLanguageName!]),
|
github.languageColors[primaryLanguageName!]!),
|
||||||
shape: BoxShape.circle,
|
shape: BoxShape.circle,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -322,6 +322,13 @@ packages:
|
|||||||
description: flutter
|
description: flutter
|
||||||
source: sdk
|
source: sdk
|
||||||
version: "0.0.0"
|
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:
|
frontend_server_client:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -67,6 +67,7 @@ dependencies:
|
|||||||
pub_semver:
|
pub_semver:
|
||||||
google_fonts:
|
google_fonts:
|
||||||
go_router:
|
go_router:
|
||||||
|
from_css_color:
|
||||||
antd_mobile:
|
antd_mobile:
|
||||||
path: ../ant-design-mobile-flutter
|
path: ../ant-design-mobile-flutter
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user