Рубрики
Без рубрики

CSS в JavaScript: Будущее стайлинга на основе компонентов

Приняв встроенные стили, мы можем получить все программные предоставляющие javaScript. Это дает нам преимущества чего-то вроде предварительного процессора CSS (переменные, смесины и функции). Это также решает много проблем, которые содержат CSS, такие как глобальное пространство наменения и конфликты для стилей. Глубоко

Приняв встроенные стили, мы можем получить все программные предоставляющие javaScript. Это дает нам преимущества чего-то вроде предварительного процессора CSS (переменные, смесины и функции). Это также решает много проблем, которые содержат CSS, такие как глобальное пространство наменения и конфликты для стилей.

Для глубокого погружения в проблемы, которые CSS в JavaScript решает, проверить известную презентацию: Реагирование CSS в JS Отказ Для тематического исследования по улучшению производительности вы получаете от APHRODITE, вы можете прочитать Inline CSS в Ханской Академии: Афродита Отказ Если вы хотите узнать больше о CSS в лучших практиках JavaScript, проверьте Руководство по стилю Airbnb .

Кроме того, мы будем использовать INLINE JavaScript Styles, чтобы построить компоненты для решения некоторых оснований дизайна, которые я покрыл одним из моих предыдущих статей: Прежде чем освоить дизайн, вы должны сначала освоить основы .

Мотивирующий пример

Давайте начнем с простой пример: создание и стилизацию кнопки.

Обычно компонент и связанные с ними стили поступят в одном файле: Кнопка и Buttonstyles Отказ Это потому, что они подпадают под тем же заботой: взгляд. Однако для этого примера я расставил код в несколько основных циклов, чтобы сделать его более усваиваемым.

Вот кнопка компонента:

Это ничего неожиданного – просто изобилие бездействия. Где Афродита вступает в игру в Классическое имя имущество. Функция CSS берет в Стили Объект и преобразует его в CSS. Стили Объект создан с Aphrodite’s Stylesheet.create ({...}) функция. Вы можете увидеть результат Stylesheet.create ({...}) с этим Афродитовая площадка Отказ

Вот кнопка стилей:

Одним из преимуществ Афродиты является то, что миграция проста, и кривая обучения низкая. Свойства нравится граница радиуса стать borderRadius и значения становятся строками. Псевдо-селекторы, медиа-запросы и определения шрифта все работы. Кроме того, префиксы добавляются автоматически.

Вот результат:

С помощью этого примера в виду Давайте посмотрим, как мы можем использовать Aphrodite для создания базовой системы визуальной дизайна , Сосредоточив внимание на следующих основных принципов дизайна: типографику и интервал.

Фундаментальная №1 -типография

Начнем с типографии, фундаментальной основой для дизайна. Первый шаг – определить разделение типографии Отказ И в отличие от Sass или меньше, константы для APHRODITE могут пойти в файл JavaScript или JSON.

Определите типографии константы

При создании констант Используйте семантические имена для ваших переменных Отказ Например, вместо того, чтобы назвать один из ваших шрифтов H2 Используйте имя, такое как DisplyLarge который описывает его роль . Точно так же для весов шрифтов вместо того, чтобы назвать один из ваших весов 600 Дайте ему имя как Семибольд описать его эффект Отказ

Важно получить значения права на переменные, такие как размеры шрифтов и высоты линии. Это потому, что они напрямую влияют на вертикальный ритм в рамках дизайна. Вертикальный ритм – это концепция, которая помогает вам достичь согласованного расстояния между элементами.

Для получения дополнительной части на вертикальном ритме вы можете прочитать эту статью: Почему вертикальный ритм важная типография практика?

Существует наука за выбором значений для ваших высот линии и размеры шрифтов. Мы можем использовать математические отношения для генерации набора кандидатов потенциальных размеров. Несколько недель назад я написал статью, описывающую методологию: Типография может сделать или разбить ваш дизайн: процесс выбора типа . Для определения размеров шрифта вы используете Модульная шкала Отказ Для определения высоты строки вы можете использовать этот Вертикальный ритм калькулятор Отказ

Определите заголовок

После определения наших констант типографии следующим шагом является создание компонента для потребления значений. Целью компонента является обеспечение обеспечения согласованности в разработке и внедрении заголовков на кодовой базе.

Заголовок Компонент представляет собой функцию бездействия, которая принимает тег в качестве свойства и возвращает тег со своим связанным стилем. Это возможно, потому что мы определили отображения тегов ранее в файле констант.

В нижней части компонентного файла мы определяем наши Стили объект. Вот где мы используем константы типографии.

И именно так Заголовок компонент будет использоваться:

С таким подходом Мы уменьшаем неожиданную изменчивость в нашей системе типа Отказ Мы избегаем ловушки сотен различных размеров шрифта, удалив необходимость в глобальных стилях и стандартизационных заголовках через кодовую базу. Кроме того, этот подход мы взяли на строительство Заголовок Компонент может быть применен для построения Текст Компонент для корпуса.

Фундаментальный №2 – Расстояние

Расстояние между кондиционерами как вертикальный, так и горизонтальный ритм в дизайне Отказ Это делает расстояние между ключевыми силами для установления системы визуальной конструкции. Как и в типографии раздел, первый шаг к интервалу адреса должен определить постоянные расстояния.

Определение констант Spacing

При определении постоянных интервалов для полей между элементами мы можем принять математический подход. Используя Международный рабочий вектор Констанция, мы можем генерировать набор расстояний на основе общего фактора. Этот подход гарантирует, что у нас есть логическое и последовательное расстояние между элементами.

Пример выше использует линейную масштаб, от одного до тринадцати. Тем не менее, экспериментируйте с разными масштабами и соотношениями. Конструкции требуют разных масштабов, основанных на их цели, их аудитории и устройства, которые они направлены. В качестве примера Вот первые шесть вычисленных расстояний с использованием золотого соотношения с Международный рабочий вектор из восьми.

Golden Ratio (1:1.618)
8.0 x (1.618 ^ 0) = 8.0008.0 x (1.618 ^ 1) = 12.948.0 x (1.618 ^ 2) = 20.948.0 x (1.618 ^ 3) = 33.898.0 x (1.618 ^ 4) = 54.828.0 x (1.618 ^ 5) = 88.71

Это то, как будет выглядеть расстояние между кодом. Я добавил функцию помощника для обработки вычислений и раунд вывода до ближайшего значения пикселей.

После определения наших постоянных интервалов мы можем использовать их для добавления краев к элементам в нашем дизайне. Один из подходов, который мы можем предпринять, – это импортировать постоянные расстояния и потреблять их в компонентах Отказ

Например, давайте добавим Marginbottom к Кнопка составная часть.

Это работает в большинстве сценариев. Тем не менее, что произойдет, если мы хотим изменить Marginbottom Свойство кнопки на основе, где находится кнопка?

Один из способов добиться переменных полей – переопределить стиль маржи от потребляющего родительского компонента. Альтернативный подход к Создать Интервал Компонент для управления вертикальными полями на элементах Отказ

Используя этот подход, мы можем удалить ответственность за установку краев из дочернего компонента и в родительский компонент. Таким образом, дочерний компонент становится макетом агностической, не требуя каких-либо знаний о том, где поместить себя в зависимости от других элементов.

Это работает, потому что компоненты, такие как кнопки, входы и карты, могут потребоваться переменные поля. Например, кнопка в форме может потребоваться большие поля, чем кнопка на панели навигации. Предостережение заключается в том, что если компонент всегда имеет последовательную маржу, то он имеет больше смысла обращаться с полями в компоненте.

Также вы, возможно, заметили, что примеры используют только Marginbottom Отказ Это потому, что Определение всех ваших вертикальных полей в одном направлении позволяет избежать разрушения полей и отслеживать вертикальный ритм вашего дизайна . Вы можете прочитать больше по этому поводу в статье Гарри Роберта, Одноразовые маржинальные декларации Отказ

В последнее время вы также можете использовать константы интервала, которые вы определены как прокладки.

Используя использование одних и тех же постоянных интервалов для полей и прокладки, вы можете добиться большей визуальной консистенции в вашем дизайне.

Вот что может выглядеть результатом:

Теперь, когда у вас есть похвал CSS в JavaScript, выйти и экспериментировать. Попробуйте включить вставные стили JavaScript в ваш следующий проект. Я думаю Вы будете признателен за возможностью работать в одном контексте, чтобы справиться с всеми вашими стайлингами и рассматривать проблемы .

На тему CSS и JavaScript, каковы некоторые новые события, о которых вы взволнованы? Лично я взволнован async/ждут. Оставьте мне записку или пришлите мне Tweet в Твиттере.

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

Оригинал: “https://www.freecodecamp.org/news/css-in-javascript-the-future-of-component-based-styling-70b161a79a32/”