Skip to main content

Hitbox

Hitbox utvider det klikkbare arealet til et element uten å påvirke layout. Nyttig for å oppfylle WCAG 2.5.5 (44×44 px minimum touch target) på små ikonknapper, lenker og andre klikkbare elementer der visuell størrelse er satt av designet.

Teknikken bruker ::before-pseudo-elementet til å utvide det interaktive arealet. Elementet selv beholder sin visuelle størrelse og layout-påvirkning. Inspirert av bazza.dev/craft/2026/hit-area.

Klasser

.ix-hitbox er basisklassen og må alltid brukes. Legg til én eller flere størrelsesklasser for å kontrollere utvidelsen i de retningene du trenger.

Basisklasse

CSS-klasseBeskrivelse
.ix-hitboxSetter position: relative og aktiverer ::before-pseudo-elementet. Alltid påkrevd.

Uniform utvidelse (alle sider)

CSS-klasseUtvidelse (alle sider)
.ix-hitbox-2xsvar(--ix-spacing-2xs)
.ix-hitbox-xsvar(--ix-spacing-xs)
.ix-hitbox-smvar(--ix-spacing-sm)
.ix-hitbox-mdvar(--ix-spacing-md)
.ix-hitbox-lgvar(--ix-spacing-lg)
.ix-hitbox-xlvar(--ix-spacing-xl)
.ix-hitbox-2xlvar(--ix-spacing-2xl)

X-akse (venstre + høyre)

CSS-klasseUtvidelse (venstre + høyre)
.ix-hitbox-x-2xsvar(--ix-spacing-2xs)
.ix-hitbox-x-xsvar(--ix-spacing-xs)
.ix-hitbox-x-smvar(--ix-spacing-sm)
.ix-hitbox-x-mdvar(--ix-spacing-md)
.ix-hitbox-x-lgvar(--ix-spacing-lg)
.ix-hitbox-x-xlvar(--ix-spacing-xl)
.ix-hitbox-x-2xlvar(--ix-spacing-2xl)

Y-akse (topp + bunn)

CSS-klasseUtvidelse (topp + bunn)
.ix-hitbox-y-2xsvar(--ix-spacing-2xs)
.ix-hitbox-y-xsvar(--ix-spacing-xs)
.ix-hitbox-y-smvar(--ix-spacing-sm)
.ix-hitbox-y-mdvar(--ix-spacing-md)
.ix-hitbox-y-lgvar(--ix-spacing-lg)
.ix-hitbox-y-xlvar(--ix-spacing-xl)
.ix-hitbox-y-2xlvar(--ix-spacing-2xl)

Individuelle sider

CSS-klasseUtvidelse
.ix-hitbox-t-2xsTopp: var(--ix-spacing-2xs)
.ix-hitbox-t-xsTopp: var(--ix-spacing-xs)
.ix-hitbox-t-smTopp: var(--ix-spacing-sm)
.ix-hitbox-t-mdTopp: var(--ix-spacing-md)
.ix-hitbox-t-lgTopp: var(--ix-spacing-lg)
.ix-hitbox-t-xlTopp: var(--ix-spacing-xl)
.ix-hitbox-t-2xlTopp: var(--ix-spacing-2xl)
.ix-hitbox-r-2xsHøyre: var(--ix-spacing-2xs)
.ix-hitbox-r-xsHøyre: var(--ix-spacing-xs)
.ix-hitbox-r-smHøyre: var(--ix-spacing-sm)
.ix-hitbox-r-mdHøyre: var(--ix-spacing-md)
.ix-hitbox-r-lgHøyre: var(--ix-spacing-lg)
.ix-hitbox-r-xlHøyre: var(--ix-spacing-xl)
.ix-hitbox-r-2xlHøyre: var(--ix-spacing-2xl)
.ix-hitbox-b-2xsBunn: var(--ix-spacing-2xs)
.ix-hitbox-b-xsBunn: var(--ix-spacing-xs)
.ix-hitbox-b-smBunn: var(--ix-spacing-sm)
.ix-hitbox-b-mdBunn: var(--ix-spacing-md)
.ix-hitbox-b-lgBunn: var(--ix-spacing-lg)
.ix-hitbox-b-xlBunn: var(--ix-spacing-xl)
.ix-hitbox-b-2xlBunn: var(--ix-spacing-2xl)
.ix-hitbox-l-2xsVenstre: var(--ix-spacing-2xs)
.ix-hitbox-l-xsVenstre: var(--ix-spacing-xs)
.ix-hitbox-l-smVenstre: var(--ix-spacing-sm)
.ix-hitbox-l-mdVenstre: var(--ix-spacing-md)
.ix-hitbox-l-lgVenstre: var(--ix-spacing-lg)
.ix-hitbox-l-xlVenstre: var(--ix-spacing-xl)
.ix-hitbox-l-2xlVenstre: var(--ix-spacing-2xl)

CSS-egenskaper

Størrelsesklassene setter interne CSS-variabler som basisklassen bruker. Du kan overstyre disse direkte hvis du trenger en egendefinert størrelse:

CSS-variabelKontrollererStandard
--ii-hit-tTopp-utvidelse0px
--ii-hit-rHøyre-utvidelse0px
--ii-hit-bBunn-utvidelse0px
--ii-hit-lVenstre-utvidelse0px
/* Egendefinert hitbox-størrelse */
.min-knapp {
--ii-hit-t: 12px;
--ii-hit-b: 12px;
}

Eksempler

Uniform utvidelse

Legg merke til at den visuelle størrelsen er uendret — bare det klikkbare arealet vokser.

Laster...

X-akse

Passer til lenker og knapper i navigasjon: treffarealet vokser sidelengs uten at linjehøyden endrer seg.

Laster...

Y-akse

Til ikoner og kompakte verktøylinjeknapper, der det er plass over og under, men ikke ved siden av.

Laster...

Individuelle sider

Til elementer som sitter langs en kant og bare kan vokse innover, for eksempel en lukk-knapp i et hjørne.

Laster...

Kombiner akseklasser

Bruk x- og y-akseklassene sammen for asymmetrisk utvidelse.

Laster...

Debug

To klasser gjør det enklere å visualisere hitbox-arealet under utvikling. Fjern dem før produksjon.

CSS-klasseBeskrivelse
.ix-hitbox-debugViser alltid hitbox-arealet med blå ramme og bakgrunn. Bytter til grønt ved hover.
.ix-hitbox-debug-hoverViser bare hitbox-arealet ved hover, med grønn ramme og bakgrunn. Brukes for å bekrefte at arealet er riktig uten å forstyrre det visuelle designet.

Fargesignalene er de samme som i originalen fra bazza.dev: blå = «her er hitbox-arealet», grønt = «hover aktiv, treffer du innenfor?».

Eksempel

Laster...

Universell utforming

Pseudo-elementet legger seg over det som ligger inntil, med mindre elementet står i en beholder med overflow: hidden eller clip-path. To hitboxer som overlapper gir et areal der brukeren treffer noe annet enn det hen sikter på, så hold nok avstand mellom klikkbare elementer.

Klassen setter automatisk position: relative på elementet via .ix-hitbox. Ikke fjern dette — uten position: relative vil ::before posisjonere seg mot nærmeste posisjonerte forfar.