0.1.6 âĒ Published 8 months ago
@matsukky/gender v0.1.6
A minimalist library that provides a comprehensive way to handle gender representation in various languages. Zero dependencies, tree-shakeable, and type-safe.
Table of Contents
Installation
npm install @matsukky/gender
# or
yarn add @matsukky/gender
# or
bun add @matsukky/genderFeatures
- ðŠķ Lightweight
 - ðĶ Zero dependencies
 - ð Support for multiple languages
 - ðĻ Color schemes for each gender
 - ð Custom properties support
 - ð Automatic capitalization
 - ð Rich set of gender-specific terms
 - ðŠ Fully typed (TypeScript)
 
Usage
Basic Usage
import gender from '@matsukky/gender';
const female = gender('F');
console.log(female.genderName);    // "woman"
console.log(female.childTerm);     // "girl"
console.log(female.emoji);         // "ðš"
const male = gender('MALE');       // Alias support
console.log(male.genderName);      // "man"
console.log(male.colors.primary);  // "#1e90ff"
const neutral = gender('X');
console.log(neutral.genderName);   // "person"Localization
import gender, { locale } from '@matsukky/gender';
// Load French locale
await locale('fr');
const female = gender('F');
console.log(female.genderName);    // "femme"
console.log(female.childTerm);     // "fille"Custom Properties
import gender from '@matsukky/gender';
// Definition of context-specific terms
const result = gender('F', {
  custom: {
    occupation: {
      F: "actress",
      M: "actor",
      X: "performer"
    },
    workplace: {
      F: "actresses' room",
      M: "actors' room",
      X: "performers' room"
    },
    award: {
      F: "best actress",
      M: "best actor",
      X: "best performance"
    }
  }
});
// Basic usage
console.log(result.occupation);     // "actress"
console.log(result.workplace);      // "actresses' room"
// Combination with standard properties
console.log(`${result.title} ${result.genderName}`);          // "Mrs woman"
console.log(`${result.occupation} ${result.objectPronoun}`);   // "actress her"
// Usage with capitalization
const capitalizedResult = gender('F', {
  capitalize: true,
  custom: {
    occupation: {
      F: "actress",
      M: "actor",
      X: "performer"
    }
  }
});
console.log(capitalizedResult.occupation);  // "Actress"The gender function allows extending standard properties with custom terms while maintaining gender consistency. Each custom property must define a value for all three genders (F, M, X) to ensure inclusive usage.
Capitalization
import gender from '@matsukky/gender';
const result = gender('F', { capitalize: true });
console.log(result.genderName);    // "Woman"
console.log(result.childTerm);     // "Girl"API Reference
gender(type, options)
gender(type: AvalaibleGender, options?: {
  capitalize?: boolean;
  custom?: Record<string, Record<'F' | 'M' | 'X', string>>;
  language?: AvalaibleLanguage;
}): GenderDatalocale(language, define?)
locale(language: AvalaibleLanguage, define?: boolean): Promise<GenderCollection>Types
GenderData Properties
| Property | Description | Example (Female) | 
|---|---|---|
| emoji | Gender emoji | ðš | 
| colors | Color palette object | { rose, petal, bloom, blush, berry } | 
| genderName | Gender name | "woman" | 
| childTerm | Term for child | "girl" | 
| adultTerm | Term for adult | "woman" | 
| combined | Mostly used in social media as pronouns | "she/her" | 
| subjectPronoun | Subject pronoun | "she" | 
| objectPronoun | Object pronoun | "her" | 
| indirectPronoun | Indirect pronoun | "her" | 
| possessiveAdjective | Possessive adjective | "her" | 
| reflexivePronoun | Reflexive pronoun | "herself" | 
| demonstrative | Demonstrative pronoun | "she" | 
| indeterminateArticle | Indeterminate article | "a" | 
| genderAdjective | Gender adjective | "female" | 
| pluralSubjectPronoun | Plural subject pronoun | "they" | 
| pluralPossessiveAdj | Plural possessive adjective | "their" | 
| title | Full honorific title | "Mrs." | 
| shortTitle | Short honorific title | "Ms." | 
Avalaible Gender Keys
| Role | Values | 
|---|---|
| F | F, â, WOMAN, GIRL, FEMALE, SHE, HER | 
| M | M, H, â, MAN, MEN, BOY, MALE, HE, HIM | 
| X | X, N, â§, NEUTRAL, HUMAN, THEY, THEM |