Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
40b95880ae | ||
|
|
382d7c2512 |
@@ -1,44 +0,0 @@
|
||||
name: Update supported languages
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 */30 * *"
|
||||
|
||||
jobs:
|
||||
updateLanguages:
|
||||
if: github.repository == 'anuraghazra/github-readme-stats'
|
||||
name: Update supported languages
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [16.x]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: npm
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
env:
|
||||
CI: true
|
||||
|
||||
- name: Run update-languages-json.js script
|
||||
run: npm run generate-langs-json
|
||||
|
||||
- name: Create Pull Request if upstream language file is changed
|
||||
uses: peter-evans/create-pull-request@v4
|
||||
with:
|
||||
commit-message: "refactor: update languages JSON"
|
||||
branch: "update_langs/patch"
|
||||
delete-branch: true
|
||||
title: Update languages JSON
|
||||
body:
|
||||
"The
|
||||
[update-langs](https://github.com/anuraghazra/github-readme-stats/actions/workflows/update-langs.yaml)
|
||||
action found new/updated languages in the [upstream languages JSON
|
||||
file](https://raw.githubusercontent.com/github/linguist/master/lib/linguist/languages.yml)."
|
||||
labels: "ci, lang-card"
|
||||
@@ -30,7 +30,6 @@ export default async (req, res) => {
|
||||
border_radius,
|
||||
border_color,
|
||||
disable_animations,
|
||||
hide_progress,
|
||||
} = req.query;
|
||||
res.setHeader("Content-Type", "image/svg+xml");
|
||||
|
||||
@@ -78,7 +77,6 @@ export default async (req, res) => {
|
||||
border_color,
|
||||
locale: locale ? locale.toLowerCase() : null,
|
||||
disable_animations: parseBoolean(disable_animations),
|
||||
hide_progress: parseBoolean(hide_progress),
|
||||
}),
|
||||
);
|
||||
} catch (err) {
|
||||
|
||||
@@ -45,11 +45,12 @@
|
||||
"husky": "^8.0.0",
|
||||
"jest": "^29.0.3",
|
||||
"jest-environment-jsdom": "^29.0.3",
|
||||
"jest-svg-snapshot": "^0.1.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"lint-staged": "^13.0.3",
|
||||
"lodash.snakecase": "^4.1.1",
|
||||
"parse-diff": "^0.7.0",
|
||||
"prettier": "^2.1.2"
|
||||
"prettier": "^2.8.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^0.24.0",
|
||||
|
||||
@@ -305,7 +305,6 @@ You can provide multiple comma-separated values in the bg_color option to render
|
||||
- `exclude_repo` - Exclude specified repositories _(Comma-separated values)_. Default: `[] (blank array)`.
|
||||
- `custom_title` - Sets a custom title for the card _(string)_. Default `Most Used Languages`.
|
||||
- `disable_animations` - Disables all animations in the card _(boolean)_. Default: `false`.
|
||||
- `hide_progress` - It uses the compact layout option, hides percentages, and removes the bars. Default: `false`.
|
||||
|
||||
> **Warning**
|
||||
> Language names should be URI-escaped, as specified in [Percent Encoding](https://en.wikipedia.org/wiki/Percent-encoding)
|
||||
@@ -399,14 +398,6 @@ You can use the `&layout=compact` option to change the card design.
|
||||
[](https://github.com/anuraghazra/github-readme-stats)
|
||||
```
|
||||
|
||||
### Hide Progress Bars
|
||||
|
||||
You can use the `&hide_progress=true` option to hide the percentages and the progress bars (layout will be automatically set to `compact`).
|
||||
|
||||
```md
|
||||
[](https://github.com/anuraghazra/github-readme-stats)
|
||||
```
|
||||
|
||||
### Demo
|
||||
|
||||
[](https://github.com/anuraghazra/github-readme-stats)
|
||||
@@ -415,10 +406,6 @@ You can use the `&hide_progress=true` option to hide the percentages and the pro
|
||||
|
||||
[](https://github.com/anuraghazra/github-readme-stats)
|
||||
|
||||
- Hidden progress bars
|
||||
|
||||
[](https://github.com/anuraghazra/github-readme-stats)
|
||||
|
||||
# Wakatime Week Stats
|
||||
|
||||
Change the `?username=` value to your [Wakatime](https://wakatime.com) username.
|
||||
|
||||
@@ -87,6 +87,16 @@ const iconWithLabel = (icon, label, testid) => {
|
||||
* @returns {string} Repository card SVG object.
|
||||
*/
|
||||
const renderRepoCard = (repo, options = {}) => {
|
||||
const {
|
||||
name,
|
||||
nameWithOwner,
|
||||
description,
|
||||
primaryLanguage,
|
||||
isArchived,
|
||||
isTemplate,
|
||||
starCount,
|
||||
forkCount,
|
||||
} = repo;
|
||||
const {
|
||||
hide_border = false,
|
||||
title_color,
|
||||
@@ -99,42 +109,6 @@ const renderRepoCard = (repo, options = {}) => {
|
||||
border_color,
|
||||
locale,
|
||||
} = options;
|
||||
|
||||
const i18n = new I18n({
|
||||
locale,
|
||||
translations: repoCardLocales,
|
||||
});
|
||||
|
||||
const colors = getCardColors({
|
||||
title_color,
|
||||
icon_color,
|
||||
text_color,
|
||||
bg_color,
|
||||
border_color,
|
||||
theme,
|
||||
});
|
||||
|
||||
const {
|
||||
name,
|
||||
nameWithOwner,
|
||||
description,
|
||||
primaryLanguage,
|
||||
isArchived,
|
||||
isTemplate,
|
||||
starCount,
|
||||
forkCount,
|
||||
} = repo;
|
||||
|
||||
const highlight = repo.highlight
|
||||
? // @ts-ignore
|
||||
getBadgeSVG(repo.highlight, colors.textColor)
|
||||
: isTemplate
|
||||
? // @ts-ignore
|
||||
getBadgeSVG(i18n.t("repocard.template"), colors.textColor)
|
||||
: isArchived
|
||||
? // @ts-ignore
|
||||
getBadgeSVG(i18n.t("repocard.archived"), colors.textColor)
|
||||
: ""
|
||||
|
||||
const lineHeight = 10;
|
||||
const header = show_owner ? nameWithOwner : name;
|
||||
@@ -151,25 +125,27 @@ const renderRepoCard = (repo, options = {}) => {
|
||||
const height =
|
||||
(descriptionLines > 1 ? 120 : 110) + descriptionLines * lineHeight;
|
||||
|
||||
const i18n = new I18n({
|
||||
locale,
|
||||
translations: repoCardLocales,
|
||||
});
|
||||
|
||||
// returns theme based colors with proper overrides and defaults
|
||||
const colors = getCardColors({
|
||||
title_color,
|
||||
icon_color,
|
||||
text_color,
|
||||
bg_color,
|
||||
border_color,
|
||||
theme,
|
||||
});
|
||||
|
||||
const svgLanguage = primaryLanguage
|
||||
? createLanguageNode(langName, langColor)
|
||||
: "";
|
||||
|
||||
let totalStars
|
||||
let totalForks
|
||||
if (isNaN(starCount)) {
|
||||
totalStars = starCount;
|
||||
} else {
|
||||
totalStars = kFormatter(starCount);
|
||||
}
|
||||
if (isNaN(forkCount)) {
|
||||
totalForks = forkCount;
|
||||
} else {
|
||||
totalForks = kFormatter(forkCount);
|
||||
}
|
||||
|
||||
|
||||
const totalStars = kFormatter(starCount);
|
||||
const totalForks = kFormatter(forkCount);
|
||||
const svgStars = iconWithLabel(icons.star, totalStars, "stargazers");
|
||||
const svgForks = iconWithLabel(icons.fork, totalForks, "forkcount");
|
||||
|
||||
@@ -204,7 +180,15 @@ const renderRepoCard = (repo, options = {}) => {
|
||||
`);
|
||||
|
||||
return card.render(`
|
||||
${highlight}
|
||||
${
|
||||
isTemplate
|
||||
? // @ts-ignore
|
||||
getBadgeSVG(i18n.t("repocard.template"), colors.textColor)
|
||||
: isArchived
|
||||
? // @ts-ignore
|
||||
getBadgeSVG(i18n.t("repocard.archived"), colors.textColor)
|
||||
: ""
|
||||
}
|
||||
|
||||
<text class="description" x="25" y="-5">
|
||||
${descriptionSvg}
|
||||
|
||||
@@ -40,12 +40,7 @@ const createTextNode = ({
|
||||
shiftValuePos,
|
||||
bold,
|
||||
}) => {
|
||||
let kValue
|
||||
if (isNaN(value)) {
|
||||
kValue = value;
|
||||
} else {
|
||||
kValue = kFormatter(value);
|
||||
}
|
||||
const kValue = kFormatter(value);
|
||||
const staggerDelay = (index + 3) * 150;
|
||||
|
||||
const labelOffset = showIcons ? `x="25"` : "";
|
||||
@@ -80,6 +75,15 @@ const createTextNode = ({
|
||||
* @returns {string} The stats card SVG object.
|
||||
*/
|
||||
const renderStatsCard = (stats = {}, options = { hide: [] }) => {
|
||||
const {
|
||||
name,
|
||||
totalStars,
|
||||
totalCommits,
|
||||
totalIssues,
|
||||
totalPRs,
|
||||
contributedTo,
|
||||
rank,
|
||||
} = stats;
|
||||
const {
|
||||
hide = [],
|
||||
show_icons = false,
|
||||
@@ -102,37 +106,6 @@ const renderStatsCard = (stats = {}, options = { hide: [] }) => {
|
||||
locale,
|
||||
disable_animations = false,
|
||||
} = options;
|
||||
|
||||
const name = stats.name || "GitHub User"
|
||||
|
||||
const apostrophe = ["x", "s"].includes(name.slice(-1).toLocaleLowerCase())
|
||||
? ""
|
||||
: "s";
|
||||
|
||||
const i18n = new I18n({
|
||||
locale,
|
||||
translations: statCardLocales({ name, apostrophe }),
|
||||
});
|
||||
|
||||
const {
|
||||
totalStars = "2018",
|
||||
totalCommits = "29019",
|
||||
totalIssues = "203",
|
||||
totalPRs = "127",
|
||||
contributedTo = "232",
|
||||
rank = {
|
||||
level: "S",
|
||||
score: 10
|
||||
},
|
||||
starsTitle = i18n.t("statcard.totalstars"),
|
||||
commitsTitle = `${i18n.t("statcard.commits")}${
|
||||
include_all_commits ? "" : ` (${new Date().getFullYear()})`
|
||||
}`,
|
||||
issuesTitle = i18n.t("statcard.issues"),
|
||||
PRsTitle = i18n.t("statcard.prs"),
|
||||
contribsTitle = i18n.t("statcard.contribs") + " (last year)",
|
||||
title = i18n.t("statcard.title"),
|
||||
} = stats;
|
||||
|
||||
const lheight = parseInt(String(line_height), 10);
|
||||
|
||||
@@ -148,35 +121,45 @@ const renderStatsCard = (stats = {}, options = { hide: [] }) => {
|
||||
theme,
|
||||
});
|
||||
|
||||
const apostrophe = ["x", "s"].includes(name.slice(-1).toLocaleLowerCase())
|
||||
? ""
|
||||
: "s";
|
||||
const i18n = new I18n({
|
||||
locale,
|
||||
translations: statCardLocales({ name, apostrophe }),
|
||||
});
|
||||
|
||||
// Meta data for creating text nodes with createTextNode function
|
||||
const STATS = {
|
||||
stars: {
|
||||
icon: icons.star,
|
||||
label: starsTitle,
|
||||
label: i18n.t("statcard.totalstars"),
|
||||
value: totalStars,
|
||||
id: "stars",
|
||||
},
|
||||
commits: {
|
||||
icon: icons.commits,
|
||||
label: commitsTitle,
|
||||
label: `${i18n.t("statcard.commits")}${
|
||||
include_all_commits ? "" : ` (${new Date().getFullYear()})`
|
||||
}`,
|
||||
value: totalCommits,
|
||||
id: "commits",
|
||||
},
|
||||
prs: {
|
||||
icon: icons.prs,
|
||||
label: PRsTitle,
|
||||
label: i18n.t("statcard.prs"),
|
||||
value: totalPRs,
|
||||
id: "prs",
|
||||
},
|
||||
issues: {
|
||||
icon: icons.issues,
|
||||
label: issuesTitle,
|
||||
label: i18n.t("statcard.issues"),
|
||||
value: totalIssues,
|
||||
id: "issues",
|
||||
},
|
||||
contribs: {
|
||||
icon: icons.contribs,
|
||||
label: contribsTitle,
|
||||
label: i18n.t("statcard.contribs") + " (last year)",
|
||||
value: contributedTo,
|
||||
id: "contribs",
|
||||
},
|
||||
@@ -232,7 +215,7 @@ const renderStatsCard = (stats = {}, options = { hide: [] }) => {
|
||||
});
|
||||
|
||||
const calculateTextWidth = () => {
|
||||
return measureText(custom_title ? custom_title : title);
|
||||
return measureText(custom_title ? custom_title : i18n.t("statcard.title"));
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -258,7 +241,7 @@ const renderStatsCard = (stats = {}, options = { hide: [] }) => {
|
||||
|
||||
const card = new Card({
|
||||
customTitle: custom_title,
|
||||
defaultTitle: title,
|
||||
defaultTitle: i18n.t("statcard.title"),
|
||||
width,
|
||||
height,
|
||||
border_radius,
|
||||
@@ -323,6 +306,11 @@ const renderStatsCard = (stats = {}, options = { hide: [] }) => {
|
||||
const labels = Object.keys(STATS)
|
||||
.filter((key) => !hide.includes(key))
|
||||
.map((key) => {
|
||||
if (key === "commits") {
|
||||
return `${i18n.t("statcard.commits")} ${
|
||||
include_all_commits ? "" : `in ${new Date().getFullYear()}`
|
||||
} : ${totalStars}`;
|
||||
}
|
||||
return `${STATS[key].label}: ${STATS[key].value}`;
|
||||
})
|
||||
.join(", ");
|
||||
|
||||
@@ -47,7 +47,6 @@ const getLongestLang = (arr) =>
|
||||
* @param {number} props.index Index of the programming language.
|
||||
* @returns {string} Programming language SVG node.
|
||||
*/
|
||||
|
||||
const createProgressTextNode = ({ width, color, name, progress, index }) => {
|
||||
const staggerDelay = (index + 3) * 150;
|
||||
const paddingRight = 95;
|
||||
@@ -57,7 +56,7 @@ const createProgressTextNode = ({ width, color, name, progress, index }) => {
|
||||
return `
|
||||
<g class="stagger" style="animation-delay: ${staggerDelay}ms">
|
||||
<text data-testid="lang-name" x="2" y="15" class="lang-name">${name}</text>
|
||||
<text x="${progressTextX}" y="34" class="lang-name">${text || `${progress}%`}</text>
|
||||
<text x="${progressTextX}" y="34" class="lang-name">${progress}%</text>
|
||||
${createProgressNode({
|
||||
x: 0,
|
||||
y: 25,
|
||||
@@ -77,11 +76,10 @@ const createProgressTextNode = ({ width, color, name, progress, index }) => {
|
||||
* @param {object} props Function properties.
|
||||
* @param {Lang} props.lang Programming language object.
|
||||
* @param {number} props.totalSize Total size of all languages.
|
||||
* @param {boolean} props.hideProgress Whether to hide percentage.
|
||||
* @param {number} props.index Index of the programming language.
|
||||
* @returns {string} Compact layout programming language SVG node.
|
||||
*/
|
||||
const createCompactLangNode = ({ lang, totalSize, hideProgress, index }) => {
|
||||
const createCompactLangNode = ({ lang, totalSize, index }) => {
|
||||
const percentage = ((lang.size / totalSize) * 100).toFixed(2);
|
||||
const staggerDelay = (index + 3) * 150;
|
||||
const color = lang.color || "#858585";
|
||||
@@ -90,7 +88,7 @@ const createCompactLangNode = ({ lang, totalSize, hideProgress, index }) => {
|
||||
<g class="stagger" style="animation-delay: ${staggerDelay}ms">
|
||||
<circle cx="5" cy="6" r="5" fill="${color}" />
|
||||
<text data-testid="lang-name" x="15" y="10" class='lang-name'>
|
||||
${lang.name} ${hideProgress ? "" : (lang.text || `${percentage}%`)}
|
||||
${lang.name} ${percentage}%
|
||||
</text>
|
||||
</g>
|
||||
`;
|
||||
@@ -102,10 +100,9 @@ const createCompactLangNode = ({ lang, totalSize, hideProgress, index }) => {
|
||||
* @param {object[]} props Function properties.
|
||||
* @param {Lang[]} props.langs Array of programming languages.
|
||||
* @param {number} props.totalSize Total size of all languages.
|
||||
* @param {boolean} props.hideProgress Whether to hide percentage.
|
||||
* @returns {string} Programming languages SVG node.
|
||||
*/
|
||||
const createLanguageTextNode = ({ langs, totalSize, hideProgress }) => {
|
||||
const createLanguageTextNode = ({ langs, totalSize }) => {
|
||||
const longestLang = getLongestLang(langs);
|
||||
const chunked = chunkArray(langs, langs.length / 2);
|
||||
const layouts = chunked.map((array) => {
|
||||
@@ -114,7 +111,6 @@ const createLanguageTextNode = ({ langs, totalSize, hideProgress }) => {
|
||||
createCompactLangNode({
|
||||
lang,
|
||||
totalSize,
|
||||
hideProgress,
|
||||
index,
|
||||
}),
|
||||
);
|
||||
@@ -127,7 +123,7 @@ const createLanguageTextNode = ({ langs, totalSize, hideProgress }) => {
|
||||
|
||||
const percent = ((longestLang.size / totalSize) * 100).toFixed(2);
|
||||
const minGap = 150;
|
||||
const maxGap = 20 + measureText(`${longestLang.name} ${longestLang.text || `${percent}%`}`, 11);
|
||||
const maxGap = 20 + measureText(`${longestLang.name} ${percent}%`, 11);
|
||||
return flexLayout({
|
||||
items: layouts,
|
||||
gap: maxGap < minGap ? minGap : maxGap,
|
||||
@@ -150,7 +146,6 @@ const renderNormalLayout = (langs, width, totalLanguageSize) => {
|
||||
name: lang.name,
|
||||
color: lang.color || DEFAULT_LANG_COLOR,
|
||||
progress: ((lang.size / totalLanguageSize) * 100).toFixed(2),
|
||||
text: lang.text,
|
||||
index,
|
||||
});
|
||||
}),
|
||||
@@ -165,10 +160,9 @@ const renderNormalLayout = (langs, width, totalLanguageSize) => {
|
||||
* @param {Lang[]} langs Array of programming languages.
|
||||
* @param {number} width Card width.
|
||||
* @param {number} totalLanguageSize Total size of all languages.
|
||||
* @param {boolean} hideProgress Whether to hide progress bar.
|
||||
* @returns {string} Compact layout card SVG object.
|
||||
*/
|
||||
const renderCompactLayout = (langs, width, totalLanguageSize, hideProgress) => {
|
||||
const renderCompactLayout = (langs, width, totalLanguageSize) => {
|
||||
const paddingRight = 50;
|
||||
const offsetWidth = width - paddingRight;
|
||||
// progressOffset holds the previous language's width and used to offset the next language
|
||||
@@ -199,21 +193,15 @@ const renderCompactLayout = (langs, width, totalLanguageSize, hideProgress) => {
|
||||
.join("");
|
||||
|
||||
return `
|
||||
${
|
||||
!hideProgress
|
||||
? `
|
||||
<mask id="rect-mask">
|
||||
<mask id="rect-mask">
|
||||
<rect x="0" y="0" width="${offsetWidth}" height="8" fill="white" rx="5"/>
|
||||
</mask>
|
||||
${compactProgressBar}
|
||||
`
|
||||
: ""
|
||||
}
|
||||
<g transform="translate(0, ${hideProgress ? "0" : "25"})">
|
||||
|
||||
<g transform="translate(0, 25)">
|
||||
${createLanguageTextNode({
|
||||
langs,
|
||||
totalSize: totalLanguageSize,
|
||||
hideProgress: hideProgress,
|
||||
})}
|
||||
</g>
|
||||
`;
|
||||
@@ -280,12 +268,6 @@ const useLanguages = (topLangs, hide, langs_count) => {
|
||||
* @returns {string} Language card SVG object.
|
||||
*/
|
||||
const renderTopLanguages = (topLangs, options = {}) => {
|
||||
const locale = options.locale
|
||||
const i18n = new I18n({
|
||||
locale,
|
||||
translations: langCardLocales,
|
||||
});
|
||||
|
||||
const {
|
||||
hide_title = false,
|
||||
hide_border,
|
||||
@@ -294,17 +276,21 @@ const renderTopLanguages = (topLangs, options = {}) => {
|
||||
text_color,
|
||||
bg_color,
|
||||
hide,
|
||||
hide_progress,
|
||||
theme,
|
||||
layout,
|
||||
custom_title,
|
||||
locale,
|
||||
langs_count = DEFAULT_LANGS_COUNT,
|
||||
border_radius,
|
||||
border_color,
|
||||
title = i18n.t("langcard.title"),
|
||||
disable_animations,
|
||||
} = options;
|
||||
|
||||
const i18n = new I18n({
|
||||
locale,
|
||||
translations: langCardLocales,
|
||||
});
|
||||
|
||||
const { langs, totalLanguageSize } = useLanguages(
|
||||
topLangs,
|
||||
hide,
|
||||
@@ -319,17 +305,11 @@ const renderTopLanguages = (topLangs, options = {}) => {
|
||||
let height = calculateNormalLayoutHeight(langs.length);
|
||||
|
||||
let finalLayout = "";
|
||||
if (layout === "compact" || hide_progress == true) {
|
||||
if (layout === "compact") {
|
||||
width = width + 50; // padding
|
||||
height =
|
||||
calculateCompactLayoutHeight(langs.length) + (hide_progress ? -25 : 0);
|
||||
height = calculateCompactLayoutHeight(langs.length);
|
||||
|
||||
finalLayout = renderCompactLayout(
|
||||
langs,
|
||||
width,
|
||||
totalLanguageSize,
|
||||
hide_progress,
|
||||
);
|
||||
finalLayout = renderCompactLayout(langs, width, totalLanguageSize);
|
||||
} else {
|
||||
finalLayout = renderNormalLayout(langs, width, totalLanguageSize);
|
||||
}
|
||||
@@ -345,7 +325,7 @@ const renderTopLanguages = (topLangs, options = {}) => {
|
||||
|
||||
const card = new Card({
|
||||
customTitle: custom_title,
|
||||
defaultTitle: title,
|
||||
defaultTitle: i18n.t("langcard.title"),
|
||||
width,
|
||||
height,
|
||||
border_radius,
|
||||
|
||||
@@ -38,7 +38,6 @@ export type TopLangOptions = CommonOptions & {
|
||||
custom_title: string;
|
||||
langs_count: number;
|
||||
disable_animations: boolean;
|
||||
hide_progress: boolean;
|
||||
};
|
||||
|
||||
type WakaTimeOptions = CommonOptions & {
|
||||
|
||||
@@ -177,7 +177,11 @@ class Card {
|
||||
}
|
||||
${this.css}
|
||||
|
||||
${process.env.NODE_ENV === "test" ? "" : getAnimations()}
|
||||
${
|
||||
process.env.NODE_ENV === "test" || this.animations === false
|
||||
? ""
|
||||
: getAnimations()
|
||||
}
|
||||
${
|
||||
this.animations === false
|
||||
? `* { animation-duration: 0s !important; animation-delay: 0s !important; }`
|
||||
|
||||
@@ -102,7 +102,6 @@
|
||||
"Csound Score": "#1a1a1a",
|
||||
"Cuda": "#3A4E3A",
|
||||
"Curry": "#531242",
|
||||
"Cypher": "#34c0eb",
|
||||
"Cython": "#fedf5b",
|
||||
"D": "#ba595e",
|
||||
"DM": "#447265",
|
||||
@@ -125,7 +124,6 @@
|
||||
"Earthly": "#2af0ff",
|
||||
"Easybuild": "#069406",
|
||||
"Ecere Projects": "#913960",
|
||||
"Ecmarkup": "#eb8131",
|
||||
"EditorConfig": "#fff1f2",
|
||||
"Eiffel": "#4d6977",
|
||||
"Elixir": "#6e4a7e",
|
||||
@@ -217,7 +215,6 @@
|
||||
"Idris": "#b30000",
|
||||
"Ignore List": "#000000",
|
||||
"ImageJ Macro": "#99AAFF",
|
||||
"Imba": "#16cec6",
|
||||
"Inno Setup": "#264b99",
|
||||
"Io": "#a9188d",
|
||||
"Ioke": "#078193",
|
||||
@@ -289,7 +286,6 @@
|
||||
"Mathematica": "#dd1100",
|
||||
"Max": "#c4a79c",
|
||||
"Mercury": "#ff2b2b",
|
||||
"Mermaid": "#ff3670",
|
||||
"Meson": "#007800",
|
||||
"Metal": "#8f14e9",
|
||||
"MiniYAML": "#ff1111",
|
||||
@@ -322,10 +318,6 @@
|
||||
"Nu": "#c9df40",
|
||||
"NumPy": "#9C8AF9",
|
||||
"Nunjucks": "#3d8137",
|
||||
"OASv2-json": "#85ea2d",
|
||||
"OASv2-yaml": "#85ea2d",
|
||||
"OASv3-json": "#85ea2d",
|
||||
"OASv3-yaml": "#85ea2d",
|
||||
"OCaml": "#3be133",
|
||||
"ObjectScript": "#424893",
|
||||
"Objective-C": "#438eff",
|
||||
@@ -335,18 +327,14 @@
|
||||
"Omgrofl": "#cabbff",
|
||||
"Opal": "#f7ede0",
|
||||
"Open Policy Agent": "#7d9199",
|
||||
"OpenAPI Specification v2": "#85ea2d",
|
||||
"OpenAPI Specification v3": "#85ea2d",
|
||||
"OpenCL": "#ed2e2d",
|
||||
"OpenEdge ABL": "#5ce600",
|
||||
"OpenQASM": "#AA70FF",
|
||||
"OpenSCAD": "#e5cd45",
|
||||
"Option List": "#476732",
|
||||
"Org": "#77aa99",
|
||||
"Oxygene": "#cdd0e3",
|
||||
"Oz": "#fab738",
|
||||
"P4": "#7055b5",
|
||||
"PDDL": "#0d00ff",
|
||||
"PEG.js": "#234d6b",
|
||||
"PHP": "#4F5D95",
|
||||
"PLSQL": "#dad8d8",
|
||||
@@ -363,7 +351,6 @@
|
||||
"PigLatin": "#fcd7de",
|
||||
"Pike": "#005390",
|
||||
"PogoScript": "#d80074",
|
||||
"Polar": "#ae81ff",
|
||||
"Portugol": "#f8bd00",
|
||||
"PostCSS": "#dc3a0c",
|
||||
"PostScript": "#da291c",
|
||||
@@ -427,7 +414,6 @@
|
||||
"Sass": "#a53b70",
|
||||
"Scala": "#c22d40",
|
||||
"Scaml": "#bd181a",
|
||||
"Scenic": "#fdc700",
|
||||
"Scheme": "#1e4aec",
|
||||
"Scilab": "#ca0f21",
|
||||
"Self": "#0579aa",
|
||||
@@ -435,7 +421,6 @@
|
||||
"Shell": "#89e051",
|
||||
"ShellCheck Config": "#cecfcb",
|
||||
"Shen": "#120F14",
|
||||
"Simple File Verification": "#C9BFED",
|
||||
"Singularity": "#64E6AD",
|
||||
"Slash": "#007eff",
|
||||
"Slice": "#003fa2",
|
||||
@@ -443,7 +428,6 @@
|
||||
"SmPL": "#c94949",
|
||||
"Smalltalk": "#596706",
|
||||
"Smarty": "#f0c040",
|
||||
"Smithy": "#c44536",
|
||||
"Solidity": "#AA6746",
|
||||
"SourcePawn": "#f69e1d",
|
||||
"Squirrel": "#800000",
|
||||
@@ -494,7 +478,6 @@
|
||||
"Vim Script": "#199f4b",
|
||||
"Vim Snippet": "#199f4b",
|
||||
"Visual Basic .NET": "#945db7",
|
||||
"Visual Basic 6.0": "#2c6353",
|
||||
"Volt": "#1F1F1F",
|
||||
"Vue": "#41b883",
|
||||
"Vyper": "#2980b9",
|
||||
@@ -531,7 +514,6 @@
|
||||
"fish": "#4aae47",
|
||||
"hoon": "#00b171",
|
||||
"jq": "#c7254e",
|
||||
"just": "#384d54",
|
||||
"kvlang": "#1da6e0",
|
||||
"mIRC Script": "#3d57c3",
|
||||
"mcfunction": "#E22837",
|
||||
|
||||
@@ -43,6 +43,11 @@ const getProgressAnimation = ({ progress }) => {
|
||||
const getAnimations = () => {
|
||||
return `
|
||||
/* Animations */
|
||||
.stagger {
|
||||
opacity: 0;
|
||||
animation: fadeInAnimation 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
@keyframes scaleInAnimation {
|
||||
from {
|
||||
transform: translate(-5px, 5px) scale(0);
|
||||
@@ -89,10 +94,7 @@ const getStyles = ({
|
||||
/* Selector detects Firefox */
|
||||
.stat { font-size:12px; }
|
||||
}
|
||||
.stagger {
|
||||
opacity: 0;
|
||||
animation: fadeInAnimation 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.rank-text {
|
||||
font: 800 24px 'Segoe UI', Ubuntu, Sans-Serif; fill: ${textColor};
|
||||
animation: scaleInAnimation 0.3s ease-in-out forwards;
|
||||
|
||||
@@ -34,10 +34,7 @@ exports[`Test Render Wakatime Card should render correctly with compact layout 1
|
||||
/* Selector detects Firefox */
|
||||
.stat { font-size:12px; }
|
||||
}
|
||||
.stagger {
|
||||
opacity: 0;
|
||||
animation: fadeInAnimation 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.rank-text {
|
||||
font: 800 24px 'Segoe UI', Ubuntu, Sans-Serif; fill: #434d58;
|
||||
animation: scaleInAnimation 0.3s ease-in-out forwards;
|
||||
@@ -192,10 +189,7 @@ exports[`Test Render Wakatime Card should render correctly with compact layout w
|
||||
/* Selector detects Firefox */
|
||||
.stat { font-size:12px; }
|
||||
}
|
||||
.stagger {
|
||||
opacity: 0;
|
||||
animation: fadeInAnimation 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.rank-text {
|
||||
font: 800 24px 'Segoe UI', Ubuntu, Sans-Serif; fill: #434d58;
|
||||
animation: scaleInAnimation 0.3s ease-in-out forwards;
|
||||
|
||||
@@ -0,0 +1,177 @@
|
||||
<svg
|
||||
width="800"
|
||||
height="195"
|
||||
viewBox="0 0 800 195"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
role="img"
|
||||
aria-labelledby="descId"
|
||||
>
|
||||
<title id="titleId">Cateline Mnemosyne's GitHub Stats, Rank: A+</title>
|
||||
<desc id="descId">
|
||||
Total Stars Earned: 1, Total Commits in 2023 : 1, Total PRs: 1, Total
|
||||
Issues: 1, Contributed to (last year): 1
|
||||
</desc>
|
||||
<style>
|
||||
.header {
|
||||
font: 600 18px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #2f80ed;
|
||||
animation: fadeInAnimation 0.8s ease-in-out forwards;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.header {
|
||||
font-size: 15.5px;
|
||||
}
|
||||
}
|
||||
|
||||
.stat {
|
||||
font: 600 14px "Segoe UI", Ubuntu, "Helvetica Neue", Sans-Serif;
|
||||
fill: #434d58;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.stat {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.rank-text {
|
||||
font: 800 24px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #434d58;
|
||||
animation: scaleInAnimation 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.not_bold {
|
||||
font-weight: 400;
|
||||
}
|
||||
.bold {
|
||||
font-weight: 700;
|
||||
}
|
||||
.icon {
|
||||
fill: #4c71f2;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.rank-circle-rim {
|
||||
stroke: #2f80ed;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
opacity: 0.2;
|
||||
}
|
||||
.rank-circle {
|
||||
stroke: #2f80ed;
|
||||
stroke-dasharray: 250;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
stroke-linecap: round;
|
||||
opacity: 0.8;
|
||||
transform-origin: -10px 8px;
|
||||
transform: rotate(-90deg);
|
||||
animation: rankAnimation 1s forwards ease-in-out;
|
||||
}
|
||||
|
||||
* {
|
||||
animation-duration: 0s !important;
|
||||
animation-delay: 0s !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<rect
|
||||
data-testid="card-bg"
|
||||
x="0.5"
|
||||
y="0.5"
|
||||
rx="4.5"
|
||||
height="99%"
|
||||
stroke="#e4e2e2"
|
||||
width="799"
|
||||
fill="#fffefe"
|
||||
stroke-opacity="1"
|
||||
/>
|
||||
|
||||
<g data-testid="card-title" transform="translate(25, 35)">
|
||||
<g transform="translate(0, 0)">
|
||||
<text x="0" y="0" class="header" data-testid="header">
|
||||
Cateline Mnemosyne's GitHub Stats
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g data-testid="main-card-body" transform="translate(0, 55)">
|
||||
<g data-testid="rank-circle" transform="translate(715, 47.5)">
|
||||
<circle class="rank-circle-rim" cx="-10" cy="8" r="40" />
|
||||
<circle class="rank-circle" cx="-10" cy="8" r="40" />
|
||||
<g class="rank-text">
|
||||
<text
|
||||
x="-5"
|
||||
y="3"
|
||||
alignment-baseline="central"
|
||||
dominant-baseline="central"
|
||||
text-anchor="middle"
|
||||
>
|
||||
A+
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<svg x="0" y="0">
|
||||
<g transform="translate(0, 0)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 450ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Stars Earned:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="stars">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 25)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 600ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Commits (2023):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="commits">
|
||||
7
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 50)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 750ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total PRs:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="prs">1</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 75)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 900ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Issues:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="issues">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 100)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 1050ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Contributed to (last year):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="contribs">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,249 @@
|
||||
<svg
|
||||
width="467"
|
||||
height="195"
|
||||
viewBox="0 0 467 195"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
role="img"
|
||||
aria-labelledby="descId"
|
||||
>
|
||||
<title id="titleId">Cateline Mnemosyne's GitHub Stats, Rank: A+</title>
|
||||
<desc id="descId">
|
||||
Total Stars Earned: 1, Total Commits in 2023 : 1, Total PRs: 1, Total
|
||||
Issues: 1, Contributed to (last year): 1
|
||||
</desc>
|
||||
<style>
|
||||
.header {
|
||||
font: 600 18px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #abd200;
|
||||
animation: fadeInAnimation 0.8s ease-in-out forwards;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.header {
|
||||
font-size: 15.5px;
|
||||
}
|
||||
}
|
||||
|
||||
.stat {
|
||||
font: 600 14px "Segoe UI", Ubuntu, "Helvetica Neue", Sans-Serif;
|
||||
fill: #68b587;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.stat {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.rank-text {
|
||||
font: 800 24px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #68b587;
|
||||
animation: scaleInAnimation 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.not_bold {
|
||||
font-weight: 400;
|
||||
}
|
||||
.bold {
|
||||
font-weight: 700;
|
||||
}
|
||||
.icon {
|
||||
fill: #b7d364;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.rank-circle-rim {
|
||||
stroke: #abd200;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
opacity: 0.2;
|
||||
}
|
||||
.rank-circle {
|
||||
stroke: #abd200;
|
||||
stroke-dasharray: 250;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
stroke-linecap: round;
|
||||
opacity: 0.8;
|
||||
transform-origin: -10px 8px;
|
||||
transform: rotate(-90deg);
|
||||
animation: rankAnimation 1s forwards ease-in-out;
|
||||
}
|
||||
|
||||
* {
|
||||
animation-duration: 0s !important;
|
||||
animation-delay: 0s !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<rect
|
||||
data-testid="card-bg"
|
||||
x="0.5"
|
||||
y="0.5"
|
||||
rx="4.5"
|
||||
height="99%"
|
||||
stroke="#0044ff"
|
||||
width="466"
|
||||
fill="#0a0f0b"
|
||||
stroke-opacity="1"
|
||||
/>
|
||||
|
||||
<g data-testid="card-title" transform="translate(25, 35)">
|
||||
<g transform="translate(0, 0)">
|
||||
<text x="0" y="0" class="header" data-testid="header">
|
||||
Cateline Mnemosyne's GitHub Stats
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g data-testid="main-card-body" transform="translate(0, 55)">
|
||||
<g data-testid="rank-circle" transform="translate(390.5, 47.5)">
|
||||
<circle class="rank-circle-rim" cx="-10" cy="8" r="40" />
|
||||
<circle class="rank-circle" cx="-10" cy="8" r="40" />
|
||||
<g class="rank-text">
|
||||
<text
|
||||
x="-5"
|
||||
y="3"
|
||||
alignment-baseline="central"
|
||||
dominant-baseline="central"
|
||||
text-anchor="middle"
|
||||
>
|
||||
A+
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<svg x="0" y="0">
|
||||
<g transform="translate(0, 0)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 450ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<svg
|
||||
data-testid="icon"
|
||||
class="icon"
|
||||
viewBox="0 0 16 16"
|
||||
version="1.1"
|
||||
width="16"
|
||||
height="16"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"
|
||||
/>
|
||||
</svg>
|
||||
|
||||
<text class="stat bold" x="25" y="12.5">Total Stars Earned:</text>
|
||||
<text class="stat bold" x="219.01" y="12.5" data-testid="stars">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 25)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 600ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<svg
|
||||
data-testid="icon"
|
||||
class="icon"
|
||||
viewBox="0 0 16 16"
|
||||
version="1.1"
|
||||
width="16"
|
||||
height="16"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M1.643 3.143L.427 1.927A.25.25 0 000 2.104V5.75c0 .138.112.25.25.25h3.646a.25.25 0 00.177-.427L2.715 4.215a6.5 6.5 0 11-1.18 4.458.75.75 0 10-1.493.154 8.001 8.001 0 101.6-5.684zM7.75 4a.75.75 0 01.75.75v2.992l2.028.812a.75.75 0 01-.557 1.392l-2.5-1A.75.75 0 017 8.25v-3.5A.75.75 0 017.75 4z"
|
||||
/>
|
||||
</svg>
|
||||
|
||||
<text class="stat bold" x="25" y="12.5">Total Commits (2023):</text>
|
||||
<text class="stat bold" x="219.01" y="12.5" data-testid="commits">
|
||||
7
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 50)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 750ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<svg
|
||||
data-testid="icon"
|
||||
class="icon"
|
||||
viewBox="0 0 16 16"
|
||||
version="1.1"
|
||||
width="16"
|
||||
height="16"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M7.177 3.073L9.573.677A.25.25 0 0110 .854v4.792a.25.25 0 01-.427.177L7.177 3.427a.25.25 0 010-.354zM3.75 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122v5.256a2.251 2.251 0 11-1.5 0V5.372A2.25 2.25 0 011.5 3.25zM11 2.5h-1V4h1a1 1 0 011 1v5.628a2.251 2.251 0 101.5 0V5A2.5 2.5 0 0011 2.5zm1 10.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.75 12a.75.75 0 100 1.5.75.75 0 000-1.5z"
|
||||
/>
|
||||
</svg>
|
||||
|
||||
<text class="stat bold" x="25" y="12.5">Total PRs:</text>
|
||||
<text class="stat bold" x="219.01" y="12.5" data-testid="prs">1</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 75)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 900ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<svg
|
||||
data-testid="icon"
|
||||
class="icon"
|
||||
viewBox="0 0 16 16"
|
||||
version="1.1"
|
||||
width="16"
|
||||
height="16"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z"
|
||||
/>
|
||||
</svg>
|
||||
|
||||
<text class="stat bold" x="25" y="12.5">Total Issues:</text>
|
||||
<text class="stat bold" x="219.01" y="12.5" data-testid="issues">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 100)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 1050ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<svg
|
||||
data-testid="icon"
|
||||
class="icon"
|
||||
viewBox="0 0 16 16"
|
||||
version="1.1"
|
||||
width="16"
|
||||
height="16"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"
|
||||
/>
|
||||
</svg>
|
||||
|
||||
<text class="stat bold" x="25" y="12.5">
|
||||
Contributed to (last year):
|
||||
</text>
|
||||
<text class="stat bold" x="219.01" y="12.5" data-testid="contribs">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.5 KiB |
@@ -0,0 +1,179 @@
|
||||
<svg
|
||||
width="450"
|
||||
height="195"
|
||||
viewBox="0 0 450 195"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
role="img"
|
||||
aria-labelledby="descId"
|
||||
>
|
||||
<title id="titleId">
|
||||
Hello world, this is a very very very very very long title, Rank: A+
|
||||
</title>
|
||||
<desc id="descId">
|
||||
Total Stars Earned: 1, Total Commits in 2023 : 1, Total PRs: 1, Total
|
||||
Issues: 1, Contributed to (last year): 1
|
||||
</desc>
|
||||
<style>
|
||||
.header {
|
||||
font: 600 18px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #2f80ed;
|
||||
animation: fadeInAnimation 0.8s ease-in-out forwards;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.header {
|
||||
font-size: 15.5px;
|
||||
}
|
||||
}
|
||||
|
||||
.stat {
|
||||
font: 600 14px "Segoe UI", Ubuntu, "Helvetica Neue", Sans-Serif;
|
||||
fill: #434d58;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.stat {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.rank-text {
|
||||
font: 800 24px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #434d58;
|
||||
animation: scaleInAnimation 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.not_bold {
|
||||
font-weight: 400;
|
||||
}
|
||||
.bold {
|
||||
font-weight: 700;
|
||||
}
|
||||
.icon {
|
||||
fill: #4c71f2;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.rank-circle-rim {
|
||||
stroke: #2f80ed;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
opacity: 0.2;
|
||||
}
|
||||
.rank-circle {
|
||||
stroke: #2f80ed;
|
||||
stroke-dasharray: 250;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
stroke-linecap: round;
|
||||
opacity: 0.8;
|
||||
transform-origin: -10px 8px;
|
||||
transform: rotate(-90deg);
|
||||
animation: rankAnimation 1s forwards ease-in-out;
|
||||
}
|
||||
|
||||
* {
|
||||
animation-duration: 0s !important;
|
||||
animation-delay: 0s !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<rect
|
||||
data-testid="card-bg"
|
||||
x="0.5"
|
||||
y="0.5"
|
||||
rx="4.5"
|
||||
height="99%"
|
||||
stroke="#e4e2e2"
|
||||
width="449"
|
||||
fill="#fffefe"
|
||||
stroke-opacity="1"
|
||||
/>
|
||||
|
||||
<g data-testid="card-title" transform="translate(25, 35)">
|
||||
<g transform="translate(0, 0)">
|
||||
<text x="0" y="0" class="header" data-testid="header">
|
||||
Hello world, this is a very very very very very long title
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g data-testid="main-card-body" transform="translate(0, 55)">
|
||||
<g data-testid="rank-circle" transform="translate(365, 47.5)">
|
||||
<circle class="rank-circle-rim" cx="-10" cy="8" r="40" />
|
||||
<circle class="rank-circle" cx="-10" cy="8" r="40" />
|
||||
<g class="rank-text">
|
||||
<text
|
||||
x="-5"
|
||||
y="3"
|
||||
alignment-baseline="central"
|
||||
dominant-baseline="central"
|
||||
text-anchor="middle"
|
||||
>
|
||||
A+
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<svg x="0" y="0">
|
||||
<g transform="translate(0, 0)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 450ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Stars Earned:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="stars">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 25)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 600ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Commits (2023):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="commits">
|
||||
7
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 50)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 750ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total PRs:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="prs">1</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 75)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 900ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Issues:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="issues">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 100)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 1050ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Contributed to (last year):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="contribs">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,164 @@
|
||||
<svg
|
||||
width="524.375"
|
||||
height="195"
|
||||
viewBox="0 0 524.375 195"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
role="img"
|
||||
aria-labelledby="descId"
|
||||
>
|
||||
<title id="titleId">
|
||||
Hello world, this is a very very very very very long title, Rank: A+
|
||||
</title>
|
||||
<desc id="descId">
|
||||
Total Stars Earned: 1, Total Commits in 2023 : 1, Total PRs: 1, Total
|
||||
Issues: 1, Contributed to (last year): 1
|
||||
</desc>
|
||||
<style>
|
||||
.header {
|
||||
font: 600 18px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #2f80ed;
|
||||
animation: fadeInAnimation 0.8s ease-in-out forwards;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.header {
|
||||
font-size: 15.5px;
|
||||
}
|
||||
}
|
||||
|
||||
.stat {
|
||||
font: 600 14px "Segoe UI", Ubuntu, "Helvetica Neue", Sans-Serif;
|
||||
fill: #434d58;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.stat {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.rank-text {
|
||||
font: 800 24px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #434d58;
|
||||
animation: scaleInAnimation 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.not_bold {
|
||||
font-weight: 400;
|
||||
}
|
||||
.bold {
|
||||
font-weight: 700;
|
||||
}
|
||||
.icon {
|
||||
fill: #4c71f2;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.rank-circle-rim {
|
||||
stroke: #2f80ed;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
opacity: 0.2;
|
||||
}
|
||||
.rank-circle {
|
||||
stroke: #2f80ed;
|
||||
stroke-dasharray: 250;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
stroke-linecap: round;
|
||||
opacity: 0.8;
|
||||
transform-origin: -10px 8px;
|
||||
transform: rotate(-90deg);
|
||||
animation: rankAnimation 1s forwards ease-in-out;
|
||||
}
|
||||
|
||||
* {
|
||||
animation-duration: 0s !important;
|
||||
animation-delay: 0s !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<rect
|
||||
data-testid="card-bg"
|
||||
x="0.5"
|
||||
y="0.5"
|
||||
rx="4.5"
|
||||
height="99%"
|
||||
stroke="#e4e2e2"
|
||||
width="523.375"
|
||||
fill="#fffefe"
|
||||
stroke-opacity="1"
|
||||
/>
|
||||
|
||||
<g data-testid="card-title" transform="translate(25, 35)">
|
||||
<g transform="translate(0, 0)">
|
||||
<text x="0" y="0" class="header" data-testid="header">
|
||||
Hello world, this is a very very very very very long title
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g data-testid="main-card-body" transform="translate(0, 55)">
|
||||
<svg x="0" y="0">
|
||||
<g transform="translate(0, 0)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 450ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Stars Earned:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="stars">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 25)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 600ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Commits (2023):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="commits">
|
||||
7
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 50)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 750ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total PRs:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="prs">1</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 75)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 900ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Issues:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="issues">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 100)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 1050ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Contributed to (last year):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="contribs">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1,164 @@
|
||||
<svg
|
||||
width="524.375"
|
||||
height="195"
|
||||
viewBox="0 0 524.375 195"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
role="img"
|
||||
aria-labelledby="descId"
|
||||
>
|
||||
<title id="titleId">
|
||||
Hello world, this is a very very very very very long title, Rank: A+
|
||||
</title>
|
||||
<desc id="descId">
|
||||
Total Stars Earned: 1, Total Commits in 2023 : 1, Total PRs: 1, Total
|
||||
Issues: 1, Contributed to (last year): 1
|
||||
</desc>
|
||||
<style>
|
||||
.header {
|
||||
font: 600 18px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #2f80ed;
|
||||
animation: fadeInAnimation 0.8s ease-in-out forwards;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.header {
|
||||
font-size: 15.5px;
|
||||
}
|
||||
}
|
||||
|
||||
.stat {
|
||||
font: 600 14px "Segoe UI", Ubuntu, "Helvetica Neue", Sans-Serif;
|
||||
fill: #434d58;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.stat {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.rank-text {
|
||||
font: 800 24px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #434d58;
|
||||
animation: scaleInAnimation 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.not_bold {
|
||||
font-weight: 400;
|
||||
}
|
||||
.bold {
|
||||
font-weight: 700;
|
||||
}
|
||||
.icon {
|
||||
fill: #4c71f2;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.rank-circle-rim {
|
||||
stroke: #2f80ed;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
opacity: 0.2;
|
||||
}
|
||||
.rank-circle {
|
||||
stroke: #2f80ed;
|
||||
stroke-dasharray: 250;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
stroke-linecap: round;
|
||||
opacity: 0.8;
|
||||
transform-origin: -10px 8px;
|
||||
transform: rotate(-90deg);
|
||||
animation: rankAnimation 1s forwards ease-in-out;
|
||||
}
|
||||
|
||||
* {
|
||||
animation-duration: 0s !important;
|
||||
animation-delay: 0s !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<rect
|
||||
data-testid="card-bg"
|
||||
x="0.5"
|
||||
y="0.5"
|
||||
rx="4.5"
|
||||
height="99%"
|
||||
stroke="#e4e2e2"
|
||||
width="523.375"
|
||||
fill="#fffefe"
|
||||
stroke-opacity="1"
|
||||
/>
|
||||
|
||||
<g data-testid="card-title" transform="translate(25, 35)">
|
||||
<g transform="translate(0, 0)">
|
||||
<text x="0" y="0" class="header" data-testid="header">
|
||||
Hello world, this is a very very very very very long title
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g data-testid="main-card-body" transform="translate(0, 55)">
|
||||
<svg x="0" y="0">
|
||||
<g transform="translate(0, 0)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 450ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Stars Earned:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="stars">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 25)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 600ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Commits (2023):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="commits">
|
||||
7
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 50)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 750ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total PRs:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="prs">1</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 75)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 900ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Issues:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="issues">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 100)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 1050ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Contributed to (last year):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="contribs">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1,152 @@
|
||||
<svg
|
||||
width="450"
|
||||
height="150"
|
||||
viewBox="0 0 450 150"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
role="img"
|
||||
aria-labelledby="descId"
|
||||
>
|
||||
<title id="titleId">Cateline Mnemosyne's GitHub Stats, Rank: A+</title>
|
||||
<desc id="descId">
|
||||
Total PRs: 1, Total Issues: 1, Contributed to (last year): 1
|
||||
</desc>
|
||||
<style>
|
||||
.header {
|
||||
font: 600 18px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #2f80ed;
|
||||
animation: fadeInAnimation 0.8s ease-in-out forwards;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.header {
|
||||
font-size: 15.5px;
|
||||
}
|
||||
}
|
||||
|
||||
.stat {
|
||||
font: 600 14px "Segoe UI", Ubuntu, "Helvetica Neue", Sans-Serif;
|
||||
fill: #434d58;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.stat {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.rank-text {
|
||||
font: 800 24px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #434d58;
|
||||
animation: scaleInAnimation 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.not_bold {
|
||||
font-weight: 400;
|
||||
}
|
||||
.bold {
|
||||
font-weight: 700;
|
||||
}
|
||||
.icon {
|
||||
fill: #4c71f2;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.rank-circle-rim {
|
||||
stroke: #2f80ed;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
opacity: 0.2;
|
||||
}
|
||||
.rank-circle {
|
||||
stroke: #2f80ed;
|
||||
stroke-dasharray: 250;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
stroke-linecap: round;
|
||||
opacity: 0.8;
|
||||
transform-origin: -10px 8px;
|
||||
transform: rotate(-90deg);
|
||||
animation: rankAnimation 1s forwards ease-in-out;
|
||||
}
|
||||
|
||||
* {
|
||||
animation-duration: 0s !important;
|
||||
animation-delay: 0s !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<rect
|
||||
data-testid="card-bg"
|
||||
x="0.5"
|
||||
y="0.5"
|
||||
rx="4.5"
|
||||
height="99%"
|
||||
stroke="#e4e2e2"
|
||||
width="449"
|
||||
fill="#fffefe"
|
||||
stroke-opacity="1"
|
||||
/>
|
||||
|
||||
<g data-testid="card-title" transform="translate(25, 35)">
|
||||
<g transform="translate(0, 0)">
|
||||
<text x="0" y="0" class="header" data-testid="header">
|
||||
Cateline Mnemosyne's GitHub Stats
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g data-testid="main-card-body" transform="translate(0, 55)">
|
||||
<g data-testid="rank-circle" transform="translate(365, 25)">
|
||||
<circle class="rank-circle-rim" cx="-10" cy="8" r="40" />
|
||||
<circle class="rank-circle" cx="-10" cy="8" r="40" />
|
||||
<g class="rank-text">
|
||||
<text
|
||||
x="-5"
|
||||
y="3"
|
||||
alignment-baseline="central"
|
||||
dominant-baseline="central"
|
||||
text-anchor="middle"
|
||||
>
|
||||
A+
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<svg x="0" y="0">
|
||||
<g transform="translate(0, 0)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 450ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total PRs:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="prs">1</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 25)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 600ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Issues:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="issues">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 50)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 750ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Contributed to (last year):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="contribs">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.6 KiB |
@@ -0,0 +1,177 @@
|
||||
<svg
|
||||
width="450"
|
||||
height="195"
|
||||
viewBox="0 0 450 195"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
role="img"
|
||||
aria-labelledby="descId"
|
||||
>
|
||||
<title id="titleId">Cateline Mnemosyne's GitHub Stats, Rank: A+</title>
|
||||
<desc id="descId">
|
||||
Total Stars Earned: 1, Total Commits in 2023 : 1, Total PRs: 1, Total
|
||||
Issues: 1, Contributed to (last year): 1
|
||||
</desc>
|
||||
<style>
|
||||
.header {
|
||||
font: 600 18px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #2f80ed;
|
||||
animation: fadeInAnimation 0.8s ease-in-out forwards;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.header {
|
||||
font-size: 15.5px;
|
||||
}
|
||||
}
|
||||
|
||||
.stat {
|
||||
font: 600 14px "Segoe UI", Ubuntu, "Helvetica Neue", Sans-Serif;
|
||||
fill: #434d58;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.stat {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.rank-text {
|
||||
font: 800 24px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #434d58;
|
||||
animation: scaleInAnimation 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.not_bold {
|
||||
font-weight: 400;
|
||||
}
|
||||
.bold {
|
||||
font-weight: 700;
|
||||
}
|
||||
.icon {
|
||||
fill: #4c71f2;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.rank-circle-rim {
|
||||
stroke: #2f80ed;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
opacity: 0.2;
|
||||
}
|
||||
.rank-circle {
|
||||
stroke: #2f80ed;
|
||||
stroke-dasharray: 250;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
stroke-linecap: round;
|
||||
opacity: 0.8;
|
||||
transform-origin: -10px 8px;
|
||||
transform: rotate(-90deg);
|
||||
animation: rankAnimation 1s forwards ease-in-out;
|
||||
}
|
||||
|
||||
* {
|
||||
animation-duration: 0s !important;
|
||||
animation-delay: 0s !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<rect
|
||||
data-testid="card-bg"
|
||||
x="0.5"
|
||||
y="0.5"
|
||||
rx="4.5"
|
||||
height="99%"
|
||||
stroke="#e4e2e2"
|
||||
width="449"
|
||||
fill="#fffefe"
|
||||
stroke-opacity="0"
|
||||
/>
|
||||
|
||||
<g data-testid="card-title" transform="translate(25, 35)">
|
||||
<g transform="translate(0, 0)">
|
||||
<text x="0" y="0" class="header" data-testid="header">
|
||||
Cateline Mnemosyne's GitHub Stats
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g data-testid="main-card-body" transform="translate(0, 55)">
|
||||
<g data-testid="rank-circle" transform="translate(365, 47.5)">
|
||||
<circle class="rank-circle-rim" cx="-10" cy="8" r="40" />
|
||||
<circle class="rank-circle" cx="-10" cy="8" r="40" />
|
||||
<g class="rank-text">
|
||||
<text
|
||||
x="-5"
|
||||
y="3"
|
||||
alignment-baseline="central"
|
||||
dominant-baseline="central"
|
||||
text-anchor="middle"
|
||||
>
|
||||
A+
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<svg x="0" y="0">
|
||||
<g transform="translate(0, 0)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 450ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Stars Earned:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="stars">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 25)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 600ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Commits (2023):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="commits">
|
||||
7
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 50)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 750ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total PRs:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="prs">1</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 75)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 900ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Issues:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="issues">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 100)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 1050ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Contributed to (last year):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="contribs">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,162 @@
|
||||
<svg
|
||||
width="370.1875000000001"
|
||||
height="195"
|
||||
viewBox="0 0 370.1875000000001 195"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
role="img"
|
||||
aria-labelledby="descId"
|
||||
>
|
||||
<title id="titleId">Cateline Mnemosyne's GitHub Stats, Rank: A+</title>
|
||||
<desc id="descId">
|
||||
Total Stars Earned: 1, Total Commits in 2023 : 1, Total PRs: 1, Total
|
||||
Issues: 1, Contributed to (last year): 1
|
||||
</desc>
|
||||
<style>
|
||||
.header {
|
||||
font: 600 18px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #2f80ed;
|
||||
animation: fadeInAnimation 0.8s ease-in-out forwards;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.header {
|
||||
font-size: 15.5px;
|
||||
}
|
||||
}
|
||||
|
||||
.stat {
|
||||
font: 600 14px "Segoe UI", Ubuntu, "Helvetica Neue", Sans-Serif;
|
||||
fill: #434d58;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.stat {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.rank-text {
|
||||
font: 800 24px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #434d58;
|
||||
animation: scaleInAnimation 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.not_bold {
|
||||
font-weight: 400;
|
||||
}
|
||||
.bold {
|
||||
font-weight: 700;
|
||||
}
|
||||
.icon {
|
||||
fill: #4c71f2;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.rank-circle-rim {
|
||||
stroke: #2f80ed;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
opacity: 0.2;
|
||||
}
|
||||
.rank-circle {
|
||||
stroke: #2f80ed;
|
||||
stroke-dasharray: 250;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
stroke-linecap: round;
|
||||
opacity: 0.8;
|
||||
transform-origin: -10px 8px;
|
||||
transform: rotate(-90deg);
|
||||
animation: rankAnimation 1s forwards ease-in-out;
|
||||
}
|
||||
|
||||
* {
|
||||
animation-duration: 0s !important;
|
||||
animation-delay: 0s !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<rect
|
||||
data-testid="card-bg"
|
||||
x="0.5"
|
||||
y="0.5"
|
||||
rx="4.5"
|
||||
height="99%"
|
||||
stroke="#e4e2e2"
|
||||
width="369.1875000000001"
|
||||
fill="#fffefe"
|
||||
stroke-opacity="1"
|
||||
/>
|
||||
|
||||
<g data-testid="card-title" transform="translate(25, 35)">
|
||||
<g transform="translate(0, 0)">
|
||||
<text x="0" y="0" class="header" data-testid="header">
|
||||
Cateline Mnemosyne's GitHub Stats
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g data-testid="main-card-body" transform="translate(0, 55)">
|
||||
<svg x="0" y="0">
|
||||
<g transform="translate(0, 0)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 450ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Stars Earned:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="stars">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 25)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 600ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Commits (2023):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="commits">
|
||||
7
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 50)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 750ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total PRs:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="prs">1</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 75)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 900ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Issues:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="issues">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 100)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 1050ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Contributed to (last year):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="contribs">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1,169 @@
|
||||
<svg
|
||||
width="450"
|
||||
height="165"
|
||||
viewBox="0 0 450 165"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
role="img"
|
||||
aria-labelledby="descId"
|
||||
>
|
||||
<title id="titleId">Cateline Mnemosyne's GitHub Stats, Rank: A+</title>
|
||||
<desc id="descId">
|
||||
Total Stars Earned: 1, Total Commits in 2023 : 1, Total PRs: 1, Total
|
||||
Issues: 1, Contributed to (last year): 1
|
||||
</desc>
|
||||
<style>
|
||||
.header {
|
||||
font: 600 18px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #2f80ed;
|
||||
animation: fadeInAnimation 0.8s ease-in-out forwards;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.header {
|
||||
font-size: 15.5px;
|
||||
}
|
||||
}
|
||||
|
||||
.stat {
|
||||
font: 600 14px "Segoe UI", Ubuntu, "Helvetica Neue", Sans-Serif;
|
||||
fill: #434d58;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.stat {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.rank-text {
|
||||
font: 800 24px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #434d58;
|
||||
animation: scaleInAnimation 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.not_bold {
|
||||
font-weight: 400;
|
||||
}
|
||||
.bold {
|
||||
font-weight: 700;
|
||||
}
|
||||
.icon {
|
||||
fill: #4c71f2;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.rank-circle-rim {
|
||||
stroke: #2f80ed;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
opacity: 0.2;
|
||||
}
|
||||
.rank-circle {
|
||||
stroke: #2f80ed;
|
||||
stroke-dasharray: 250;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
stroke-linecap: round;
|
||||
opacity: 0.8;
|
||||
transform-origin: -10px 8px;
|
||||
transform: rotate(-90deg);
|
||||
animation: rankAnimation 1s forwards ease-in-out;
|
||||
}
|
||||
|
||||
* {
|
||||
animation-duration: 0s !important;
|
||||
animation-delay: 0s !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<rect
|
||||
data-testid="card-bg"
|
||||
x="0.5"
|
||||
y="0.5"
|
||||
rx="4.5"
|
||||
height="99%"
|
||||
stroke="#e4e2e2"
|
||||
width="449"
|
||||
fill="#fffefe"
|
||||
stroke-opacity="1"
|
||||
/>
|
||||
|
||||
<g data-testid="main-card-body" transform="translate(0, 25)">
|
||||
<g data-testid="rank-circle" transform="translate(365, 47.5)">
|
||||
<circle class="rank-circle-rim" cx="-10" cy="8" r="40" />
|
||||
<circle class="rank-circle" cx="-10" cy="8" r="40" />
|
||||
<g class="rank-text">
|
||||
<text
|
||||
x="-5"
|
||||
y="3"
|
||||
alignment-baseline="central"
|
||||
dominant-baseline="central"
|
||||
text-anchor="middle"
|
||||
>
|
||||
A+
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<svg x="0" y="0">
|
||||
<g transform="translate(0, 0)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 450ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Stars Earned:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="stars">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 25)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 600ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Commits (2023):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="commits">
|
||||
7
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 50)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 750ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total PRs:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="prs">1</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 75)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 900ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Issues:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="issues">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 100)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 1050ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Contributed to (last year):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="contribs">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.2 KiB |
@@ -0,0 +1,249 @@
|
||||
<svg
|
||||
width="467"
|
||||
height="645"
|
||||
viewBox="0 0 467 645"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
role="img"
|
||||
aria-labelledby="descId"
|
||||
>
|
||||
<title id="titleId">Cateline Mnemosyne's GitHub Stats, Rank: A+</title>
|
||||
<desc id="descId">
|
||||
Total Stars Earned: 1, Total Commits in 2023 : 1, Total PRs: 1, Total
|
||||
Issues: 1, Contributed to (last year): 1
|
||||
</desc>
|
||||
<style>
|
||||
.header {
|
||||
font: 600 18px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #2f80ed;
|
||||
animation: fadeInAnimation 0.8s ease-in-out forwards;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.header {
|
||||
font-size: 15.5px;
|
||||
}
|
||||
}
|
||||
|
||||
.stat {
|
||||
font: 600 14px "Segoe UI", Ubuntu, "Helvetica Neue", Sans-Serif;
|
||||
fill: #434d58;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.stat {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.rank-text {
|
||||
font: 800 24px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #434d58;
|
||||
animation: scaleInAnimation 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.not_bold {
|
||||
font-weight: 400;
|
||||
}
|
||||
.bold {
|
||||
font-weight: 700;
|
||||
}
|
||||
.icon {
|
||||
fill: #4c71f2;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.rank-circle-rim {
|
||||
stroke: #2f80ed;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
opacity: 0.2;
|
||||
}
|
||||
.rank-circle {
|
||||
stroke: #2f80ed;
|
||||
stroke-dasharray: 250;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
stroke-linecap: round;
|
||||
opacity: 0.8;
|
||||
transform-origin: -10px 8px;
|
||||
transform: rotate(-90deg);
|
||||
animation: rankAnimation 1s forwards ease-in-out;
|
||||
}
|
||||
|
||||
* {
|
||||
animation-duration: 0s !important;
|
||||
animation-delay: 0s !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<rect
|
||||
data-testid="card-bg"
|
||||
x="0.5"
|
||||
y="0.5"
|
||||
rx="4.5"
|
||||
height="99%"
|
||||
stroke="#e4e2e2"
|
||||
width="466"
|
||||
fill="#fffefe"
|
||||
stroke-opacity="1"
|
||||
/>
|
||||
|
||||
<g data-testid="card-title" transform="translate(25, 35)">
|
||||
<g transform="translate(0, 0)">
|
||||
<text x="0" y="0" class="header" data-testid="header">
|
||||
Cateline Mnemosyne's GitHub Stats
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g data-testid="main-card-body" transform="translate(0, 55)">
|
||||
<g data-testid="rank-circle" transform="translate(390.5, 272.5)">
|
||||
<circle class="rank-circle-rim" cx="-10" cy="8" r="40" />
|
||||
<circle class="rank-circle" cx="-10" cy="8" r="40" />
|
||||
<g class="rank-text">
|
||||
<text
|
||||
x="-5"
|
||||
y="3"
|
||||
alignment-baseline="central"
|
||||
dominant-baseline="central"
|
||||
text-anchor="middle"
|
||||
>
|
||||
A+
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<svg x="0" y="0">
|
||||
<g transform="translate(0, 0)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 450ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<svg
|
||||
data-testid="icon"
|
||||
class="icon"
|
||||
viewBox="0 0 16 16"
|
||||
version="1.1"
|
||||
width="16"
|
||||
height="16"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"
|
||||
/>
|
||||
</svg>
|
||||
|
||||
<text class="stat bold" x="25" y="12.5">Total Stars Earned:</text>
|
||||
<text class="stat bold" x="219.01" y="12.5" data-testid="stars">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 100)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 600ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<svg
|
||||
data-testid="icon"
|
||||
class="icon"
|
||||
viewBox="0 0 16 16"
|
||||
version="1.1"
|
||||
width="16"
|
||||
height="16"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M1.643 3.143L.427 1.927A.25.25 0 000 2.104V5.75c0 .138.112.25.25.25h3.646a.25.25 0 00.177-.427L2.715 4.215a6.5 6.5 0 11-1.18 4.458.75.75 0 10-1.493.154 8.001 8.001 0 101.6-5.684zM7.75 4a.75.75 0 01.75.75v2.992l2.028.812a.75.75 0 01-.557 1.392l-2.5-1A.75.75 0 017 8.25v-3.5A.75.75 0 017.75 4z"
|
||||
/>
|
||||
</svg>
|
||||
|
||||
<text class="stat bold" x="25" y="12.5">Total Commits (2023):</text>
|
||||
<text class="stat bold" x="219.01" y="12.5" data-testid="commits">
|
||||
7
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 200)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 750ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<svg
|
||||
data-testid="icon"
|
||||
class="icon"
|
||||
viewBox="0 0 16 16"
|
||||
version="1.1"
|
||||
width="16"
|
||||
height="16"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M7.177 3.073L9.573.677A.25.25 0 0110 .854v4.792a.25.25 0 01-.427.177L7.177 3.427a.25.25 0 010-.354zM3.75 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122v5.256a2.251 2.251 0 11-1.5 0V5.372A2.25 2.25 0 011.5 3.25zM11 2.5h-1V4h1a1 1 0 011 1v5.628a2.251 2.251 0 101.5 0V5A2.5 2.5 0 0011 2.5zm1 10.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.75 12a.75.75 0 100 1.5.75.75 0 000-1.5z"
|
||||
/>
|
||||
</svg>
|
||||
|
||||
<text class="stat bold" x="25" y="12.5">Total PRs:</text>
|
||||
<text class="stat bold" x="219.01" y="12.5" data-testid="prs">1</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 300)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 900ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<svg
|
||||
data-testid="icon"
|
||||
class="icon"
|
||||
viewBox="0 0 16 16"
|
||||
version="1.1"
|
||||
width="16"
|
||||
height="16"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z"
|
||||
/>
|
||||
</svg>
|
||||
|
||||
<text class="stat bold" x="25" y="12.5">Total Issues:</text>
|
||||
<text class="stat bold" x="219.01" y="12.5" data-testid="issues">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 400)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 1050ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<svg
|
||||
data-testid="icon"
|
||||
class="icon"
|
||||
viewBox="0 0 16 16"
|
||||
version="1.1"
|
||||
width="16"
|
||||
height="16"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"
|
||||
/>
|
||||
</svg>
|
||||
|
||||
<text class="stat bold" x="25" y="12.5">
|
||||
Contributed to (last year):
|
||||
</text>
|
||||
<text class="stat bold" x="219.01" y="12.5" data-testid="contribs">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.5 KiB |
@@ -0,0 +1,185 @@
|
||||
<svg
|
||||
width="450"
|
||||
height="195"
|
||||
viewBox="0 0 450 195"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
role="img"
|
||||
aria-labelledby="descId"
|
||||
>
|
||||
<title id="titleId">
|
||||
Статистика
|
||||
GitHub
|
||||
пользователя
|
||||
Cateline Mnemosyne, Rank: A+
|
||||
</title>
|
||||
<desc id="descId">
|
||||
Всего звезд: 1, Всего коммитов in 2023 : 1, Всего pull request`ов: 1, Всего
|
||||
issue: 1, Внёс вклад в (last year): 1
|
||||
</desc>
|
||||
<style>
|
||||
.header {
|
||||
font: 600 18px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #2f80ed;
|
||||
animation: fadeInAnimation 0.8s ease-in-out forwards;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.header {
|
||||
font-size: 15.5px;
|
||||
}
|
||||
}
|
||||
|
||||
.stat {
|
||||
font: 600 14px "Segoe UI", Ubuntu, "Helvetica Neue", Sans-Serif;
|
||||
fill: #434d58;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.stat {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.rank-text {
|
||||
font: 800 24px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #434d58;
|
||||
animation: scaleInAnimation 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.not_bold {
|
||||
font-weight: 400;
|
||||
}
|
||||
.bold {
|
||||
font-weight: 700;
|
||||
}
|
||||
.icon {
|
||||
fill: #4c71f2;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.rank-circle-rim {
|
||||
stroke: #2f80ed;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
opacity: 0.2;
|
||||
}
|
||||
.rank-circle {
|
||||
stroke: #2f80ed;
|
||||
stroke-dasharray: 250;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
stroke-linecap: round;
|
||||
opacity: 0.8;
|
||||
transform-origin: -10px 8px;
|
||||
transform: rotate(-90deg);
|
||||
animation: rankAnimation 1s forwards ease-in-out;
|
||||
}
|
||||
|
||||
* {
|
||||
animation-duration: 0s !important;
|
||||
animation-delay: 0s !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<rect
|
||||
data-testid="card-bg"
|
||||
x="0.5"
|
||||
y="0.5"
|
||||
rx="4.5"
|
||||
height="99%"
|
||||
stroke="#e4e2e2"
|
||||
width="449"
|
||||
fill="#fffefe"
|
||||
stroke-opacity="1"
|
||||
/>
|
||||
|
||||
<g data-testid="card-title" transform="translate(25, 35)">
|
||||
<g transform="translate(0, 0)">
|
||||
<text x="0" y="0" class="header" data-testid="header">
|
||||
Статистика
|
||||
GitHub
|
||||
пользователя
|
||||
Cateline Mnemosyne
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g data-testid="main-card-body" transform="translate(0, 55)">
|
||||
<g data-testid="rank-circle" transform="translate(365, 47.5)">
|
||||
<circle class="rank-circle-rim" cx="-10" cy="8" r="40" />
|
||||
<circle class="rank-circle" cx="-10" cy="8" r="40" />
|
||||
<g class="rank-text">
|
||||
<text
|
||||
x="-5"
|
||||
y="3"
|
||||
alignment-baseline="central"
|
||||
dominant-baseline="central"
|
||||
text-anchor="middle"
|
||||
>
|
||||
A+
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<svg x="0" y="0">
|
||||
<g transform="translate(0, 0)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 450ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Всего звезд:</text>
|
||||
<text class="stat bold" x="249.01" y="12.5" data-testid="stars">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 25)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 600ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Всего коммитов (2023):</text>
|
||||
<text class="stat bold" x="249.01" y="12.5" data-testid="commits">
|
||||
7
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 50)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 750ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Всего pull request`ов:</text>
|
||||
<text class="stat bold" x="249.01" y="12.5" data-testid="prs">1</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 75)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 900ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Всего issue:</text>
|
||||
<text class="stat bold" x="249.01" y="12.5" data-testid="issues">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 100)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 1050ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Внёс вклад в (last year):</text>
|
||||
<text class="stat bold" x="249.01" y="12.5" data-testid="contribs">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.8 KiB |
@@ -0,0 +1,177 @@
|
||||
<svg
|
||||
width="450"
|
||||
height="195"
|
||||
viewBox="0 0 450 195"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
role="img"
|
||||
aria-labelledby="descId"
|
||||
>
|
||||
<title id="titleId">Cateline Mnemosyne's GitHub Stats, Rank: A+</title>
|
||||
<desc id="descId">
|
||||
Total Stars Earned: 1, Total Commits in 2023 : 1, Total PRs: 1, Total
|
||||
Issues: 1, Contributed to (last year): 1
|
||||
</desc>
|
||||
<style>
|
||||
.header {
|
||||
font: 600 18px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #fe428e;
|
||||
animation: fadeInAnimation 0.8s ease-in-out forwards;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.header {
|
||||
font-size: 15.5px;
|
||||
}
|
||||
}
|
||||
|
||||
.stat {
|
||||
font: 600 14px "Segoe UI", Ubuntu, "Helvetica Neue", Sans-Serif;
|
||||
fill: #a9fef7;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.stat {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.rank-text {
|
||||
font: 800 24px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #a9fef7;
|
||||
animation: scaleInAnimation 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.not_bold {
|
||||
font-weight: 400;
|
||||
}
|
||||
.bold {
|
||||
font-weight: 700;
|
||||
}
|
||||
.icon {
|
||||
fill: #f8d847;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.rank-circle-rim {
|
||||
stroke: #fe428e;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
opacity: 0.2;
|
||||
}
|
||||
.rank-circle {
|
||||
stroke: #fe428e;
|
||||
stroke-dasharray: 250;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
stroke-linecap: round;
|
||||
opacity: 0.8;
|
||||
transform-origin: -10px 8px;
|
||||
transform: rotate(-90deg);
|
||||
animation: rankAnimation 1s forwards ease-in-out;
|
||||
}
|
||||
|
||||
* {
|
||||
animation-duration: 0s !important;
|
||||
animation-delay: 0s !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<rect
|
||||
data-testid="card-bg"
|
||||
x="0.5"
|
||||
y="0.5"
|
||||
rx="4.5"
|
||||
height="99%"
|
||||
stroke="#e4e2e2"
|
||||
width="449"
|
||||
fill="#141321"
|
||||
stroke-opacity="1"
|
||||
/>
|
||||
|
||||
<g data-testid="card-title" transform="translate(25, 35)">
|
||||
<g transform="translate(0, 0)">
|
||||
<text x="0" y="0" class="header" data-testid="header">
|
||||
Cateline Mnemosyne's GitHub Stats
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g data-testid="main-card-body" transform="translate(0, 55)">
|
||||
<g data-testid="rank-circle" transform="translate(365, 47.5)">
|
||||
<circle class="rank-circle-rim" cx="-10" cy="8" r="40" />
|
||||
<circle class="rank-circle" cx="-10" cy="8" r="40" />
|
||||
<g class="rank-text">
|
||||
<text
|
||||
x="-5"
|
||||
y="3"
|
||||
alignment-baseline="central"
|
||||
dominant-baseline="central"
|
||||
text-anchor="middle"
|
||||
>
|
||||
A+
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<svg x="0" y="0">
|
||||
<g transform="translate(0, 0)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 450ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Stars Earned:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="stars">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 25)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 600ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Commits (2023):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="commits">
|
||||
7
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 50)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 750ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total PRs:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="prs">1</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 75)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 900ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Issues:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="issues">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 100)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 1050ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Contributed to (last year):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="contribs">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,177 @@
|
||||
<svg
|
||||
width="450"
|
||||
height="195"
|
||||
viewBox="0 0 450 195"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
role="img"
|
||||
aria-labelledby="descId"
|
||||
>
|
||||
<title id="titleId">Cateline Mnemosyne's GitHub Stats, Rank: A+</title>
|
||||
<desc id="descId">
|
||||
Total Stars Earned: 1, Total Commits in 2023 : 1, Total PRs: 1, Total
|
||||
Issues: 1, Contributed to (last year): 1
|
||||
</desc>
|
||||
<style>
|
||||
.header {
|
||||
font: 600 18px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #2f80ed;
|
||||
animation: fadeInAnimation 0.8s ease-in-out forwards;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.header {
|
||||
font-size: 15.5px;
|
||||
}
|
||||
}
|
||||
|
||||
.stat {
|
||||
font: 600 14px "Segoe UI", Ubuntu, "Helvetica Neue", Sans-Serif;
|
||||
fill: #434d58;
|
||||
}
|
||||
@supports (-moz-appearance: auto) {
|
||||
/* Selector detects Firefox */
|
||||
.stat {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.rank-text {
|
||||
font: 800 24px "Segoe UI", Ubuntu, Sans-Serif;
|
||||
fill: #434d58;
|
||||
animation: scaleInAnimation 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
.not_bold {
|
||||
font-weight: 400;
|
||||
}
|
||||
.bold {
|
||||
font-weight: 700;
|
||||
}
|
||||
.icon {
|
||||
fill: #4c71f2;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.rank-circle-rim {
|
||||
stroke: #2f80ed;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
opacity: 0.2;
|
||||
}
|
||||
.rank-circle {
|
||||
stroke: #2f80ed;
|
||||
stroke-dasharray: 250;
|
||||
fill: none;
|
||||
stroke-width: 6;
|
||||
stroke-linecap: round;
|
||||
opacity: 0.8;
|
||||
transform-origin: -10px 8px;
|
||||
transform: rotate(-90deg);
|
||||
animation: rankAnimation 1s forwards ease-in-out;
|
||||
}
|
||||
|
||||
* {
|
||||
animation-duration: 0s !important;
|
||||
animation-delay: 0s !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<rect
|
||||
data-testid="card-bg"
|
||||
x="0.5"
|
||||
y="0.5"
|
||||
rx="4.5"
|
||||
height="99%"
|
||||
stroke="#e4e2e2"
|
||||
width="449"
|
||||
fill="#fffefe"
|
||||
stroke-opacity="1"
|
||||
/>
|
||||
|
||||
<g data-testid="card-title" transform="translate(25, 35)">
|
||||
<g transform="translate(0, 0)">
|
||||
<text x="0" y="0" class="header" data-testid="header">
|
||||
Cateline Mnemosyne's GitHub Stats
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g data-testid="main-card-body" transform="translate(0, 55)">
|
||||
<g data-testid="rank-circle" transform="translate(365, 47.5)">
|
||||
<circle class="rank-circle-rim" cx="-10" cy="8" r="40" />
|
||||
<circle class="rank-circle" cx="-10" cy="8" r="40" />
|
||||
<g class="rank-text">
|
||||
<text
|
||||
x="-5"
|
||||
y="3"
|
||||
alignment-baseline="central"
|
||||
dominant-baseline="central"
|
||||
text-anchor="middle"
|
||||
>
|
||||
A+
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<svg x="0" y="0">
|
||||
<g transform="translate(0, 0)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 450ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Stars Earned:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="stars">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 25)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 600ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Commits (2023):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="commits">
|
||||
7
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 50)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 750ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total PRs:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="prs">1</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 75)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 900ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Total Issues:</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="issues">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(0, 100)">
|
||||
<g
|
||||
class="stagger"
|
||||
style="animation-delay: 1050ms"
|
||||
transform="translate(25, 0)"
|
||||
>
|
||||
<text class="stat bold" y="12.5">Contributed to (last year):</text>
|
||||
<text class="stat bold" x="199.01" y="12.5" data-testid="contribs">
|
||||
1
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,152 @@
|
||||
import "jest-svg-snapshot";
|
||||
import "@testing-library/jest-dom";
|
||||
import renderStatsCard from "../../src/cards/stats-card";
|
||||
import prettier from "prettier";
|
||||
|
||||
const STATS_DATA = {
|
||||
name: "Cateline Mnemosyne",
|
||||
totalPRs: 1,
|
||||
totalCommits: 7,
|
||||
totalIssues: 1,
|
||||
totalStars: 1,
|
||||
contributedTo: 1,
|
||||
rank: {
|
||||
level: "A+",
|
||||
score: 50.893750297869225,
|
||||
},
|
||||
};
|
||||
|
||||
const format = (svg) => prettier.format(svg, { parser: "html" });
|
||||
|
||||
describe("statsCard", () => {
|
||||
it("should match default stat card", () => {
|
||||
const svg = format(
|
||||
renderStatsCard(STATS_DATA, { disable_animations: true }),
|
||||
);
|
||||
expect(svg).toMatchSVGSnapshot();
|
||||
});
|
||||
it("option hide", () => {
|
||||
const svg = format(
|
||||
renderStatsCard(STATS_DATA, {
|
||||
disable_animations: true,
|
||||
hide: ["commits", "stars"],
|
||||
}),
|
||||
);
|
||||
expect(svg).toMatchSVGSnapshot();
|
||||
});
|
||||
it("option hide_border", () => {
|
||||
const svg = format(
|
||||
renderStatsCard(STATS_DATA, {
|
||||
disable_animations: true,
|
||||
hide_border: true,
|
||||
}),
|
||||
);
|
||||
expect(svg).toMatchSVGSnapshot();
|
||||
});
|
||||
it("option hide_title", () => {
|
||||
const svg = format(
|
||||
renderStatsCard(STATS_DATA, {
|
||||
disable_animations: true,
|
||||
hide_title: true,
|
||||
}),
|
||||
);
|
||||
expect(svg).toMatchSVGSnapshot();
|
||||
});
|
||||
it("option hide_rank", () => {
|
||||
const svg = format(
|
||||
renderStatsCard(STATS_DATA, {
|
||||
disable_animations: true,
|
||||
hide_rank: true,
|
||||
}),
|
||||
);
|
||||
expect(svg).toMatchSVGSnapshot();
|
||||
});
|
||||
it("option theme", () => {
|
||||
const svg = format(
|
||||
renderStatsCard(STATS_DATA, {
|
||||
disable_animations: true,
|
||||
theme: "radical",
|
||||
}),
|
||||
);
|
||||
expect(svg).toMatchSVGSnapshot();
|
||||
});
|
||||
it("option card_width", () => {
|
||||
const svg = format(
|
||||
renderStatsCard(STATS_DATA, {
|
||||
disable_animations: true,
|
||||
card_width: 800,
|
||||
}),
|
||||
);
|
||||
expect(svg).toMatchSVGSnapshot();
|
||||
});
|
||||
it("option custom_title", () => {
|
||||
const svg = format(
|
||||
renderStatsCard(STATS_DATA, {
|
||||
disable_animations: true,
|
||||
custom_title:
|
||||
"Hello world, this is a very very very very very long title",
|
||||
}),
|
||||
);
|
||||
expect(svg).toMatchSVGSnapshot();
|
||||
});
|
||||
it("option custom_title hideRank", () => {
|
||||
const svg = format(
|
||||
renderStatsCard(STATS_DATA, {
|
||||
disable_animations: true,
|
||||
hide_rank: true,
|
||||
custom_title:
|
||||
"Hello world, this is a very very very very very long title",
|
||||
}),
|
||||
);
|
||||
expect(svg).toMatchSVGSnapshot();
|
||||
});
|
||||
|
||||
it("option custom_title hideRank card_width", () => {
|
||||
const svg = format(
|
||||
renderStatsCard(STATS_DATA, {
|
||||
disable_animations: true,
|
||||
card_width: 300,
|
||||
hide_rank: true,
|
||||
custom_title:
|
||||
"Hello world, this is a very very very very very long title",
|
||||
}),
|
||||
);
|
||||
expect(svg).toMatchSVGSnapshot();
|
||||
});
|
||||
|
||||
it("option line_height show_icons", () => {
|
||||
const svg = format(
|
||||
renderStatsCard(STATS_DATA, {
|
||||
disable_animations: true,
|
||||
line_height: 100,
|
||||
show_icons: true,
|
||||
}),
|
||||
);
|
||||
expect(svg).toMatchSVGSnapshot();
|
||||
});
|
||||
|
||||
it("option locale", () => {
|
||||
const svg = format(
|
||||
renderStatsCard(STATS_DATA, {
|
||||
disable_animations: true,
|
||||
locale: "ru",
|
||||
}),
|
||||
);
|
||||
expect(svg).toMatchSVGSnapshot();
|
||||
});
|
||||
|
||||
it("option colors", () => {
|
||||
const svg = format(
|
||||
renderStatsCard(STATS_DATA, {
|
||||
disable_animations: true,
|
||||
border_color: "0044ff",
|
||||
title_color: "abd200",
|
||||
icon_color: "b7d364",
|
||||
text_color: "68b587",
|
||||
bg_color: "0a0f0b",
|
||||
show_icons: true,
|
||||
}),
|
||||
);
|
||||
expect(svg).toMatchSVGSnapshot();
|
||||
});
|
||||
});
|
||||
@@ -374,13 +374,6 @@ export const themes = {
|
||||
border_color: "170F0C",
|
||||
bg_color: "170F0C",
|
||||
},
|
||||
rose: {
|
||||
title_color: "8d192b",
|
||||
text_color: "862931",
|
||||
icon_color: "B71F36",
|
||||
border_color: "e9d8d4",
|
||||
bg_color: "e9d8d4",
|
||||
},
|
||||
};
|
||||
|
||||
export default themes;
|
||||
|
||||