Adds support for SVGs in your NativeScript apps.
npm install @nativescript-community/ui-svg
Adds support for SVGs in your NativeScript apps.
[](#table-of-contents)
* Installation
* NativeScript + Vue
* NativeScript + Svelte
* Examples:
* Demos and Development
* Repo Setup
* Build
* Demos
* Contributing
* Update repo
* Update readme
* Update doc
* Publish
* modifying submodules
* Questions
[](#installation)
ns plugin add @nativescript-community/ui-svg
``ts`
import SVGPlugin from '@nativescript-community/ui-svg/vue';
Vue.use(SVGPlugin);
// or if you want the canvas version
import CanvasSVGPlugin from '@nativescript-community/ui-svg/vue/canvas';
Vue.use(CanvasSVGPlugin);
For other flavors you need to register the components directly:
`ts
import { SVGView } from '@nativescript-community/ui-svg';
import { CanvasSVG, SVG } from '@nativescript-community/ui-svg/canvas';
`
It works in 3 ways!.
CanvasSVG extending Canvas
`html`
or SVGView which is a basic svg view with support for auto sizing
`html`
Or within and Canvas View extending CanvasView like CanvasLabel
`html`
`ts`
// app/app.ts
import { registerNativeViewElement } from 'svelte-native/dom';
registerNativeViewElement('svgView', () => require('@nativescript-community/ui-svg').SVGView);
`svelte`
- Basic
- A basic SVG example
[](#demos-and-development)
The repo uses submodules. If you did not clone with --recursive then you need to call``
git submodule update --init
The package manager used to install and link dependencies must be pnpm or yarn. npm wont work.
To develop and test:
if you use yarn then run yarnpnpm
if you use then run pnpm i
Interactive Menu:
To start the interactive menu, run npm start (or yarn start or pnpm start). This will list all of the commonly used scripts.
`bash`
npm run build.allyarn build.all
WARNING: it seems wont always work (not finding binaries in node_modules/.bin) which is why the doc explicitly uses npm run
`bash
npm run demo.[ng|react|svelte|vue].[ios|android]
npm run demo.svelte.ios # Example
`
Demo setup is a bit special in the sense that if you want to modify/add demos you dont work directly in demo-[ng|react|svelte|vue]demo-snippets/[ng|react|svelte|vue]
Instead you work in install.ts
You can start from the of each flavor to see how to register new demos
[](#contributing)
You can update the repo files quite easily
First update the submodules
`bash`
npm run update
Then commit the changes
Then update common files
`bash`
npm run syncyarn|pnpm
Then you can run , commit changed files if any
bash
npm run readme
`$3
`bash
npm run doc
`$3
The publishing is completely handled by
lerna (you can add -- --bump major to force a major release)
Simply run
`shell
npm run publish
`$3
The repo uses https:// for submodules which means you won't be able to push directly into the submodules.
One easy solution is t modify
~/.gitconfig and add
`
[url "ssh://git@github.com/"]
pushInsteadOf = https://github.com/
``
[](#questions)
If you have any questions/issues/comments please feel free to create an issue or start a conversation in the NativeScript Community Discord.