forked from shower/shower
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtext.js
53 lines (45 loc) · 4.45 KB
/
text.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
text
1)
2)
3)
4) Кастомные свойства. Аналог препроцессорных переменных. Они помогают уменьшить повторяемость кода.
Б) На больших сайтах бывает нужно сменить какой-то постоянно повторяющийся цвет, и автозаменой это делать не безопасно. Или нужно сменить цветовую схему
Похожая ситуация с фреймворками. Чтобы их можно было удобно настраивать нужны переменные.
В) Препроцессорные переменные имеют очень серьёзный недостаток: они статичны и не могут меняться на лету. Нативные Переменные позволяют менять темы на лету.
Переменные позовляют добавить денамику в дикларативный цсс.
Г) Использование переменных дает нам симантическую информацию. Смысл --main-text-color более понять чем #00ff00.
5) Доступны в новых браузерах, к сожалению не имеют возможности иметь обратную совестимость.
На мой взгляд, можно эксперементировать во внутренних инструментах или в личных проектах)
6) Синтаксис кастомных переменных.
Для объявление кастомных свойств используется синтаксис с 2-мя минусами.
Для использования приминяется функция var(). В которую в качестве аргумента передается переменная.
Вторым аргументом можно передать дефолтное значение
6) JavaScript. Чтобы получить значение кастомного свойства, используйте метод getPropertyValue() объекта CSSStyleDeclaration.
Аналогично, чтобы динамически менять значение кастомного свойства, используйте метод setProperty() объекта CSSStyleDeclaration.
7) Первые впечатления. Эдди Османи в деакбре прошлого года обуликовал в твитере, что хром реализовал, кастостомные переменные.
И что он получил в ответ. Было много неодобрительных коммпентариев. Суть которых?
8) Синтакис такой, а не $foo
А) Чтобы не было проблем с препроцессорами
Б) Более подробно об этом можно прочесть в статье одного из авторов спецификации, Таба Аткинса (Tab Atkins).
10) Препроцессорные переменные не наследуются. Препроцессорные переменные сложно совмещать с другим код.
Например если подтягиваешь еще другую либу по CDN
11)
-------------------------
Примеры. И фишки использования
-------------------------
А) Демо 1
Г) https://googlechrome.github.io/samples/css-custom-properties/index.html
Взгляните на пример, чтобы получить представление о разных интересных техниках,
которые станут доступным благодаря кастомным свойствам
----------
Бонус @apply
----------
12) @apply Аналог миксинов.
Реализую в хроме. Таб Анткинсон.
- Позовляет вставлять набор свойств.
- Для использования применяется функция apply();
-----------
Выводы
-----------
- Сцц стримится вопладить фишки препроцессоров, и в будущем мы будем снова писать на чистом цсс
- Для вечно зеленых браузеров для решения нетревиальных задач есть интересный инструмент.