Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/widgetti/ipyvuetify
Jupyter widgets based on vuetify UI components
https://github.com/widgetti/ipyvuetify
Last synced: 26 days ago
JSON representation
Jupyter widgets based on vuetify UI components
- Host: GitHub
- URL: https://github.com/widgetti/ipyvuetify
- Owner: widgetti
- License: mit
- Created: 2019-05-14T17:35:51.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-24T18:44:59.000Z (7 months ago)
- Last Synced: 2024-04-24T20:12:37.866Z (7 months ago)
- Language: Python
- Size: 3.21 MB
- Stars: 333
- Watchers: 16
- Forks: 57
- Open Issues: 81
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-jupyter-widgets - ipyvuetify - basic widgets in the style of Google user interfaces (Interactive Widgets / Interactive Jupyter Widget Ecosystem)
- awesome-jupyter-resources - GitHub - 26% open · ⏱️ 07.02.2022): (交互式小部件和可视化)
- best-of-jupyter - GitHub - 35% open · ⏱️ 31.07.2024): (Interactive Widgets & Visualization)
README
# ipyvuetify
[![Documentation](http://readthedocs.org/projects/ipyvuetify/badge/?version=latest)](https://ipyvuetify.readthedocs.io/en/latest/?badge=latest)
[![Version](https://img.shields.io/npm/v/jupyter-vuetify.svg)](https://www.npmjs.com/package/jupyter-vuetify)
[![Version](https://img.shields.io/pypi/v/ipyvuetify.svg)](https://pypi.python.org/project/ipyvuetify)
[![Conda Version](https://img.shields.io/conda/vn/conda-forge/ipyvuetify.svg)](https://anaconda.org/conda-forge/ipyvuetify)
[![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/mariobuikhuizen/ipyvuetify/master?filepath=examples%2FExamples.ipynb)
[![Black badge](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![conventional commit](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)Jupyter widgets based on [vuetify UI components](https://v2.vuetifyjs.com/) which implement Google's
[Material Design Spec](https://material.io/) with the [Vue.js framework](https://vuejs.org/).A small selection of widgets:
![ipyvuetify](https://user-images.githubusercontent.com/46192475/79730684-78954880-82f1-11ea-855b-43a2b619ca04.gif)
## Installation
To install use pip:
$ pip install ipyvuetify
# for Jupyter Lab < 3
$ jupyter labextension install jupyter-vuetifyFor a development installation (requires npm),
$ git clone https://github.com/mariobuikhuizen/ipyvuetify.git
$ cd ipyvuetify
$ pip install -e ".[dev]"
$ pre-commit install
$ jupyter nbextension install --py --symlink --sys-prefix ipyvuetify
$ jupyter nbextension enable --py --sys-prefix ipyvuetify## Documentation
To get started with using ipyvuetify, check out the full documentation
https://ipyvuetify.readthedocs.io/
## Usage
For examples see the [example notebook](examples/Examples.ipynb).
The [Vuetify documentation](https://v2.vuetifyjs.com/components/buttons#buttons) can be used to find all available
components and attributes (in the left side bar or use the search field). Ipyvuetify tries to stay close to the Vue.js
and Vuetify template syntax, but there are some differences:| Description | Vuetify | ipyvuetify |
| ----------------------------------------------------------------------- | --------------------------------------- | --------------------------------------- |
| Component names are in CamelCase and the v- prefix is stripped | `` | `ListTile(...)` |
| Child components and text are defined in the children traitlet | `text ` | `Btn(children=['text', Icon(...)])` |
| Flag attributes require a boolean value | `...` | `Html(tag='div', children=[...])` |
| The attributes class and style need to be suffixed with an underscore | `` | `Btn(class_='mr-3', style_='...')` |### Advanced usage
#### .sync
The .sync property modifier functionality can be achieved by using an event named:
`update:[propertyNameInCamelCase]`.##### Vuetify:
```HTML
...
...
```
##### ipyvuetify:
```python
Menu(v_slots=[{
'name': 'activator',
'variable': 'x',
'children': Btn(v_on='x.on', children=[...])
}], children=[
List(...)
])
```For non scoped slots `'scope': 'x'` and `v_on` can be omitted.
### Icons
Available icons:
- https://material.io/resources/icons/ (deprecated)
- https://pictogrammers.github.io/@mdi/font/4.5.95/ (since v1.2.0)## Alternate usage
For a more web development centric way of development and a closer match to the Vue/Vuetify api, VuetifyTemplate can be used. See the [example](examples/Examples%20template.ipynb) or [![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/mariobuikhuizen/ipyvuetify/master?filepath=examples%2FExamples%20template.ipynb).
Make a sub class of VuetifyTemplate, define your own traitlets and set a template string. The traitlets will be accessible from the template as if they were in a vue-model. Methods can be called by defining a method with a prefix `vue_` e.g. `def vue_button_click(self, data)` and calling it from the template e.g. `@click="button_click(e)"`.
## Sponsors
Project ipyvuetify receives direct funding from the following sources:
[![MSD](docs/images/msd-logo.svg)](https://msd.com)