<Frontend />

Графика в вебе

Расстровая графика

  • .jpg

  • .png

  • .gif

  • .webp

  • .avif

Векторная графика

  • .svg

  • .ai

Растр vs Вектор

 <img
      src="img/cat.jpg"
      alt="close up photo of tabby cat"
      class="img"
    >

<img>

background-image:
    url("../../media/examples/star.png"),
    url("../../media/examples/lizard.png");

background-image

 <img
      src="img/cat.jpg"
      srcset="img/cat_500.jpg 500w,
              img/cat_1000.jpg 1200w,
              img/cat_1500.jpg 1900w"
      alt="close up photo of tabby cat"
      class="srcset_img"
    >

srcset

srcset

<picture>
      <source
        type="image/avif"
        srcset="img/img.avif"
      >
      <source
        media="(-webkit-device-pixel-ratio: 2) and
        (-webkit-min-device-pixel-ratio: 2) and (-webkit-max-device-pixel-ratio: 2.99) ,
        (min-resolution: 2dppx) and (max-resolution:2.99dppx)"
        srcset="img/cat2_1000.jpg"
      >
      <source
        media="(min-width: 768px) and (max-width: 1499px)"
        srcset="img/cat2_1000.jpg"
      >
      <img
        src="img/cat2.jpg"
        alt="brown tabby cat on white stairs"
      >
</picture>

<picture>

<!-- Just an image -->
<figure>
  <img
  src="https://developer.mozilla.org/static/img/favicon144.png"
  alt="The beautiful MDN logo.">
</figure>

<!-- Image with a caption -->
<figure>
  <img
  src="https://developer.mozilla.org/static/img/favicon144.png"
  alt="The beautiful MDN logo.">
  <figcaption>MDN Logo</figcaption>
</figure>

<figure>

background: image-set( "../img/cat_1x.jpg" 1x,
                       "../img/cat_2x.jpg" 2x,
                       "../img/cat_3x.jpg" 3x);

image-set

AVIF

 <img
      src="img/cat.jpg"
      alt="close up photo of tabby cat"
      class="img"
      loading="lazy"
    >

loading="lazy"

Кастомный Lazy Loading

Атрибуты width и height

.img {
  aspect-ratio: 16 / 9;
}

aspect-ratio

Картинки как коробки — что внутри?

Q & A

HTML <form>

Элемент HTML form (<form>) представляет (собой) раздел документа, содержащий интерактивные элементы управления, которые позволяют пользователю отправлять информацию на веб-сервер.

<FORM>

<form method="post">
  <label for="POST-name">Name:</label>
  <input id="POST-name" type="text" name="name">
  <input type="submit" value="Save">
</form>

<form>
  <label for="GET-name">Name:</label>
  <input id="GET-name" type="text" name="name">
  <input type="submit" value="Save">
</form>

<BUTTON> INSIDE <FORM>

Дефолтные стили форм

<input>

<input type="text" name="text" minlength="8" maxlength="16">

<input type="password" name="password" minlength="8" required>

<input type="email" name="email" pattern=".+@globex.com" size="10" required>

<input type="color" name="color">

<input type="range" name="range" value="0">

<input type="checkbox" name="checkbox" value="checkbox">

<input type="radio" name="radio" value="radio">

<input type="date" name="date">

<INPUT TYPE=''TEXT''> VALIDATION

<INPUT TYPE=''EMAIL''> VALIDATION

<INPUT TYPE=''PASSWORD''> VALIDATION

INPUTS ATTRIBUTES

<input type="text">
<input type="email">

<input type="text"
    inputmode="email">

INPUTS ATTRIBUTES

<input type="tel">

<input type="text"
    inputmode="tel">
<input type="number">

<input type="text"
    inputmode="numeric">

INPUTS ATTRIBUTES

<input type="url">

<input type="text"
    inputmode="url">
<input type="url">

<input type="text"
    inputmode="url">

<SELECT>

<select name="languange"
        id="select"
        class="select__item"
        required>
  <option value="english" selected>English</option>
  <option value="arabic">Arabic</option>
  <option value="kurdish">Kurdish</option>
</select>

<SELECT> STYLING

<INPUT TYPE=''FILE''>

<input type="file"
       class="visually-hidden"
       id="file"
       name="file"
       accept="image/*"
       multiple
       required>

<INPUT TYPE=''FILE''> STYLING

<INPUT TYPE=''RADIO''>

<input type="radio" name="radio" value="radio1">

<input type="radio" name="radio" value="radio2">

<input type="radio" name="radio" value="radio3">

<INPUT TYPE=''RADIO''> STYLING

<INPUT TYPE=''CHECKBOX''>

<input type="checkbox"
       name="input"
       id="input1"
       value="input1"
       class="visually-hidden"
       required
>

<INPUT TYPE=''CHECKBOX''> STYLING

<INPUT TYPE=''RANGE''>

<input type="range"
       name="urgent"
       min="0"
       max="2"
       step="1"
       value="1"
>

<INPUT TYPE=''RANGE''> STYLING

<INPUT TYPE=''RANGE''> STYLING

Q & A

Доступность

Доступность

Wai-aria

Главные принципы доступности

Воспринимаемость - люди должны иметь возможность воспринимать контент тем способом, который им доступен

Понятность - контент и интерфейс должны быть понятны всем людям, в том числе и с инвалидностью.

Управляемость - люди должны иметь возможность взаимодействовать с интерфейсом и управлять контентом тем способом, который им доступен.

Надежность - интерфейс должен оставаться доступным при изменении версий продукта или операционной системы.

типы ограничений

Временные

типы ограничений

Длительные

типы ограничений

Врожденные

Нарушение зрения - слепота, близорукость или дальнозоркость, дальтонизм

Нарушение слуха - глухота или тугоухость, звон в ушах

Нарушение моторики - дрожание рук, деформация или отсутствие конечностей.

Проблемы восприятия - дислексия, деменция, депривация сна.

Вспомогательные технологии — общее название технических средств для облегчения повседневной жизни людей с инвалидностью.

Порядок разработки продукта

Дизайн

Программирование

Контент

Используйте нативные HTML элементы, если таких элементов не нашлось то тогда создавайте свои кастомные

Не переопределяйте нативную/встроенную семантику

Все интерактивные элементы должны быть доступны с клавиатуры

Не используйте  role="presentation" или aria-hidden="true" для элементов с фокусом

Все интерактивные элементы должни иметь доступоне имя

tabindex

Accordion Example

Breadcrumb Example

Modal Dialog Example

Navigation Menu Button Example

Scrollable Listbox Example

Example of Tabs

Example of Tabs

Полезности

Q & A

Работа с контентом

Overflow Wrap

hyphens

Text Truncation

Optional Scrolling

Min-width

icons in input

Copy of Frontend

By Anton Chyvikov

Copy of Frontend

  • 87