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.
View the live demo: Web3 Avatars Soft 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
npm install web3-avatars-softimport { 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);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 gradientsfilter(string): CSS filter property for enhanced visual effect
Generates a random Ethereum address.
Returns:
- A random Ethereum address string
The library uses deterministic generation to create unique gradients based on the input Ethereum address:
- It extracts color information from different parts of the address
- Transforms these into aesthetically pleasing colors using the chroma-js library
- Generates a complex CSS gradient using radial gradients at specific positions
- Applies subtle filters to enhance the visual effect
# Clone the repository
git clone https://github.com/oyaboon/web3-avatars-soft.git
cd web3-avatars-soft
# Install dependencies
npm install
# Run the demo
npm run dev
# Build the library
npm run buildContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
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.
- GitHub Pages Workflow: Automatically builds and deploys the demo to GitHub Pages when changes are pushed to the main branch.
MIT