Search input

Release dato: 29.11.2023

Sist oppdatert: 11.05.2026

Search input (søkefelt) lar brukeren navigere ved å skrive inn nøkkelord eller setninger og få opp relevante resultater. Komponentens formål er å hjelpe brukeren å finne fram til riktig innhold, enten i hele løsningen eller innenfor et avgrenset område.

Test komponenten

Relaterte komponenter

Varianter

VariantBruk
Globalt søkSøkefelt som dekker hele løsningen eller nettstedet, bruk når brukeren skal søke på tvers av alt innhold (kun i header)
Lokalt søkAvgrenset søkefelt med knapp, brukes i lister eller tabeller
Lokalt med synlig knappAvgrenset søkefelt uten knapp, kun med ikon
Globalt søk med rund og gul søkeknappLokalt søk med mørk blå firkantet søkeknappLokalt søk med integrert søkeknapp

Retningslinjer for bruk

Bruk search input når

  • du ønsker at brukeren skal kunne søke i hele løsningen (globalt søk)
  • brukeren skal filtrere eller søke i et avgrenset område (lokalt søk)

Unngå search input når

Globalt (overordnet) søk

Globalt søk skal brukes når søkefeltet søker gjennom hele løsningen eller nettstedet og skal kun brukes i Oslo kommunes felles header.

Lokalt søk

Lokalt søk brukes når brukeren skal filtrere eller søke i et mindre element på en side eller i en løsning, for eksempel oppramsning av tilgjengelige pasienter eller en liste med elementer.

Plassholdertekst og label

Om du ønsker kan søkefeltet brukes sammen med ledetekst (label), men det er ikke påkrevd. I de fleste tilfeller er det unødvendig med en synlig ledetekst over søkefeltet. Utformingen av søkefeltet, knappen og søkeikonet gjør funksjonen tydelig for brukeren.

Søk er det eneste inputfeltet i designsystemet som kan brukes med kun plassholdertekst, fordi feltets funksjon er tydelig selv når teksten forsvinner ved klikk.

Gjør slik

Skriv logisk og tydelig label og plassholdertekst som hjelper brukeren med hva slags innhold de skal fylle inn

Unngå

Unngå for generell plassholdertekst som ikke gir brukeren indikasjon på hva de kan søke etter

Responsivitet

På mobil legger det overordnede søket seg som et forstørrelsesglassikon. Ved klikk åpnes søkefeltet under headeren. Lokale søk skal ligge over innholdet de filtrerer eller søker i.

Universell utforming

  • Label må alltid finnes i koden, selv når den ikke er synlig
  • “ESC” sletter teksten i feltet
  • “Enter” utfører søket
  • Søkeforslag må være navigerbare med piltaster og ha riktige ARIA-attributter

Anatomi

ElementBeskrivelse
InputfeltFeltet der brukeren skriver søket
PlassholdertekstViser brukeren hva de kan søke etter
Knapp/ikonBrukes for å sende inn søket
LabelLedetekst (kan være skjult visuelt men skal finnes i koden)

Implementasjon i kode

Hvordan ta komponenten i bruk?

Testing

Elements: Dersom du skal skrive tester med JSDOM eller liknende er det viktig at du lar komponenten bli rendret ferdig før du tester den. Dette kan gjøres ved å kjøre denne kodelinjen før testene kjøres:

await window.customElements.whenDefined("pkt-searchinput");

Props

PropTypeBeskrivelse
idstringUnik id for søkefeltet
namestringNavn som sendes med skjemaet ved innsending (name på input).
appearancelocal
local-with-button
global
Utseende til søkefeltet. Lokalt med ikon i feltet, lokalt med egen søkeknapp, eller globalt søkt med gult felt og søkeknapp.
placeholderstringTekst som vises i søkefeltet når det er tomt.
labelstringSynlig eller skjult ledetekst; brukes også som tilgjengelig tekst for søkeknappen der det er relevant.
valuestringVerdien som er skrevet inn i søkefeltet.
disabledbooleanDeaktiverer felt og knapp.
fullwidthbooleanOm søkefeltet skal strekke seg over tilgjengelig bredde.
actionstringURL for hvor søket skal sendes. Uten verdi er komponenten ikke et skjema. I React kan nettleseren gå til URL ved innsending (søkeknapp / Enter), med mindre du håndterer søk med onSearch.
I Elements må man lytte på pkt-search og navigere selv (f.eks. window.location eller router).
methodget
post
dialog
Metode for skjemaet når action er satt (get, post eller dialog).
suggestionsPktSearchInputSuggestion[]Liste med forslag til søk.
EventTypeBeskrivelse
onSearch
pkt-search
(value: string) => void
CustomEvent
Når man utfører søk (Enter eller søkeknapp).
I React brukes onSearch(value).
I Elements brukes pkt-search med detail.value.
onSuggestionClick
pkt-suggestion-click
(index: number) => void
CustomEvent
Når et forslag velges uten egen onClick på raden.
I React brukes onSuggestionClick(index).
I Elements brukes pkt-suggestion-click med detail.index og detail.suggestion. preventDefault() hindrer navigasjon ved href.
inputInputEventBrukes for å oppdatere verdien i søkefeltet. Kun i Elements.
onChangefunctionBrukes for å oppdatere verdien i søkefeltet. Kun React.

PktSearchInputSuggestion

PropTypeBeskrivelse
title
title
string | ReactNode
string
Tittel på forslaget. I React tillates ren tekst eller ReactNode. I Elements er kun strenger tillatt.
text
text
string | ReactNode
string
Beskrivelse eller undertittel. I React tillates både ren tekst og ReactNode. I Elements er kun strenger tillatt.
hrefstringLenke for forslaget. Vil rendre raden med søkeresultatet wrappet med <a>.
nonInteractivebooleanVil gjøre et forslag/en rad blir ikke-interagerbart og rendres som en <div> i stedet for lenke/knappp. (Typisk «Ingen resultater»). Overstyres av href hvis den er satt.
onClickfunctionCallback for forslaget/raden. Gjør at raden rendres som en <button> (med mindre href er satt). Gjelder kun i React.