diff --git a/app/features/object-damage-calculator/calculator.css b/app/features/object-damage-calculator/calculator.css index 8b50ef19c..25aebe7d5 100644 --- a/app/features/object-damage-calculator/calculator.css +++ b/app/features/object-damage-calculator/calculator.css @@ -25,12 +25,40 @@ } .object-damage__grid { + column-gap: var(--s-2); display: grid; + max-height: 60vh; + overflow: auto; + row-gap: var(--s-2); width: 100%; - column-gap: var(--s-6); - overflow-x: auto; - place-items: center; - row-gap: var(--s-3); +} + +@media screen and (min-width: 431px) { + .object-damage__grid { + max-height: 70vh; + } +} + +.object-damage__grid::-webkit-scrollbar { + width: 4px; + height: 8px; +} + +.object-damage__grid::-webkit-scrollbar-track { + background-color: rgb(2, 1, 30); +} + +.object-damage__grid::-webkit-scrollbar-corner { + background-color: rgb(2, 1, 30); +} + +.object-damage__grid::-webkit-scrollbar-thumb { + background-color: rgb(83, 65, 91); + border-radius: 4px; +} + +.object-damage__grid::-webkit-scrollbar-thumb:hover { + background-color: rgb(62, 49, 68); } .object-damage__hp { @@ -39,20 +67,24 @@ } .object-damage__table-header { - position: sticky; - top: 0; - width: 100%; + align-items: center; + background-color: rgb(52 43 98); border-radius: var(--rounded); - background-color: var(--bg-lightest); - font-size: var(--fonts-xs); - font-weight: var(--semi-bold); - padding-block: var(--s-2); - padding-inline: var(--s-4); - text-align: center; - white-space: nowrap; display: flex; flex-direction: column; - gap: var(--s-1-5); + font-size: var(--fonts-xs); + font-weight: var(--semi-bold); + gap: var(--s-1); + height: 100%; + left: 0; + outline: 5px solid rgb(2, 1, 30); + padding-block: var(--s-2); + padding-inline: var(--s-2); + position: sticky; + text-align: center; + top: 0; + white-space: nowrap; + width: 100%; } .object-damage__weapon-image { @@ -92,6 +124,8 @@ .object-damage__select { width: initial; + padding-left: 0.5rem; + padding-right: 1.75rem; } .object-damage__abbr { diff --git a/app/features/object-damage-calculator/routes/object-damage-calculator.tsx b/app/features/object-damage-calculator/routes/object-damage-calculator.tsx index c4e7bc962..10c80070c 100644 --- a/app/features/object-damage-calculator/routes/object-damage-calculator.tsx +++ b/app/features/object-damage-calculator/routes/object-damage-calculator.tsx @@ -238,146 +238,155 @@ function DamageReceiversGrid({ const { t } = useTranslation(["weapons", "analyzer", "common"]); useSetTitle(t("common:pages.object-damage-calculator")); return ( -
-
- -
-
{children}
- {damagesToReceivers[0]?.damages.map((damage) => ( -
-
- {t( - damageTypeTranslationString({ - damageType: damage.type, - }), - )} - {damage.objectShredder && } -
-
- {t("analyzer:distanceInline", { - value: Array.isArray(damage.distance) - ? damage.distance.join("-") - : damage.distance, - })} -
-
- {weapon.type === "MAIN" ? ( - - ) : weapon.type === "SUB" ? ( - - ) : ( - - )} - {t(`weapons:${weapon.type}_${weapon.id}` as any)} +
+
+
+
+
+
{children}
- ))} - {damagesToReceivers.map((damageToReceiver, i) => { - return ( - -
- - + {damagesToReceivers[0]?.damages.map((damage) => ( +
+ {t(`weapons:${weapon.type}_${weapon.id}` as any)} +
+ {weapon.type === "MAIN" ? ( + + ) : weapon.type === "SUB" ? ( + + ) : ( + + )}
-
- - {damageToReceiver.hitPoints} - - {t("analyzer:suffix.hp")} +
+ {t("analyzer:distanceInline", { + value: Array.isArray(damage.distance) + ? damage.distance.join("-") + : damage.distance, + })}
- {damageToReceiver.damages.map((damage) => { - return ( -
-
- - {t("analyzer:damageShort")} - -
- {damage.value} +
+ {t( + damageTypeTranslationString({ + damageType: damage.type, + }), + )} + {damage.objectShredder && } +
+
+ ))} + {damagesToReceivers.map((damageToReceiver, i) => { + return ( + +
+
+
+ {damageToReceiver.damages.map((damage) => { + return ( +
+
+ + {t("analyzer:damageShort")} + +
+ {damage.value} +
+ + {t("analyzer:hitsToDestroyShort")} + +
+ {damage.hitsToDestroy} +
+
+
+ ×{damage.multiplier}
-
- ×{damage.multiplier} -
-
- ); - })} -
- ); - })} + ); + })} + + ); + })} +
); } function gridTemplateColumnsValue(dataColumnsCount: number) { - return `max-content max-content ${new Array(dataColumnsCount) + return `max-content ${new Array(dataColumnsCount) .fill(null) .map(() => `1fr`) .join(" ")}`;