├── public
├── favicon.ico
├── logo192.png
├── logo512.png
├── robots.txt
├── netlify.toml
├── manifest.json
└── index.html
├── src
├── Component
│ ├── StatComponent
│ │ ├── lanCount.js
│ │ ├── Theme.js
│ │ ├── UserStat.jsx
│ │ ├── RepoStat.jsx
│ │ └── LanStat.jsx
│ ├── SocialComponent
│ │ ├── socialData.js
│ │ ├── _social.scss
│ │ └── Social.jsx
│ ├── BadgeComponent
│ │ ├── Badge.jsx
│ │ ├── _badge.scss
│ │ ├── lanBadge.js
│ │ ├── FwBadge.jsx
│ │ ├── LanguageBadge.jsx
│ │ ├── fwBade.js
│ │ ├── ProfileView.jsx
│ │ └── Supporter.jsx
│ ├── Stat.jsx
│ ├── _stat.scss
│ ├── Home.jsx
│ └── _home.scss
├── Image
│ └── readmeex.jpg
├── scss
│ ├── _variables.scss
│ ├── style.scss
│ ├── _mixins.scss
│ ├── _global.scss
│ ├── style.css.map
│ └── style.css
├── index.js
├── Permanent
│ ├── _navbar.scss
│ └── Navbar.jsx
└── App.js
├── LICENSE
├── package.json
└── README.md
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anhduy1202/Git-Readme/HEAD/public/favicon.ico
--------------------------------------------------------------------------------
/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anhduy1202/Git-Readme/HEAD/public/logo192.png
--------------------------------------------------------------------------------
/public/logo512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anhduy1202/Git-Readme/HEAD/public/logo512.png
--------------------------------------------------------------------------------
/src/Component/StatComponent/lanCount.js:
--------------------------------------------------------------------------------
1 | export const lanCountData = [1,2,3,4,5,6,7,8,9,10];
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/src/Image/readmeex.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anhduy1202/Git-Readme/HEAD/src/Image/readmeex.jpg
--------------------------------------------------------------------------------
/src/Component/SocialComponent/socialData.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | export const socialData = ["LinkedIn","Instagram","Twitter","Facebook","Discord","Youtube","Github"];
--------------------------------------------------------------------------------
/src/scss/_variables.scss:
--------------------------------------------------------------------------------
1 |
2 |
3 | $font-sm: 1rem;
4 | $font-md: 1.5rem;
5 | $font-mdlg: 1.75rem;
6 | $font-lg: 2rem;
7 | $font-xlg: 2.5rem;
8 |
9 | //Font-family:
10 | $code: 'Source Code Pro', monospace;
--------------------------------------------------------------------------------
/src/scss/style.scss:
--------------------------------------------------------------------------------
1 | @import './global';
2 | @import './variables';
3 | @import '../Component/stat';
4 | @import '../Component/SocialComponent/social';
5 | @import '../Permanent/navbar';
6 | @import '../Component/home';
7 | @import './mixins';
8 | @import '../Component/BadgeComponent/badge';
--------------------------------------------------------------------------------
/src/Component/StatComponent/Theme.js:
--------------------------------------------------------------------------------
1 |
2 | export const themeData = [
3 | "tokyonight","default","dark","radical","merko","onedark","cobalt","synthwave","highcontrast","dracula","pussian","vue","vue-dark","shades-of-purple","nightowl","buefy","algolia","gotham","midnight-purple","react","jolly","github_dark","outrun"
4 | ]
5 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import App from './App';
4 |
5 | ReactDOM.render(
6 |
7 |
8 | ,
9 | document.getElementById('root')
10 | );
11 |
12 | // If you want to start measuring performance in your app, pass a function
13 | // to log results (for example: reportWebVitals(console.log))
14 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
15 |
--------------------------------------------------------------------------------
/src/Component/BadgeComponent/Badge.jsx:
--------------------------------------------------------------------------------
1 | import FwBadge from "./FwBadge"
2 | import LanguageBadge from "./LanguageBadge"
3 | import ProfileView from "./ProfileView"
4 | import Supporter from "./Supporter"
5 |
6 | const Badge = () => {
7 |
8 |
9 | return (
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | );
18 | }
19 |
20 | export default Badge;
--------------------------------------------------------------------------------
/src/scss/_mixins.scss:
--------------------------------------------------------------------------------
1 | //640px, 1024px, 1400px
2 | $breakpoints-up: ("medium" : "50em", "large" : "64em", "xlarge": "87.5em");
3 |
4 | //639px, 1023pz, 1399px
5 | $breakpoints-down: ("small" : "25em", "medium" : "63.9375em", "large": "87.4375em");
6 |
7 | @mixin breakpoint-up($size) {
8 | @media (min-width: map-get($breakpoints-up, $size)) {
9 | @content;
10 | }
11 | }
12 | @mixin breakpoint-down($size) {
13 | @media (max-width: map-get($breakpoints-down, $size)) {
14 | @content;
15 | }
16 | }
--------------------------------------------------------------------------------
/public/netlify.toml:
--------------------------------------------------------------------------------
1 | [[headers]]
2 | for = "/*"
3 | [headers.values]
4 | X-Frame-Options = "DENY"
5 | X-XSS-Protection = "1; mode=block"
6 | Content-Security-Policy = "form-action https:"
7 | Referrer-Policy = "strict-origin-when-cross-origin"
8 | Strict-Transport-Security = "max-age=2592000"
9 | Feature-Policy = "vibrate 'none'; geolocation 'none'; midi 'none'; notifications 'none'; push 'none'; sync-xhr 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope 'none'; speaker 'none'; vibrate 'none'; fullscreen 'none'; payment 'none'"
10 |
--------------------------------------------------------------------------------
/src/Permanent/_navbar.scss:
--------------------------------------------------------------------------------
1 | @import '../scss/variables';
2 | @import '../scss/mixins';
3 | .navbar-container {
4 | align-self: flex-end;
5 | margin-top: 1rem;
6 | margin-bottom: 1rem;
7 | margin-right: 3rem;
8 | @include breakpoint-down(medium){
9 | margin-left: 2rem;
10 | }
11 | a{
12 | font-size: 1.2rem;
13 | font-family: $code;
14 | font-weight: 600;
15 |
16 | }
17 | @include breakpoint-down(medium) {
18 | a{
19 | font-size: 0.9rem;
20 |
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/src/scss/_global.scss:
--------------------------------------------------------------------------------
1 | @import "./variables";
2 | .App {
3 | height: 100vh;
4 | width: 100vw;
5 | display: flex;
6 | flex-direction: column;
7 | padding:0;
8 | font-size: $font-md;
9 | position: relative;
10 | font-family: $code;
11 | align-items: center;
12 |
13 |
14 | }
15 |
16 | html{
17 | height: 100vh;
18 | font-size: 100%;
19 | box-sizing: border-box;
20 | overflow-x: hidden;
21 | background-color: #32363b;
22 |
23 | }
24 | *, *::before, *::after {
25 | box-sizing: inherit;
26 | }
27 |
28 |
29 |
--------------------------------------------------------------------------------
/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | },
10 | {
11 | "src": "logo192.png",
12 | "type": "image/png",
13 | "sizes": "192x192"
14 | },
15 | {
16 | "src": "logo512.png",
17 | "type": "image/png",
18 | "sizes": "512x512"
19 | }
20 | ],
21 | "start_url": ".",
22 | "display": "standalone",
23 | "theme_color": "#000000",
24 | "background_color": "#ffffff"
25 | }
26 |
--------------------------------------------------------------------------------
/src/Component/SocialComponent/_social.scss:
--------------------------------------------------------------------------------
1 | @import '../../scss/variables';
2 |
3 | .social {
4 | &-container{
5 | width:70%;
6 | display: flex;
7 | flex-direction: column;
8 | }
9 | &-icon{
10 |
11 | min-width: 100%;
12 | margin-top: 2.5rem;
13 |
14 | }
15 | &-link{
16 | min-width: 15%;
17 | @include breakpoint-down(medium){
18 | min-width: 30%;
19 | }
20 | }
21 |
22 | }
23 |
24 | .socialStat {
25 | &-form {
26 | display: flex;
27 | min-width: 100%;
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/src/Component/Stat.jsx:
--------------------------------------------------------------------------------
1 | import LanStat from "./StatComponent/LanStat";
2 | import RepoStat from "./StatComponent/RepoStat";
3 | import UserStat from "./StatComponent/UserStat";
4 |
5 |
6 |
7 | const Stat = (props) => {
8 |
9 |
10 | return (
11 |
12 |
13 |
14 |
15 |
16 |
17 | {/*
18 |
19 |
20 |
21 | */}
22 |
23 | );
24 | }
25 |
26 | export default Stat;
--------------------------------------------------------------------------------
/src/App.js:
--------------------------------------------------------------------------------
1 | import { BrowserRouter as Router, Redirect, Route, Switch } from 'react-router-dom';
2 | import Badge from './Component/BadgeComponent/Badge';
3 | import Home from './Component/Home';
4 | import Social from './Component/SocialComponent/Social';
5 | import Stat from './Component/Stat';
6 | import Navbar from './Permanent/Navbar';
7 | import './scss/style.css';
8 |
9 | function App() {
10 | return (
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | );
33 | }
34 |
35 | export default App;
36 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Daniel Truong
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "readmegithub",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "@material-ui/core": "^4.12.3",
7 | "@material-ui/icons": "^4.11.2",
8 | "@testing-library/jest-dom": "^5.14.1",
9 | "@testing-library/react": "^11.2.7",
10 | "@testing-library/user-event": "^12.8.3",
11 | "react": "^17.0.2",
12 | "react-dom": "^17.0.2",
13 | "react-router-dom": "^5.2.1",
14 | "react-scripts": "4.0.3",
15 | "react-use-clipboard": "^1.0.7",
16 | "web-vitals": "^1.1.2"
17 | },
18 | "scripts": {
19 | "start": "react-scripts start",
20 | "build": "CI= react-scripts build",
21 | "test": "react-scripts test",
22 | "eject": "react-scripts eject"
23 | },
24 | "eslintConfig": {
25 | "extends": [
26 | "react-app",
27 | "react-app/jest"
28 | ]
29 | },
30 | "browserslist": {
31 | "production": [
32 | ">0.2%",
33 | "not dead",
34 | "not op_mini all"
35 | ],
36 | "development": [
37 | "last 1 chrome version",
38 | "last 1 firefox version",
39 | "last 1 safari version"
40 | ]
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |

[](https://app.netlify.com/sites/gitmee/deploys)
3 | # Git Readme: Custom Github Readme in an easier way 🥳
4 |
5 |
6 |
7 | 👆 These badges are copy pasted from this website
8 |
9 |
10 | ## Make your Github Readme prettier in 2 steps:
11 | * Go to your Github readme to customize it
12 | * Use this website and copy the code you need 😍
13 |
14 | ### Read more about this project on my blog: https://danieltruong.hashnode.dev/git-readme-customize-your-github-readme-in-an-easier-way
15 |
16 | ## Give it a ⭐️ if you enjoy using the website
17 |
--------------------------------------------------------------------------------
/src/Component/BadgeComponent/_badge.scss:
--------------------------------------------------------------------------------
1 | @import "../../scss/variables";
2 | @import "../../scss/mixins";
3 |
4 | .badge {
5 | &-link {
6 | min-width: 35%;
7 | }
8 |
9 |
10 | }
11 |
12 | .badge-container {
13 | max-width: 100%;
14 | @include breakpoint-down(medium){
15 | margin-left: 2rem;
16 | }
17 | }
18 |
19 | .mainbadge{
20 | @include breakpoint-down(medium){
21 | max-width: 100%;
22 | }
23 | }
24 |
25 | .badgeStat{
26 | max-width: 50%;
27 | padding-bottom: 2.5rem;
28 | &-form {
29 | display: flex;
30 | min-width: 100%;
31 | margin-bottom: 1.5rem;
32 | @include breakpoint-down(medium){
33 | min-width: 80%;
34 | }
35 |
36 | }
37 | @include breakpoint-down(medium){
38 | max-width: 100%;
39 | p {
40 | font-size: 0.87rem;
41 | }
42 | }
43 | }
44 |
45 | .countStat {
46 | max-width: 50%;
47 | padding-bottom: 2rem;
48 | flex-direction: column;
49 | @include breakpoint-down(medium) {
50 | max-width: 100%;
51 | img {
52 | transform: scale(1.5);
53 | margin-left: 1rem;
54 | margin-bottom: 1rem;
55 | }
56 | }
57 |
58 |
59 | }
--------------------------------------------------------------------------------
/src/Component/_stat.scss:
--------------------------------------------------------------------------------
1 | @import '../scss/variables';
2 | @import '../scss/mixins';
3 |
4 | .stat {
5 | &-container{
6 | width:70%;
7 | display: flex;
8 | flex-direction: column;
9 | @include breakpoint-down(medium){
10 | min-width: 80%;
11 | }
12 | }
13 | }
14 | .social {
15 | &-container {
16 | @include breakpoint-down(medium){
17 | min-width: 100%;
18 | margin-left: 2rem;
19 | }
20 | }
21 |
22 | &-icon {
23 | @include breakpoint-down(medium){
24 | max-width: 100%;
25 | }
26 | }
27 | }
28 |
29 | .socialStat{
30 | @include breakpoint-down(medium) {
31 | }
32 | }
33 | .userStat, .lanStat, .socialStat, .badgeStat, .countStat{
34 | display: flex;
35 | flex-direction: row;
36 | padding-bottom: 3rem;
37 | border-bottom: 2px solid #99aab5;
38 | flex-wrap: wrap;
39 | min-width: 40%;
40 | &-form {
41 | display: flex;
42 | max-width: 50%;
43 | flex-direction: column;
44 | @include breakpoint-down(medium){
45 | max-width: 110%;
46 | margin-right: -1rem;
47 | margin-bottom: 2rem;
48 | }
49 | }
50 |
51 | }
52 |
53 | .lanStat {
54 |
55 | &-img {
56 | margin-bottom: 3rem;
57 | }
58 | }
59 |
60 |
61 | .userStat{
62 | &-img{
63 | @include breakpoint-down(medium) {
64 | max-width: 100%;
65 | }
66 | }
67 | }
--------------------------------------------------------------------------------
/src/Permanent/Navbar.jsx:
--------------------------------------------------------------------------------
1 | import { Breadcrumbs, makeStyles } from "@material-ui/core"
2 | import { Link } from "react-router-dom"
3 | import HomeIcon from '@material-ui/icons/Home';
4 | import EqualizerIcon from '@material-ui/icons/Equalizer';
5 | import WifiIcon from '@material-ui/icons/Wifi';
6 | import LabelIcon from '@material-ui/icons/Label';
7 | const useStyles = makeStyles(() => ({
8 |
9 | link: {
10 | display:"flex",
11 | textDecoration:"none",
12 | color:"#FFFFFF"
13 | },
14 |
15 | icon: {
16 | color:"#7289DA",
17 | textDecoration:"none",
18 | paddingRight: 4
19 |
20 | },
21 | bread: {
22 | color: "#FFFFFF"
23 | }
24 | }));
25 |
26 | const Navbar = () => {
27 | const classes = useStyles();
28 | return (
29 |
50 |
51 | );
52 | }
53 |
54 | export default Navbar;
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
23 |
24 |
33 | Github Read Me
34 |
35 |
36 |
37 |
38 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/src/Component/Home.jsx:
--------------------------------------------------------------------------------
1 | import example from '../Image/readmeex.jpg';
2 |
3 | const Home = (props) => {
4 | return (
5 |
6 |
7 |
8 | The only website you'll need to make a pretty looking Readme on Github
9 |
10 |
11 |
12 | Here's an example from my Github Readme
13 |
14 |
15 |
16 |
17 | How It Works? 🤔
18 | It's easy! Just follow these steps
19 |
20 | - Sign In/ Sign Up to your Github Account
21 | - At the homepage, click on the readme (introduce yourself)
22 | - Type anything you want
23 | - Use this website and copy the code you need 😍
24 |
25 |
26 |
27 |
28 | Credits:
29 | Awesome resources that I collect information from
30 |
44 |
45 |
46 |
47 |
Thank You!
48 |
Give it a ⭐️ if you enjoy using the website
49 |
🌞 My Github 🌞
50 |
51 |
52 | );
53 | }
54 |
55 | export default Home;
56 |
--------------------------------------------------------------------------------
/src/Component/BadgeComponent/lanBadge.js:
--------------------------------------------------------------------------------
1 |
2 | export const lanBadge = [
3 | {
4 | language: "C", link: "https://img.shields.io/badge/c-%2300599C.svg?style=for-the-badge&logo=c&logoColor=white"
5 | },
6 | {
7 | language: "C#", link: "https://img.shields.io/badge/c%23-%23239120.svg?style=for-the-badge&logo=c-sharp&logoColor=white"
8 | },
9 | {
10 | language: "C++", link: "https://img.shields.io/badge/c++-%2300599C.svg?style=for-the-badge&logo=c%2B%2B&logoColor=white"
11 | },
12 | {
13 | language: "CSS3", link: "https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white"
14 | },
15 | {
16 | language: "Dart", link: "https://img.shields.io/badge/dart-%230175C2.svg?style=for-the-badge&logo=dart&logoColor=white"
17 | },
18 | {
19 | language: "Golang", link: "https://img.shields.io/badge/go-%2300ADD8.svg?style=for-the-badge&logo=go&logoColor=white"
20 | },
21 | {
22 | language: "GraphQL", link: "https://img.shields.io/badge/-GraphQL-E10098?style=for-the-badge&logo=graphql&logoColor=white"
23 | },
24 | {
25 | language: "HTML5", link: "https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white"
26 | },
27 | {
28 | language: "Java", link: "https://img.shields.io/badge/java-%23ED8B00.svg?style=for-the-badge&logo=java&logoColor=white"
29 | },
30 | {
31 | language: "Javascript", link: "https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E"
32 | },
33 | {
34 | language:"Kotlin", link: "https://img.shields.io/badge/kotlin-%230095D5.svg?style=for-the-badge&logo=kotlin&logoColor=white"
35 | },
36 | {
37 | language:"PHP", link: "https://img.shields.io/badge/php-%23777BB4.svg?style=for-the-badge&logo=php&logoColor=white"
38 | },
39 | {
40 | language:"Python", link: "https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54"
41 | },
42 | {
43 | language:"R", link: "https://img.shields.io/badge/r-%23276DC3.svg?style=for-the-badge&logo=r&logoColor=white"
44 | },
45 | {
46 | language:"Ruby", link: "https://img.shields.io/badge/ruby-%23CC342D.svg?style=for-the-badge&logo=ruby&logoColor=white"
47 | },
48 | {
49 | language:"Rust", link: "https://img.shields.io/badge/rust-%23000000.svg?style=for-the-badge&logo=rust&logoColor=white"
50 | },
51 | {
52 | language:"Shell Script", link: "https://img.shields.io/badge/shell_script-%23121011.svg?style=for-the-badge&logo=gnu-bash&logoColor=white"
53 | },
54 | {
55 | language:"Swift", link: "https://img.shields.io/badge/swift-F54A2A?style=for-the-badge&logo=swift&logoColor=white"
56 | },
57 | {
58 | language:"TypeScript", link: "https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white"
59 | }
60 |
61 | ]
--------------------------------------------------------------------------------
/src/Component/_home.scss:
--------------------------------------------------------------------------------
1 | @import '../scss/variables';
2 | @import '../scss/mixins';
3 |
4 | .home{
5 | &-container{
6 | display: flex;
7 | justify-content: center;
8 | align-items:center;
9 | flex-direction: column;
10 | @include breakpoint-down(medium) {
11 | margin-left: 1.2rem;
12 | margin-right: 1.2rem;
13 | }
14 | }
15 |
16 |
17 |
18 | &-example {
19 | margin-top: 2rem;
20 | max-width: 70%;
21 | box-shadow: 2px 2px 14px 2px #3b497c;
22 | margin: 0 1.2rem 0 1.2rem;
23 | @include breakpoint-down(medium) {
24 | max-width:80%;
25 | }
26 | }
27 | &-subheader{
28 | color:#999999;
29 | @include breakpoint-down(medium) {
30 | font-size: 1.2rem;
31 | }
32 | }
33 | }
34 | header{
35 | margin-top: 2.5rem;
36 | margin-bottom: 2rem;
37 | color:#7289Da;
38 | font-weight: 600;
39 | font-size: $font-mdlg;
40 |
41 | @include breakpoint-down(medium) {
42 | font-size: 1.4rem;
43 | text-align: center;
44 | }
45 | }
46 | .exampledes{
47 | color:#6e85d6;
48 | font-size: 1.3rem;
49 | text-align: center;
50 | max-width: 50%;
51 | @include breakpoint-down(medium) {
52 | margin-top: 2rem;
53 | font-size: 1.2rem;
54 | }
55 | }
56 | .how {
57 | margin-top: 2rem;
58 | text-align: center;
59 | &-header{
60 | font-size: $font-lg;
61 | color:#7289Da;
62 | @include breakpoint-down(medium) {
63 | font-size: 1.5rem;
64 | text-align: center;
65 | }
66 | }
67 | &-subheader{
68 | color:#999999;
69 | @include breakpoint-down(medium) {
70 | font-size: 1.2rem;
71 | }
72 | }
73 | &-steps{
74 | display: flex;
75 | color:rgb(197, 194, 194);
76 | flex-direction: column;
77 | align-items: flex-start;
78 | @include breakpoint-down(medium) {
79 | margin: 2rem 2rem 0 2rem;
80 | font-size: 1rem;
81 | }
82 | }
83 | li{
84 | margin-bottom: 1.4rem;
85 | }
86 |
87 | }
88 |
89 | .credits {
90 | text-align: center;
91 | &-header{
92 |
93 | font-size: $font-lg;
94 | color:#7289Da;
95 | @include breakpoint-down(medium) {
96 | font-size: 1.5rem;
97 | text-align: center;
98 | }
99 | }
100 | &-subheader{
101 |
102 | color:#999999;
103 | @include breakpoint-down(medium) {
104 | font-size: 1.2rem;
105 | text-align: center;
106 | }
107 | }
108 | &-grid {
109 | display: grid;
110 | grid-template-columns: repeat(2,1fr);
111 | text-align: center;
112 | row-gap: 1.5rem;
113 | @include breakpoint-down(medium) {
114 | margin: 0 2rem 0 2rem;
115 | grid-template-columns: repeat(2,0.5fr);
116 | text-align: center;
117 | }
118 | a{
119 | text-decoration: none;
120 | font-size: 1.3rem;
121 | @include breakpoint-down(medium){
122 | font-size: 1.1rem;
123 | }
124 | }
125 |
126 | }
127 |
128 |
129 | }
130 |
131 | .theme,.count{
132 | margin-bottom: 4rem;
133 | padding-bottom: 4rem;
134 | border-bottom: 2px solid #7285c9;
135 | }
136 |
137 | .myrepo {
138 | text-align: center;
139 | &-header {
140 | color: #7289Da;
141 | font-weight: 600;
142 | font-size: $font-lg;
143 | @include breakpoint-down(medium) {
144 | font-size: 1.5rem;
145 | text-align: center;
146 | }
147 | }
148 | &-star {
149 | color:white;
150 | @include breakpoint-down(medium) {
151 | margin: 0 2rem 2rem 2rem;
152 | font-size: 1.2rem;
153 | text-align: center;
154 | }
155 | }
156 | a{
157 | font-size: 1.6rem;
158 | text-decoration: none;
159 | color:#afc1fc;
160 | font-weight: 600;
161 | @include breakpoint-down(medium) {
162 | font-size: 1.4rem;
163 | }
164 |
165 | }
166 | margin-bottom: 4rem;
167 | }
--------------------------------------------------------------------------------
/src/Component/BadgeComponent/FwBadge.jsx:
--------------------------------------------------------------------------------
1 | import { Accordion, AccordionDetails, AccordionSummary, Button, Card, CardContent, FormControl, Input, InputAdornment, InputLabel, makeStyles, Menu, MenuItem, Select, TextField, Typography } from "@material-ui/core"
2 | import { useState } from "react";
3 | import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
4 | import useCopyClipboard from "react-use-clipboard";
5 | import { useEffect } from "react";
6 | import { fwBadge } from "./fwBade";
7 |
8 | const useStyles = makeStyles(() => ({
9 |
10 | header: {
11 | color: "#7289Da",
12 | fontFamily: "Source Code Pro",
13 | fontWeight: 700,
14 | fontSize: "1.5rem",
15 | marginTop: "2.5rem",
16 | marginBottom: "3rem",
17 | alignSelf: "center",
18 |
19 | },
20 | form: {
21 | alignSelf: "flex-start",
22 | minWidth: "100%",
23 | fontFamily: "Source Code Pro",
24 | },
25 | lanField: {
26 | display: "flex",
27 | flexDirection: "row",
28 | maxWidth: "100%",
29 | },
30 | link: {
31 | justifySelf: "flex-end",
32 | minWidth: "20%",
33 | },
34 |
35 | lan: {
36 | maxWidth: "80%",
37 | marginBottom: "1rem",
38 | marginTop: "2rem",
39 | fontFamily: "Source Code Pro",
40 | backgroundColor: "white",
41 | padding: "0rem",
42 | backgroundColor: "#7c93e6",
43 |
44 | },
45 |
46 | item: {
47 | color: "#586fc5"
48 | },
49 | button: {
50 | display: "block",
51 | marginTop: "1rem",
52 | fontWeight: 700,
53 | fontFamily: "Source Code Pro"
54 | },
55 | label: {
56 | color: "#FFFFFF",
57 |
58 | },
59 | select: {
60 | minWidth: "80%",
61 | marginRight: "2rem",
62 | color: "#7289Da",
63 | boxShadow: "1px 1px 12px 3px #4d5661",
64 | paddingLeft: "0.5rem",
65 | paddingTop:"1rem",
66 | paddingBottom:"1rem"
67 |
68 | },
69 | typocode: {
70 | whiteSpace:"normal",
71 | overflow:"hidden",
72 | color: "white",
73 | fontWeight: 700,
74 | fontFamily: "Source Code Pro"
75 | },
76 |
77 |
78 |
79 | }))
80 |
81 | const FwBadge = () => {
82 | const classes = useStyles();
83 | const [fwLink, setLink] = useState("https://img.shields.io/badge/.NET-5C2D91?style=for-the-badge&logo=.net&logoColor=white")
84 | const [code, setCode] = useState(`
`);
85 | const [isCopied, setCopied] = useCopyClipboard(code);
86 | const [Copied, setCop] = useState(false);
87 |
88 | useEffect(() => {
89 | setCode(`
`);
90 | }, [fwLink])
91 |
92 | const handleChange = (e) => {
93 | setLink(e);
94 | setCop(false);
95 | }
96 |
97 | const handleClick= () => {
98 | setCopied(code);
99 | setCop(true);
100 | }
101 |
102 | return (
103 |
104 |
105 | Frameworks/Platforms/Libraries:
106 |
107 |
108 |
126 |
127 | }
129 | aria-controls="panel1a-content"
130 | id="panel1a-header"
131 | >
132 | View Code
133 |
134 |
135 |
136 | {code}
137 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 | );
150 | }
151 |
152 | export default FwBadge;
--------------------------------------------------------------------------------
/src/Component/BadgeComponent/LanguageBadge.jsx:
--------------------------------------------------------------------------------
1 | import { Accordion, AccordionDetails, AccordionSummary, Button, Card, CardContent, FormControl, Input, InputAdornment, InputLabel, makeStyles, Menu, MenuItem, Select, TextField, Typography } from "@material-ui/core"
2 | import { AccountCircle, SettingsInputComponentTwoTone } from "@material-ui/icons";
3 | import { useState } from "react";
4 | import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
5 | import useCopyClipboard from "react-use-clipboard";
6 | import { useEffect } from "react";
7 | import { lanBadge } from "./lanBadge";
8 |
9 | const useStyles = makeStyles(() => ({
10 |
11 | header: {
12 | color: "#7289Da",
13 | fontFamily: "Source Code Pro",
14 | fontWeight: 700,
15 | fontSize: "1.5rem",
16 | marginTop: "2.5rem",
17 | marginBottom: "3rem",
18 | alignSelf: "center",
19 |
20 | },
21 | form: {
22 | alignSelf: "flex-start",
23 | minWidth: "100%",
24 | fontFamily: "Source Code Pro",
25 |
26 | },
27 | lanField: {
28 | display:"flex",
29 | flexDirection:"row",
30 | maxWidth:"100%",
31 | },
32 | link: {
33 | justifySelf:"flex-end",
34 | minWidth:"20%",
35 | },
36 |
37 |
38 | lan: {
39 | maxWidth: "80%",
40 | marginBottom: "1rem",
41 | marginTop: "2rem",
42 | fontFamily: "Source Code Pro",
43 | backgroundColor:"white",
44 | padding: "0rem",
45 | backgroundColor: "#7c93e6",
46 |
47 | },
48 |
49 | item: {
50 | color: "#586fc5"
51 | },
52 | button: {
53 | display: "block",
54 | marginTop: "1rem",
55 | fontWeight: 700,
56 | fontFamily: "Source Code Pro"
57 | },
58 | label: {
59 | color: "#FFFFFF",
60 |
61 | },
62 | select: {
63 | minWidth:"80%",
64 | marginRight:"2rem",
65 | color: "#7289Da",
66 | boxShadow: "1px 1px 12px 3px #4d5661",
67 | paddingLeft: "0.5rem",
68 |
69 |
70 | },
71 |
72 | typocode: {
73 | whiteSpace:"normal",
74 | overflow:"hidden",
75 | color: "white",
76 | fontWeight: 700,
77 | fontFamily: "Source Code Pro"
78 | },
79 |
80 |
81 |
82 | }))
83 |
84 | const LanguageBadge = () => {
85 | const classes = useStyles();
86 | const [lanLink, setLink] = useState("https://img.shields.io/badge/c%23-%23239120.svg?style=for-the-badge&logo=c-sharp&logoColor=white");
87 | const [badgeCode, setCode] = useState(`
`);
88 | const [Copied, setCop] = useState(false);
89 | const [isCopied, setCopied] = useCopyClipboard(badgeCode);
90 |
91 | useEffect(() => {
92 | setCode(`
`);
93 | }, [lanLink])
94 |
95 |
96 | const handleChange = (link) => {
97 | setLink(link);
98 | setCop(false);
99 | }
100 |
101 | const handleClick = () => {
102 | setCopied(badgeCode);
103 | setCop(true);
104 | }
105 | return (
106 |
107 |
108 | Programming Languages:
109 |
110 |
111 |
131 |
132 |
133 | }
135 | aria-controls="panel1a-content"
136 | id="panel1a-header"
137 | >
138 | View Code
139 |
140 |
141 |
142 | {badgeCode}
143 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 | );
155 | }
156 |
157 | export default LanguageBadge;
--------------------------------------------------------------------------------
/src/Component/BadgeComponent/fwBade.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | export const fwBadge = [
4 | {
5 | name: ".NET", url: "https://img.shields.io/badge/.NET-5C2D91?style=for-the-badge&logo=.net&logoColor=white"
6 | },
7 | {
8 | name: "Angular", url: "https://img.shields.io/badge/angular-%23DD0031.svg?style=for-the-badge&logo=angular&logoColor=white"
9 | },
10 | {
11 | name: "Angular.js", url: "https://img.shields.io/badge/angular.js-%23E23237.svg?style=for-the-badge&logo=angularjs&logoColor=white"
12 | },
13 | {
14 | name: "Ant Design", url: "https://img.shields.io/badge/-AntDesign-%230170FE?style=for-the-badge&logo=ant-design&logoColor=white"
15 | },
16 | {
17 | name: "Apollo GraphQL", url: "https://img.shields.io/badge/-ApolloGraphQL-311C87?style=for-the-badge&logo=apollo-graphql"
18 | },
19 | {
20 | name: "Bootstrap", url: "https://img.shields.io/badge/bootstrap-%23563D7C.svg?style=for-the-badge&logo=bootstrap&logoColor=white"
21 | },
22 | {
23 | name: "Django", url: "https://img.shields.io/badge/django-%23092E20.svg?style=for-the-badge&logo=django&logoColor=white"
24 | },
25 | {
26 | name: "Electron.js", url: "https://img.shields.io/badge/Electron-191970?style=for-the-badge&logo=Electron&logoColor=white"
27 | },
28 | {
29 | name: "Express.js", url: "https://img.shields.io/badge/express.js-%23404d59.svg?style=for-the-badge&logo=express&logoColor=%2361DAFB"
30 | },
31 | {
32 | name: "FastAPI", url: "https://img.shields.io/badge/FastAPI-005571?style=for-the-badge&logo=fastapi"
33 | },
34 | {
35 | name: "Flask", url: "https://img.shields.io/badge/flask-%23000.svg?style=for-the-badge&logo=flask&logoColor=white"
36 | },
37 | {
38 | name: "Flutter", url: "https://img.shields.io/badge/Flutter-%2302569B.svg?style=for-the-badge&logo=Flutter&logoColor=white"
39 | },
40 | {
41 | name: "Gatsby.js", url: "https://img.shields.io/badge/Gatsby-%23663399.svg?style=for-the-badge&logo=gatsby&logoColor=white"
42 | },
43 | {
44 | name: "Gulp", url: "https://img.shields.io/badge/GULP-%23CF4647.svg?style=for-the-badge&logo=gulp&logoColor=white"
45 | },
46 | {
47 | name: "jQuery", url: "https://img.shields.io/badge/jquery-%230769AD.svg?style=for-the-badge&logo=jquery&logoColor=white"
48 | },
49 | {
50 | name: "Laravel", url: "https://img.shields.io/badge/laravel-%23FF2D20.svg?style=for-the-badge&logo=laravel&logoColor=white"
51 | },
52 | {
53 | name: "MaterialUI", url: "https://img.shields.io/badge/materialui-%230081CB.svg?style=for-the-badge&logo=material-ui&logoColor=white"
54 | },
55 | {
56 | name: "NPM", url: "https://img.shields.io/badge/NPM-%23000000.svg?style=for-the-badge&logo=npm&logoColor=white"
57 | },
58 | {
59 | name: "NestJS", url: "https://img.shields.io/badge/nestjs-%23E0234E.svg?style=for-the-badge&logo=nestjs&logoColor=white"
60 | },
61 | {
62 | name: "NextJS", url: "https://img.shields.io/badge/Next-black?style=for-the-badge&logo=next.js&logoColor=white"
63 | },
64 | {
65 | name: "Node.js", url: "https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge&logo=node.js&logoColor=white"
66 | },
67 | {
68 | name: "OpenCV", url: "https://img.shields.io/badge/opencv-%23white.svg?style=for-the-badge&logo=opencv&logoColor=white"
69 | },
70 | {
71 | name: "OpenGL", url: "https://img.shields.io/badge/OpenGL-%23FFFFFF.svg?style=for-the-badge&logo=opengl"
72 | },
73 | {
74 | name: "Rails", url: "https://img.shields.io/badge/rails-%23CC0000.svg?style=for-the-badge&logo=ruby-on-rails&logoColor=white"
75 | },
76 | {
77 | name: "React", url: "https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB"
78 | },
79 | {
80 | name: "React Native", url: "https://img.shields.io/badge/react_native-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB"
81 | },
82 | {
83 | name: "React Router", url: "https://img.shields.io/badge/React_Router-CA4245?style=for-the-badge&logo=react-router&logoColor=white"
84 | },
85 | {
86 | name: "Redux", url: "https://img.shields.io/badge/redux-%23593d88.svg?style=for-the-badge&logo=redux&logoColor=white"
87 | },
88 | {
89 | name: "SASS", url: "https://img.shields.io/badge/SASS-hotpink.svg?style=for-the-badge&logo=SASS&logoColor=white"
90 | },
91 | {
92 | name: "Spring", url: "https://img.shields.io/badge/spring-%236DB33F.svg?style=for-the-badge&logo=spring&logoColor=white"
93 | },
94 | {
95 | name: "Strapi", url: "https://img.shields.io/badge/strapi-%232E7EEA.svg?style=for-the-badge&logo=strapi&logoColor=white"
96 | },
97 | {
98 | name: "Styled Components", url: "https://img.shields.io/badge/styled--components-DB7093?style=for-the-badge&logo=styled-components&logoColor=white"
99 | },
100 | {
101 | name: "TailwindCSS", url: "https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge&logo=tailwind-css&logoColor=white"
102 | },
103 | {
104 | name: "Three.js", url: "https://img.shields.io/badge/threejs-black?style=for-the-badge&logo=three.js&logoColor=white"
105 | },
106 | {
107 | name: "Vue.js", url: "https://img.shields.io/badge/vuejs-%2335495e.svg?style=for-the-badge&logo=vuedotjs&logoColor=%234FC08D"
108 | }
109 | ]
110 |
--------------------------------------------------------------------------------
/src/Component/BadgeComponent/ProfileView.jsx:
--------------------------------------------------------------------------------
1 | import { Accordion, AccordionDetails, AccordionSummary, Button, Card, CardContent, FormControl, Input, InputAdornment, InputLabel, makeStyles, Menu, MenuItem, Select, TextField, Typography } from "@material-ui/core"
2 | import { useState } from "react";
3 | import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
4 | import { AccountCircle } from "@material-ui/icons";
5 |
6 | import useCopyClipboard from "react-use-clipboard";
7 | import { useEffect } from "react";
8 |
9 |
10 | const useStyles = makeStyles(() => ({
11 |
12 | header: {
13 | color: "#7289Da",
14 | fontFamily: "Source Code Pro",
15 | fontWeight: 700,
16 | fontSize: "1.5rem",
17 | marginTop: "2.5rem",
18 | marginBottom: "3rem",
19 | alignSelf: "center",
20 |
21 | },
22 | input: {
23 | maxWidth: "90%",
24 | fontFamily: "Source Code Pro",
25 | color: "#FFFFFF"
26 |
27 | },
28 | form: {
29 | alignSelf: "flex-start",
30 | minWidth: "100%",
31 | fontFamily: "Source Code Pro",
32 | },
33 | form2: {
34 | alignSelf: "flex-start",
35 | minWidth: "100%",
36 | fontFamily: "Source Code Pro",
37 | marginTop:"1rem",
38 | },
39 | lanField: {
40 | display: "flex",
41 | flexDirection: "row",
42 | maxWidth: "100%",
43 | },
44 | lan: {
45 | maxWidth: "80%",
46 | marginBottom: "1rem",
47 | marginTop: "2rem",
48 | fontFamily: "Source Code Pro",
49 | backgroundColor: "white",
50 | padding: "0rem",
51 | backgroundColor: "#7c93e6",
52 |
53 | },
54 | link: {
55 | justifySelf: "flex-end",
56 | minWidth: "20%",
57 | },
58 | view: {
59 | maxWidth: "20%",
60 | }
61 | ,
62 | button: {
63 | display: "block",
64 | marginTop: "1rem",
65 | fontWeight: 700,
66 | fontFamily: "Source Code Pro"
67 | },
68 | label: {
69 | color: "#FFFFFF",
70 | },
71 |
72 |
73 | typocode: {
74 | whiteSpace:"normal",
75 | overflow:"hidden",
76 | color: "white",
77 | fontWeight: 700,
78 | fontFamily: "Source Code Pro"
79 | },
80 |
81 |
82 |
83 | }))
84 | const ProfileView = () => {
85 | const [username, setUsername] = useState("anhduy1202");
86 | const [color, setColor] = useState("blue");
87 | const [code, setCode] = useState(`
`);
88 | const [isCopied, setCopied] = useCopyClipboard(code);
89 | const [Copied, setCop] = useState(false);
90 |
91 |
92 | useEffect(() => {
93 | setCode(`
`);
94 |
95 | }, [username, color])
96 |
97 | const handleChange = (e) => {
98 | setUsername(e);
99 | setCop(false);
100 | if (e.length == 0) {
101 | setUsername("anhduy1202");
102 | }
103 | }
104 |
105 | const handleColor = (e) => {
106 | setColor(e);
107 | if (e.length == 0) {
108 | setColor("blue");
109 | }
110 | setCop(false);
111 | }
112 |
113 | const handleClick = () => {
114 | setCopied(code);
115 | setCop(true);
116 | }
117 |
118 | const classes = useStyles();
119 | return (
120 |
121 |
122 | Add Profile Views Count:
123 |
124 |
125 |
154 |

155 |
156 | }
158 | aria-controls="panel1a-content"
159 | id="panel1a-header"
160 | >
161 | View Code
162 |
163 |
164 |
165 | {code}
166 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 | );
179 | }
180 |
181 | export default ProfileView;
--------------------------------------------------------------------------------
/src/Component/StatComponent/UserStat.jsx:
--------------------------------------------------------------------------------
1 | import { Accordion, AccordionDetails, AccordionSummary, Button, Card, CardContent, FormControl, Input, InputAdornment, InputLabel, makeStyles, MenuItem, Select, TextField, Typography } from "@material-ui/core"
2 | import { AccountCircle } from "@material-ui/icons";
3 | import { useState } from "react";
4 | import { themeData } from "./Theme";
5 | import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
6 | import { useEffect } from "react";
7 | import useCopyClipboard from "react-use-clipboard";
8 |
9 | const useStyles = makeStyles(() => ({
10 | header: {
11 | fontFamily: 'Source Code Pro',
12 | fontWeight: 700,
13 | fontSize: "1.5rem",
14 | marginTop: "2rem",
15 | marginBottom: "2rem",
16 | alignSelf: "center",
17 | color: "#7289DA"
18 |
19 | },
20 |
21 | form: {
22 | alignSelf: "flex-start",
23 | minWidth: "100%",
24 | fontFamily: "Source Code Pro",
25 |
26 |
27 | },
28 | input: {
29 | maxWidth: "90%",
30 | fontFamily: "Source Code Pro",
31 | color: "#FFFFFF"
32 |
33 | },
34 |
35 | theme: {
36 | maxWidth: "90%",
37 | marginTop: "2rem",
38 | fontFamily: "Source Code Pro",
39 |
40 | },
41 | accord: {
42 | maxWidth: "90%",
43 | marginTop: "2rem",
44 | fontFamily: "Source Code Pro",
45 | backgroundColor: "#7c93e6",
46 | },
47 | button: {
48 | display: "block",
49 | marginTop: "1rem",
50 | fontWeight: 700,
51 | fontFamily: "Source Code Pro"
52 | },
53 | label: {
54 | color: "#FFFFFF",
55 |
56 | },
57 | select: {
58 | color: "#99AAB5",
59 | fontWeight: 700
60 | },
61 |
62 | typocode: {
63 | whiteSpace:"normal",
64 | overflow:"hidden",
65 | color: "white",
66 | fontWeight: 700,
67 | fontFamily: "Source Code Pro"
68 | },
69 |
70 | }))
71 |
72 |
73 | const UserStat = () => {
74 | const [userName, setUserName] = useState("anhduy1202");
75 | const [theme, setTheme] = useState("tokyonight");
76 | const [userStatCode, setuserCode] = useState(`
`);
77 | const classes = useStyles();
78 | const [isCopied, setCopied] = useCopyClipboard(userStatCode);
79 | const [Copied, setCop] = useState(false);
80 | useEffect(() => {
81 | setuserCode(`
`);
82 |
83 | }, [userName, theme])
84 |
85 | const handleChange = (e) => {
86 | setCop(false);
87 | setUserName(e);
88 | if (e.length == 0) {
89 | setUserName("anhduy1202");
90 | }
91 | }
92 | const handleTheme = (e) => {
93 | setTheme(e);
94 | setCop(false);
95 | }
96 |
97 | const handleClick = () => {
98 | setCopied(userStatCode);
99 | setCop(true);
100 | }
101 |
102 |
103 | return (
104 |
105 |
106 | Github Stats:
107 |
108 |
109 |
163 |

164 |
165 |
166 |
167 | );
168 | }
169 |
170 | export default UserStat;
--------------------------------------------------------------------------------
/src/scss/style.css.map:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "mappings": "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",
4 | "sources": [
5 | "style.scss",
6 | "_global.scss",
7 | "_variables.scss",
8 | "_variables.scss",
9 | "../Component/_stat.scss",
10 | "_variables.scss",
11 | "_mixins.scss",
12 | "../Component/SocialComponent/_social.scss",
13 | "_variables.scss",
14 | "../Permanent/_navbar.scss",
15 | "_variables.scss",
16 | "_mixins.scss",
17 | "../Component/_home.scss",
18 | "_variables.scss",
19 | "_mixins.scss",
20 | "_mixins.scss",
21 | "../Component/BadgeComponent/_badge.scss",
22 | "_variables.scss",
23 | "_mixins.scss"
24 | ],
25 | "names": [],
26 | "file": "style.css"
27 | }
--------------------------------------------------------------------------------
/src/Component/BadgeComponent/Supporter.jsx:
--------------------------------------------------------------------------------
1 | import { Accordion, AccordionDetails, AccordionSummary, Button, Card, CardContent, FormControl, Input, InputAdornment, InputLabel, makeStyles, Menu, MenuItem, Select, TextField, Typography } from "@material-ui/core"
2 | import { useState } from "react";
3 | import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
4 | import { AccountCircle } from "@material-ui/icons";
5 | import FolderIcon from '@material-ui/icons/Folder';
6 | import useCopyClipboard from "react-use-clipboard";
7 | import { useEffect } from "react";
8 |
9 | const useStyles = makeStyles(() => ({
10 |
11 | header: {
12 | color: "#7289Da",
13 | fontFamily: "Source Code Pro",
14 | fontWeight: 700,
15 | fontSize: "1.5rem",
16 | marginTop: "2.5rem",
17 | marginBottom: "3rem",
18 | alignSelf: "center",
19 |
20 | },
21 | input: {
22 | maxWidth: "90%",
23 | fontFamily: "Source Code Pro",
24 | color: "#FFFFFF"
25 |
26 | },
27 | form: {
28 | alignSelf: "flex-start",
29 | minWidth: "100%",
30 | fontFamily: "Source Code Pro",
31 | },
32 | form2: {
33 | alignSelf: "flex-start",
34 | minWidth: "100%",
35 | fontFamily: "Source Code Pro",
36 | marginTop: "2rem",
37 | },
38 | lanField: {
39 | display: "flex",
40 | flexDirection: "row",
41 | maxWidth: "100%",
42 | },
43 | lan: {
44 | maxWidth: "80%",
45 | marginBottom: "1rem",
46 | marginTop: "2rem",
47 | fontFamily: "Source Code Pro",
48 | backgroundColor: "white",
49 | padding: "0rem",
50 | backgroundColor: "#7c93e6",
51 |
52 | },
53 | link: {
54 | justifySelf: "flex-end",
55 | minWidth: "20%",
56 | },
57 | view: {
58 | maxWidth: "20%",
59 | }
60 | ,
61 | button: {
62 | display: "block",
63 | marginTop: "1rem",
64 | fontWeight: 700,
65 | fontFamily: "Source Code Pro"
66 | },
67 | label: {
68 | color: "#FFFFFF",
69 | },
70 | img: {
71 | maxWidth: "10%",
72 | },
73 |
74 |
75 | typocode: {
76 | whiteSpace:"normal",
77 | overflow:"hidden",
78 | color: "white",
79 | fontWeight: 700,
80 | fontFamily: "Source Code Pro"
81 | },
82 |
83 |
84 |
85 | }))
86 | const Supporter = () => {
87 |
88 | const classes = useStyles();
89 | const [username, setUsername] = useState("anhduy1202");
90 | const [repo, setRepo] = useState("better-tic-tac-toe-client");
91 | const [code, setCode] = useState(`
{
96 | setCode(`
{
100 | setCop(false);
101 | setUsername(e);
102 | if (e.length == 0) {
103 | setUsername("anhduy1202");
104 | }
105 | }
106 |
107 | const handleRepo = (e) => {
108 | setCop(false);
109 | setRepo(e);
110 | if (e.length == 0) {
111 | setRepo("better-tic-tac-toe-client");
112 | }
113 | }
114 | const handleClick=()=>{
115 | setCopied(code);
116 | setCop(true);
117 | }
118 |
119 | return (
120 |
121 |
122 | Display Supporters:
123 |
124 |
125 |
157 |

158 |
159 | }
161 | aria-controls="panel1a-content"
162 | id="panel1a-header"
163 | >
164 | View Code
165 |
166 |
167 |
168 | {code}
169 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 | );
182 | }
183 |
184 | export default Supporter;
--------------------------------------------------------------------------------
/src/Component/StatComponent/RepoStat.jsx:
--------------------------------------------------------------------------------
1 | import { Accordion, AccordionDetails, AccordionSummary, Button, Card, CardContent, FormControl, Input, InputAdornment, InputLabel, makeStyles, Menu, MenuItem, Select, TextField, Typography } from "@material-ui/core"
2 | import { AccountCircle } from "@material-ui/icons";
3 | import FolderIcon from '@material-ui/icons/Folder';
4 | import { useState } from "react";
5 | import { themeData } from "./Theme";
6 | import { lanCountData } from "./lanCount";
7 | import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
8 | import { useEffect } from "react";
9 | import useCopyClipboard from "react-use-clipboard";
10 | const useStyles = makeStyles(() => ({
11 |
12 | header: {
13 | color: "#7289Da",
14 | fontFamily: "Source Code Pro",
15 | fontWeight: 700,
16 | fontSize: "1.5rem",
17 | marginTop: "2.5rem",
18 | marginBottom: "2rem",
19 | alignSelf: "center",
20 |
21 | },
22 | form: {
23 | alignSelf: "flex-start",
24 | minWidth: "100%",
25 | fontFamily: "Source Code Pro",
26 |
27 |
28 | },
29 |
30 | repoForm: {
31 | marginTop: "1.5rem"
32 | },
33 | input: {
34 | maxWidth: "90%",
35 | fontFamily: "Source Code Pro",
36 | color: "#FFFFFF"
37 |
38 | },
39 |
40 | theme: {
41 | maxWidth: "90%",
42 | marginTop: "2rem",
43 | fontFamily: "Source Code Pro",
44 |
45 | },
46 | accord: {
47 | maxWidth: "90%",
48 | marginTop: "2rem",
49 | fontFamily: "Source Code Pro",
50 | backgroundColor: "#7c93e6",
51 | },
52 | button: {
53 | display: "block",
54 | marginTop: "1rem",
55 | fontWeight: 700,
56 | fontFamily: "Source Code Pro"
57 | },
58 | label: {
59 | color: "#FFFFFF",
60 |
61 | },
62 | select: {
63 | color: "#99AAB5",
64 | fontWeight: 700
65 | },
66 | typocode: {
67 | whiteSpace:"normal",
68 | overflow:"hidden",
69 | color: "white",
70 | fontWeight: 700,
71 | fontFamily: "Source Code Pro"
72 | },
73 |
74 | }))
75 |
76 | const RepoStat = () => {
77 | const [userName, setUserName] = useState("anhduy1202");
78 | const [repo, setRepo] = useState("Git-Readme");
79 | const [repoCode, setRepoCode] = useState(`
`);
85 |
86 | }, [userName, repo])
87 |
88 | const handleChange = (e) => {
89 | setCop(false);
90 | setUserName(e);
91 | if (e.length == 0) {
92 | setUserName("anhduy1202");
93 | }
94 | }
95 |
96 |
97 | const handleClick = () => {
98 | setCopied(repoCode);
99 | setCop(true);
100 | }
101 |
102 | const handleRepoChange=(e)=>{
103 | setRepo(e);
104 | setCop(false);
105 | if (e.length == 0) {
106 | setRepo("better-tic-tac-toe-client");
107 | }
108 | }
109 |
110 |
111 | return (
112 |
113 |
114 | Repo Stats:
115 |
116 |
117 |
173 |

174 |
175 |
176 |
177 | );
178 | }
179 |
180 | export default RepoStat;
181 |
--------------------------------------------------------------------------------
/src/Component/SocialComponent/Social.jsx:
--------------------------------------------------------------------------------
1 | import { Accordion, AccordionDetails, AccordionSummary, Button, Card, CardContent, FormControl, Input, InputAdornment, InputLabel, makeStyles, Menu, MenuItem, Select, TextField, Typography } from "@material-ui/core"
2 | import { AccountCircle } from "@material-ui/icons";
3 | import { useState } from "react";
4 | import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
5 | import useCopyClipboard from "react-use-clipboard";
6 | import { useEffect } from "react";
7 | import { socialData } from "./socialData";
8 |
9 | const useStyles = makeStyles(() => ({
10 |
11 | header: {
12 | color: "#7289Da",
13 | fontFamily: "Source Code Pro",
14 | fontWeight: 700,
15 | fontSize: "1.5rem",
16 | marginTop: "2.5rem",
17 | marginBottom: "2rem",
18 | alignSelf: "center",
19 |
20 | },
21 | form: {
22 | alignSelf: "flex-start",
23 | minWidth: "100%",
24 | fontFamily: "Source Code Pro",
25 |
26 |
27 | },
28 | input: {
29 | maxWidth: "100%",
30 | fontFamily: "Source Code Pro",
31 | color: "#FFFFFF"
32 |
33 | },
34 |
35 | social: {
36 | maxWidth: "100%",
37 | marginBottom: "2rem",
38 | fontFamily: "Source Code Pro",
39 |
40 | },
41 |
42 | button: {
43 | display: "block",
44 | marginTop: "1rem",
45 | fontWeight: 700,
46 | fontFamily: "Source Code Pro"
47 | },
48 | label: {
49 | color: "#FFFFFF",
50 |
51 | },
52 | select: {
53 | color: "#7289Da",
54 | },
55 |
56 | typocode: {
57 | whiteSpace:"normal",
58 | overflow:"hidden",
59 | color: "white",
60 | fontWeight: 700,
61 | fontFamily: "Source Code Pro"
62 | },
63 | accord: {
64 | maxWidth: "90%",
65 | marginTop: "2rem",
66 | fontFamily: "Source Code Pro",
67 | backgroundColor: "#7c93e6",
68 | },
69 |
70 |
71 | }))
72 |
73 | const Social = () => {
74 | const classes = useStyles();
75 | const [socialLink, setLink] = useState("https://www.linkedin.com/in/truong-duy-12a4b5188/");
76 | const [socialImage, setImage] = useState("https://img.shields.io/badge/-LinkedIn-0e76a8?style=plastic&logo=linkedIn");
77 | const [code, setCode] = useState(`
`);
78 | const [isCopied, setCopied] = useCopyClipboard(code);
79 | const [Copied, setCop] = useState(false);
80 |
81 | useEffect(() => {
82 | setCode(`
`)
83 | }, [socialLink, socialImage])
84 |
85 | const [social, setSocial] = useState("Linkedin");
86 | const handleSelect = (e) => {
87 | setSocial(e);
88 | setCop(false);
89 | if (e === "LinkedIn") {
90 | setImage("https://img.shields.io/badge/-LinkedIn-0e76a8?style=plastic&logo=linkedIn");
91 |
92 | }
93 | else if (e === "Instagram") {
94 | setImage("https://img.shields.io/badge/-Instagram-833AB4?style=plastic&logo=Instagram");
95 | }
96 | else if (e === "Twitter") {
97 | setImage("https://img.shields.io/badge/-Twitter-1DA1F2?style=plastic&logo=Twitter");
98 | }
99 | else if (e === "Youtube") {
100 | setImage("https://img.shields.io/badge/-%23FF0000.svg?style=for-the-badge&logo=YouTube&logoColor=white");
101 | }
102 | else if (e === "Facebook") {
103 | setImage("https://img.shields.io/badge/Facebook-%231877F2.svg?style=for-the-badge&logo=Facebook&logoColor=white");
104 | }
105 | else if (e === "Discord") {
106 | setImage("https://img.shields.io/badge/%3CServer%3E-%237289DA.svg?style=for-the-badge&logo=discord&logoColor=white");
107 | }
108 | else if (e === "Github") {
109 | setImage("https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white");
110 | }
111 | }
112 |
113 | const handleLink = (e) => {
114 | setLink(e);
115 | setCop(false);
116 | }
117 | const handleCopy = () => {
118 | setCopied(code);
119 | setCop(true);
120 | }
121 | return (
122 |
123 |
124 | Social Media:
125 |
126 |
127 |
164 |
165 |
166 |
167 |
168 | }
170 | aria-controls="panel1a-content"
171 | id="panel1a-header"
172 | >
173 | View Code
174 |
175 |
176 |
177 | {code}
178 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 | );
191 | }
192 |
193 | export default Social;
--------------------------------------------------------------------------------
/src/Component/StatComponent/LanStat.jsx:
--------------------------------------------------------------------------------
1 | import { Accordion, AccordionDetails, AccordionSummary, Button, Card, CardContent, FormControl, Input, InputAdornment, InputLabel, makeStyles, Menu, MenuItem, Select, TextField, Typography } from "@material-ui/core"
2 | import { AccountCircle } from "@material-ui/icons";
3 | import { useState } from "react";
4 | import { themeData } from "./Theme";
5 | import { lanCountData } from "./lanCount";
6 | import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
7 | import { useEffect } from "react";
8 | import useCopyClipboard from "react-use-clipboard";
9 |
10 | const useStyles = makeStyles(() => ({
11 |
12 | header: {
13 | color: "#7289Da",
14 | fontFamily: "Source Code Pro",
15 | fontWeight: 700,
16 | fontSize: "1.5rem",
17 | marginTop: "2.5rem",
18 | marginBottom: "2rem",
19 | alignSelf: "center",
20 |
21 | },
22 | form: {
23 | alignSelf: "flex-start",
24 | minWidth: "100%",
25 | fontFamily: "Source Code Pro",
26 |
27 |
28 | },
29 | input: {
30 | maxWidth: "90%",
31 | fontFamily: "Source Code Pro",
32 | color: "#FFFFFF"
33 |
34 | },
35 |
36 | theme: {
37 | maxWidth: "90%",
38 | marginTop: "2rem",
39 | fontFamily: "Source Code Pro",
40 |
41 | },
42 | accord: {
43 | maxWidth: "90%",
44 | marginTop: "2rem",
45 | fontFamily: "Source Code Pro",
46 | backgroundColor: "#7c93e6",
47 | },
48 | button: {
49 | display: "block",
50 | marginTop: "1rem",
51 | fontWeight: 700,
52 | fontFamily: "Source Code Pro"
53 | },
54 | label: {
55 | color: "#FFFFFF",
56 |
57 | },
58 | select: {
59 | color: "#99AAB5",
60 | fontWeight: 700
61 | },
62 | typocode: {
63 | whiteSpace:"normal",
64 | overflow:"hidden",
65 | color: "white",
66 | fontWeight: 700,
67 | fontFamily: "Source Code Pro"
68 | },
69 |
70 | }))
71 |
72 | const LanStat = () => {
73 | const classes = useStyles();
74 | const [userName, setUserName] = useState("anhduy1202");
75 | const [theme, setTheme] = useState("tokyonight");
76 | const [layout, setLayout] = useState("");
77 | const [lanCount, setLanCount] = useState(5);
78 | const [lanStatCode, setlanCode] = useState(`
`);
79 | const [isCopied, setCopied] = useCopyClipboard(lanStatCode);
80 | const [Copied, setCop] = useState(false);
81 | useEffect(() => {
82 | setlanCode(`
`);
83 |
84 | }, [userName, theme,lanCount,layout])
85 |
86 | const handleChange = (e) => {
87 | setCop(false);
88 | setUserName(e);
89 | if (e.length == 0) {
90 | setUserName("anhduy1202");
91 | }
92 | }
93 | const handleTheme = (e) => {
94 | setTheme(e);
95 | setCop(false);
96 | }
97 |
98 | const handleClick = () => {
99 | setCopied(lanStatCode);
100 | setCop(true);
101 | }
102 |
103 | const handleLayout = (e) => {
104 | setLayout(e);
105 | setCop(false);
106 | }
107 | const handleLanCount= (e) => {
108 | setLanCount(e);
109 | setCop(false);
110 | }
111 |
112 | return (
113 |
114 |
115 |
116 | Language Stats:
117 |
118 |
119 |
201 |

202 |
203 |
204 |
205 |
206 |
207 | );
208 | }
209 |
210 | export default LanStat;
--------------------------------------------------------------------------------
/src/scss/style.css:
--------------------------------------------------------------------------------
1 | .App {
2 | height: 100vh;
3 | width: 100vw;
4 | display: -webkit-box;
5 | display: -ms-flexbox;
6 | display: flex;
7 | -webkit-box-orient: vertical;
8 | -webkit-box-direction: normal;
9 | -ms-flex-direction: column;
10 | flex-direction: column;
11 | padding: 0;
12 | font-size: 1.5rem;
13 | position: relative;
14 | font-family: "Source Code Pro", monospace;
15 | -webkit-box-align: center;
16 | -ms-flex-align: center;
17 | align-items: center;
18 | }
19 |
20 | html {
21 | height: 100vh;
22 | font-size: 100%;
23 | -webkit-box-sizing: border-box;
24 | box-sizing: border-box;
25 | overflow-x: hidden;
26 | background-color: #32363b;
27 | }
28 |
29 | *, *::before, *::after {
30 | -webkit-box-sizing: inherit;
31 | box-sizing: inherit;
32 | }
33 |
34 | .stat-container {
35 | width: 70%;
36 | display: -webkit-box;
37 | display: -ms-flexbox;
38 | display: flex;
39 | -webkit-box-orient: vertical;
40 | -webkit-box-direction: normal;
41 | -ms-flex-direction: column;
42 | flex-direction: column;
43 | }
44 |
45 | @media (max-width: 63.9375em) {
46 | .stat-container {
47 | min-width: 80%;
48 | }
49 | }
50 |
51 | @media (max-width: 63.9375em) {
52 | .social-container {
53 | min-width: 100%;
54 | margin-left: 2rem;
55 | }
56 | }
57 |
58 | @media (max-width: 63.9375em) {
59 | .social-icon {
60 | max-width: 100%;
61 | }
62 | }
63 |
64 | .userStat, .lanStat, .socialStat, .badgeStat, .countStat {
65 | display: -webkit-box;
66 | display: -ms-flexbox;
67 | display: flex;
68 | -webkit-box-orient: horizontal;
69 | -webkit-box-direction: normal;
70 | -ms-flex-direction: row;
71 | flex-direction: row;
72 | padding-bottom: 3rem;
73 | border-bottom: 2px solid #99aab5;
74 | -ms-flex-wrap: wrap;
75 | flex-wrap: wrap;
76 | min-width: 40%;
77 | }
78 |
79 | .userStat-form, .lanStat-form, .socialStat-form, .badgeStat-form, .countStat-form {
80 | display: -webkit-box;
81 | display: -ms-flexbox;
82 | display: flex;
83 | max-width: 50%;
84 | -webkit-box-orient: vertical;
85 | -webkit-box-direction: normal;
86 | -ms-flex-direction: column;
87 | flex-direction: column;
88 | }
89 |
90 | @media (max-width: 63.9375em) {
91 | .userStat-form, .lanStat-form, .socialStat-form, .badgeStat-form, .countStat-form {
92 | max-width: 110%;
93 | margin-right: -1rem;
94 | margin-bottom: 2rem;
95 | }
96 | }
97 |
98 | .lanStat-img {
99 | margin-bottom: 3rem;
100 | }
101 |
102 | @media (max-width: 63.9375em) {
103 | .userStat-img {
104 | max-width: 100%;
105 | }
106 | }
107 |
108 | .social-container {
109 | width: 70%;
110 | display: -webkit-box;
111 | display: -ms-flexbox;
112 | display: flex;
113 | -webkit-box-orient: vertical;
114 | -webkit-box-direction: normal;
115 | -ms-flex-direction: column;
116 | flex-direction: column;
117 | }
118 |
119 | .social-icon {
120 | min-width: 100%;
121 | margin-top: 2.5rem;
122 | }
123 |
124 | .social-link {
125 | min-width: 15%;
126 | }
127 |
128 | @media (max-width: 63.9375em) {
129 | .social-link {
130 | min-width: 30%;
131 | }
132 | }
133 |
134 | .socialStat-form {
135 | display: -webkit-box;
136 | display: -ms-flexbox;
137 | display: flex;
138 | min-width: 100%;
139 | }
140 |
141 | .navbar-container {
142 | -ms-flex-item-align: end;
143 | align-self: flex-end;
144 | margin-top: 1rem;
145 | margin-bottom: 1rem;
146 | margin-right: 3rem;
147 | }
148 |
149 | @media (max-width: 63.9375em) {
150 | .navbar-container {
151 | margin-left: 2rem;
152 | }
153 | }
154 |
155 | .navbar-container a {
156 | font-size: 1.2rem;
157 | font-family: "Source Code Pro", monospace;
158 | font-weight: 600;
159 | }
160 |
161 | @media (max-width: 63.9375em) {
162 | .navbar-container a {
163 | font-size: 0.9rem;
164 | }
165 | }
166 |
167 | .home-container {
168 | display: -webkit-box;
169 | display: -ms-flexbox;
170 | display: flex;
171 | -webkit-box-pack: center;
172 | -ms-flex-pack: center;
173 | justify-content: center;
174 | -webkit-box-align: center;
175 | -ms-flex-align: center;
176 | align-items: center;
177 | -webkit-box-orient: vertical;
178 | -webkit-box-direction: normal;
179 | -ms-flex-direction: column;
180 | flex-direction: column;
181 | }
182 |
183 | @media (max-width: 63.9375em) {
184 | .home-container {
185 | margin-left: 1.2rem;
186 | margin-right: 1.2rem;
187 | }
188 | }
189 |
190 | .home-example {
191 | margin-top: 2rem;
192 | max-width: 70%;
193 | -webkit-box-shadow: 2px 2px 14px 2px #3b497c;
194 | box-shadow: 2px 2px 14px 2px #3b497c;
195 | margin: 0 1.2rem 0 1.2rem;
196 | }
197 |
198 | @media (max-width: 63.9375em) {
199 | .home-example {
200 | max-width: 80%;
201 | }
202 | }
203 |
204 | .home-subheader {
205 | color: #999999;
206 | }
207 |
208 | @media (max-width: 63.9375em) {
209 | .home-subheader {
210 | font-size: 1.2rem;
211 | }
212 | }
213 |
214 | header {
215 | margin-top: 2.5rem;
216 | margin-bottom: 2rem;
217 | color: #7289Da;
218 | font-weight: 600;
219 | font-size: 1.75rem;
220 | }
221 |
222 | @media (max-width: 63.9375em) {
223 | header {
224 | font-size: 1.4rem;
225 | text-align: center;
226 | }
227 | }
228 |
229 | .exampledes {
230 | color: #6e85d6;
231 | font-size: 1.3rem;
232 | text-align: center;
233 | max-width: 50%;
234 | }
235 |
236 | @media (max-width: 63.9375em) {
237 | .exampledes {
238 | margin-top: 2rem;
239 | font-size: 1.2rem;
240 | }
241 | }
242 |
243 | .how {
244 | margin-top: 2rem;
245 | text-align: center;
246 | }
247 |
248 | .how-header {
249 | font-size: 2rem;
250 | color: #7289Da;
251 | }
252 |
253 | @media (max-width: 63.9375em) {
254 | .how-header {
255 | font-size: 1.5rem;
256 | text-align: center;
257 | }
258 | }
259 |
260 | .how-subheader {
261 | color: #999999;
262 | }
263 |
264 | @media (max-width: 63.9375em) {
265 | .how-subheader {
266 | font-size: 1.2rem;
267 | }
268 | }
269 |
270 | .how-steps {
271 | display: -webkit-box;
272 | display: -ms-flexbox;
273 | display: flex;
274 | color: #c5c2c2;
275 | -webkit-box-orient: vertical;
276 | -webkit-box-direction: normal;
277 | -ms-flex-direction: column;
278 | flex-direction: column;
279 | -webkit-box-align: start;
280 | -ms-flex-align: start;
281 | align-items: flex-start;
282 | }
283 |
284 | @media (max-width: 63.9375em) {
285 | .how-steps {
286 | margin: 2rem 2rem 0 2rem;
287 | font-size: 1rem;
288 | }
289 | }
290 |
291 | .how li {
292 | margin-bottom: 1.4rem;
293 | }
294 |
295 | .credits {
296 | text-align: center;
297 | }
298 |
299 | .credits-header {
300 | font-size: 2rem;
301 | color: #7289Da;
302 | }
303 |
304 | @media (max-width: 63.9375em) {
305 | .credits-header {
306 | font-size: 1.5rem;
307 | text-align: center;
308 | }
309 | }
310 |
311 | .credits-subheader {
312 | color: #999999;
313 | }
314 |
315 | @media (max-width: 63.9375em) {
316 | .credits-subheader {
317 | font-size: 1.2rem;
318 | text-align: center;
319 | }
320 | }
321 |
322 | .credits-grid {
323 | display: -ms-grid;
324 | display: grid;
325 | -ms-grid-columns: (1fr)[2];
326 | grid-template-columns: repeat(2, 1fr);
327 | text-align: center;
328 | row-gap: 1.5rem;
329 | }
330 |
331 | @media (max-width: 63.9375em) {
332 | .credits-grid {
333 | margin: 0 2rem 0 2rem;
334 | -ms-grid-columns: (0.5fr)[2];
335 | grid-template-columns: repeat(2, 0.5fr);
336 | text-align: center;
337 | }
338 | }
339 |
340 | .credits-grid a {
341 | text-decoration: none;
342 | font-size: 1.3rem;
343 | }
344 |
345 | @media (max-width: 63.9375em) {
346 | .credits-grid a {
347 | font-size: 1.1rem;
348 | }
349 | }
350 |
351 | .theme, .count {
352 | margin-bottom: 4rem;
353 | padding-bottom: 4rem;
354 | border-bottom: 2px solid #7285c9;
355 | }
356 |
357 | .myrepo {
358 | text-align: center;
359 | margin-bottom: 4rem;
360 | }
361 |
362 | .myrepo-header {
363 | color: #7289Da;
364 | font-weight: 600;
365 | font-size: 2rem;
366 | }
367 |
368 | @media (max-width: 63.9375em) {
369 | .myrepo-header {
370 | font-size: 1.5rem;
371 | text-align: center;
372 | }
373 | }
374 |
375 | .myrepo-star {
376 | color: white;
377 | }
378 |
379 | @media (max-width: 63.9375em) {
380 | .myrepo-star {
381 | margin: 0 2rem 2rem 2rem;
382 | font-size: 1.2rem;
383 | text-align: center;
384 | }
385 | }
386 |
387 | .myrepo a {
388 | font-size: 1.6rem;
389 | text-decoration: none;
390 | color: #afc1fc;
391 | font-weight: 600;
392 | }
393 |
394 | @media (max-width: 63.9375em) {
395 | .myrepo a {
396 | font-size: 1.4rem;
397 | }
398 | }
399 |
400 | .badge-link {
401 | min-width: 35%;
402 | }
403 |
404 | .badge-container {
405 | max-width: 100%;
406 | }
407 |
408 | @media (max-width: 63.9375em) {
409 | .badge-container {
410 | margin-left: 2rem;
411 | }
412 | }
413 |
414 | @media (max-width: 63.9375em) {
415 | .mainbadge {
416 | max-width: 100%;
417 | }
418 | }
419 |
420 | .badgeStat {
421 | max-width: 50%;
422 | padding-bottom: 2.5rem;
423 | }
424 |
425 | .badgeStat-form {
426 | display: -webkit-box;
427 | display: -ms-flexbox;
428 | display: flex;
429 | min-width: 100%;
430 | margin-bottom: 1.5rem;
431 | }
432 |
433 | @media (max-width: 63.9375em) {
434 | .badgeStat-form {
435 | min-width: 80%;
436 | }
437 | }
438 |
439 | @media (max-width: 63.9375em) {
440 | .badgeStat {
441 | max-width: 100%;
442 | }
443 | .badgeStat p {
444 | font-size: 0.87rem;
445 | }
446 | }
447 |
448 | .countStat {
449 | max-width: 50%;
450 | padding-bottom: 2rem;
451 | -webkit-box-orient: vertical;
452 | -webkit-box-direction: normal;
453 | -ms-flex-direction: column;
454 | flex-direction: column;
455 | }
456 |
457 | @media (max-width: 63.9375em) {
458 | .countStat {
459 | max-width: 100%;
460 | }
461 | .countStat img {
462 | -webkit-transform: scale(1.5);
463 | transform: scale(1.5);
464 | margin-left: 1rem;
465 | margin-bottom: 1rem;
466 | }
467 | }
468 | /*# sourceMappingURL=style.css.map */
--------------------------------------------------------------------------------