demo_card.py 1.8 KB

12345678910111213141516171819202122232425262728
  1. from nicegui import ui
  2. from .constants import STATIC
  3. def create():
  4. with ui.row().style('filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1))'):
  5. with ui.card().style(f'clip-path: polygon(0 0, 100% 0, 100% 90%, 0 100%)') \
  6. .classes('pb-16 no-shadow'), ui.row().classes('no-wrap'):
  7. with ui.column().classes('items-center'):
  8. ui.html((STATIC / 'happy_face.svg').read_text()) \
  9. .classes('w-16 mx-6 stroke-black').on('click', lambda _: output.set_text("That's my face!"))
  10. ui.button('Click me!', on_click=lambda: output.set_text('Clicked')).classes('w-full')
  11. ui.checkbox('Check', on_change=lambda e: output.set_text('Checked' if e.value else 'Not checked'))
  12. ui.switch('Switch', on_change=lambda e: output.set_text('Switched' if e.value else 'Not switched'))
  13. ui.input('Text', value='abc', on_change=lambda e: output.set_text(e.value))
  14. with ui.column().classes('items-center'):
  15. output = ui.label('Try it out!') \
  16. .classes('w-44 my-6 h-8 text-xl text-grey-9 overflow-hidden text-ellipsis text-center')
  17. ui.slider(min=0, max=100, value=50, step=0.1, on_change=lambda e: output.set_text(e.value)) \
  18. .style('width: 150px')
  19. ui.radio(['A', 'B', 'C'], value='A', on_change=lambda e: output.set_text(e.value)).props('inline')
  20. ui.toggle(['1', '2', '3'], value='1', on_change=lambda e: output.set_text(e.value))
  21. with ui.row().classes('mt-1'):
  22. ui.number('Number', value=3.1415927, format='%.2f', on_change=lambda e: output.set_text(e.value)) \
  23. .classes('w-20')
  24. ui.select({1: 'One', 2: 'Two', 3: 'Three'}, value=1, on_change=lambda e: output.set_text(e.value))