mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-11-12 12:16:11 +01:00
research costs
This commit is contained in:
5 files changed
+61
-17
No files matched your search
@@ -88,7 +88,7 @@
|
|||||||
|
|
||||||
&[data-variant="surface"],
|
&[data-variant="surface"],
|
||||||
&[data-variant="soft"] {
|
&[data-variant="soft"] {
|
||||||
background-color: var(--accent-a3);
|
background-color: var(--accent-4);
|
||||||
color: var(--gray-12);
|
color: var(--gray-12);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,10 @@
|
|||||||
.discriminator {
|
.discriminator {
|
||||||
|
--inset: var(--space-3);
|
||||||
|
|
||||||
|
&[data-inset="small"] {
|
||||||
|
--inset: var(--space-2);
|
||||||
|
}
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
font-size: var(--font-size-minor);
|
font-size: var(--font-size-minor);
|
||||||
@@ -8,23 +14,27 @@
|
|||||||
|
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: var(--space-1);
|
||||||
|
|
||||||
&[data-corner="top-right"],
|
&[data-corner="top-right"],
|
||||||
&[data-corner="bottom-right"] {
|
&[data-corner="bottom-right"] {
|
||||||
right: var(--space-3);
|
right: var(--inset);
|
||||||
}
|
}
|
||||||
|
|
||||||
&[data-corner="top-left"],
|
&[data-corner="top-left"],
|
||||||
&[data-corner="bottom-left"] {
|
&[data-corner="bottom-left"] {
|
||||||
right: var(--space-3);
|
left: var(--inset);
|
||||||
}
|
}
|
||||||
|
|
||||||
&[data-corner="top-left"],
|
&[data-corner="top-left"],
|
||||||
&[data-corner="top-right"] {
|
&[data-corner="top-right"] {
|
||||||
top: var(--space-3);
|
top: var(--inset);
|
||||||
}
|
}
|
||||||
|
|
||||||
&[data-corner="bottom-left"],
|
&[data-corner="bottom-left"],
|
||||||
&[data-corner="bottom-right"] {
|
&[data-corner="bottom-right"] {
|
||||||
bottom: var(--space-3);
|
bottom: var(--inset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,16 +4,19 @@ import styles from "./index.module.css";
|
|||||||
|
|
||||||
interface DiscriminatorProps extends ComponentProps<"span"> {
|
interface DiscriminatorProps extends ComponentProps<"span"> {
|
||||||
corner?: `${"bottom" | "top"}-${"left" | "right"}`;
|
corner?: `${"bottom" | "top"}-${"left" | "right"}`;
|
||||||
|
inset?: "small" | "regular";
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Small label overlaid on the right edge of a `position: relative` parent */
|
/** Small label overlaid on the right edge of a `position: relative` parent */
|
||||||
export function Discriminator({
|
export function Discriminator({
|
||||||
className,
|
className,
|
||||||
corner = "bottom-right",
|
corner = "bottom-right",
|
||||||
|
inset = "regular",
|
||||||
...props
|
...props
|
||||||
}: DiscriminatorProps) {
|
}: DiscriminatorProps) {
|
||||||
return (
|
return (
|
||||||
<span
|
<span
|
||||||
|
data-inset={inset}
|
||||||
data-corner={corner}
|
data-corner={corner}
|
||||||
className={classNames(styles.discriminator, className)}
|
className={classNames(styles.discriminator, className)}
|
||||||
{...props}
|
{...props}
|
||||||
|
|||||||
@@ -145,6 +145,8 @@
|
|||||||
--line-thickness: var(--space-1);
|
--line-thickness: var(--space-1);
|
||||||
--line-border: var(--space-1) solid var(--gray-6);
|
--line-border: var(--space-1) solid var(--gray-6);
|
||||||
|
|
||||||
|
margin-bottom: calc(var(--space-2) + var(--font-size-minor));
|
||||||
|
|
||||||
display: grid;
|
display: grid;
|
||||||
gap: var(--depth-gap) var(--sibling-gap);
|
gap: var(--depth-gap) var(--sibling-gap);
|
||||||
|
|
||||||
@@ -214,6 +216,33 @@
|
|||||||
.icon {
|
.icon {
|
||||||
width: 2em;
|
width: 2em;
|
||||||
height: 2em;
|
height: 2em;
|
||||||
|
|
||||||
|
.module[data-major="true"] & {
|
||||||
|
transform: scale(1.25);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.price {
|
||||||
|
display: flex;
|
||||||
|
gap: var(--space-1);
|
||||||
|
|
||||||
|
font-size: var(--font-size-minor);
|
||||||
|
|
||||||
|
position: absolute;
|
||||||
|
top: 100%;
|
||||||
|
left: 50%;
|
||||||
|
|
||||||
|
transform: translateX(-50%);
|
||||||
|
|
||||||
|
margin-top: var(--space-2);
|
||||||
|
|
||||||
|
background-color: var(--gray-2);
|
||||||
|
|
||||||
|
svg,
|
||||||
|
img {
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import {
|
import {
|
||||||
alias,
|
alias,
|
||||||
|
formatCompact,
|
||||||
MAX_SKILL_LEVEL,
|
MAX_SKILL_LEVEL,
|
||||||
permanentSkills,
|
permanentSkills,
|
||||||
romanize,
|
romanize,
|
||||||
@@ -306,6 +307,7 @@ function ModuleNode({ unlock, module, tooltip }: ModuleNodeProps) {
|
|||||||
variant={isSelected ? "surface" : "soft"}
|
variant={isSelected ? "surface" : "soft"}
|
||||||
color={isSelected ? (isTop ? "amber" : undefined) : "gray"}
|
color={isSelected ? (isTop ? "amber" : undefined) : "gray"}
|
||||||
className={styles.module}
|
className={styles.module}
|
||||||
|
data-major={unlock.type === ModuleType.MODULE_TYPE_VEHICLE}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
if (isTank) return;
|
if (isTank) return;
|
||||||
|
|
||||||
@@ -350,18 +352,6 @@ function ModuleNode({ unlock, module, tooltip }: ModuleNodeProps) {
|
|||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Discriminator corner="top-right">{romanize(module.tier)}</Discriminator>
|
|
||||||
|
|
||||||
{/* {unlock.cost!.value > 0 && (
|
|
||||||
<Discriminator>
|
|
||||||
<Text size="minor">{formatCompact(locale, unlock.cost!.value)}</Text>
|
|
||||||
<img
|
|
||||||
alt={unlock.cost!.type}
|
|
||||||
src={alias("api", `/icons/currencies/${unlock.cost!.type}.webp`)}
|
|
||||||
/>
|
|
||||||
</Discriminator>
|
|
||||||
)} */}
|
|
||||||
|
|
||||||
<img
|
<img
|
||||||
alt={tooltip}
|
alt={tooltip}
|
||||||
src={
|
src={
|
||||||
@@ -374,6 +364,18 @@ function ModuleNode({ unlock, module, tooltip }: ModuleNodeProps) {
|
|||||||
}
|
}
|
||||||
className={styles.icon}
|
className={styles.icon}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<Discriminator corner="top-left">{romanize(module.tier)}</Discriminator>
|
||||||
|
|
||||||
|
{unlock.cost!.value > 0 && (
|
||||||
|
<div className={styles.price}>
|
||||||
|
<Text size="minor">{formatCompact(locale, unlock.cost!.value)}</Text>
|
||||||
|
<img
|
||||||
|
alt={unlock.cost!.type}
|
||||||
|
src={alias("api", `/icons/currencies/${unlock.cost!.type}.webp`)}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</IconButton>
|
</IconButton>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user