Vanity Extension
The Vanity extension adds more optional metadata to the user profile.
Entity Definition
All properties are optional.
- Name
avatar_overlays
- Type
- ContentFormat[]
- Description
Overlay images to be placed on top of the user's avatar, like this: example overlay from Discord.
The first overlay in the array is the topmost overlay. The inner 80% of the overlay should cover the avatar, with the outer 20% extending beyond the avatar's bounds.
Image format (e.g.
image/png
), can be animated (e.g. APNG, gif, WebP).
- Name
avatar_mask
- Type
- ContentFormat
- Description
Mask image to be used to clip the user's avatar. The avatar should be clipped to the mask's alpha channel. For example, a black square with rounded corners would clip the avatar to a rounded square.
Image format (e.g.
image/png
), non-animated.
- Name
background
- Type
- ContentFormat
- Description
Background image to be displayed behind the user's profile. Should be full-width and high-resolution, preferably at least 1080p.
Image format (e.g.
image/png
), can be animated (e.g. APNG, gif, WebP).
- Name
audio
- Type
- ContentFormat
- Description
Audio file to be played when viewing the user's profile. Should be a short clip, like a ringtone.
Audio files can be used as a vector for abuse. Implementations SHOULD provide a way to disable audio playback.
Audio format (e.g.
audio/mpeg
).
- Name
pronouns
- Type
- { [key: LanguageCode]: Pronoun[] }
- Description
An array of internationalized pronouns the user uses. Can be represented as a string or an object.
/* e.g. "he/him" */ type ShortPronoun = string; interface LongPronoun { subject: string; object: string; dependent_possessive: string; independent_possessive: string; reflexive: string; } type Pronoun = ShortPronoun | LongPronoun; /* Example: en-US or fr */ type LanguageCode = string;
- Name
birthday
- Type
- ISO8601
- Description
User's birthday. If year is left out or set to
0000
, implementations SHOULD not display the year.
- Name
location
- Type
- string
- Description
User's location. Can be an ISO 6709 Annex H string or a human-readale string (e.g. "New York, NY").
Location does not need to be precise, and can be as simple as
+46+002/
(France) or+48.52+002.20/
(Paris, France).
- Name
aliases
- Type
- URI[]
- Description
Versia profiles that should be considered aliases of this profile.
Example Content
{
// ...
"type": "User",
// ...
"extensions": {
"pub.versia:vanity": {
"avatar_overlays": [
{
"image/png": {
"content": "https://cdn.example.com/ab5081cf-b11f-408f-92c2-7c246f290593/cat_ears.png",
"remote": true,
}
}
],
"avatar_mask": {
"image/png": {
"content": "https://cdn.example.com/d8c42be1-d0f7-43ef-b4ab-5f614e1beba4/rounded_square.jpeg",
"remote": true,
}
},
"background": {
"image/png": {
"content": "https://cdn.example.com/6492ddcd-311e-4921-9567-41b497762b09/untitled-file-0019822.png",
"remote": true,
}
},
"audio": {
"audio/mpeg": {
"content": "https://cdn.example.com/4da2f0d4-4728-4819-83e4-d614e4c5bebc/michael-jackson-thriller.mp3",
"remote": true,
}
},
"pronouns": {
"en-us": [
"he/him",
{
"subject": "they",
"object": "them",
"dependent_possessive": "their",
"independent_possessive": "theirs",
"reflexive": "themself"
},
]
},
"birthday": "1998-04-12",
"location": "+40.6894-074.0447/",
"aliases": [
"https://burger.social/accounts/349ee237-c672-41c1-aadc-677e185f795a",
"https://versia.social/users/f565ef02-035d-4974-ba5e-f62a8558331d"
]
}
}
}