social.twinkl.actor.style

kandake.africa

{
  "id": "social.twinkl.actor.style",
  "defs": {
    "main": {
      "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."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against social.twinkl.actor.style

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:lrphxvv25aibthe7xoc2eeyy
CID
bafyreiadxjcmgrpdupo6wtfxl7xiywo7gfgnwyfhoidi5ng7map6nv6n2m
Indexed At
2026-07-26 20:11 UTC
AT-URI
at://did:plc:lrphxvv25aibthe7xoc2eeyy/com.atproto.lexicon.schema/social.twinkl.actor.style

Referenced Schemas (1)

Lexicon Garden

@