The actor's visual customization: a selected built-in theme plus optional custom CSS/JS for their home page and post decorations. Custom JS runs only inside a sandboxed iframe; custom CSS is sanitized and scoped server-side before use.
literal:self
Fixed literal value
Properties
assets
array
of
blob
Optional
Blobs referenced by the actor's CSS/tokens (backgrounds, cursors, fonts). Listed here so the PDS keeps them referenced; a CID used in CSS but absent here is rejected on save.
maxLength: 16 itemscustomBase
string
Optional
When theme is "custom", the built-in base theme whose tokens the custom CSS layers on top of (light or dark).
y2kringe, gyaruy2kringeeffects
array
of
ref
social.twinkl.theme.defs#effect
Optional
Enabled first-party page effects for the actor's home page.
maxLength: 8 itemshomeCss
string
Optional
Custom CSS applied to the actor's home page (sanitized + scoped before use).
maxLength: 100000 byteshomeJs
string
Optional
DEPRECATED: superseded by Web Tiles (social.twinkl.homepage.tile) and no longer rendered on profile pages. Custom JS for the actor's home page. Executed only inside a sandboxed iframe with no same-origin access.
maxLength: 100000 bytespostCss
string
Optional
CSS-only decoration applied to the actor's posts in feeds (sanitized + scoped). Never executes JS.
maxLength: 50000 bytespriorThemeCid
string
cid
Optional
CID of the immediately-previous version of this style record, for one-step "revert to previous look" rollback (best-effort; the prior version may be GC'd by the PDS over time).
sourceTheme
string
at-uri
Optional
Provenance: the social.twinkl.theme.pack this style was copied from (attribution only; content is materialized locally). Backlink target for gallery wearer counts.
sourceThemeCid
string
cid
Optional
CID of the theme.pack version that was copied.
theme
string
Required
Selected base theme.
y2kringe, gyaru, customy2kringetokens
unknown
Optional
Open map of theme token name to string value, layered on the base theme (validated per-token in code; see social.twinkl.theme.pack `tokens`).
updatedAt
string
datetime
Optional
An RFC 3339 formatted timestamp.
View raw schema
{
"key": "literal:self",
"type": "record",
"record": {
"type": "object",
"required": [
"theme"
],
"properties": {
"theme": {
"type": "string",
"default": "y2kringe",
"description": "Selected base theme.",
"knownValues": [
"y2kringe",
"gyaru",
"custom"
]
},
"assets": {
"type": "array",
"items": {
"type": "blob",
"accept": [
"image/png",
"image/jpeg",
"image/webp",
"image/gif",
"font/woff2",
"font/woff"
],
"maxSize": 5000000
},
"maxLength": 16,
"description": "Blobs referenced by the actor's CSS/tokens (backgrounds, cursors, fonts). Listed here so the PDS keeps them referenced; a CID used in CSS but absent here is rejected on save."
},
"homeJs": {
"type": "string",
"maxLength": 100000,
"description": "DEPRECATED: superseded by Web Tiles (social.twinkl.homepage.tile) and no longer rendered on profile pages. Custom JS for the actor's home page. Executed only inside a sandboxed iframe with no same-origin access."
},
"tokens": {
"type": "unknown",
"description": "Open map of theme token name to string value, layered on the base theme (validated per-token in code; see social.twinkl.theme.pack `tokens`)."
},
"effects": {
"type": "array",
"items": {
"ref": "social.twinkl.theme.defs#effect",
"type": "ref"
},
"maxLength": 8,
"description": "Enabled first-party page effects for the actor's home page."
},
"homeCss": {
"type": "string",
"maxLength": 100000,
"description": "Custom CSS applied to the actor's home page (sanitized + scoped before use)."
},
"postCss": {
"type": "string",
"maxLength": 50000,
"description": "CSS-only decoration applied to the actor's posts in feeds (sanitized + scoped). Never executes JS."
},
"updatedAt": {
"type": "string",
"format": "datetime"
},
"customBase": {
"type": "string",
"default": "y2kringe",
"description": "When theme is \"custom\", the built-in base theme whose tokens the custom CSS layers on top of (light or dark).",
"knownValues": [
"y2kringe",
"gyaru"
]
},
"sourceTheme": {
"type": "string",
"format": "at-uri",
"description": "Provenance: the social.twinkl.theme.pack this style was copied from (attribution only; content is materialized locally). Backlink target for gallery wearer counts."
},
"priorThemeCid": {
"type": "string",
"format": "cid",
"description": "CID of the immediately-previous version of this style record, for one-step \"revert to previous look\" rollback (best-effort; the prior version may be GC'd by the PDS over time)."
},
"sourceThemeCid": {
"type": "string",
"format": "cid",
"description": "CID of the theme.pack version that was copied."
}
}
},
"description": "The actor's visual customization: a selected built-in theme plus optional custom CSS/JS for their home page and post decorations. Custom JS runs only inside a sandboxed iframe; custom CSS is sanitized and scoped server-side before use."
}