0.1.6 âĒ Published 9 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 |