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.