fix: light mode skeleton style

This commit is contained in:
TrèsAbhi committed 2026-04-28 15:50:32 -05:00
1 parent 7b650bf39b
commit 9bcaff9fd3
5 files changed
+48 -28

No files matched your search

@@ -1,17 +0,0 @@
@keyframes skeleton-animation {
0% {
background-color: var(--black-a6);
}
50% {
background-color: var(--black-a5);
}
100% {
background-color: var(--black-a6);
}
}
.skeleton {
animation: skeleton-animation var(--duration-subtle) ease infinite;
border-radius: var(--space-2);
}
@@ -0,0 +1,25 @@
@keyframes skeleton-animation {
0% {
background-color: var(--color-1);
}
50% {
background-color: var(--color-2);
}
100% {
background-color: var(--color-1);
}
}
.skeleton {
--color-1: var(--black-a5);
--color-2: var(--black-a4);
:global(:root.dark) & {
--color-1: var(--white-a3);
--color-2: var(--white-a2);
}
animation: skeleton-animation var(--duration-subtle) ease infinite;
border-radius: var(--space-2);
}
@@ -1,9 +1,9 @@
import type { ComponentProps } from "react"; import type { ComponentProps } from "react";
import { classNames } from "../../core/ui/classNames"; import { classNames } from "../../core/ui/classNames";
import "./index.css"; import styles from "./index.module.css";
export interface SkeletonProps extends ComponentProps<"div"> {} export interface SkeletonProps extends ComponentProps<"div"> {}
export function Skeleton({ className, ...props }: SkeletonProps) { export function Skeleton({ className, ...props }: SkeletonProps) {
return <div className={classNames("skeleton", className)} {...props} />; return <div className={classNames(styles.skeleton, className)} {...props} />;
} }
@@ -35,13 +35,23 @@
} }
.name { .name {
white-space: nowrap; display: flex;
overflow: hidden;
width: 100%; width: 100%;
text-overflow: ellipsis;
.skeleton { justify-content: center;
width: 100%;
.text {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
&[data-skeleton="true"] {
width: 100%;
}
.skeleton {
width: 100%;
}
} }
} }
} }
@@ -50,10 +50,12 @@ export function TankCard(props: PropsWithSkeleton<TankCardProps>) {
{props.skeleton && <Skeleton className={styles.icon} />} {props.skeleton && <Skeleton className={styles.icon} />}
</div> </div>
<Text className={styles.name}> <div className={styles.name}>
{props.skeleton && <InlineSkeleton className={styles.skeleton} />} <Text className={styles.text} data-skeleton={props.skeleton}>
{!props.skeleton && gameStrings![tank!.tank!.name!.value]} {props.skeleton && <InlineSkeleton className={styles.skeleton} />}
</Text> {!props.skeleton && gameStrings![tank!.tank!.name!.value]}
</Text>
</div>
</LinkI18n> </LinkI18n>
); );
} }