From f74061a69bb98e8a39fc79cbdf1702c27b6727ea Mon Sep 17 00:00:00 2001 From: Hachi-R Date: Sat, 18 Jan 2025 22:03:56 -0300 Subject: [PATCH] refactor: migrate achievement panel styles from VE to SCSS + BEM --- .../achievements/achievement-panel.css.ts | 71 ------------------- .../pages/achievements/achievement-panel.scss | 70 ++++++++++++++++++ .../pages/achievements/achievement-panel.tsx | 12 ++-- .../compared-achievement-panel.tsx | 8 +-- 4 files changed, 79 insertions(+), 82 deletions(-) delete mode 100644 src/renderer/src/pages/achievements/achievement-panel.css.ts create mode 100644 src/renderer/src/pages/achievements/achievement-panel.scss diff --git a/src/renderer/src/pages/achievements/achievement-panel.css.ts b/src/renderer/src/pages/achievements/achievement-panel.css.ts deleted file mode 100644 index f8daeab9..00000000 --- a/src/renderer/src/pages/achievements/achievement-panel.css.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { style } from "@vanilla-extract/css"; -import { recipe } from "@vanilla-extract/recipes"; - -import { SPACING_UNIT, vars } from "../../theme.css"; - -export const panel = style({ - width: "100%", - padding: `${SPACING_UNIT * 2}px ${SPACING_UNIT * 3}px`, - backgroundColor: vars.color.background, - display: "flex", - flexDirection: "column", - alignItems: "start", - justifyContent: "space-between", - borderBottom: `solid 1px ${vars.color.border}`, -}); - -export const content = style({ - display: "flex", - gap: `${SPACING_UNIT}px`, - justifyContent: "center", -}); - -export const actions = style({ - display: "flex", - gap: `${SPACING_UNIT}px`, -}); - -export const downloadDetailsRow = style({ - gap: `${SPACING_UNIT}px`, - display: "flex", - color: vars.color.body, - alignItems: "center", -}); - -export const downloadsLink = style({ - color: vars.color.body, - textDecoration: "underline", -}); - -export const progressBar = recipe({ - base: { - position: "absolute", - bottom: "0", - left: "0", - width: "100%", - height: "3px", - transition: "all ease 0.2s", - "::-webkit-progress-bar": { - backgroundColor: "transparent", - }, - "::-webkit-progress-value": { - backgroundColor: vars.color.muted, - }, - }, - variants: { - disabled: { - true: { - opacity: vars.opacity.disabled, - }, - }, - }, -}); - -export const link = style({ - textAlign: "start", - color: vars.color.body, - ":hover": { - textDecoration: "underline", - cursor: "pointer", - }, -}); diff --git a/src/renderer/src/pages/achievements/achievement-panel.scss b/src/renderer/src/pages/achievements/achievement-panel.scss new file mode 100644 index 00000000..8cf653ea --- /dev/null +++ b/src/renderer/src/pages/achievements/achievement-panel.scss @@ -0,0 +1,70 @@ +@use "../../scss/globals.scss"; + +.achievement-panel { + width: 100%; + padding: globals.$spacing-unit * 2 globals.$spacing-unit * 3; + background-color: var(--color-background); + display: flex; + flex-direction: column; + align-items: start; + justify-content: space-between; + border-bottom: solid 1px var(--color-border); + + &__content { + display: flex; + gap: globals.$spacing-unit; + justify-content: center; + align-items: center; + } + + &__actions { + display: flex; + gap: globals.$spacing-unit; + } + + &__download-details-row { + gap: globals.$spacing-unit; + display: flex; + color: var(--color-body); + align-items: center; + } + + &__downloads-link { + color: var(--color-body); + text-decoration: underline; + } + + &__progress-bar { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 3px; + transition: all ease 0.2s; + + &::-webkit-progress-bar { + background-color: transparent; + } + + &::-webkit-progress-value { + background-color: var(--color-muted); + } + + &--disabled { + opacity: var(--opacity-disabled); + } + } + + &__link { + text-align: start; + color: var(--color-body); + background: none; + border: none; + padding: 0; + + &:hover { + text-decoration: underline; + cursor: pointer; + } + } +} diff --git a/src/renderer/src/pages/achievements/achievement-panel.tsx b/src/renderer/src/pages/achievements/achievement-panel.tsx index bda25a89..4da19dcd 100644 --- a/src/renderer/src/pages/achievements/achievement-panel.tsx +++ b/src/renderer/src/pages/achievements/achievement-panel.tsx @@ -4,7 +4,7 @@ import { UserAchievement } from "@types"; import { useSubscription } from "@renderer/hooks/use-subscription"; import { useUserDetails } from "@renderer/hooks"; import { vars } from "@renderer/theme.css"; -import * as styles from "./achievement-panel.css"; +import "./achievement-panel.scss"; export interface AchievementPanelProps { achievements: UserAchievement[]; @@ -28,15 +28,15 @@ export function AchievementPanel({ achievements }: AchievementPanelProps) { if (!hasActiveSubscription) { return ( -
-
+
+
{t("earned_points")} ??? / ???