social.twinkl.actor.style

kandake.africa

Documentation

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.

main record

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.

Record Key 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 items
customBase string Optional

When theme is "custom", the built-in base theme whose tokens the custom CSS layers on top of (light or dark).

Known values: y2kringe, gyaru
Default: y2kringe
homeCss string Optional

Custom CSS applied to the actor's home page (sanitized + scoped before use).

maxLength: 100000 bytes
homeJs 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 bytes
postCss string Optional

CSS-only decoration applied to the actor's posts in feeds (sanitized + scoped). Never executes JS.

maxLength: 50000 bytes
priorThemeCid 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.

Known values: y2kringe, gyaru, custom
Default: y2kringe
tokens 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."
}

Lexicon Garden

@