Skip to main content

Persona

Can be used to display an individual's avatar (or a composition of the person’s initials on a background color), their name or identification, and online status.

Check the full API at ui.persona.

Basic persona

persona-0

image = 'https://images.pexels.com/photos/220453/pexels-photo-220453.jpeg?auto=compress&h=750&w=1260'
q.page['example'] = ui.form_card(box='1 1 2 7', items=[
ui.persona(title='John Doe', subtitle='Data Scientist', caption='Online', image=image),
])

Sizes

Wave supports a lot of text variations. This may come in handy when you want to distinguish certain parts of text from the other. For example title should always be more prominent than subtitle which should be less prominent than content.

The default size is m.

persona-1

image = 'https://images.pexels.com/photos/220453/pexels-photo-220453.jpeg?auto=compress&h=750&w=1260'
q.page['example'] = ui.form_card(box='1 1 2 7', items=[
ui.persona(title='John Doe', subtitle='Data Scientist', caption='Online', size='xs', image=image),
ui.persona(title='John Doe', subtitle='Data Scientist', caption='Online', size='s', image=image),
ui.persona(title='John Doe', subtitle='Data Scientist', caption='Online', size='m', image=image),
ui.persona(title='John Doe', subtitle='Data Scientist', caption='Online', size='l', image=image),
ui.persona(title='John Doe', subtitle='Data Scientist', caption='Online', size='xl', image=image),
])

With initials

If you don't have any user avatar image at hand, you can simply fallback to name initials instead.

persona-2

q.page['example'] = ui.form_card(box='1 1 2 7', items=[
ui.persona(title='', initials='JD', initials_color='$grey'),
])

Handling interactivity

Persona also provides a name attr that makes the whole component clickable, submitting q.args.<persona-name-attr> after click. Note that hash routing is supported as well.

persona-3

image = 'https://images.pexels.com/photos/220453/pexels-photo-220453.jpeg?auto=compress&h=750&w=1260'
q.page['example'] = ui.form_card(box='1 1 2 7', items=[
ui.persona(name='persona', title='Click me', size='s', image=image)
])