Daan645 / lose-your-head-the-client-case

Ontwerp en maak een website voor een opdrachtgever op basis van een Headless CMS API
https://lose-your-head-the-client-case-5q6r.vercel.app/
0 stars 1 forks source link

Verbeteren van de visuele hiërarchie week selectie component #69

Open Daan645 opened 1 week ago

Daan645 commented 1 week ago

Ik wil de visuele hiërarchie van mijn week selectie component verbeteren, doormiddel van een redesign. Op deze manier wordt het component nog duidelijker voor de gebruiker.

Daan645 commented 6 days ago

Ik heb een morphological chart gemaakt, op deze manier kan ik alle opties opschrijven die ik heb voor de weekselectie en zo tot een betere oplossing komen!

Scherm­afbeelding 2024-11-15 om 11 43 56

Daan645 commented 6 days ago

Uitwerken van de verschillende variaties

Ik heb de verschillende variaties uitgewerkt om er zo achter te komen welke variatie de beste visuele hierarchie heeft.

Scherm­afbeelding 2024-11-15 om 11 44 55

Daan645 commented 6 days ago

User test

Ik heb met sammy mijn ontwerpen getest. Uiteindelijk bleek het het beste te zijn als de huidige dag roze is, het is namelijk het hoofddoel om te zien welke dag het nu is. We merkte ook op dat het eigenlijk belangrijker is om de dag nummers te zien dan de dagnaam, en dat het ook fijn was als je de maanden kon zien. Ik heb dit verwerkt in een nieuwe variatie, deze was uiteindelijk duidelijker.

Scherm­afbeelding 2024-11-15 om 11 49 57

Daan645 commented 6 days ago

Breakdown schets

Ik heb vervolgens de versie die het beste was uitgewerkt in een breakdown schets met zowel HTML, CSS en JS. Dit heb ik gedaan zodat ik een goed beeld krijg hoe ik het component moet gaan maken.

Scherm­afbeelding 2024-11-15 om 11 51 36 Scherm­afbeelding 2024-11-15 om 11 51 41 Scherm­afbeelding 2024-11-15 om 11 51 47

Daan645 commented 6 days ago

Bouwen

Ik heb het component omgebouwd tot het nieuwe ontwerp. Scherm­afbeelding 2024-11-15 om 11 53 46

Daan645 commented 6 days ago

Contrast test

Maand aanpassen

We mogen niet uitwijken van de kleuren van de opdrachtgever. Deze kleuren hebben helaas geen goed contrast. Ik heb daaorm uiteindelijk de huidige maand zwart gemaakt zodat deze een beter contrast heeft.

Scherm­afbeelding 2024-11-15 om 11 33 22 Scherm­afbeelding 2024-11-15 om 11 33 44

Text groter maken

Ik zag op de contrast checker dat als de text groter is deze iets beter scoort en nog net groen is. Daarom heb ik de tekst groter gemaakt om zo het contrast te verbeteren.

Scherm­afbeelding 2024-11-15 om 11 34 05

Ik heb bij deze tests de contrasts app gebruikt.

Daan645 commented 2 days ago

Tab test

Test 1

Op tab werkt het menu goed, omdat ik het een carousel heb gemaakt met scroll-snap mandatory, scrollt het carousel mee als je op tab drukt.

https://github.com/user-attachments/assets/c4b38339-c3de-4adb-82d8-f1b647aafd50

Analyseren

Ik vind dat de focus state een stuk duidelijker en opvallender kan vooral op het roze vakje die de active state heeft. De dunne lijn is moeilijk zichtbaar, laat staan als een gebruiker om redenen slechter of minder zicht heeft. Ook is het contrast op het roze vakje erg moeilijk te zien.

Ontwerpen

Ik wil de focus state hetzelfde maken als de hover die de muisgebruikers hebben, op die manier is het duidelijker waar je bent.

Scherm­afbeelding 2024-11-19 om 16 03 30

Bouwen

Ik heb bij mijn hover state ook de focus state toegevoegd. Dit heb ik gedaan zodat er geen onnidige / dubbele code in mijn project komt, aangezien ik precies hetzelfde wil met mijn focus als hover. Ook heb ik de outline op none gezet op de algemene button selector, zodat ik dit niet overal hoef te herhalen.


- pas de zelfde stijl aan op zowel de hover als de focus, maak hier de eerste span in de button wit (de standaard grijs kleur heeft een slecht contrast)
```css
 button:hover span:first-of-type,
  button:focus span:first-of-type {
    color: var(--light);
  }

Test 2

Met de kleur aanpassingen is de focus state een stuk duidelijker op keyboard en is er makkelijker te navigeren op de weekselectie!

https://github.com/user-attachments/assets/929c14de-0f06-400e-a0bb-ecbd5590f985

Daan645 commented 13 hours ago

Motion sickness test

Ik wil testen of mijn component ook geschikt is voor gebruikers die motion sickness hebben.

Test 1

Op het moment dat ik hover met de muis of de focus gebruik met keyboard komt er een transition met een scale. Dit zou voor duizeligheid kunnen zorgen wanneer iemand motion sickness heeft omdat de blokken snel achterelkaar kunnen bewegen.

https://github.com/user-attachments/assets/74c05d04-7f9b-4768-b8d7-5817dd879240

Analyseren

Om motion sickness eerst beter te begrijpen wil ik er wat meer over gaan lezen. Ik zie dat dit op het web veroorzaakt kan worden door onverwachte bewegingen zoals parallax scrolling of flitsende animaties, wat kan leiden tot desoriëntatie of misselijkheid bij gebruikers.

Om dit te voorkomen wil ik dat gebruikers die de instelling hebben om animaties te uit te zetten, geen animaties meer krijgen op mijn website. Ik heb hier naar onderzoek gedaan op mdn webdocs en heb het volgende gevonden:

Ik kan met deze mediaquery ervoor zorgen dat er iets anders gebeurd wanneer de gebruiker reduced motion aan heeft staan op zijn of haar systeem.

@media (prefers-reduced-motion) {
}

Het is nog mooier als ik het component standaard al kan bouwen terwijl ik rekening houdt met reduced motion. Daarom kan ik de mediaquery ook zo maken dat hij bepaalde onderdelen wel gebruikt wanneer de gebruiker reduced motion niet aan heeft staan. Zo is de website altijd toegankelijk, zelfs voor de minimale groep die geen mediaquery ondersteunt:

@media (prefers-reduced-motion: no-preference) {
}

Ontwerpen

Voor dit onderdeel hoefde ik niet veel te ontwerpen ik wil eigenlijk mijn hover state die ik al heb gebruiken maar dan zonder scale en transition. De scale en de transition kunnen voor een fade effect zorgen waar iemand met motion sickness dus last van zou kunnen krijgen.

Wel heb ik een breakdown gemaakt voor mijzelf om te begrijpen hoe ik de mediaquery wil gaan toepassen:

Scherm­afbeelding 2024-11-21 om 13 41 29

Bouwen

Om mijn code kort en duidelijk te houden heb ik de huidige hover en focus gehouden zo als het is. Ik heb deze alleen omgebouwd met motion sickness in gedachte.

Dit is hoe ik dat heb gedaan:

Ik zef hier op de button dat er alleen een transition moet komen als er geen reduced motion aan staat bij de gebruiker:

button {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border: none;
    outline: none;
    background-color: rgb(239, 239, 239);
    font-family: var(--font-family);
    padding: 1em;
    font-size: 0.9em;
    cursor: pointer;
    @media (prefers-reduced-motion: no-preference) {
      transition: 0.2s ease-in;
    }
    font-weight: bold;
  }

Ook wil ik geen scale meer op mijn hover en focus, dus heb ik hetzelfde hier in toegepast:

  button:hover,
  button:focus
  {
    background-color: var(--primary-color);
    color: var(--light);
    @media (prefers-reduced-motion: no-preference) {
      scale: 0.9;
    }
  }

Op deze manier blijft mijn code kort en efficiënt maar ook duidelijk. Ook bouw ik mijn component nu zo dat ik de gebruiker die last heeft van motion sickness centraal stel.

Test 2

Ik ben benieuwd of de animatie nu uitgeschakeld is als de gebruiker reduced motion uit zou zetten op zijn of haar systeem en of er geen onverwachte bewegingen meer zijn.

Met reduced motion

https://github.com/user-attachments/assets/a6ec09b4-87c5-4ea7-b211-0eac16ea3183

Zonder reduced motion

https://github.com/user-attachments/assets/93860b8b-3e03-48ae-848d-c3da0a74e4a3

Bronnen