Input [type=”text”] Razloženo

Input [type=”text”] Razloženo

Inputi su toliko važni u dizajnu “korisničkog iskustva” i presudno je da se njihov stil savršeno prenese s dizajna na stranicu. Nije tajna da vam je za prezentaciju na web stranici potreban CSS, ali zeznuti dio je kako je učiniti što boljom.

Inputi imaju više varijanti, stanja i stvari o sebi nego bilo koji drugi element u HTML-u, pa, hajde da pokrijemo sve što treba znati o post input unosa teksta. Provalimo ulaz!

Input [type=”text”]

Input tekst predstavlja prazan kvadrat tamo gdje se očekuje tekst. To je prilično čest element i, u većini slučajeva, predstavlja beli element okružen okvirom u boji.

Dobra je praksa dodavanje placeholder teksta unutar njega i oznaka izvan njega.
alt
Default intput text
alt
Default input text in focus state
alt
Default placeholder text
alt
Default autofill state

Da biste dodali željeni stil unosu, postoji nekoliko standardnih opcija i nekoliko posebnih. Ako postoji labela za ulaz(input), ona se dodaje u label element pored input-a, a njen atribut for ima istu vrednost
kao i atribut id povezanog input elementa.
Label element može se oblikovati poput standardnog elementa HTML teksta.

Za input, standardno je da se menjaju dimenzije, okvir (border), boja pozadine (background-color),radijus okvira (border-radius) i font opcije. Nije standardno da se stilizuje placeholder text, fokus, autofill i validation stanje. Ove ne standardne opcije bice objasnjene u sledecem artiklu i posle toga neki primeri korištenja drugačijih opcija biće prezentovani.

Placeholder text

Za stilizaciju placeholder text-a stavljenog sa placeholder atributom, ::placeholder pseudo element je korišten. Sve stilizacije teksta su podrzane (font, boja, pozadina, vidljivost, rastojanje izmedju rijeci,
transformacija teksta, visina linije). U Firefox pretrazivaču svi placeholder-i imaju vrednost vidljivosti primenjenu sto znaci da bi resetovali tu vrednost neophodno je definisati vidljivost (opacity).

::-webkit-input-placeholder { /* Chrome/Opera/Safari */
...
}
::-moz-placeholder { /* Firefox 19+ */
opacity:1;
...
}
:-ms-input-placeholder { /* IE 10+ */
...
}
:-moz-placeholder { /* Firefox 18- */...
}

Primer:

::placeholder{
color: coral;
font-size: 14px;
font-family: sans-serif;
letter-spacing: .2px;
padding-left: 5px;
}

Rezultat:
alt

Focus state

Stanje fokusa je važno za korisničko iskustvo i postoji na svakom ulaznom elementu. Koristi se za indikaciju trenutno ciljanog elementa. Ovo je stanje predstavljeno plavim okvirom oko elementa, a u CSS-u je odabrano sa pseudo klasom :focus.

Plavi okvir oko fokusiranog elementa dodat je sa default linijom outline:auto 5px -webkit-focus-ring-color i ta zadana vrednost boje definisana je u temi pretrazivača. U nekim slučajevima ova prezentacija smeta dizajnerima elementa i neki ljudi odluče da je onemoguće sljedećim kodom:

:focus{
outline:none;
}

To je jako loša praksa i trebalo bi se izbegavati. Umesto neutralizovanog stila za focus state, mozete to stilizovati na vas način i to ne mora da uključuje outline.

Primer:

:focus{
outline:none;
border:1px solid coral;
box-shadow:0 0 5px coral;
}

Rezultat:
alt
To je dobar nacin da dodate tranziciju u ovom slučaju (I u svakom drugom!).

Autocomplete state

Webkit pretrazivači pružaju postavku koja omogućava korisnicima da automatski popunjavaju detalje za uobičajene forme polja. To ste videli kad ispunjavate formu koja traži stvari poput imena, adrese i e-pošte. Autocomplete polja imaju zadanu žutu pozadinu i to je nešto što može ometati dizajn, a takođe je i nešto što se lako može promeniti (u ovom načinu možete promeniti i boju teksta)

:-webkit-autofill {-webkit-box-shadow: 0 0 0 1000px mintcream inset !important;
}
:-webkit-autofill {
-webkit-text-fill-color: coral !important;
}

Rezultat:
alt

Validation states (polja validacije)

Postoje dve relativno nove pseudo klase :valid i :invalid. Ove pseudo klase korisne su da bi se istakli uspesi i greške za korisnika. Uobičajeno je videti zelenu boju kada je sadržaj validan i crvenu ako nije,
pa sada to lako možete definisati sa CSS-om. Starije verzije pretrazivača to nece podržati, imajte to na umu.

:valid {
box-shadow: -5px 0 lime;
border-left: none;
}
:invalid {
box-shadow: -5px 0 orangered;
border-left: none;
}

box-shadow opcija je korištena umesto border-left, zato što postoji vizuelni problem u slucaju kada okviri jednog elementa imaju različit stil ili boju.

Rezultat:
alt

Dodatni savet

Još jedan problem sa input poljima je jedan na iOS-u koji se pojavljuje zato što je dodat default styling. Postoji i neka dodatna zaobljenja ivica i dropshadows. Najbolji nacin koji sam pronasano da rešim to je jedan sa daretothink bloga:

-webkit-appearance: none;
border-radius: 0;

Dobar primer
alt
alt
alt
alt
alt
alt
alt

Završna reč

Rad na dizajnu input polja je nešto što uvek možete raditi i nešto što će vaš korisnik iznimno ceniti. Još jednom napominjem vas da koristite tranzicije u stilizovanju.

Za vise dobrih primera pretplatite se naš bilten.