Quasar предоставляет встроенную поддержку популярных наборов иконок, включая Font Awesome, Material Icons, Ionicons, Eva Icons, Themify и другие. Это позволяет использовать иконки в компонентах без необходимости ручного управления SVG или изображениями.
Для начала необходимо убедиться, что нужный набор иконок установлен и подключен в проекте. В случае Font Awesome это делается через npm:
npm install @quasar/extras @fortawesome/fontawesome-free
После установки подключение производится в файле конфигурации
quasar.config.js в секции framework:
framework: {
iconSet: 'fontawesome-v6', // Указываем набор иконок
}
В Quasar поддерживаются разные версии Font Awesome:
v4, v5, v6, а также
различные стили (solid, regular,
brands). Важно выбирать версию и стиль, соответствующие
требованиям проекта.
Компонент QIcon является основным инструментом для
отображения иконок. Он автоматически адаптируется под выбранный набор
иконок. Простейший пример использования Font Awesome:
<q-icon name="fas fa-user" />
Здесь fas означает Font Awesome Solid,
а fa-user — имя иконки. Для иконок брендов используется
префикс fab:
<q-icon name="fab fa-github" />
Для Material Icons префикс не требуется:
<q-icon name="home" />
Quasar позволяет легко управлять внешним видом иконок через встроенные пропсы:
size — размер иконки в пикселях или через CSS классы
xs, sm, md, lg,
xl.color — цвет иконки, можно использовать CSS-классы
цвета Quasar (primary, accent,
negative и т.д.).class — возможность добавления кастомных CSS-классов
для дополнительного стайлинга.Пример:
<q-icon name="fas fa-cog" size="32px" color="primary" class="q-mr-sm" />
Помимо встроенных наборов, Quasar позволяет использовать
SVG-иконки и любые сторонние наборы. Для этого
достаточно передать путь к файлу SVG в name:
<q-icon name="statics/icons/custom-icon.svg" />
Или использовать v-html для инлайн SVG:
<q-icon v-html="customSvgContent" />
Quasar позволяет одновременно использовать несколько наборов иконок.
В quasar.config.js можно подключить несколько наборов через
extras:
extras: [
'fontawesome-v6',
'material-icons',
'ionicons-v4'
]
При этом в QIcon необходимо явно указывать префикс и имя
иконки, чтобы избежать конфликтов:
<q-icon name="fas fa-user" /> <!-- Font Awesome -->
<q-icon name="home" /> <!-- Material Icons -->
<q-icon name="ion-md-heart" /> <!-- Ionicons -->
Quasar поддерживает динамическое использование иконок через вычисляемые свойства или данные компонента. Это особенно полезно для списков и таблиц:
<q-icon :name="getIconName(item.status)" />
<script>
export default {
methods: {
getIconName(status) {
switch(status) {
case 'active': return 'fas fa-check-circle';
case 'inactive': return 'fas fa-times-circle';
default: return 'fas fa-question-circle';
}
}
}
}
</script>
Для больших проектов рекомендуется:
solid,
regular, brands), чтобы уменьшить вес.Иконки в Quasar часто используются вместе с компонентами
QBtn, QFab, QTab и другими.
Пример кнопки с Font Awesome:
<q-btn color="primary" icon="fas fa-download" label="Скачать" />
Для плавающей кнопки (QFab) также можно указать
иконку:
<q-fab icon="fas fa-plus" color="accent">
<q-fab-action icon="fas fa-user-plus" />
<q-fab-action icon="fas fa-envelope" />
</q-fab>
Quasar обеспечивает унифицированный и гибкий интерфейс для всех популярных наборов иконок, позволяя:
Эта система делает работу с иконками в Quasar удобной и производительной даже в масштабных проектах.