Level: atom. Inventory status: local-code.
Purpose
Add a compact secondary fact to a large map pin, for example a return marker or a small count. Do not use Subpin as an independent map location or action.
Anatomy and variants
- Fixed 20 × 20 circular white surface with 4 px padding and default shadow.
icon: one 12 × 12 shared Icon glyph.number: one short string or numeric value centered in the circle.
Behavior and accessibility
Subpin is decorative supporting anatomy. It does not receive focus, emit an action or replace the accessible name of the owning Map Pin. Number content is announced only as part of the parent marker's accessible label.
Token use
- Surface:
--color-background-level-1-base; content:--color-text-icon-accent. - Typography:
--typography-caption-regular-kitten. - Radius, padding and shadow:
--radius-xxl,--space-100,--shadow-default.
Local component contract
This is the M-003 owned contract for component.map-subpin.
Public types
export type WblMapSubpinContent =
| { readonly kind: 'number'; readonly value: number | string }
| { readonly kind: 'icon'; readonly iconName: WblIconName };
Class and selector
WblMapSubpinComponent—wbl-map-subpin.
Inputs
content = input.required<WblMapSubpinContent>()
Models and outputs
- None.
Slots
- None. Icon content resolves through the shared Icon owner.
Local evidence target
- Code:
src/app/design-system/primitives/map-subpin/map-subpin.component.ts. - Focused test:
src/app/design-system/primitives/map-subpin/map-subpin.component.spec.ts. - Public export:
src/app/design-system/index.ts. - Storybook:
storybook/stories/map-subpin.stories.ts.
Figma evidence
Exact Subpin component set, node 15563:754
contains Icon and Number variants at 20 × 20. Exact-node metadata, design
context, variables and screenshot were read on 2026-09-10. Published component
keys were unavailable, so no assembly sidecar is claimed yet.
Documentation task
M-003 · GitLab issue ·
actor artem-mokin / GitLab 26942597 · agent Specs subagent ·
run/session M-003-geographic-map-20260910.