{"id":16505481,"url":"https://github.com/davidbrochart/ipyspin","last_synced_at":"2025-07-07T22:04:02.217Z","repository":{"id":54999237,"uuid":"298804117","full_name":"davidbrochart/ipyspin","owner":"davidbrochart","description":"A Jupyter widget library for dynamically creating spinning activity indicators","archived":false,"fork":false,"pushed_at":"2023-03-12T18:04:25.000Z","size":2643,"stargazers_count":13,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-18T20:49:07.241Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidbrochart.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-26T11:56:11.000Z","updated_at":"2024-12-26T23:58:12.000Z","dependencies_parsed_at":"2024-06-11T17:21:42.079Z","dependency_job_id":null,"html_url":"https://github.com/davidbrochart/ipyspin","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidbrochart%2Fipyspin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidbrochart%2Fipyspin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidbrochart%2Fipyspin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidbrochart%2Fipyspin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidbrochart","download_url":"https://codeload.github.com/davidbrochart/ipyspin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245108276,"owners_count":20562018,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T15:11:54.504Z","updated_at":"2025-03-23T13:32:14.070Z","avatar_url":"https://github.com/davidbrochart.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ipyspin\n\nA Jupyter widget library for dynamically creating spinning activity indicators (based on [spin.js](https://spin.js.org)).\n\n## Try it online!\n\nYou can try it online by clicking on this badge:\n\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/davidbrochart/ipyspin/master?urlpath=lab%2Ftree%2Fexamples%2Fintroduction.ipynb)\n\n## API\n\n```python\nimport ipyspin\n\ns = ipyspin.Spinner()\n\ns.layout.height = '500px'\ns.layout.width = '500px'\n\ns.lines = 13  # The number of lines to draw\ns.length = 38  # The length of each line\ns.width = 17  # The line thickness\ns.radius = 45  # The radius of the inner circle\ns.scale = 1  # Scales overall size of the spinner\ns.corners = 1  # Corner roundness (0..1)\ns.speed = 1  # Rounds per second\ns.rotate = 0  # The rotation offset\ns.animation = 'spinner-line-fade-quick'  # The CSS animation name for the lines\ns.direction = 1  # 1: clockwise, -1: counterclockwise\ns.color = '#000000'  # CSS color or array of colors\ns.fade_color = 'transparent'  # CSS color or array of colors\ns.top = '50%'  # Top position relative to parent\ns.left = '50%'  # Left position relative to parent\ns.shadow = '0 0 1px transparent'  # Box-shadow for the lines\ns.z_index = 2000000000  # The z-index (defaults to 2e9)\ns.class_name = 'spinner'  # The CSS class to assign to the spinner\ns.position = 'absolute'  # Element positioning\n\ns.stop()  # Removes the UI elements from the DOM and stops the animation\n\ns.spin()  # Stopped spinners may be reused by calling spin() again\n\ns  # Displays the spinner\n```\n\n## Installation\n\nYou can install using `pip`:\n\n```bash\npip install ipyspin\n```\n\nOr using `conda`:\n\n```bash\nconda install -c conda-forge ipyspin\n```\n\nAnd if you use jupyterlab \u003c= 2:\n\n```bash\nconda install -c conda-forge nodejs\njupyter labextension install @jupyter-widgets/jupyterlab-manager ipyspin\n```\n\nIf you are using Jupyter Notebook 5.2 or earlier, you may also need to enable\nthe nbextension:\n```bash\njupyter nbextension enable --py [--sys-prefix|--user|--system] ipyspin\n```\n\n## Development Installation\n\n```bash\n# First install the python package. This will also build the JS packages.\npip install -e .\n```\n\nWhen developing your extensions, you need to manually enable your extensions with the\nnotebook / lab frontend. For lab, this is done by the command:\n\n```\njupyter labextension install @jupyter-widgets/jupyterlab-manager --no-build\njupyter labextension install .\n```\n\nFor classic notebook, you can run:\n\n```\njupyter nbextension install --sys-prefix --symlink --overwrite --py ipyspin\njupyter nbextension enable --sys-prefix --py ipyspin\n```\n\nNote that the `--symlink` flag doesn't work on Windows, so you will here have to run\nthe `install` command every time that you rebuild your extension. For certain installations\nyou might also need another flag instead of `--sys-prefix`, but we won't cover the meaning\nof those flags here.\n\n### How to see your changes\n#### Typescript:\nTo continuously monitor the project for changes and automatically trigger a rebuild, start Jupyter in watch mode:\n```bash\njupyter lab --watch\n```\nAnd in a separate session, begin watching the source directory for changes:\n```bash\nnpm run watch\n```\n\nAfter a change wait for the build to finish and then refresh your browser and the changes should take effect.\n\n#### Python:\nIf you make a change to the python code then you will need to restart the notebook kernel to have it take effect.\n\n## Example\n\n![Example Screencast](example.gif)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidbrochart%2Fipyspin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidbrochart%2Fipyspin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidbrochart%2Fipyspin/lists"}