mirror of
https://github.com/K3vinb5/Unyo.git
synced 2026-06-13 05:49:42 +00:00
Added clours to some widgets based on your wallpaper
This commit is contained in:
134
CODE_OF_CONDUCT.md
Normal file
134
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,134 @@
|
||||
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, caste, color, religion, or sexual
|
||||
identity and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the overall
|
||||
community
|
||||
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery, and sexual attention or advances of
|
||||
any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or email address,
|
||||
without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official email address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported to the community leaders responsible for enforcement at
|
||||
[INSERT CONTACT METHOD].
|
||||
All complaints will be reviewed and investigated promptly and fairly.
|
||||
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
|
||||
### 1. Correction
|
||||
|
||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
|
||||
**Consequence**: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
|
||||
### 2. Warning
|
||||
|
||||
**Community Impact**: A violation through a single incident or series of
|
||||
actions.
|
||||
|
||||
**Consequence**: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or permanent
|
||||
ban.
|
||||
|
||||
### 3. Temporary Ban
|
||||
|
||||
**Community Impact**: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within the
|
||||
community.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.1, available at
|
||||
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
|
||||
|
||||
Community Impact Guidelines were inspired by
|
||||
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
|
||||
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
|
||||
[https://www.contributor-covenant.org/translations][translations].
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
|
||||
[Mozilla CoC]: https://github.com/mozilla/diversity
|
||||
[FAQ]: https://www.contributor-covenant.org/faq
|
||||
[translations]: https://www.contributor-covenant.org/translations
|
||||
|
||||
@@ -355,7 +355,6 @@ Future<Map<String, Map<String, double>>> getUserStatsMaps(
|
||||
return {};
|
||||
}
|
||||
|
||||
print(json.decode(response.body));
|
||||
var animeStatistics =
|
||||
json.decode(response.body)["data"]["User"]["statistics"]["anime"];
|
||||
|
||||
|
||||
@@ -20,6 +20,9 @@ void main() {
|
||||
});
|
||||
}
|
||||
|
||||
Color veryLightBorderColor = Colors.white;
|
||||
Color lightBorderColor = Colors.grey;
|
||||
Color darkBorderColor = Colors.black;
|
||||
final GlobalKey<NavigatorState> _rootNavigatorKey =
|
||||
GlobalKey<NavigatorState>(debugLabel: 'root');
|
||||
final GlobalKey<NavigatorState> _homeNavigatorKey =
|
||||
@@ -133,11 +136,8 @@ class _MyAppState extends State<MyApp> {
|
||||
Widget build(BuildContext context) {
|
||||
return MaterialApp.router(
|
||||
debugShowCheckedModeBanner: false,
|
||||
theme: ThemeData(),
|
||||
title: 'Unyo',
|
||||
theme: ThemeData(
|
||||
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
|
||||
useMaterial3: true,
|
||||
),
|
||||
routerConfig: _router,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import 'package:shelf/shelf.dart' as shelf;
|
||||
import 'package:shelf/shelf_io.dart' as shelfio;
|
||||
import 'dart:io';
|
||||
import 'package:image_gradient/image_gradient.dart';
|
||||
import 'package:unyo/main.dart';
|
||||
import 'package:unyo/screens/screens.dart';
|
||||
import 'package:unyo/api/anilist_api_anime.dart';
|
||||
import 'package:unyo/api/anilist_api_manga.dart';
|
||||
@@ -32,7 +33,8 @@ class HomeScreen extends StatefulWidget {
|
||||
State<HomeScreen> createState() => _HomeScreenState();
|
||||
}
|
||||
|
||||
class _HomeScreenState extends State<HomeScreen> /*with WidgetsBindingObserver*/ {
|
||||
class _HomeScreenState
|
||||
extends State<HomeScreen> /*with WidgetsBindingObserver*/ {
|
||||
String? bannerImageUrl;
|
||||
String? avatarImageUrl;
|
||||
String? userName;
|
||||
@@ -202,7 +204,16 @@ class _HomeScreenState extends State<HomeScreen> /*with WidgetsBindingObserver*/
|
||||
image,
|
||||
maximumColorCount: 20,
|
||||
);
|
||||
List<Color> lightToDarkColors = newPaletteGenerator.colors.toList();
|
||||
lightToDarkColors.sort((color1, color2) =>
|
||||
(color1.computeLuminance() * 10 - color2.computeLuminance() * 10)
|
||||
.toInt());
|
||||
|
||||
setState(() {
|
||||
//NOTE higher the number the lighter the color
|
||||
veryLightBorderColor = lightToDarkColors[19];
|
||||
lightBorderColor = lightToDarkColors[10];
|
||||
darkBorderColor = lightToDarkColors[0];
|
||||
paletteGenerator = newPaletteGenerator;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:hovering/hovering.dart';
|
||||
import 'package:unyo/api/anilist_api_anime.dart';
|
||||
import 'package:unyo/main.dart';
|
||||
|
||||
class AnimeButton extends StatefulWidget {
|
||||
const AnimeButton(
|
||||
{super.key,
|
||||
required this.text,
|
||||
required this.onTap,
|
||||
required this.width,
|
||||
required this.height,
|
||||
required this.horizontalAllignment,
|
||||
});
|
||||
const AnimeButton({
|
||||
super.key,
|
||||
required this.text,
|
||||
required this.onTap,
|
||||
required this.width,
|
||||
required this.height,
|
||||
required this.horizontalAllignment,
|
||||
});
|
||||
|
||||
final String text;
|
||||
final void Function() onTap;
|
||||
@@ -49,17 +50,37 @@ class _AnimeButtonState extends State<AnimeButton> {
|
||||
duration: const Duration(milliseconds: 130),
|
||||
alignment: Alignment.center,
|
||||
width: widget.width * 0.3,
|
||||
hoverWidth: widget.horizontalAllignment ? widget.width * 0.3 * 1.03 : widget.width * 0.3,
|
||||
hoverWidth: widget.horizontalAllignment
|
||||
? widget.width * 0.3 * 1.03
|
||||
: widget.width * 0.3,
|
||||
height: widget.height * 0.1,
|
||||
hoverHeight: widget.horizontalAllignment ? widget.height * 0.1 : widget.height * 0.1 * 1.1,
|
||||
cursor: SystemMouseCursors.click,
|
||||
hoverHeight: widget.horizontalAllignment
|
||||
? widget.height * 0.1
|
||||
: widget.height * 0.1 * 1.1,
|
||||
cursor: SystemMouseCursors.click,
|
||||
decoration: BoxDecoration(
|
||||
gradient: const LinearGradient(
|
||||
colors: [Colors.transparent, Colors.black87],
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment.bottomCenter,
|
||||
),
|
||||
border: Border.all(color: Colors.black54),
|
||||
border: Border.all(color: darkBorderColor, width: 2),
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
image: DecorationImage(
|
||||
opacity: 0.35,
|
||||
image: NetworkImage(
|
||||
bannerImageUrl!,
|
||||
),
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
hoverDecoration: BoxDecoration(
|
||||
gradient: const LinearGradient(
|
||||
colors: [Colors.transparent, Colors.black87],
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment.bottomCenter,
|
||||
),
|
||||
border: Border.all(color: darkBorderColor, width: 2),
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
image: DecorationImage(
|
||||
opacity: 0.35,
|
||||
@@ -83,7 +104,7 @@ class _AnimeButtonState extends State<AnimeButton> {
|
||||
Container(
|
||||
width: widget.width * 0.08,
|
||||
height: 2,
|
||||
color: Colors.white,
|
||||
color: lightBorderColor,
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:hovering/hovering.dart';
|
||||
import 'package:unyo/main.dart';
|
||||
|
||||
class AnimeWidget extends StatelessWidget {
|
||||
const AnimeWidget({
|
||||
@@ -85,9 +86,9 @@ class AnimeWidget extends StatelessWidget {
|
||||
child: Opacity(
|
||||
opacity: 0.8,
|
||||
child: Container(
|
||||
decoration: const BoxDecoration(
|
||||
color: Colors.grey,
|
||||
borderRadius: BorderRadius.only(
|
||||
decoration: BoxDecoration(
|
||||
color: lightBorderColor,
|
||||
borderRadius: const BorderRadius.only(
|
||||
bottomRight: Radius.circular(20),
|
||||
topLeft: Radius.circular(50)),
|
||||
),
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'dart:math';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:unyo/main.dart';
|
||||
import 'package:unyo/models/models.dart';
|
||||
import 'package:unyo/screens/anime_details_screen.dart';
|
||||
import 'package:unyo/widgets/widgets.dart';
|
||||
@@ -114,7 +115,7 @@ class _AnimeWidgetListState extends State<AnimeWidgetList> {
|
||||
style: TextStyle(
|
||||
fontSize: 25,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: widget.textColor,
|
||||
color: veryLightBorderColor,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:hovering/hovering.dart';
|
||||
import 'package:unyo/main.dart';
|
||||
|
||||
class MangaWidget extends StatelessWidget {
|
||||
const MangaWidget(
|
||||
@@ -88,9 +89,9 @@ class MangaWidget extends StatelessWidget {
|
||||
? Opacity(
|
||||
opacity: 0.8,
|
||||
child: Container(
|
||||
decoration: const BoxDecoration(
|
||||
color: Colors.grey,
|
||||
borderRadius: BorderRadius.only(
|
||||
decoration: BoxDecoration(
|
||||
color: lightBorderColor,
|
||||
borderRadius: const BorderRadius.only(
|
||||
bottomRight: Radius.circular(20),
|
||||
topLeft: Radius.circular(50)),
|
||||
),
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'dart:math';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:unyo/main.dart';
|
||||
import 'package:unyo/models/models.dart';
|
||||
import 'package:unyo/screens/manga_details_screen.dart';
|
||||
import 'package:unyo/widgets/widgets.dart';
|
||||
@@ -112,7 +113,7 @@ class _MangaWidgetListState extends State<MangaWidgetList> {
|
||||
style: TextStyle(
|
||||
fontSize: 25,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: widget.textColor,
|
||||
color: veryLightBorderColor,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:unyo/main.dart';
|
||||
import 'package:unyo/models/models.dart';
|
||||
import 'package:unyo/widgets/widgets.dart';
|
||||
import 'package:image_gradient/image_gradient.dart';
|
||||
@@ -30,7 +31,7 @@ class PageBannerWidget extends StatelessWidget {
|
||||
animeModel.bannerImage ?? animeModel.coverImage!,
|
||||
width: width,
|
||||
height: height,
|
||||
fit: animeModel.bannerImage != null ? BoxFit.fill : BoxFit.cover,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
colors: const [Colors.white, Colors.black87],
|
||||
begin: Alignment.topCenter,
|
||||
@@ -76,8 +77,8 @@ class PageBannerWidget extends StatelessWidget {
|
||||
),
|
||||
Text(
|
||||
animeModel.status!.replaceAll("_", " "),
|
||||
style: const TextStyle(
|
||||
color: Colors.white,
|
||||
style: TextStyle(
|
||||
color: lightBorderColor,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user