Ангелина Сидорцова "Использование кастомных шрифтов"

80
Я.Субботник, Минск, 2 июня 2012 года Разработчик интерфейсов Гела Сидорцова Использование кастомных шрифтов 1

description

Почему можно хотеть использовать кастомные шрифты. Какой нужен оптимальный синтаксис и какие нужны форматы шрифтов для подключения. Как легко подключать кастомные шрифты в терминологии БЭМ.

Transcript of Ангелина Сидорцова "Использование кастомных шрифтов"

Page 1: Ангелина Сидорцова "Использование кастомных шрифтов"

Я.Субботник,  Минск,  2  июня  2012  года

Разработчик  интерфейсовГела  Сидорцова

Использование  кастомныхшрифтов

1

Page 2: Ангелина Сидорцова "Использование кастомных шрифтов"

Образец подзаголовка

2

2

Page 3: Ангелина Сидорцова "Использование кастомных шрифтов"

3

i-­‐font

3

Page 4: Ангелина Сидорцова "Использование кастомных шрифтов"

Зачем  нам  кастомные  шрифты?

4

4

Page 5: Ангелина Сидорцова "Использование кастомных шрифтов"

5

5

Page 6: Ангелина Сидорцова "Использование кастомных шрифтов"

5

5

Page 7: Ангелина Сидорцова "Использование кастомных шрифтов"

Кому  что?

6

6

Page 8: Ангелина Сидорцова "Использование кастомных шрифтов"

?

7

eotwoff oE svg

Разным  браузерам    —  разные  форматы  шрифтов

7

Page 9: Ангелина Сидорцова "Использование кастомных шрифтов"

8

Подключение  шрифтов  в  браузерах

8

Page 10: Ангелина Сидорцова "Использование кастомных шрифтов"

9

*.woff!Для  IE9  отдаем  *.woff

*.woff!

9

Page 11: Ангелина Сидорцова "Использование кастомных шрифтов"

10

Подключение  шрифтов  в  браузерах

10

Page 12: Ангелина Сидорцова "Использование кастомных шрифтов"

11

Какой  формат  какому  браузеру?

11

Page 13: Ангелина Сидорцова "Использование кастомных шрифтов"

11

6-­‐8 *.eot

Какой  формат  какому  браузеру?

11

Page 14: Ангелина Сидорцова "Использование кастомных шрифтов"

11

6-­‐8

9 *.woff

*.eot

Какой  формат  какому  браузеру?

11

Page 15: Ангелина Сидорцова "Использование кастомных шрифтов"

11

*.M

6-­‐8

9 *.woff

*.eot

Какой  формат  какому  браузеру?

11

Page 16: Ангелина Сидорцова "Использование кастомных шрифтов"

Инструменты

12

12

Page 17: Ангелина Сидорцова "Использование кастомных шрифтов"

13

Дизайнеры

yandex.?

yandex.eot yandex.woff

13

Page 19: Ангелина Сидорцова "Использование кастомных шрифтов"

15

15

Page 20: Ангелина Сидорцова "Использование кастомных шрифтов"

16

Важно  помнить

16

Page 21: Ангелина Сидорцова "Использование кастомных шрифтов"

17

—быть  аккуратным  с  настройками  в  Rendering  -­‐  Fix  Ver]cal  Metrix  и  Remove  Kerning  

Важно  помнить

17

Page 22: Ангелина Сидорцова "Использование кастомных шрифтов"

18

—ставить  галочку  в  настройках  Subsedng  на  Cyrillic  при  генерации  кириллического  шрифта  

Важно  помнить

18

Page 23: Ангелина Сидорцова "Использование кастомных шрифтов"

19

—отсечь  ненужные  символы

Важно  помнить

19

Page 24: Ангелина Сидорцова "Использование кастомных шрифтов"

Синтаксис

20

20

Page 25: Ангелина Сидорцова "Использование кастомных шрифтов"

@font-face {font-family: 'konkord';src: local('konkord');src: url('i-font_face_konkord.eot?#iefix') format('embedded-opentype');font-weight: normal;font-style: normal;

}

Синтаксис  подключения  кастомных  шрифтов  для  IE<9

21

общепринятый:

21

Page 26: Ангелина Сидорцова "Использование кастомных шрифтов"

@font-face {font-family: 'konkord';src: local('konkord');src: url('i-font_face_konkord.eot?#iefix') format('embedded-opentype');font-weight: normal;font-style: normal;

}

22

Синтаксис  подключения  кастомных  шрифтов  для  IE<9

сокращенный:

22

Page 27: Ангелина Сидорцова "Использование кастомных шрифтов"

23

Избавляемся  от

23

Page 28: Ангелина Сидорцова "Использование кастомных шрифтов"

24

— объявления  формата  шрифта

format('embedded-opentype')

Избавляемся  от

24

Page 29: Ангелина Сидорцова "Использование кастомных шрифтов"

— объявления  формата  шрифта;

— стиля  и  насыщенности

25

Избавляемся  от

font-weight: normal;font-style: normal;

25

Page 30: Ангелина Сидорцова "Использование кастомных шрифтов"

Избавляемся  от

26

— объявления  формата  шрифта;

— стиля  и  насыщенности;

— хак-­‐конструкции  

...?#iefix

26

Page 31: Ангелина Сидорцова "Использование кастомных шрифтов"

27

— объявления  формата  шрифта;

— стиля  и  насыщенности;

— хак-­‐конструкции,  которая  нужна  в  случае  

...src: url('i-font_face_konkord.eot?#iefix'), url('i-font_face_konkord.ttf');...

Избавляемся  от

27

Page 32: Ангелина Сидорцова "Использование кастомных шрифтов"

28

*.ie.css

*.css

Подключение  css  на  проектах

6-­‐8

28

Page 33: Ангелина Сидорцова "Использование кастомных шрифтов"

Важно

29

— делать  проверку  на  наличие  шрифта  у  пользователя

...src: local('konkord');...

29

Page 34: Ангелина Сидорцова "Использование кастомных шрифтов"

30

— делать  проверку  на  наличие  шрифта  у  пользователя;

— выносить  проверку  в  отдельный  дескриптор  src,  так  как  IE<9  и  Opera  10.10  не  понимают  проверку  в  общем  src  

@font-face {font-family: 'konkord';src: local('konkord');src: url('i-font_face_konkord.eot');

}

Важно

30

Page 35: Ангелина Сидорцова "Использование кастомных шрифтов"

31

@font-face { font-family: 'konkord'; src: local('konkord'); src: url('i-font_face_konkord.woff') format('woff'), url('i-font_face_konkord.ttf') format('true-type'); font-weight: normal; font-style: normal;}

Синтаксис  подключения  кастомных  шрифтов  для  остальных  браузеров

общепринятый:

31

Page 36: Ангелина Сидорцова "Использование кастомных шрифтов"

32

@font-face { font-family: 'konkord'; src: local('konkord'); src: url('i-font_face_konkord.woff') format('woff'), url('i-font_face_konkord.ttf') format('true-type'); font-weight: normal; font-style: normal;}

Синтаксис  подключения  кастомных  шрифтов  для  остальных  браузеров

сокращенный:

32

Page 37: Ангелина Сидорцова "Использование кастомных шрифтов"

33

Порядок  отдачи  шрифта

src: url('konkord.woff'), url('konkord.ttf');

33

Page 38: Ангелина Сидорцова "Использование кастомных шрифтов"

Проблемы  кастомных  шрифтов

34

34

Page 39: Ангелина Сидорцова "Использование кастомных шрифтов"

1.  Скачки  текста  до  document.ready()

35

35

Page 40: Ангелина Сидорцова "Использование кастомных шрифтов"

36

при  загрузке:

после  загрузки:

36

Page 41: Ангелина Сидорцова "Использование кастомных шрифтов"

37

.b-logo_type_text .b-logo__link{ font-family: Yandex, Arial, Helvetica, san-serif;}

#1  костыль:прописываем  альтернативный  шрифт

37

Page 42: Ангелина Сидорцова "Использование кастомных шрифтов"

38

при  загрузке:

после  загрузки:

38

Page 43: Ангелина Сидорцова "Использование кастомных шрифтов"

39

.b-logo_type_text .b-logo__link{ visibility: hidden;}

#2  костыль:скрываем  содержимое

39

Page 44: Ангелина Сидорцова "Использование кастомных шрифтов"

40

BEM.DOM.decl({ name : 'b-bla-bla', modName : 'custom', modVal : 'font' }, { onSetMod: { 'js': function() { this.setMod('visibility', 'visible'); } }});

#2  костыль:показываем  содержимое

40

Page 45: Ангелина Сидорцова "Использование кастомных шрифтов"

41

при  загрузке:

после  загрузки:

41

Page 46: Ангелина Сидорцова "Использование кастомных шрифтов"

42

@font-face { font-family: 'YandexEn'; src: local('YandexEn'); src: url(data:font/woff; charset=utf-8; base64,d09GRgABAAAAAAqIABAAAAAADfAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABbAAAABoAAAAcYH6GxkdERUYAAAGIAAAAHQAAACAANwAET1MvMgAAAagAAABOAAAAYJSuXtAAB+AAAAGoAAAFqx5QywWN2dCAAAAJkAAAAGgAAABoE6ANYZnBnbQAAAoAAAAGxAAACZQ+0L6dnYXNwA...);}

#3  решение  для  небольших  шрифтов:base64

42

Page 47: Ангелина Сидорцова "Использование кастомных шрифтов"

43

Тест  на  канале  1024  kbps

43

Page 48: Ангелина Сидорцова "Использование кастомных шрифтов"

43

Тест  на  канале  1024  kbpscss vs style=’’...’’  

43

Page 49: Ангелина Сидорцова "Использование кастомных шрифтов"

43

8

Тест  на  канале  1024  kbpscss vs style=’’...’’  

43

Page 50: Ангелина Сидорцова "Использование кастомных шрифтов"

43

WIN

WIN

WIN

WIN

8

Тест  на  канале  1024  kbpscss vs style=’’...’’  

43

Page 51: Ангелина Сидорцова "Использование кастомных шрифтов"

2.  Одновременная  загрузка  больше  одного  файла

44

44

Page 52: Ангелина Сидорцова "Использование кастомных шрифтов"

45

45

Page 53: Ангелина Сидорцова "Использование кастомных шрифтов"

3.  Кастомные  шрифты  в  Опере

46

46

Page 54: Ангелина Сидорцова "Использование кастомных шрифтов"

47

47

Page 55: Ангелина Сидорцова "Использование кастомных шрифтов"

47

problem?47

Page 56: Ангелина Сидорцова "Использование кастомных шрифтов"

48

48

Page 57: Ангелина Сидорцова "Использование кастомных шрифтов"

Блок  i-­‐font

49

49

Page 58: Ангелина Сидорцова "Использование кастомных шрифтов"

50

clck.ru/19aoR

50

Page 59: Ангелина Сидорцова "Использование кастомных шрифтов"

i-font/_face/

i-font_face_konkord.cssi-font_face_konkord.ie.cssi-font_face_konkord.ttfi-font_face_konkord.woffi-font_face_konkord.eot

51

Каждый  модификатор  –  отдельный  шрифт

51

Page 60: Ангелина Сидорцова "Использование кастомных шрифтов"

Логотип  шрифтом

52

52

Page 61: Ангелина Сидорцова "Использование кастомных шрифтов"

53

i-font

Шрифт  Яндекса

53

Page 62: Ангелина Сидорцова "Использование кастомных шрифтов"

54

_yandex-­‐ru _yandex-­‐en

Разделение  шрифта  на  два  –с  латинскими  символами  и  кириллицей

yandex.M

54

Page 63: Ангелина Сидорцова "Использование кастомных шрифтов"

55

55

Page 64: Ангелина Сидорцова "Использование кастомных шрифтов"

@font-face { font-family: 'YandexEn'; src: local('YandexEn'); src: url(data:font/woff; charset=utf-8; base64,d09GR...), url(data:font/truetype; charset=utf-8; base64,AAEAAA...);}

56

56

Page 65: Ангелина Сидорцова "Использование кастомных шрифтов"

Входные  данные

57

57

Page 66: Ангелина Сидорцова "Использование кастомных шрифтов"

Входные  данные

block: 'b-logo',mods: { type: 'text' }

57

bemjson.js:

57

Page 67: Ангелина Сидорцова "Использование кастомных шрифтов"

Шаблоны

block b-logo, mod type text { content: { elem: 'logo', content: { elem: 'link', mix: [ { block: 'i-font', mods: { face: 'yandex-ru' } } ] ...

58

b-­‐logo_type_text.bemhtml:

58

Page 68: Ангелина Сидорцова "Использование кастомных шрифтов"

Для  чего  mix?

59

<div class=" b-logo__link i-font i-font_face_yandex-ru">...</div>

html:

59

Page 69: Ангелина Сидорцова "Использование кастомных шрифтов"

Для  чего  mix?

60

.i-font_face_yandex-ru { font-family: YandexRu;}

i-­‐font_face_yandex-­‐ru.css:

60

Page 70: Ангелина Сидорцова "Использование кастомных шрифтов"

Для  чего  mix?

61

.b-logo_type_text .b-logo__link{ font-size: 46px; text-decoration: none; color: #000;}

b-­‐logo_type_text.css:

61

Page 71: Ангелина Сидорцова "Использование кастомных шрифтов"

Результат

62

*.woff

*.png

62

Page 72: Ангелина Сидорцова "Использование кастомных шрифтов"

Преимущества

63

63

Page 73: Ангелина Сидорцова "Использование кастомных шрифтов"

64

Преимущества— сохраняется  поиск  по  тексту;

64

Page 74: Ангелина Сидорцова "Использование кастомных шрифтов"

64

— онлайн-­‐переводчики  и  другой  софт  для  работы  с  текстом;

Преимущества— сохраняется  поиск  по  тексту;

64

Page 75: Ангелина Сидорцова "Использование кастомных шрифтов"

64

— онлайн-­‐переводчики  и  другой  софт  для  работы  с  текстом;

— улучшение  качества  при  зуме;

Преимущества— сохраняется  поиск  по  тексту;

64

Page 76: Ангелина Сидорцова "Использование кастомных шрифтов"

64

— онлайн-­‐переводчики  и  другой  софт  для  работы  с  текстом;

— улучшение  качества  при  зуме;

— взаимодействие  с  таблицами  стилей  для  печати;

Преимущества— сохраняется  поиск  по  тексту;

64

Page 77: Ангелина Сидорцова "Использование кастомных шрифтов"

64

— онлайн-­‐переводчики  и  другой  софт  для  работы  с  текстом;

— улучшение  качества  при  зуме;

— взаимодействие  с  таблицами  стилей  для  печати;

— line-­‐height,  text-­‐shadow,  text-­‐align,  :first-­‐lemer  и  пр.;

Преимущества— сохраняется  поиск  по  тексту;

64

Page 78: Ангелина Сидорцова "Использование кастомных шрифтов"

64

— онлайн-­‐переводчики  и  другой  софт  для  работы  с  текстом;

— улучшение  качества  при  зуме;

— взаимодействие  с  таблицами  стилей  для  печати;

— line-­‐height,  text-­‐shadow,  text-­‐align,  :first-­‐lemer  и  пр.;

— реализация  схожих  элементов  с  разной  текстовой  частью

Преимущества— сохраняется  поиск  по  тексту;

64

Page 79: Ангелина Сидорцова "Использование кастомных шрифтов"

65

65

Page 80: Ангелина Сидорцова "Использование кастомных шрифтов"

Гела  СидорцоваРазработчик  интерфейсов

gela-­‐d@yandex-­‐team.ru

@gela_dd

clck.ru/19aoR

66