Как бы я ни любил создавать системы с нуля, контролируя каждую часть проектирования и разработки, иногда быстрее, лучше и проще позволить инфраструктуре управлять основами, чтобы вы могли сосредоточиться на забавных вещах.
Фреймворки CSS существуют уже давно, и они нацелены на создание прочной основы, которую вы можете реализовать в своих проектах, чтобы позаботиться об основах (перезагрузка, макеты сетки, элементы мультимедиа, типография и т. Д.). В то время как существует множество фреймворков, две большие компании Bootstrap и Zurb Foundation некоторое время боролись с этим, улучшая, улучшая и обновляя свои фреймворки с каждым выпуском.
6-я версия платформы Foundation уже вышла, и сегодня я собираюсь просмотреть наиболее важные части и посмотреть, что изменилось и что было представлено.
Что в этом для меня с Фондом 6?
В отличие от предыдущих версий, в которых основное внимание уделялось поэтапному обновлению, Foundation 6 вносит значительные изменения в структуру. Зурб в значительной степени вернулся к чертежной доске и использовал все свои навыки, отзывы сообщества и достижения в области технологий браузеров для перестройки Foundation.
Фреймворк подвергся капитальному ремонту с несколькими компонентами, которые были урезаны, чтобы обеспечить только базовую структуру. Большинство элементов были оптимизированы, чтобы сделать их быстрее, меньше, проще в использовании и в целом лучше, чем раньше. Основная мантра этой версии, кажется, возвращает вещи к основам.
Наряду с изменениями в существующих компонентах появляются новые интересные функции, такие как Flex Grid, Motion UI, Yeti Launch, а также дополнительные строительные блоки и шаблоны.
Оптимизация фундамента: капитальный ремонт
Одна из главных жалоб, которую я слышал от людей, когда они говорят о фреймворках, — это их размер. Они беспокоятся о времени загрузки и раздувают давление на их сайты. В целом это справедливо для нескольких систем, тратящих до 90% своих активов. Благодаря этой последней версии Zurb удалось значительно уменьшить общий размер своей системы, упав более чем на 50% по сравнению с Foundation 5 .
Если бы вы хотели все в Foundation 5, файлы CSS и JavaScript имели бы 160 КБ и 110 КБ соответственно. С Фондом 6 они сократились до 68 КБ и 92 КБ. Уменьшение размера связано с несколькими фундаментальными изменениями, которые Zurb обсудил в процессе их подготовки к выпуску, в том числе:
- Переопределение нескольких более крупных компонентов в более мелкие модульные компоненты (например, меню навигации).
- Снижение специфичности. Вместо того, чтобы иметь глубоко вложенные селекторы и стили, фреймворк теперь будет легко обрабатывать стили (что позволит вам легче настраивать ваш сайт).
- Упрощение переменных и миксинов Sass для создания меньшего количества опций (его цель — быть фреймворком, который вы настраиваете сами). Большинство компонентов были изменены в той или иной форме, чтобы сделать его более упорядоченным и менее раздутым.
- Переопределение их JavaScript, чтобы вместо каждого компонента, использующего свою собственную функциональность, все они совместно использовали универсальные утилиты (для сокращения потерь и сохранения модульности).
Короче говоря, улучшения были довольно радикальными. Оптимизация спасла тысячи строк визуализированных стилей и объединила различные утилиты JavaScript.
Пользовательский интерфейс Motion: легкая анимация и переходы
Действительно замечательная особенность, которая наконец-то добралась до производства, — это новая библиотека Motion UI . По сути, эта библиотека представляет собой серию переходов и анимаций, которые Foundation использует для питания нескольких своих собственных компонентов (таких как элементы Reveal , Toggler и Orbit ).
Пользовательский интерфейс Motion на самом деле пришел из ветви Zurb Foundation for Apps , но вошел в Foundation как необязательная (но очень рекомендуемая) библиотека. Зурб знает, что важно иметь движение и что при правильном использовании он может придать вашему сайту дополнительную интерактивность и активность.
Вы можете использовать его многочисленные параметры для управления скоростью анимации, смягчением эффектов и рядом действий, таких как скольжение, затухание, масштабирование и т. Д. Тонкое использование движения может принести ощущение глубины на ваш сайт и улучшить ваш пользовательский опыт.
Пользовательский интерфейс Motion является необязательным, поэтому его необходимо выбрать при загрузке пользовательского пакета . Если у вас есть версия Sass, это должно быть так же просто, как убедиться, что она включена в ваш файл app.scss
@include motion-ui-transitions;
@include motion-ui-animations;
Готовые переходы
Один из самых простых способов использования библиотеки — просто использовать предварительно созданные классы . Это так же просто, как добавить желаемый переход (например, scale-in-up
Интерфейс Motion сделает все остальное.
Пользовательские переходы
Если вы любите приключения, вы можете создавать собственные переходы, используя различные миксины Sass и настраивая их. Документация для переходов обрисовывает в общих чертах то, что вам нужно сделать (в основном вы включаете миксин и определяете свои параметры для создания своего эффекта).
Пользовательские анимации
Вы также можете использовать библиотеку для создания пользовательских анимаций и эффектов, используя различные миксины Sass для создания собственных пользовательских эффектов. Например, вы можете сделать что-то скользящее, встряхнуть, а затем подпрыгнуть. Вы можете сделать это, создав собственную анимацию. Посмотрите документацию, чтобы увидеть, как это все соединяет.
Motion UI и JavaScript
Motion UI также поставляется с небольшим плагином JavaScript, который поможет вам обрабатывать переходы или анимацию. Его основное предназначение заключается в том, что вы можете динамически инициировать переход и прослушивать его конечное событие (которое вы можете использовать для запуска большего количества анимаций или выполнения чего-либо еще). Поскольку переходы fade-in
fade-out
Yeti Launch: готовим и работаем быстрее
Вы можете спросить, что такое запуск Йети? По сути , это вспомогательное приложение, которое вы можете запустить, чтобы устранить некоторые сложности при установке и настройке Foundation с помощью командной строки.
Хотя вы можете просто загрузить предварительно скомпилированные CSS и JavaScript, одной из сильных сторон Foundation является то, что его можно настроить с помощью Sass, позволяя настраивать именно то, что вы хотите (пользовательские сетки, макеты, цвета, миксины и т. Д.). С Yeti Launch Zurb поможет вам начать работу с новым проектом быстрее, чем когда-либо.
Вы можете создавать сайты не только с помощью этого, но и с помощью веб-приложений и шаблонов электронной почты, используя родственные структуры Foundation, что делает его универсальным средством разработки.
Фонд Sass Foundation или Zurb Development Stack
Еще одна интересная особенность, которую предлагает Yeti, заключается в том, что при создании нового проекта он предлагает вам выбрать либо стандартную настройку Sass-powered Foundation, либо их собственную среду разработки.
Стек разработки Zurb поставляется с несколькими изящными дополнениями, такими как:
- UnCSS (для удаления неиспользуемых стилей CSS)
- UglifyJs (для сжатия JavaScript)
- Сжатие изображения
- Генератор статического сайта (на основе шаблонов)
- Шаблоны Handlebar (для создания динамических шаблонов)
Это та же самая установка, которую Zurb использует в своих проектах, поэтому она должна оказаться интересной, как она принята сообществом.
Поддержка платформы
Если Yeti Launch звучит как то, что вы хотите попробовать, то вы должны скачать приложение с их сайта . Небольшое предостережение: если вы работаете в Windows, вам не повезло, они все еще находятся в процессе сортировки своего приложения для Windows.
Трудно жаловаться, поскольку они представили в этом обновлении так много новых и усовершенствованных инструментов, однако было бы неплохо, если бы пользователи Windows могли принять Yeti за спину.
Сотрудничество и обратная связь с заметным кодом
Еще одна новая услуга, которую предлагает Zurb, — это возможность перенаправить ваш сайт разработки в онлайн-хранилище, а затем позволить членам вашей команды получить к нему доступ для обратной связи. Этот сервис называется Notable Code и предлагает уникальный способ обработки обратной связи и совместной работы над проектом.
Основная концепция Notable состоит из нескольких простых шагов: загрузка, приглашение, совместная работа.
Notable позволяет перенести ваш сайт разработки в онлайн-репозиторий, используя либо экспорт запуска Yeti (только для OSX), либо экспорт через интерфейс командной строки Foundation (CLI), либо заархивируйте свой сайт и загрузите его.
Вы также можете пригласить людей для просмотра вашего проекта в Интернете. Каждый член команды получит безопасный URL-адрес вашего сайта, а также получит уведомление при обновлении проекта.
Большая часть привлекательности Notable будет заключаться в том, что пользователи смогут получить доступ к вашему прототипу на любом устройстве, которое они выберут, а затем смогут предоставлять аннотации к вашему дизайну.
Еще одна особенность заключается в том, что Notable позволяет пользователям изменять размер экрана, чтобы они могли просматривать сайт в разных точках останова. Пользователи смогут делать аннотации для каждого размера устройства, чтобы вы могли легко получить отзыв об отзывчивости вашего сайта.
Улучшения доступности
Иногда доступность может упускаться из виду во время нашей разработки (в спешке, чтобы все это отсортировать, мы забываем, что сеть должна быть для всех). Zurb сосредоточились на доступности во время реконструкции нескольких своих ключевых компонентов.
В предыдущих версиях Foundation некоторые компоненты были доступны для клавиатур и программ чтения с экрана, однако некоторые из них имеют проблемы (например, меню на основе JavaScript).
В Foundation 6 все компоненты работают с учетом доступности. Документация сайта описывает несколько полезных ресурсов о доступности, а примеры фрагментов по всему сайту с поддержкой ARIA (с соответствующими ролями и атрибутами). Этот акцент на доступности должен помочь вам создавать сайты, которыми может наслаждаться каждый.
Шаблоны и строительные блоки
Zurb предлагает серию бесплатных полных примеров кода, которые вы можете скачать с их сайта. Вы можете скачать либо шаблоны (полные сайты), либо строительные блоки (компоненты), которые вы можете перетащить прямо в проект.
Хотя эти элементы предлагались в более старой версии Foundation (например, Foundation 5), они были обновлены для использования обновленной инфраструктуры, поэтому они будут меньше, проще в настройке и в целом лучше, чем когда-либо.
Шаблоны
Шаблоны — это быстрый способ начать новый проект. Они содержат базовый макет с общими элементами, такими как ползунки, панели навигации, значки социальных сетей и т. Д. Вы можете либо выделить их по отдельности и выбрать понравившиеся функции, либо использовать их в качестве основы и настройки.
Возможно, вам захочется взглянуть на два интересных шаблона: шаблоны новостей / журналов и недвижимости / путешествий . Они оба полностью адаптивны и используют новейшие меню и компоненты.
Строительные блоки
Строительные блоки используются для демонстрации определенных компонентов, таких как меню, ползунки, области прокрутки и другие интересные элементы пользовательского интерфейса.
В их репозитории есть куча различных примеров , но не все они основаны на обновленной версии Foundation 6. Zurb медленно выпускает новые, основываясь на своих обновленных компонентах, но существует несколько действительно крутых, таких как блоки Top Menu и Login Form .
Новые общедоступные утилиты JavaScript для создания плагинов
Одним из способов, которым Foundation удалось уменьшить их кодовую базу, было вытащить их плагины из универсальных функций и превратить их в утилиты. Утилиты теперь открыты для общественности, что означает, что вы можете использовать их при создании вашей интерактивности.
Существует множество этих вспомогательных утилит, которые вы можете использовать для ускорения разработки. Вы должны уделить время, чтобы просмотреть их, чтобы увидеть, какие из них вас интересуют.
Я изложил некоторые из наиболее полезных из них ниже.
Утилита Media Query
Утилита медиа-запросов особенно полезна в сочетании с обновленными настройками изменения точек останова . Основным преимуществом этой утилиты является то, что она дает вам простой способ взаимодействия с точками останова.
Мы подключаемся к этому, получая доступ к Foundation.MediaQuery
Вот функции, которые вы найдете полезными:
-
get
-
atLeast
Мы также можем получить имя текущей точки останова, получив current
Это вернет имя, такое как small
medium
Мы также можем подключиться к событию, которое вызывается, когда мы переключаемся на другую точку останова. Событие changed.zf.mediaquery
В целом, это отличная утилита, которая поможет вам взаимодействовать с вашими адаптивными элементами дизайна и должна помочь вам максимально эффективно использовать точки останова.
Times & Images Загруженная утилита
Эта служебная библиотека позволяет получить доступ к таймерам и триггерам для действий. Объект Timer
Эти таймеры действуют как setInterval
Например, вы можете получать новые изображения каждые 10 секунд, однако, если произойдет какое-либо действие, вы захотите остановить таймер и вернуться к нему только тогда, когда у вас все получится. Здесь мы выполняем функцию checkStuff()
var imagesTimer = new Foundation.Timer(myElement, 10000, checkStuff);
Использование функции таймера означает, что вы можете start
pause
continue
Это используется внутри слайдера Orbit.
Функция onImagesLoaded
Например, у вас может быть сетка галереи из 6 изображений, и только после того, как все они будут отображены, вы захотите вызвать некоторые функции (или отобразить сообщение):
var $images = $('.gallery-image');
Foundation.onImagesLoaded($images, processGallery);
// called once all gallery images are loaded.
function processGallery() {
alert('Loaded!');
}
Эта утилита оказывается полезной в основном для того, чтобы узнать, когда ваши элементы загружены, и реагировать соответствующим образом.
Сенсорная утилита
Сенсорная утилита — это именно то, на что она похожа, быстрый и простой способ добавить интерактивность касания для ваших элементов.
Мы можем связать сенсорные события, вызвав метод addTouch()
// let's handle a right swipe
$('.my-element').addTouch().on('swiperight', 'handleSwipeFunction');
Как видите, с помощью этой утилиты довольно просто связать базовые сенсорные элементы управления для обработки. Другие компоненты, такие как Orbit Carousel, также используют его, поэтому он должен работать надежно.
Слайдер орбиты: обновленная цель
Несмотря на то, что в Foundation 6 было представлено множество новых инструментов и систем, существует несколько существующих функций, которые были обновлены и улучшены, чтобы сделать их еще лучше, чем раньше. Давайте посмотрим на некоторые из основных моментов
В Foundation 5 Orbit Slider был сложным компонентом, который позволял пользователям создавать полностью адаптивные, интерактивные слайдеры изображений, видео и контента. Orbit находилась в Foundation в течение долгого времени и на протяжении многих лет раздувалась с десятками вариантов конфигурации , что привело к большой работе по ее обслуживанию.
Zurb объявил, что для Foundation 6 они прекращают работу с Orbit , что, как вы можете себе представить, расстроило многих людей, которым понравилась гибкость, которую он обеспечил.
Однако вместо того, чтобы полностью удалить его, Foundation 6 изменил Orbit в легкий, простой слайдер, который, хотя и был базовым, по-прежнему предлагал отличную настройку. Теперь это скорее инструмент для создания каркасов, а не полный слайдер.
Обновлены отзывчивые точки останова
В Foundation 5 определены различные точки останова для адаптивного дизайна, в том числе small, medium, large, xlarge и xxlarge. В целом, при использовании своего варианта Sass, он работал, определяя профиль устройства, на который вы хотите настроить таргетинг, а затем добавляя свой стиль внутри следующим образом:
// target small profiles
@media #{$small-only} {
.primary{
border: solid 1px red;
}
}
// target medium profiles
@media {$medium-only} {
.primary{
padding: 25px;
}
}
// standard styles
.primary {
position: relative;
margin-bottom: 15px;
padding: 15px;
}
В Foundation 6 миксин был обновлен, чтобы сделать его намного проще и интуитивно понятнее. Вместо того, чтобы вызывать эти профили устройств и добавлять свой стиль для каждого элемента, теперь вы включаете миксин непосредственно в свой элемент, например так:
.primary {
// small profiles
@include breakpoint(small only) {
border: solid 1px red;
}
// medium profiles
@include breakpoint(medium only) {
padding: 25px;
}
// standard styles
position: relative;
margin-bottom: 15px;
padding: 15px;
}
Преимущество этого состоит в том, что вы сохраняете все свои стили вместе , вместо того, чтобы искать файлы, какие стили относятся к каждому профилю. Это все для тебя.
Миксин Breakpoint позволяет вам передавать широкий диапазон различных значений, которые будут влиять на стиль.
требуемые размеры профиля устройства, такие как small
medium
large
down
up
only
Если вы особенно суетитесь из-за своего дизайна, вы можете даже предоставить landscape
portrait
retina
Ваши собственные нестандартные размеры
Поскольку речь идет о точках останова, с помощью Foundation 6 вы можете указать, какие профили размера будут использоваться для вашего сайта , настроив переменную $breakpoints
_settings.scss
Этот файл по сути является точкой конфигурации для Sass-версии Foundation (он использует эти настройки для создания сгенерированного CSS). Здесь вы можете переопределить значения точек останова или даже включить новые.
// the default Foundation 6 breakpoint ranges
$breakpoints: (
small: 0,
smedium: 420px, // my custom size
medium: 640px,
large: 1024px,
xlarge: 1200px,
xxlarge: 1440px,
);
Как видите, новый размер легко добавить (в данном случае я добавил smedium
420px
Даже если вы определили здесь свои размеры, они не будут выводить CSS, пока вы не добавите их в переменную $breakpoint-classes()
По умолчанию используются только small
medium
large
// including a new size (smedium)
$breakpoint-classes: (small smedium medium large);
Чем больше размеров вы определяете, тем больше CSS вы будете генерировать, так что будьте внимательны, добавляя к своему сайту кучу новых размеров.
Уникальный дизайн с меньшим количеством стилей
Распространенная жалоба на веб-сайты, созданные с использованием популярных фреймворков, заключается в том, что «все они выглядят одинаково».
Зурб принял к сведению обратную связь по этому вопросу и резко отступил от своих стилей. Заранее, когда базовый фундамент предоставит вам кучу стилей по умолчанию и элементов дизайна, обновленные стили в Foundation 6 оставят вам больше каркасного дизайна, а не конечного продукта.
Это хорошая новость для всех, поскольку это означает, что у вас будет поддержка базовой структуры и макета фреймворка, но при этом вы сможете легко настроить свой сайт. В результате этих изменений была уменьшена специфичность стилей (из-за нескольких изменений в миксинах и переменных Sass), что еще больше упростило настройку внешнего вида вашего сайта.
В то время как только время покажет, как сообщество примет эти изменения, сейчас кажется, что каждый должен будет усилить свою игру и отказаться от устаревших старых конструкций клише.
А как насчет базовых сеток и меню?
Очевидно, что в этом списке новых и улучшенных функций в Foundation 6 отсутствуют элементы сетки и меню. В этих областях также произошли некоторые существенные изменения, о которых я собираюсь подробно рассказать в ближайшие недели.
Так что следите за обновлениями!
Последние мысли
Несмотря на то, что в фреймворке по-прежнему есть небольшие ошибки и причуды (которые быстро решаются командой Zurb), в целом этот релиз — сильный шаг в правильном направлении. Zurb отказались от предложения десятков опций для каждого компонента и вместо этого решили предоставить необходимый минимум для вашей структуры.
В то время как некоторые разработчики могут быть разочарованы тем, что компоненты были урезаны, что сокращает ваши возможности и вынуждает вас стилизовать собственные элементы, в целом компромисс был в том, что система работает намного лучше, выступая скорее как основа, а не как полноценное решение для веб-сайта. И в процессе этого они потеряли массу, увеличили скорость и сделали Foundation более легким в обслуживании.
Короче говоря, Foundation 6 потрясающий, и вы должны попробовать!