Quasar предоставляет встроенную поддержку различных иконечных библиотек, включая Material Icons. Для использования Material Icons необходимо убедиться, что в конфигурации проекта указана соответствующая иконечная библиотека.
В quasar.config.js в разделе framework
задается свойство iconSet:
framework: {
iconSet: 'material-icons', // Использование Material Icons
}
Если проект создается с нуля через CLI, можно сразу выбрать Material Icons при выборе иконечной библиотеки.
Quasar автоматически подгружает Material Icons из CDN, если указано
соответствующее имя в iconSet. Однако для оффлайн-проектов
или кастомных сборок рекомендуется установить пакет через npm:
npm install material-icons
После этого в main.js можно импортировать стили:
import 'material-icons/iconfont/material-icons.css'
Quasar предоставляет компонент QIcon для отображения
иконок. Ключевые моменты использования Material Icons:
<template>
<q-icon name="home" />
<q-icon name="favorite" color="red" size="32px" />
<q-icon name="menu" :size="24" />
</template>
name — имя иконки, соответствующее Material Icons.color — цвет иконки, можно использовать стандартные
CSS-цвета или переменные Quasar.size — размер иконки, поддерживаются числовые значения
в пикселях и строковые ('2em').Material Icons поддерживают также различные стили отображения:
outlined, round, sharp,
two-tone. Чтобы использовать эти стили, нужно указать
префикс в имени:
<q-icon name="outlined/home" />
<q-icon name="round/favorite" />
<q-icon name="sharp/menu" />
<q-icon name="two-tone/star" />
Компоненты QBtn и QToolbar полностью
интегрированы с QIcon. Примеры:
<q-btn icon="home" label="Главная" color="primary" />
<q-toolbar>
<q-btn flat icon="menu" @click="toggleDrawer" />
</q-toolbar>
icon.label.Для кастомных стилей Material Icons можно использовать классы:
<q-icon name="home" class="text-green text-h6" />
text-green — цвет, определенный в Quasar.text-h6 — размер шрифта, использующий стандартные
размеры заголовков.Можно комбинировать несколько классов для управления цветом, размером и эффектами, например анимацией или трансформацией:
<q-icon name="refresh" class="spin" size="36px" />
Здесь класс spin можно определить в глобальных стилях
или scoped CSS:
.spin {
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
Для проектов с большим количеством иконок рекомендуется использовать только нужные иконки вместо полной библиотеки, чтобы сократить размер сборки. Возможные подходы:
outlined, round и т. д.).QIcon с svg через свойство
src:<q-icon src="statics/icons/custom-home.svg" />
Это снижает нагрузку на браузер и позволяет использовать кастомные иконки без подключения всей библиотеки.
Комбинирование Material Icons с состояниями компонентов:
<q-btn
:icon="liked ? 'favorite' : 'favorite_border'"
color="red"
@click="liked = !liked"
/>
liked.Для меню можно использовать иконки для визуализации пунктов:
<q-list>
<q-item clickable v-for="item in menuItems" :key="item.label">
<q-item-section avatar>
<q-icon :name="item.icon" />
</q-item-section>
<q-item-section>
{{ item.label }}
</q-item-section>
</q-item>
</q-list>
Такой подход упрощает управление интерфейсом и поддерживает единый стиль с Material Icons.
outlined, round,
sharp, two-tone) сразу при проектировании
интерфейса.Эти подходы обеспечивают гибкую и эффективную работу с Material Icons внутри Quasar, сохраняя производительность и визуальную согласованность интерфейса.