Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .github/assets/mark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/types.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<div align="center">

<img src=".github/assets/mark.png" alt="" width="104">

# Gitmon Cards

**Trading card game cards generated from real GitHub data.**
Expand All @@ -9,6 +11,12 @@ A static image URL, no login, embeddable in any README, that keeps itself up to
[![license: MIT](https://img.shields.io/badge/license-MIT-f2c94c)](LICENSE)
[![Next.js 16](https://img.shields.io/badge/Next.js-16-black)](https://nextjs.org)

<img src=".github/assets/types.png" alt="The 18 energy types: normal, fire, water, grass, electric, ice, fighting, poison, ground, flying, psychic, bug, rock, ghost, dragon, dark, steel and fairy" width="760">

<sub>Eighteen types, one per dominant language. Every icon here is original art — see <a href="docs/assets-brief.md">the brief</a>.</sub>

<br>

<img src=".github/assets/rarity-ladder.png" alt="The same profile card at three rarity tiers: rare, special illustration rare and ultra rare" width="900">

<sub>One profile, three rarity tiers. Rarity does not just change a symbol — it changes the art treatment.</sub>
Expand Down Expand Up @@ -154,6 +162,7 @@ public/assets/
frames/ 18 type frames + 18 full-art + 6 foil + 2 metals — ORIGINALS
energy/ 18 energy cost icons (PNG, for Satori)
types/ the same 18 icons in SVG, for the web interface
brand/ the brand mark — favicon, header and pack, one drawing
icons/ retreat icon
fonts/ M PLUS Rounded 1c, subset (SIL OFL 1.1)

Expand Down
18 changes: 14 additions & 4 deletions components/ui/Shell.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Link from "next/link";
import { AUTHOR, PROJECT_REPO_URL } from "@/lib/config";
import { AUTHORS, PROJECT_REPO_URL } from "@/lib/config";
import { translator, type Locale } from "@/lib/i18n/dictionaries";
import { getProjectStars } from "@/lib/project";
import { LocaleToggle } from "./LocaleToggle";
Expand Down Expand Up @@ -54,9 +54,19 @@ export async function Shell({
<footer className="shell-footer">
<span>
{t("home.madeBy")}{" "}
<a href={AUTHOR.url} target="_blank" rel="noreferrer noopener">
{AUTHOR.handle}
</a>
{/*
Separador entre os dois e nenhum depois do último. Com `join` de
string a vírgula viraria texto dentro do link; aqui ela fica fora,
que é o que deixa o alvo de clique ser só o handle.
*/}
{AUTHORS.map((author, i) => (
<span key={author.url}>
{i > 0 && <span aria-hidden="true"> · </span>}
<a href={author.url} target="_blank" rel="noreferrer noopener">
{author.handle}
</a>
</span>
))}
</span>
</footer>
</div>
Expand Down
16 changes: 15 additions & 1 deletion lib/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,21 @@ export const BATTLE_IMAGE_CACHE_CONTROL =
export const PROJECT_REPO = { owner: "mcsscalabrin", name: "gitmon-cards" } as const;
export const PROJECT_REPO_URL = `https://github.com/${PROJECT_REPO.owner}/${PROJECT_REPO.name}`;
export const SPONSOR_URL = `https://github.com/sponsors/${PROJECT_REPO.owner}`;
export const AUTHOR = { handle: "@scalabrin.dev", url: "https://scalabrin.dev" } as const;

/**
* Quem assina. Lista, e não um autor só, porque o projeto passou a ter mais de
* um — e o rodapé de um projeto aberto é o único lugar onde a atribuição é
* barata e permanente.
*
* Aponta para o perfil do GitHub, não para o site pessoal: o produto é feito de
* dados do GitHub e é lá que o visitante consegue seguir o fio. O crédito
* continua sendo atribuição e não chamada para ação (RFC 9.3) — quem quiser
* patrocinar tem a faixa acima.
*/
export const AUTHORS = [
{ handle: "@mcsscalabrin", url: "https://github.com/mcsscalabrin" },
{ handle: "@benogoulart", url: "https://github.com/benogoulart" },
] as const;

/**
* A contagem de estrelas do próprio repositório envelhece devagar e não vale uma
Expand Down
Loading