from nicegui import ui
from . import doc
@doc.demo(ui.icon)
def main_demo() -> None:
ui.icon('thumb_up', color='primary').classes('text-5xl')
@doc.demo('Material icons and symbols', r'''
You can use different sets of Material icons and symbols.
The [Quasar documentation](https://quasar.dev/vue-components/icon\#webfont-usage)
gives an overview of all available icon sets and their name prefix:
* None for [filled icons](https://fonts.google.com/icons?icon.set=Material+Icons&icon.style=Filled)
* "o\_" for [outline icons](https://fonts.google.com/icons?icon.set=Material+Icons&icon.style=Outlined)
* "r\_" for [round icons](https://fonts.google.com/icons?icon.set=Material+Icons&icon.style=Rounded)
* "s\_" for [sharp icons](https://fonts.google.com/icons?icon.set=Material+Icons&icon.style=Sharp)
* "sym\_o\_" for [outline symbols](https://fonts.google.com/icons?icon.set=Material+Symbols&icon.style=Outlined)
* "sym\_r\_" for [round symbols](https://fonts.google.com/icons?icon.set=Material+Symbols&icon.style=Rounded)
* "sym\_s\_" for [sharp symbols](https://fonts.google.com/icons?icon.set=Material+Symbols&icon.style=Sharp)
''')
def material_icons():
with ui.row().classes('text-4xl'):
ui.icon('home')
ui.icon('o_home')
ui.icon('r_home')
ui.icon('sym_o_home')
ui.icon('sym_r_home')
@doc.demo('Eva icons', '''
You can use [Eva icons](https://akveo.github.io/eva-icons/) in your app.
''', lazy=False)
def eva_icons():
ui.add_head_html('')
ui.icon('eva-github').classes('text-5xl')
@doc.demo('Other icon sets', '''
You can use the same approach for adding other icon sets to your app.
As a rule of thumb, you reference the corresponding CSS, and it in turn references font files.
This demo shows how to include [Themify icons](https://themify.me/themify-icons).
''', lazy=False)
def other_icons():
ui.add_head_html('')
ui.icon('ti-car').classes('text-5xl')
@doc.demo('Lottie files', '''
You can also use [Lottie files](https://lottiefiles.com/) with animations.
''', lazy=False)
def lottie():
ui.add_body_html('')
src = 'https://assets5.lottiefiles.com/packages/lf20_MKCnqtNQvg.json'
ui.html(f'').classes('w-24')
doc.reference(ui.icon)