← Back to the atlas
uniqlo.com

UNIQLO

sightmap atlas add uniqlo

US storefront — category listings, product pages, search, and an error page with a real address.

commerce
UNIQLO screenshot 1
FIG. 01category listing
UNIQLO screenshot 2
FIG. 02product detail

Views

ViewRouteComponentsRequests
CategoryListing/us/en/:gender/:category61
Home/us/en/:gender31
NotFound/us/en/not-found10
ProductDetail/us/en/products/:productId/:colorCode38
SearchResults/us/en/search52

UNIQLO

The US storefront (/us/en/), mapped as a signed-out shopper.

Coverage

View Route What it holds
Home /us/en/:gender Media banners and a category grid
SearchResults /us/en/search Product tile grid
CategoryListing /us/en/:gender/:category Sticky subcategory tabs above the grid
ProductDetail /us/en/products/:productId/:colorCode Gallery, options, size table, related products
NotFound /us/en/not-found Error page, reached by redirect

PromoStrip, NavigationHeader, PageContent, Breadcrumbs, PreloadedDialog, BackToFrontOverlay, Accordion, PromoModal, ContentAlignment, ECGrid, Drawer, PopupFormDialog, AppShell, and GlobalFooter are global. All five views report 0 orphaned coverage, with every selector sel-probed at authoring and re-verified against the live site on 2026-08-08.

Reliable signals

The page type is a class on the content root. .fr-ec-template-plp is a category listing, .fr-ec-template-pdp is a product page, .home-template is the landing page. An agent can branch on this instead of parsing a URL.

The error page has a real address. An unmatched path redirects to /us/en/not-found, so location.pathname answers "did I land on an error page" with no DOM inspection.

Hazards

The data-testid values are design-system primitives, not identifiers. ITOTypography matched 574 elements on one page, ITOImage 363, ITOLink 128. They tell you an element is a piece of text and never which one. Use the fr-ec- classes for identity and read ITO* as type information.

The landing page has three addresses and state decides which you get. /us/en/ redirects to whichever gender was browsed last, /us/en/men keeps its path, and /us/en/women normalizes to /us/en/. The preference is stored client-side, so two agents at the same URL land on different pages. This map anchors on /us/en/:gender because that is where a warm profile actually ends up.

The navigation renders three times. Desktop, mobile, and sticky variants all sit in the DOM, so any count of nav links is tripled.

Three empty overlay hosts ship on a browse route. ITODialog, .b2f-overlay, and the POPUP Form dialog are all present and empty before anything opens them, so counting dialogs overstates what is actually showing.

Breadcrumbs are at the bottom. [data-testid="ITOBreadcrumbGroup"] sits at the foot of the page, not above the content.

A product URL grows after loading. Requesting /us/en/products/:productId/:colorCode appends ?colorDisplayCode= and ?sizeDisplayCode= for the default variant, so the URL after load differs from the one requested even on success.

Known gaps

Cart, wishlist, and checkout are out of scope; the map stops at the product options.

Accounts and anything behind My Account are out of scope per docs/POLICY.md.

ProductDetail is pinned to one colourway, since colour is a path segment rather than a parameter.

Only the /us/en/ storefront is mapped. The locale prefix is part of the path, so other markets have their own catalogue and prices.

Screenshots

Signed-out views of public catalog pages.