Steg för steg-guide

Steg för steg-guide används för att dela upp en uppgift i några få steg som passar bra att hantera i en viss ordning.

Använd steg för steg för att dela upp en större uppgift som användaren ska utföra. Då kan användaren fokusera på en sak i taget istället för att bli överöst med information och val.

  • Använd så få steg som möjligt, helst inte fler än 5 eller 6.
  • Ett steg ska innehålla en eller några få enkla val eller kortfattad information.
  • Antalet steg ska vara fast och inte ändras beroende på val användaren gör i ett steg.
  • Rubrikerna för stegen måste följa korrekt rubriknivå för sidan.
  • Om ett steg innehåller ett formulär måste det vara komplett och rätt ifyllt innan användaren tillåtas att fortsätta till nästa steg.

Stegens storlek och omfattning

Ett steg ska innehålla en eller några få enkla val eller kortfattad information. Fokusera på en huvudfråga eller ett tydligt område. Ett steg bör ha en kort och konkret rubrik.

Innehåll och frågor som inte passar under en och samma rubrik ska inte placeras i samma steg. Om innehållet i ett steg behöver delas upp med underrubriker bör du antagligen dela upp steget i flera steg.

När steg för steg inte passar

  • När uppgifterna vi presenterar inte har en naturlig följd.
  • När vi har väldigt omfattande uppgifter som resulterar i många och långa steg.
  • När något av stegen tar väldigt lång tid att fylla i, i kombination med att steget blir omfattande, till exempel att användarens val skapar långa listor eller tabeller.

Copyriktlinjer

Stegrubriker

  • Syftar i första hand till att hjälpa till att dela in flödet i mindre delar.
  • Ska ha relevant copy men inte bära hela innehållet i delen - det gör till exempel etikettrubrikerna om ett steg innehåller ett formulär.
  • Ska ge användaren en snabb översikt över det enskilda steget och även en tydlig översikt över flödet.
  • Ska vara så kortfattade som möjligt.
  • Bör bestå av konkreta substantiv som till exempel Dagar, Bostad, Sjukdom och symtom.
  • ”Kompletterande uppgifter” och ”Övrigt” ska undvikas. Om det är svårt att skriva en lämplig rubrik på grund av att innehållet spretar bör du se över indelningen i steg.

Knapptexter

  • Standardtexten på primärknappen är Fortsätt, men det går att sätta en text på primärknappen i varje steg (next-button-text).
  • Sekundärknappens text är alltid Avbryt.

För utvecklare

En guide består av <f-wizard> och en eller fler guidesteg <f-wizard-step>.

<f-wizard header-tag="h2">
    <f-wizard-step key="unique-identifier" title="Beskrivande titel">
        <template #default>Innehåll</template>
    </f-wizard-step>
</f-wizard>

Inmatningsfälten valideras redan med vanlig validering, men om du behöver utföra extra validering (manuella steg, korsvalidering eller validering på backend osv) så kan du använda beforeSubmit:

<f-wizard header-tag="h1">
    <f-wizard-step
        key="step1"
        title="STEP1"
        :before-next="onBeforeNext"
    ></f-wizard-step>
</f-wizard>

Notera att det är metoden onBeforeNext som ska skickas in i sin helhelt, anropa inte metoden med :before-next="onBeforeNext()". I onBeforeNext har du möjlighet att sätta nya valideringsfel på inmatningsfält:

onBeforeNext(): Promise<void> {
    const myField = getElementFromVueRef(this.refs.myField);
    ValidationService.setError(myField, "This value is invalid!");
},

Vi rekommenderar att alla fel är kopplade till ett specifikt inmatningsfält men om du istället vill avbryta inskicket och presentera ett fel med exempelvis en meddeladeruta kan du returnera FWizardStepAction.CANCEL från onBeforeNext:

onBeforeNext(): Promise<FWizardStepAction> {
    this.showErrorMessage = true;
    return FWizardStepAction.CANCEL;
},

Lägga till steg dynamiskt

Props, Events & Slots

FWizard

Props
NameDescriptionTypeRequiredDefault

v-model

string

false

null

headerTag

Element to render for the header element inside the wizard steps.

string

true

disableInitialFocus

When the first wizard step is registered, it is opened and focused by default.
Set this property to disable that behaviour.

boolean

false

false

Events
NameDescriptionProperties

cancel

Emitted when wizard is canceled, i.e.
user pressing 'Avbryt' button.

change

Vue2 v-model event.

<anonymous>: FWizardKey

completed

Emitted when wizard is finished, i.e.
user pressing 'Fortsätt' button in last step.

update:modelValue

V-model event.

<anonymous>: FWizardKey

Slots
NameDescriptionBindings

default

One or more <f-wizard-step> elements

FWizardStep

Props
NameDescriptionTypeRequiredDefault

title

string

true

beforeNext

Supply this function in order to run actions before navigating to the next step.

It is possible to cancel the navigation by returning BeforeNextAction.CANCEL.
When cancelled, the consumer is responsible to indicate why this happened.

Note that FWizardStep already checks validity of contained fields using v-validation
before allowing navigation to the next step.

FValidationFormCallback

false

function() {
/* do nothing */
}

beforeValidation

Supply this function in order to run actions before FWizardStep checks validity.

beforeValidation is used by FValidationForm.

It is possible to cancel the navigation by returning BeforeNextAction.CANCEL.
When cancelled, the consumer is responsible to indicate why this happened.

FValidationFormCallback

false

function() {
/* do nothing */
}

useErrorList

Include the error list component.

boolean

false

true

Slots
NameDescriptionBindings

step-of

headerClass
stepNumber
totalSteps

error-message

default

next-button-text

Esc för att stänga Pil upp/ner för att navigera Enter för att välja