This document serves as a reference for the DOM structure of different page types on Humble Bundle.
It is used to maintain the selectors in the Game Store Enhancer userscript.
The classic bundle page with multiple tiers (e.g., $1, BTA, $15).
- Card/Item Container:
.tier-item-view: The main container for a tier's game list..product-item: Individual game row/card within a tier.
- Title Selector:
.item-titleor.product-title - Image Selector:
imginside the item container (often has specific alignment classes). - Notes: Games are often grouped in
div.tier-item-view. The userscript processes these individual items.
Grid view of games in the Humble Store.
- Card Container:
.entity-block-container - Title Selector:
.entity-title - Link Selector:
a.entity-link(Wraps the whole card, used for href checks). - Image Selector:
img.entity-image - Notes:
- Layout is consistent across
sort=bestselling,filter=onsale, and other search variations. - The userscript correctly detects these cards and injects
ssl-linkelements.
- Layout is consistent across
Detail page for a specific game.
- Container:
body(or specific header sections like.product-hero,.details-heading). - Title Selector:
h1(Universally used for the game title). - Image Selector:
.product-hero imgor.main-image-view img(often part of a slick carousel). - Notes: The script targets the specific header container to inject the link next to the H1.
Monthly subscription game selection.
- Card Container:
.content-choice,.content-choice-grid .game-container - Title Selector:
.content-choice-title,.game-name - Image Selector:
imginside the container. - Notes: The structure can be a grid or a list depending on the user's view (Current Month vs. Library view).
Pop-up or slide-over when clicking a game in a bundle.
- Container:
.expanded-info-view .slick-slide - Title Selector:
h2.heading-medium - Notes: These contents are dynamic. The userscript relies on
MutationObserverto catch these when they appear.
The "Keys & Entitlements" or "Library" page.
- Container:
.unredeemed-keys-table tbody tr - Row Classes:
.key-manager-choice-row,.key-manager-row - Title Selector:
.game-name h4(or just.game-name) - Functionality:
- Contains a "Hide redeemed keys" checkbox (
#hide-redeemed). - Toggling this checkbox removes fully redeemed rows from the view (handled by React/JS).
- Potential: Insert Steam status next to the "Redeem" button?
- Contains a "Hide redeemed keys" checkbox (
- Layout: Split-pane view (List on left, Details on right).
- List Item Container:
.subproducts-holder .text-holder(left pane) - Title Selector:
h2inside the list item. - Detail Pane: Right column changes based on selection.
- Notes: The DOM is quite dynamic here. Target the
h2in the list for a quick overview status.