Template:ItemBox: Difference between revisionsGive feedback
Change imbue/active tags from <p> to <div> so the mobile skin's paragraph font-size rule no longer matches them, letting the tags scale with the card and sit in their intended positions (with help from vergir-bot LLM) |
Make the name area a query container so the measured name size can be emitted in cqw (with help from vergir-bot LLM) |
||
| (24 intermediate revisions by 2 users not shown) | |||
| Line 8: | Line 8: | ||
-->{{#vardefine:displayName|{{{overrideDisplayName|{{#var:displayName}}}}}}}<!-- | -->{{#vardefine:displayName|{{{overrideDisplayName|{{#var:displayName}}}}}}}<!-- | ||
Measured name size ( | Measured name size (cqw) and stable per-item texture variety. | ||
-->{{#vardefine:fontSize|{{#invoke:ItemBox|getFontSize|{{#var:displayName}}}}}}<!-- | -->{{#vardefine:fontSize|{{#invoke:ItemBox|getFontSize|{{#var:displayName}}}}}}<!-- | ||
-->{{#vardefine:variants|{{#invoke:ItemBox|variants|{{#var:itemName}}}}}}<!-- | -->{{#vardefine:variants|{{#invoke:ItemBox|variants|{{#var:itemName}}}}}}<!-- | ||
| Line 20: | Line 20: | ||
-->{{#vardefine:isImbue|{{{overrideIsImbue|{{#invoke:ItemData|get_prop|{{#var:itemName}}|IsImbue}}}}}}}<!-- | -->{{#vardefine:isImbue|{{{overrideIsImbue|{{#invoke:ItemData|get_prop|{{#var:itemName}}|IsImbue}}}}}}}<!-- | ||
-->{{#vardefine:isImbue|{{#ifeq:{{#var:isImbue}}|true|itembox-imbue}}}}<!-- | -->{{#vardefine:isImbue|{{#ifeq:{{#var:isImbue}}|true|itembox-imbue}}}}<!-- | ||
lowGraphics=true is for callers that place dozens of cards on one page (the | |||
card navboxes). It swaps the paper texture from the normal-mode multiply, | |||
which blends two images and so is re-rasterised every scrolled frame, to a | |||
transparent-paper overlay that is a single cacheable image. On the profiled | |||
navbox this took the render thread's OpenGL work from ~230 ms/s to ~10 and | |||
roughly doubled the frame rate. The wear and icon masks are clips of a | |||
single image, not blends, so they cache once rasterised and stay at full | |||
detail. The overlay itself is defined in [[Template:ItemBox/styles.css]] and | |||
keyed off the same per-item texture-vN class, so a card keeps its paper | |||
across both modes. | |||
-->{{#vardefine:lowGraphics|{{#ifeq:{{{lowGraphics|}}}|true|itembox-lowgfx}}}}<!-- | |||
Links. | Links. | ||
| Line 26: | Line 38: | ||
-->{{#vardefine:linkClick|{{{overrideLinkClick|{{#var:itemName}}{{If lang}}}}}}}<!-- | -->{{#vardefine:linkClick|{{{overrideLinkClick|{{#var:itemName}}{{If lang}}}}}}}<!-- | ||
--><div class="itembox {{#var:showTierTag}} {{#var:tier}} {{#var:slot}} {{#var:isActive}} {{#var:isImbue}} {{#var:variants}}" style="font-size:{{#expr: 10 * {{#if:{{{size|}}}|{{{size}}}|1}} }}px;"> | --><div class="itembox {{#var:showTierTag}} {{#var:tier}} {{#var:slot}} {{#var:isActive}} {{#var:isImbue}} {{#var:variants}} {{#var:lowGraphics}}" style="font-size:{{#expr: 10 * {{#if:{{{size|}}}|{{{size}}}|1}} }}px;"> | ||
<div class="itembox-background"> | <div class="itembox-background"> | ||
<div class="itembox-card"> | <div class="itembox-card"> | ||
| Line 38: | Line 50: | ||
<div class="itembox-imbue-tag">{{#invoke:Lang|get_string|item_info_imbue}}</div> | <div class="itembox-imbue-tag">{{#invoke:Lang|get_string|item_info_imbue}}</div> | ||
</div> | </div> | ||
<div class="itembox-name-area"> | <!-- container-type is inline because TemplateStyles strips it; the name's cqw size measures against this box. --> | ||
<p class="itembox-name" style="font-size:{{#var:fontSize}} | <div class="itembox-name-area" style="container-type: inline-size;"> | ||
<p class="itembox-name" style="font-size:{{#var:fontSize}};text-wrap:balance;">{{#var:displayName}}</p> | |||
</div> | </div> | ||
<div class="itembox-wear"></div> | <div class="itembox-wear"></div> | ||
Latest revision as of 19:14, 1 August 2026
Usage
[edit source]{{ItemBox}} renders a Deadlock shop item as a card: icon, tier art, and the item name auto-sized to fit. Pass an item name and everything else — tier, slot, tags, image — is pulled from Module:ItemData.
{{ItemBox|Extended Magazine}}
Parameters
[edit source]| Parameter | Description | Type | Status | |
|---|---|---|---|---|
| itemName | itemName 1 | Item name; keys into Module:ItemData. Positional.
| String | required |
| size | size | Scales the whole card. 1 = default (80px wide), 1.5 = 150%, 0.75 = 75%.
| Number | optional |
| showTierTag | showTierTag | Set to true to show the tier corner badge.
| Boolean | optional |
| lowGraphics | lowGraphics | Set to true for pages that place many cards at once (the card navboxes). Swaps the paper texture to a cacheable overlay so scrolling stays smooth; the look is nearly identical.
| Boolean | optional |
| overrideDisplayName | overrideDisplayName | Replaces the name shown on the card.
| String | optional |
| overrideTier | overrideTier | Replaces the card's tier.
| Number | optional |
| overrideSlot | overrideSlot | Replaces the card's background (type).
| String | optional |
| overrideIsActive | overrideIsActive | Forces the ACTIVE tag on or off.
| Boolean | optional |
| overrideIsImbue | overrideIsImbue | Forces the IMBUE tag on or off.
| Boolean | optional |
| overrideLinkTooltip | overrideLinkTooltip | Page the hover tooltip reads its info from.
| String | optional |
| overrideLinkImage | overrideLinkImage | Page/file the icon image comes from.
| String | optional |
| overrideLinkClick | overrideLinkClick | Page the card links to when clicked.
| String | optional |
Examples
[edit source]Basic
[edit source]{{ItemBox|Close Quarters}}
{{ItemBox|Spirit Shredder Bullets}}
{{ItemBox|Silencer}}
{{ItemBox|Extra Health}}
{{ItemBox|Echo Shard}}
{{ItemBox|Celestial Blessing}}
Tier tag
[edit source]{{ItemBox|Extended Magazine|showTierTag = true}}
{{ItemBox|Berserker|showTierTag = true}}
{{ItemBox|Echo Shard|showTierTag = true}}
{{ItemBox|Celestial Blessing|showTierTag = true}}
Size
[edit source]{{ItemBox|Extended Magazine|size = 0.75}}
{{ItemBox|Extended Magazine}}
{{ItemBox|Extended Magazine|size = 1.5}}
Low graphics
[edit source]For pages that place many cards at once. The paper texture becomes a single cacheable overlay so scrolling stays smooth; the look is nearly identical.
{{ItemBox|Extra Health}}
{{ItemBox|Kinetic Dash}}
{{ItemBox|Metal Skin}}
{{ItemBox|Echo Shard}}
{{ItemBox|Extra Health|lowGraphics = true}}
{{ItemBox|Kinetic Dash|lowGraphics = true}}
{{ItemBox|Metal Skin|lowGraphics = true}}
{{ItemBox|Echo Shard|lowGraphics = true}}
Normal
Low graphics
Overrides
[edit source]{{ItemBox|High-Velocity Rounds|overrideDisplayName = Test Name}}
{{ItemBox|Intensifying Magazine|overrideTier = 4}}
{{ItemBox|Weakening Headshot|overrideSlot = Spirit}}
{{ItemBox|Recharging Rush|overrideIsActive = true}}
{{ItemBox|Alchemical Fire|overrideIsImbue = true}}
{{ItemBox|Bullet Lifesteal|overrideLinkClick = Heroes}}
References
[edit source]- Item data — Data:ItemData.json, read by Module:ItemData
- Name sizing and texture variety — Module:ItemBox
- Card styling — Template:ItemBox/styles.css