npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

web3-avatars-soft

v1.0.0

Published

Generate beautiful gradient avatars from Ethereum addresses

Readme

Web3 Avatars Soft

A lightweight library that generates beautiful soft gradient avatars from Ethereum addresses. Each address produces a unique, visually pleasing gradient that can be used as an avatar or identity representation.

Demo

Run the demo locally: npm run dev

The demo page includes:

  • Avatar generation from Ethereum addresses
  • Random address generation
  • Dark/light mode toggle to view avatars against different backgrounds

Installation

npm install web3-avatars-soft

Usage

import { generateAvatarGradientFromAddress, generateRandomAddress } from 'web3-avatars-soft';

// Generate CSS styles from an Ethereum address
const address = '0x742d35Cc6634C0532925a3b844Bc454e4438f44e';
const styles = generateAvatarGradientFromAddress(address);

// Apply the styles to an element
const avatarElement = document.getElementById('avatar');
avatarElement.style.backgroundImage = styles.backgroundImage;
avatarElement.style.filter = styles.filter;

// Or generate a random Ethereum address and use it
const randomAddress = generateRandomAddress();
const randomStyles = generateAvatarGradientFromAddress(randomAddress);

API

generateAvatarGradientFromAddress(address: string)

Generates CSS styles for creating a gradient avatar from an Ethereum address.

Parameters:

  • address (string): An Ethereum address (0x followed by 40 hexadecimal characters)

Returns: An object containing:

  • backgroundImage (string): CSS background-image property value with radial gradients
  • filter (string): CSS filter property for enhanced visual effect

generateRandomAddress()

Generates a random Ethereum address.

Returns:

  • A random Ethereum address string

How It Works

The library uses deterministic generation to create unique gradients based on the input Ethereum address:

  1. It extracts color information from different parts of the address
  2. Transforms these into aesthetically pleasing colors using the chroma-js library
  3. Generates a complex CSS gradient using radial gradients at specific positions
  4. Applies subtle filters to enhance the visual effect

Development

Setup

# Clone the repository
git clone https://github.com/yourusername/web3-avatars-soft.git
cd web3-avatars-soft

# Install dependencies
npm install

# Run the demo
npm run dev

# Build the library
npm run build

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Continuous Integration

This project uses GitHub Actions for continuous integration:

  • CI Workflow: Runs on every push to main and pull requests to ensure the code builds correctly and passes all checks.
  • Publish Workflow: Automatically publishes the package to npm when a new release is created.

License

MIT