Show your dynamically generated LeetCode stats on your GitHub profile or your website!
LeetCode and LeetCode CN are both supported.
- 📈 Clean and simple LeetCode stats, for both
us
andcn
sites - 🎨 Multiple themes and 1,300+ fonts - Theme, Font
- 🪄 Fully customizable using CSS - Custom Stylesheets
- ⚡️ Fast and global edge network - Cloudflare Workers
- 🚫 No tracking, controllable cache - Cache
- 🍀 Open source - MIT License
- ⚙️ Extended-cards:
activity
,contest
,heatmap
It also has a NPM package and a highly extensible system, so you can easily customize it to your needs.
Want to contribute? Feel free to open a pull request!
You can also self-host this service using the jacoblincool/leetcode-stats-card
Docker image.
To build the image by yourself, use pnpm build:image
script.
See docker-compose.yml for an example.
Simply copy the code below, paste it into your README.md
, and change the path to your leetcode username (case-insensitive).
![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool)
Congratulation! You are now showing your LeetCode stats on your profile!
Want a hyperlink? Try this:
[![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool)](https://leetcode.com/JacobLinCool)
The endpoint of this tool is:
https://leetcard.jacoblin.cool/
The legacy one: https://leetcode.card.workers.dev/
There are many options, you can configure them by passing a query string to the endpoint.
Data source, can be us
or cn
.
![](https://leetcard.jacoblin.cool/leetcode?site=cn)
Card theme, see Theme for more information.
Use a comma to separate the light and dark theme.
![](https://leetcard.jacoblin.cool/jacoblincool?theme=unicorn)
![](https://leetcard.jacoblin.cool/jacoblincool?theme=light,unicorn)
Card font, you can use almost all fonts on Google Fonts.
It is case-insensitive, and you can use font=dancing_script
or font=Dancing%20Script
to get the same result.
![](https://leetcard.jacoblin.cool/jacoblincool?font=Dancing_Script)
Change the card size, it will not resize the content.
But it will be helpful if you want to use custom css.
![](https://leetcard.jacoblin.cool/jacoblincool?width=500&height=500)
Change the card border and radius.
![](https://leetcard.jacoblin.cool/jacoblincool?border=0&radius=20)
Enable or disable the animation.
![](https://leetcard.jacoblin.cool/jacoblincool?animation=false)
Hide elements on the card, it is a comma-separated list of element ids.
![](https://leetcard.jacoblin.cool/jacoblincool?hide=ranking,total-solved-text,easy-solved-count,medium-solved-count,hard-solved-count)
Extension, it is a comma-separated list of extension names.
NOTICE: You can only use one of extended-card extensions (activity
, contest
, heatmap
) at a time now, maybe they can be used together in the future.
Animation, font, theme, and external stylesheet are all implemented by extensions and enabled by default.
Want to contribute a nyan-cat
extension? PR is welcome!
![](https://leetcard.jacoblin.cool/jacoblincool?ext=activity)
![](https://leetcard.jacoblin.cool/lapor?ext=contest)
![](https://leetcard.jacoblin.cool/lapor?ext=heatmap)
Cache time in seconds.
Note: it will not be a good idea to set it to a long time because GitHub will fetch and cache the card.
![](https://leetcard.jacoblin.cool/jacoblincool?cache=0)
You can make
DELETE
request to/:site/:username
to delete the cache.
External stylesheet, it is a comma-separated list of urls.
You can upload your custom CSS to gist and use the url.
![](https://leetcard.jacoblin.cool/jacoblincool?sheets=url1,url2)
They will be injected in the order you specified.
Still work, but deprecated.
Key | Description | Default Value |
---|---|---|
border_radius |
Same as radius |
4 |
show_rank |
Display/Hide Rank: Boolean |
true |
extension |
Same as ext |
"" |
Now we have 6 themes. If you have any great idea, please feel free to open a PR!
![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=light)
![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=dark)
![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=nord)
![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=forest)
![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=wtf)
![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=unicorn)
![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=transparent)
You can now use almost all fonts on Google Fonts.
Some examples:
![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?font=milonga)
![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?font=patrick_hand)
![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?font=ruthie)
Extension, it is a comma-separated list of extension names.
NOTICE: You can only use one of extended-card extensions (activity
, contest
, heatmap
) at a time now, maybe they can be used together in the future.
Animation, font, theme, and external stylesheet are all implemented by extensions and enabled by default.
Want to contribute a nyan-cat
extension? PR is welcome!
Show your recent submissions.
![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?ext=activity)
Show your contest rating history.
![Leetcode Stats](https://leetcard.jacoblin.cool/lapor?ext=contest)
Show heatmap in the past 52 weeks.
![Leetcode Stats](https://leetcard.jacoblin.cool/lapor?ext=heatmap)