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 🙏

© 2024 – Pkg Stats / Ryan Hefner

color-generator-fl

v1.3.0

Published

Generate Hex Color Based on First Letter of Any String

Downloads

30

Readme

Color Generator

Color Generator is a simple utility to generate hex color codes based on the first character of a string or number. It provides an easy-to-use function that accepts a string, number, or an array of strings/numbers as input and returns the corresponding hex color(s). Additionally, the package allows you to specify an opacity level (0-100%) for the generated colors, providing flexibility for styling with transparent colors.

Installation

  • Install the package via npm:
npm install color-generator-fl
  • Install the package via yarn:
yarn add color-generator-fl

Usage

Import the Package

    import { getColorForFirstCharacter } from 'color-generator-fl';

Function Overview

getColorForFirstCharacter(arg: string | number | (string | number)[]): string | string[]

  • The function returns a hex color based on the first character of a string or number. If an array is provided, it returns an array of hex colors for each element.

Example

Using with String

    import { getColorForFirstCharacter } from 'color-generator-fl';

    const color = getColorForFirstCharacter('Alice'); // '#00094CFF'
    console.log(color);

    const colorWithOpacity = getColorForFirstCharacter('Alice', 50); // '#00094C80' (with 50% opacity)
    console.log(colorWithOpacity);

Using with Number

    import { getColorForFirstCharacter } from 'color-generator-fl';

    const color = getColorForFirstCharacter(666); // '#A43522FF'
    console.log(color);

    const colorWithOpacity = getColorForFirstCharacter(666, 75); // '#A43522BF' (with 75% opacity)
    console.log(colorWithOpacity);

Using with Array

    import { getColorForFirstCharacter } from 'color-generator-fl';

    const colors = getColorForFirstCharacter(['Alice', 123, 'Bob']);
    // ['#00094CFF', '#A44C15FF', '#00376EFF']
    console.log(colors);

    const colorsWithOpacity = getColorForFirstCharacter(['Alice', 123, 'Bob'], 25);
    // ['#00094C40', '#A44C1540', '#00376E40']
    console.log(colorsWithOpacity);

Handling Invalid Character - Returns fallback color

  • The function handles invalid characters (not alphabet or numbers or array of numbers/strings):
    import { getColorForFirstCharacter } from 'color-generator-fl';

    const color = getColorForFirstCharacter('!@#'); // '#010514FF'
    console.log(color);

Handling Invalid Input - Returns fallback color

  • The function handles invalid input (objects or other types) and empty input - Returns fallback color:
    import { getColorForFirstCharacter } from 'color-generator-fl';

    const color = getColorForFirstCharacter({name: 'John Doe'}); // '#010514FF'
    console.log(color);

Color Palettes

This package uses two distinct color palettes:

  • Alphabet Color Palette: A unique hex color for each alphabet letter (A-Z).
  • Number Color Palette: A unique hex color for each digit (0-9).

API

getColorForFirstCharacter

Parameters

  • arg: string | number | (string | number)[]: A string, number, or array of strings and numbers.

Returns

  • string: A single hex color code for a string or number input.
  • string[]: An array of hex color codes for an array of strings and/or numbers.

Real Life Usage

  • Here are some real life use cases for your Color Generator package:

1. Tagging System Backgrounds

  • In a tagging system, you can assign colors dynamically to different tags based on their names, ensuring each tag has a unique color.

Example:

    import { getColorForFirstCharacter } from 'color-generator-fl';

    const tags = ['Important', 'Urgent', 'Pending'];
    const tagColors = getColorForFirstCharacter(tags);

    console.log(tagColors);
    // ['#263E0DFF', '#005B00FF', '#43616CFF'] (Colors for 'Important', 'Urgent', 'Pending')

This approach ensures that tags can have consistent colors across the app, making the UI more user-friendly and intuitive.

2. Initials-Based Avatars

  • For applications displaying user initials (such as team dashboards or comment sections), generate background colors based on the initials of the user's name.

Example:

    import { getColorForFirstCharacter } from 'color-generator-fl';

    const userName = 'Sarah Connor';

    const avatarColor = getColorForFirstCharacter(userName);
    console.log(avatarColor); // A consistent color for 'S'

This use case can be helpful in list-based UIs or grids where users are represented with initials instead of profile pictures.

3. Categorizing Projects or Items

  • When managing a large number of projects or items (such as in a task management tool or project dashboard), you can use the first letter/character of each project or item to assign a unique color, improving the visual distinction between different elements.

Example:

    import { getColorForFirstCharacter } from 'color-generator-fl';

    const projects = ['Alpha', 'Beta', 'Gamma'];
    const projectColors = getColorForFirstCharacter(projects);

    console.log(projectColors);
// Colors for 'Alpha', 'Beta', 'Gamma' which can be applied to project cards or labels

4. Chat Message Bubbles

  • In a chat application, you can assign colors to message bubbles based on the sender’s name. This can be used to distinguish between different users visually.

Example:

    import { getColorForFirstCharacter } from 'color-generator-fl';

    const senderName = 'David';
    const bubbleColor = getColorForFirstCharacter(senderName);

    console.log(bubbleColor); // Generates a consistent color for David's message bubble

5. Color-Coding Notifications

  • When displaying notifications in a system, you can color-code them based on the type of notification. For example, system notifications could have one color, and user-related notifications another, based on the notification category.

Example:

    import { getColorForFirstCharacter } from 'color-generator-fl';

    const notificationTypes = ['System Alert', 'Message', 'Reminder'];
    const notificationColors = getColorForFirstCharacter(notificationTypes);

    console.log(notificationColors);
// Generates different colors for each type of notification

6. Color-Coding Product Categories

  • If you have an e-commerce platform or any product listing system, you can dynamically generate colors for product categories based on the category name.

Example:

    import { getColorForFirstCharacter } from 'color-generator-fl';

    const categories = ['Electronics', 'Clothing', 'Books'];
    const categoryColors = getColorForFirstCharacter(categories);

    console.log(categoryColors);
// Colors for 'Electronics', 'Clothing', and 'Books' categories

7. Dynamic Charts and Graphs

  • In data visualization, you can generate colors for different data series dynamically based on labels or identifiers.

Example:

    import { getColorForFirstCharacter } from 'color-generator-fl';

    const labels = ['Sales', 'Revenue', 'Profit'];
    const chartColors = getColorForFirstCharacter(labels);

    console.log(chartColors);
// Generates distinct colors for 'Sales', 'Revenue', and 'Profit' series in the chart

This ensures consistency and a visually pleasing look for charts that need distinct colors for different datasets.

8. File Management Systems

  • In file management or file-sharing systems, you can assign colors to folders or files based on the first letter/character of the folder or file name.

Example:

    import { getColorForFirstCharacter } from 'color-generator-fl';

    const folders = ['Annual Report', 'Budget', 'Client List'];
    const folderColors = getColorForFirstCharacter(folders);

    console.log(folderColors);
// Generates distinct colors for each folder, making it easier to visually distinguish them

By leveraging the Color Generator package in these use cases, you can maintain a consistent and vibrant UI while adding a dynamic element to your application. There can be more use cases based on a particular situation.

License

  • This project is licensed under the MIT License.

Author