diff --git a/src/cards/wakatime.js b/src/cards/wakatime.js
index 50e5e23b..abed0a11 100644
--- a/src/cards/wakatime.js
+++ b/src/cards/wakatime.js
@@ -84,9 +84,10 @@ const createCompactLangNode = ({ lang, x, y, display_format }) => {
* @param {WakaTimeLang[]} args.langs The language objects.
* @param {number} args.y The y position of the language node.
* @param {"time" | "percent"} args.display_format The display format of the language node.
+ * @param {number} args.card_width Width in px of the card.
* @returns {string[]} The language text node items.
*/
-const createLanguageTextNode = ({ langs, y, display_format }) => {
+const createLanguageTextNode = ({ langs, y, display_format, card_width }) => {
return langs.map((lang, index) => {
if (index % 2 === 0) {
return createCompactLangNode({
@@ -98,7 +99,7 @@ const createLanguageTextNode = ({ langs, y, display_format }) => {
}
return createCompactLangNode({
lang,
- x: 230,
+ x: 230 + (card_width - 495) / 2,
y: 12.5 + 12.5 * index,
display_format,
});
@@ -117,6 +118,7 @@ const createLanguageTextNode = ({ langs, y, display_format }) => {
* @param {boolean=} args.hideProgress Whether to hide the progress bar.
* @param {string} args.progressBarColor The color of the progress bar.
* @param {string} args.progressBarBackgroundColor The color of the progress bar background.
+ * @param {number} args.progressBarWidth The width of the progress bar.
* @returns {string} The text SVG node.
*/
const createTextNode = ({
@@ -128,6 +130,7 @@ const createTextNode = ({
hideProgress,
progressBarColor,
progressBarBackgroundColor,
+ progressBarWidth,
}) => {
const staggerDelay = (index + 3) * 150;
@@ -138,7 +141,7 @@ const createTextNode = ({
y: 4,
progress: percent,
color: progressBarColor,
- width: 220,
+ width: progressBarWidth,
// @ts-ignore
name: label,
progressBarBackgroundColor,
@@ -150,7 +153,7 @@ const createTextNode = ({
${label}:
${value}
${cardProgress}
@@ -223,7 +226,7 @@ const renderWakatimeCard = (stats = {}, options = { hide: [] }) => {
const {
hide_title = false,
hide_border = false,
- card_width,
+ card_width = 495,
hide,
line_height = 25,
title_color,
@@ -292,7 +295,7 @@ const renderWakatimeCard = (stats = {}, options = { hide: [] }) => {
// RENDER COMPACT LAYOUT
if (layout === "compact") {
- let width = (card_width || 495) - 5;
+ let width = card_width - 5;
height = 90 + Math.round(filteredLanguages.length / 2) * 25;
// progressOffset holds the previous language's width and used to offset the next language
@@ -332,6 +335,7 @@ const renderWakatimeCard = (stats = {}, options = { hide: [] }) => {
y: 25,
langs: filteredLanguages,
display_format,
+ card_width: card_width,
}).join("")
: noCodingActivityNode({
// @ts-ignore
@@ -359,6 +363,7 @@ const renderWakatimeCard = (stats = {}, options = { hide: [] }) => {
// @ts-ignore
progressBarBackgroundColor: textColor,
hideProgress: hide_progress,
+ progressBarWidth: card_width - 275,
});
})
: [
@@ -391,7 +396,7 @@ const renderWakatimeCard = (stats = {}, options = { hide: [] }) => {
const card = new Card({
customTitle: custom_title,
defaultTitle: titleText,
- width: card_width || 495,
+ width: card_width,
height,
border_radius,
colors: {