diff --git a/packages/i18n/strings/en.json b/packages/i18n/strings/en.json index d1f28bc87..995e8e419 100644 --- a/packages/i18n/strings/en.json +++ b/packages/i18n/strings/en.json @@ -204,10 +204,14 @@ "tanks": { "characteristics": { "titles": { - "meta": "Meta", - "firepower": "Firepower", + "gun": "Gun", + "clip": "Clip", + "shell": "Shell", + "accuracy": "Accuracy", + "flexibility": "Flexibility", "maneuverability": "Maneuverability", - "survivability": "Survivability" + "survivability": "Survivability", + "concealment": "Concealment" }, "items": { diff --git a/packages/website-ue/src/components/TankopediaCharacteristics/index.module.css b/packages/website-ue/src/components/TankopediaCharacteristics/index.module.css index fd0a5a77c..5b89eac11 100644 --- a/packages/website-ue/src/components/TankopediaCharacteristics/index.module.css +++ b/packages/website-ue/src/components/TankopediaCharacteristics/index.module.css @@ -1,105 +1,133 @@ -.characteristics { - --cell-width: 2.5rem; +.characteristics-wrapper { + margin: 0 var(--space-4); + + --base-cell-width: 20rem; --group-span: 7; - --inner-padding: var(--space-4); - display: grid; - grid-auto-rows: var(--cell-width); - grid-template-columns: repeat(auto-fill, minmax(var(--cell-width), 1fr)); - grid-auto-flow: dense; + container-type: inline-size; - padding: var(--space-5); - gap: var(--space-4); + .characteristics { + --N: round(down, 100cqw / var(--base-cell-width)); + --cell-width: calc(100cqw / var(--N)); + --cell-height: calc(var(--cell-width) / var(--group-span)); - box-sizing: border-box; - - .group { display: grid; - grid-template-columns: 1fr; + grid-template-columns: repeat( + auto-fill, + minmax(var(--base-cell-width), 1fr) + ); + grid-auto-rows: var(--cell-height); + grid-auto-flow: dense; - grid-column: span var(--group-span); - gap: inherit; + gap: var(--cell-gap); - .title-wrapper { - background-color: var(--amber-a3); - grid-row: span 1; + box-sizing: border-box; - padding: 0 var(--inner-padding); + .group { + --gradient-size: min(100%, var(--space-8)); - display: flex; - align-items: center; - gap: var(--space-3); + grid-column: span 1; + + display: grid; + grid-template-columns: inherit; + grid-auto-rows: inherit; .title { - .content { - display: flex; - align-items: center; - gap: var(--space-2); + grid-row: span 1; - cursor: pointer; - - svg { - width: 1em; - height: 1em; - } - } - } - } - - .item { - padding: 0 var(--inner-padding); - - grid-row: span 1; - - display: flex; - flex-direction: column; - justify-content: center; - gap: var(--space-2); - - .value { - display: flex; - justify-content: space-between; - } - - .ranking { display: flex; align-items: center; - gap: var(--space-3); + margin: 0 calc(var(--space-4)); - .bar-wrapper { + .center { flex: 1; - height: var(--space-1); + padding: var(--space-3); - background-color: var(--gray-3); - border-radius: var(--radius-max); - overflow: hidden; + .text { + .align { + display: flex; + align-items: center; + gap: var(--space-2); - .bar { - background-color: var(--jade-9); - width: 75%; - height: 100%; + svg { + width: 1em; + height: 1em; + } + } } } } - } - - .toy { - grid-row: span var(--group-span); - padding: var(--inner-padding); .content { - background-color: green; - width: 100%; + margin: 0 var(--space-4); + padding: var(--space-0); + + gap: inherit; height: 100%; display: flex; - align-items: center; - justify-content: center; + flex-direction: column; - background-color: var(--gray-2); - outline: var(--gray-5) solid var(--space-1); + .item { + padding: 0 var(--space-3); - border-radius: var(--space-3); + flex: 1; + + display: flex; + flex-direction: column; + justify-content: center; + gap: var(--space-2); + + .value { + display: flex; + justify-content: space-between; + } + + .ranking { + display: flex; + align-items: center; + gap: var(--space-3); + + .bar-wrapper { + flex: 1; + height: var(--space-1); + + background-color: var(--gray-3); + border-radius: var(--radius-max); + overflow: hidden; + + .bar { + height: 100%; + } + } + } + } + + .toy { + flex: var(--group-span); + padding: var(--space-4) 0; + + .sandbox { + width: 100%; + height: 100%; + + display: flex; + align-items: center; + justify-content: center; + + background-color: var(--gray-2); + outline: var(--gray-5) solid var(--space-1); + border-radius: var(--space-3); + } + } + + .dead { + grid-row: span 1; + } + } + + .dead { + grid-row: span 1; } } } diff --git a/packages/website-ue/src/components/TankopediaCharacteristics/index.tsx b/packages/website-ue/src/components/TankopediaCharacteristics/index.tsx index d753ceba0..d747413ce 100644 --- a/packages/website-ue/src/components/TankopediaCharacteristics/index.tsx +++ b/packages/website-ue/src/components/TankopediaCharacteristics/index.tsx @@ -1,4 +1,3 @@ -import { GearIcon } from "@radix-ui/react-icons"; import { useCharacteristicRenderer } from "../../hooks/useCharacteristicRenderer"; import { useStrings } from "../../hooks/useStrings"; import type { CharacteristicOutput } from "../../tankopedia/characteristics"; @@ -8,6 +7,7 @@ import { type CharacteristicsGroup, } from "../../tankopedia/characteristicsOrder"; import type { ComputedCharacteristics } from "../../tankopedia/computeCharacteristics"; +import { Heading } from "../Heading"; import { Text } from "../Text"; import styles from "./index.module.css"; @@ -19,10 +19,12 @@ export function TankopediaCharacteristics({ characteristics, }: TankopediaCharacteristicsProps) { return ( -