Статьи

Знакомство с Cutestrap, легким CSS-фреймворком

Cutestrap — это новый CSS-фреймворк. В этой статье описываются возможности Cutestrap и тестируется фреймворк, используя его для создания простого одностраничного HTML-шаблона .

Особенности Cutestrap

Как и большинство успешных шаблонов и структур веб-разработки, Cutestrap сокращает время разработки и сокращает повторяющиеся задачи. Согласно броскому определению на странице документации, Cutestrap от Tyler Childs — это «нахальная, самоуверенная CSS Framework. Небольшая альтернатива Bootstrap ». Это хорошая отправная точка для быстрого создания прототипов веб-сайтов и приложений.

Несмотря на небольшой размер файла, Cutestrap — это не просто начальный шаблон с некоторыми базовыми стилями сброса. Он поставляется в комплекте с выбором шрифтов, цветовой палитры и некоторыми определенными представлениями о том, как должны выглядеть поля формы и несколько других элементов.

С другой стороны, Cutestrap очень далеко от того, чтобы предлагать огромное количество функций и компонентов, которые полнофункциональные фреймворки, такие как Bootstrap и Foundation, приносят на стол.

Ключевые особенности Cutestrap:

  • Супер крошечный — всего 8kb CSS-кода
  • Простая настройка, даже проще, если вы используете Sass
  • Отличная организация CSS с использованием методологии БЭМ
  • Последовательный вертикальный ритм типографских элементов
  • Сгенерированная KSS документация для облегчения превращения документации Cutestrap в руководство по стилю вашего проекта

Давайте установим Cutestrap, чтобы узнать больше.

Установка Cutestrap

Вы можете выбрать традиционный маршрут и просто скачать cutestrap.zip с домашней страницы фреймворка . Кроме того, вы можете интегрировать Cutestrap в свой проект, используя npm :

 npm install cutestrap 

или беседка :

 bower install cutestrap 

Настройка Cutestrap

Вы можете изменить почти все в Cutestrap, используя его версию Sass или скомпилированный аналог.

В этом отношении Cutestrap ничем не отличается от других популярных CSS-фреймворков. Если вы предпочитаете ванильный CSS, вы можете включить cutestrap.css (или его минимизированную версию в производстве) непосредственно в ваш проект, а затем переопределить правила Cutestrap CSS из своего документа таблицы стилей.

Выбор альтернативы Sass дает вам больше гибкости и скорости. Один из способов настроить ваш проект — создать частичный файл, в котором вы можете хранить свои пользовательские переменные, в том числе то, что вы хотите переопределить из фреймворка. Затем вы можете создать файл custom.scss где вы можете сослаться на файл, содержащий ваши пользовательские переменные и оригинальный cutestrap/dist/scss/cutestrap.scss используя операторы @import :

 //custom variables @import "custom-variables"; //original Cutestrap @import "path-to-framework-folder/cutestrap"; //custom Sass code goes here 

Порядок, в котором вы пишете операторы @import важен. Фактически, включение custom-variables.scss перед cutestrap.scss гарантирует, что все значения переменных Cutestrap, которые вы переопределите в своем пользовательском файле, будут действовать в скомпилированном выводе CSS.

Ваш пользовательский код Sass идет ниже операторов @import .

Что входит в состав Cutestrap Framework?

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

Давайте посмотрим ближе.

сетка

Cutestrap предлагает супер простую сетку, построенную с использованием flexbox .

Вот код для сетки с двумя столбцами:

 <div class="wrapper"> <div class="grid"> <div> Column 1 </div> <div> Column 2 </div> </div> </div> 

Чтобы контролировать ширину области содержимого, Cutestrap предлагает на выбор три класса CSS:

  • .wrapper для максимальной ширины 960px
  • .wrapper-small для максимальной ширины 640 пикселей
  • .wrapper-large — для максимальной ширины 1200 пикселей

Если вы используете сетку, не заключая ее в контейнер .wrapper , ваш контент будет занимать всю ширину экрана, что может быть, а может и не быть результатом, к которому вы стремитесь.

Сама сетка нуждается только в элементе контейнера с классом .grid . Столбцы внутри этого элемента будут равномерно распределены по всему доступному пространству. Нет необходимости добавлять классы для строк и столбцов.

Пример кода выше для двух столбцов, поэтому каждый столбец занимает половину доступного пространства:

Равная двухколонная сетка с использованием Cutestrap.

Если я добавлю четыре столбца, каждый столбец будет занимать 25% доступного пространства:

 <div class="wrapper"> <div class="grid"> <div> Column 1 </div> <div> Column 2 </div> <div> Column 3 </div> <div> Column 4 </div> </div> </div> 

Вот как выглядит приведенный выше фрагмент в браузере:

Сетка Cutestrap с четырьмя равными столбцами.

Как видите, столбцы не переносятся на следующую строку. Для создания новой строки вам понадобится новый контейнер .grid :

 <div class="wrapper"> <div class="grid"> <div> Column 1 Row 1 </div> <div> Column 2 Row 1 </div> <div> Column 3 Row 1 </div> </div> <div class="grid"> <div> Column 1 Row 2 </div> <div> Column 2 Row 2 </div> <div> Column 3 Row 2 </div> </div> </div> 

Вот как разметка выше отображается в браузере:

Три равных столбца и два ряда с сеткой Cutestrap.

Но как Cutestrap справляется с адаптивным макетом ? Это обычный шаблон макета, в котором столбцы располагаются один над другим на небольшом экране и переходят в макет сетки на экранах рабочего стола.

Вы можете быстро добиться этого, используя классы модификаторов сетки ниже:

  • .grid--medium — столбцы располагаются на маленьких экранах. Они начинают перетекать в макет сетки только тогда, когда размер экрана достигает 600 пикселей
  • .grid--large — тот же шаблон, что и .grid – medium, но столбцы начинают упорядочиваться в сетку, когда ширина экрана составляет минимум 960 пикселей

Вот основной код:

 <div class="wrapper"> <div class="grid grid--medium"> <div> Column 1 </div> <div> Column 2 </div> </div> </div> 

До сих пор вы видели только примеры одинаковых решеток столбцов. Чтобы добавить столбцы различной ширины , просто используйте один из следующих классов модификаторов столбцов:

  • .column--light — применить этот класс к столбцу, чтобы он был вдвое меньше ширины столбца по умолчанию
  • .column--heavy — применить этот класс к столбцу, чтобы он .column--heavy ширину столбца по умолчанию

Два вышеупомянутых класса достигают своей цели, изменяя свойство flex-grow которое определяет объем пространства, выделенного для элемента внутри контейнера flex.

Вот быстрый пример:

Столбец 2 будет на половину ширины столбца 1 на экранах шире, чем 600 пикселей:

 <div class="wrapper"> <div class="grid grid--medium"> <div> Column 1 </div> <div class="column--light"> Column 2 </div> </div> </div> 

Вот как приведенный выше код отображается в браузере на более широких экранах:

Столбцы неравной ширины с использованием сетки Cutestrap при просмотре на больших экранах.

Вот как тот же код отображается при просмотре на маленьких экранах:

Столбцы неравной ширины с использованием сетки Cutestrap просматриваются на маленьких экранах.

Чтобы увидеть сетку Cutestrap в действии, перейдите к демонстрации в реальном времени на CodePen .

См. Сетка симпатичных перьев от SitePoint ( @SitePoint ) на CodePen .

Типография

Размер типографских элементов в Cutestrap измеряется в единицах rem, исходя из размера шрифта 62,5% для корневого html элемента, который увеличивается до 78,125% для областей просмотра размером более 960 пикселей. Базовая линия 2.4rem приводит к гармоничному вертикальному ритму, который улучшает внешний вид контента на веб-странице.

Cutestrap предлагает стили для заголовков с уровня 1 по уровень 6, а также для абзацев, блок-цитат и элементов таблицы. Вот живая демонстрация на CodePen .

См. Типографику Pen Cutestrap от SitePoint ( @SitePoint ) в CodePen .

Стек шрифтов CSS по умолчанию для заголовков и основного текста включает следующие шрифты:

  • Avenir
  • Авенир Следующий
  • Helvetica Neue
  • Segoe UI
  • Verdana
  • без засечек

Вы можете легко изменить это, используя обычный CSS или Sass.

Например, чтобы использовать Merriweather Sans для основного текста и Merriweather для заголовков, добавьте этот фрагмент в свой пользовательский документ CSS:

 body { font-family: 'Merriweather Sans', sans-serif; } h1, h2, h3, h4, h5, h6 { font-family: 'Merriweather', serif; } 

Чтобы сделать то же самое, используя файлы Cutestrap Sass, просто замените значения переменной $base-font для основного текста и переменной $heading для заголовков на выбранные вами шрифты. Вы найдете эти переменные в файле variables/_type.scss папке scss scss .

Кнопки

Cutestrap применяет отличительные стили к элементам кнопок, элементам отправки / ввода и связывания элементов с классом .btn .

Кроме того, платформа предлагает два варианта класса .btn--secondary по умолчанию: .btn--secondary и .btn--link .

 <button>Button</button> <input type="button" value="Input Button" class="btn"> <button class="btn--secondary">Secondary</button> <a href="#" class="btn btn--link">Button Link</a> 

Стили для элементов кнопок в фреймворке Cutestrap.

Проверьте демонстрацию CodePen .

См. Стили кнопок для симпатичного пера от SitePoint ( @SitePoint ) в CodePen .

формы

Cutestrap создает поля формы, используя унифицированную структуру разметки и стили CSS, которые обеспечивают их единообразный внешний вид в браузерах.

Ниже приведена разметка для простой формы:

 <form> <label class="textfield"> <input type="text"> <span class="textfield__label">Name</span> </label> <label class="textfield"> <input type="email"> <span class="textfield__label">Email</span> </label> <label class="radio"> <input type="radio" name="designer"> <span class="radio__label">Designer</span> </label> <label class="radio"> <input type="radio" name="developer"> <span class="radio__label">Developer</span> </label> <label class="select"> <select> <option value="Location" disabled selected>Location</option> <option value="EU">EU</option> <option value="US">US</option> <option value="Australia">Australia</option> </select> <span class="select__label" for="select">Location</span> </label> <button type="submit">Subscribe</button> </form> 

Вот как разметка отображается в браузере:

Элемент формы в рамке Cutestrap.

Чтобы увидеть живой код, ознакомьтесь с демонстрацией на CodePen .

Посмотрите элементы управления Pen Cutestrap Form от SitePoint ( @SitePoint ) на CodePen .

Утилиты

Cutestrap предлагает небольшое количество удобных служебных классов для выравнивания текста, очистки поплавков, увеличения или уменьшения font-size и многого другого.

Полный список классов утилит Cutestrap доступен на странице документации Cutestrap .

Собираем все вместе: давайте запишем демо-страницу

Демонстрация HTML для этой статьи включает в себя все ключевые функции Cutestrap, которые обсуждались до сих пор. Код, который я собираюсь представить здесь, ограничен только этими функциями. Вы можете свободно изучить детали CodePen .

См. HTML-шаблон пера с Cutestrap от SitePoint ( @SitePoint ) в CodePen .

Вот HTML-код раздела героя:

 <div class="hero"> <div class="wrapper"> <article class="ta-center"> <!-- Hero image here --> <h1 class="section-title">Title</h1> <p class="fs-large">Tagline</p> </article> <!--/article --> </div> <!--/.wrapper --> </div> <!--/.hero --> 

Раздел hero имеет полную ширину, но использует класс .wrapper для управления максимальной шириной и центрированием области отображения.

Заголовок раздела и слоган центрированы с помощью .ta-center , а размер шрифта слогана увеличен с помощью .fs-large . Оба являются полезными классами утилит Cutestrap для управления отображением текстового содержимого.

Герой раздел демо-страницы с Cutestrap.

Раздел «Портфолио» — это адаптивная сетка из трех столбцов с изображениями, идущими вдоль двух рядов. Вот код:

 <div class="portfolio"> <div class="wrapper"> <!-- First row --> <div class="grid grid--medium"> <figure> <img src="image.jpg" alt="portfolio image." /> </figure> <!-- Two more items --> ... </div><!-- /.grid --> <!-- Second row --> <div class="grid grid--medium"> <figure> <img src="image.jpg" alt="portfolio image." /> </figure> <!-- Two more items --> ... </div><!-- /.grid --> </div><!-- /.wrapper --> </div><!-- /.portfolio --> 

Чтобы создать .grid--medium макет, в разделе «Портфолио» используется .grid--medium модификатора .grid--medium : контент размещается на маленьких экранах; на экранах шириной более 640 пикселей контент отображается в виде сетки из трех столбцов.

Мобильный просмотр раздела портфолио в демонстрации Cutestrap.

Настольный вид раздела портфолио в демонстрационной версии Cutestrap.

Нижний колонтитул демо-файла имеет ту же структуру:

Раздел нижнего колонтитула в демонстрации Cutestrap.

Раздел «О нас» имеет адаптивный макет из двух столбцов. Мобильное представление отображает столбцы, расположенные друг над другом, на рабочем столе — столбцы рядом друг с другом, причем правый столбец уже, чем левый.

Вы .grid--medium макет, используя .grid--medium модификатора .grid--medium , как описано выше. Класс .column--light применяемый ко второму столбцу, — это все, что вам нужно, чтобы его сузить:

 <div class="about"> <div class="wrapper"> <div class="grid grid--medium"> <!-- Wider column --> <article> Content in wider column </article> <!-- Narrower column --> <article class="column--light"> Content in narrower column </article> </div><!-- /.grid --> </div><!-- /.wrapper --> </div><!-- /.about --> 

О разделе на демонстрационной странице Cutestrap.

В разделе «Контакт» отображается только центрированный элемент формы. Чтобы форма не занимала обычную ширину страницы и не имела готовых классов для смещения столбцов, я использовал .wrapper-small . Это приводит к центрированному контейнеру, который ограничивает элемент формы в более узких границах относительно обычной ширины веб-страницы.

Соответствующая разметка выглядит так:

 <div class="contact"> <div class="wrapper-small"> <!-- form element here --> </div><!-- /.wrapper-small --> </div><!-- /.contact --> 

Чтобы создать элемент формы, просто используйте разметку Cutestrap и классы CSS, как показано ранее в этой статье.

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

 /*Links*/ a:link { color: #ff9800; } a:visited, a:active { color: #ffad33; } a:hover, a:focus { color: #cc7a00; } /*Buttons*/ .btn, input[type="submit"], input[type="button"] { background-color: #ff9800; } .btn:focus, .btn:hover, input[type="submit"]:focus, input[type="submit"]:hover, input[type="button"]:focus, input[type="button"]:hover { background-color: #cc7a00; } .btn:active, input[type="submit"]:active, input[type="button"]:active { background-color: #ff9800; } 

Если вы используете версию Cutestrap Sass, просто измените значение следующих переменных на нужные вам цвета:

  • $link
  • $link--visited
  • $link--hover
  • $link--active

Класс .btn использует переменную $primary color для .btn цвета фона. Поэтому, если вы хотите изменить цвет фона ваших элементов кнопки по умолчанию, просто измените значение цвета переменной $primary .

Скомпилируйте и все готово!

Вот как элемент формы выглядит в браузере:

Раздел контактов в демоверсии Cutestrap.

Вывод

В этой статье я представил Cutestrap, совершенно новый CSS-фреймворк.

Cutestrap имеет ряд интересных функций, но его самый большой плюс для меня — это легкость обучения: мне потребовалось чуть больше часа, чтобы научиться пользоваться фреймворком и создать демонстрационную страницу, которая сопровождает эту статью. Отчасти это связано с тем, что Cutestrap крошечный: фреймворк не поддерживает старые браузеры, он просто предоставляет стили для нескольких ключевых элементов, сетка не позволяет смещать или вкладывать столбцы (хотя мне нравится простота), и JavaScript интерактивные компоненты не включены. Код Sass превосходно организован, но минимален, даже не виден миксин.

Это хорошо? Это зависит от того, что вам нужно в качестве отправной точки для вашего проекта.

Экосистема CSS-фреймворков с открытым исходным кодом стала очень конкурентоспособной. Быть крошечным недостаточно. Даже крупные игроки, такие как Bootstrap и Foundation, которые часто подвергались критике за то, что стали причиной ненужного раздувания кода, стали сильно модульными, так что выбор и выбор только того, что вам нужно, часто является просто вопросом включения или отключения использования Sass. переменная.

Тем не менее, я должен напомнить себе, что Cutestrap очень молод, все еще ребенок — я только что заметил, что его первоначальный коммит на GitHub на момент написания этой статьи был всего около месяца. Это означает, что у фреймворка есть достаточно времени для разработки и развития.

Если вы попробовали Cutestrap и хотите предложить новую функцию или отправить запрос на извлечение, перейдите на страницу проекта на GitHub и примите участие.

Вы использовали Cutestrap в своей разработке? Что ты построил? Я не могу ждать, чтобы услышать от вас!