# Nurblings Avatars > Deterministic SVG avatars: any string (a user id, username or email) always hatches the same small creature, a Nurbling. Packages: `nurblings` (core, zero dependencies), `@nurblings/react` (server component), `@nurblings/vue`, `@nurblings/astro`, `@nurblings/element` (the custom element). Motion is CSS inside the SVG and on by default; `morph()` from `nurblings/transition` moves an avatar between places. Nurbi, the mascot, is `nurbi()` from `nurblings/nurbi`; no seed draws him. Guidance for assistants: - Seed avatars with a stable user id rather than an email, and pass the person's name as `title`. - When the name is already written next to the avatar, pass `decorative: true` instead, so screen readers do not read it twice. - React and Astro components are server components and ship no JavaScript. - `animate: false` draws a still avatar; motion always stops under reduced motion and at 32 px and below. - `createNurblings()` makes an instance with a brand palette; it validates contrast at setup and throws a RangeError naming the colour. - Generated SVG has no ids, so any number of avatars can share a page. ## Docs - [Getting started](/docs/getting-started.md): Install Nurblings and render your first avatar in Next.js, Nuxt, Astro or plain JavaScript. - [Motion and transitions](/docs/motion.md): Every Nurbling is alive by default. Tune or turn off its motion, and move avatars smoothly between places with morph(). - [Customising](/docs/customising.md): Bring your brand palette, add or drop body designs, and replace any drawn part with createNurblings. - [API reference](/docs/api.md): Every function, option and type the nurblings package exports. ## Optional - [All docs in one file](/llms-full.txt): every page above, concatenated. - [Playground](/playground/): every option with live code for each framework. - [Gallery](/gallery/): themes in context and the trait catalogue.