app.bluvy.tube.preferences

tube.bluvy.app

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Bluvy Tube-specific per-app appearance preferences for one account, written to that account's own repo at rkey `self`. Not required or validated by the PDS or any other AT Protocol app — Bluvy Tube reads this back itself at login to server-render the correct theme and remove the theme flash-of-unstyled-content. Each Bluvy app keeps its own independent record in its own namespace; this one is Bluvy Tube's. See App\\Service\\AppearanceService in the Bluvy Tube source for the writer.",
      "key": "literal:self",
      "record": {
        "properties": {
          "accent": {
            "description": "Logo-derived accent override for primary CTAs. Absent means the Bluvy Blue signature (#185DFF).",
            "enum": [
              "bluvy-blue",
              "bluvy-cyan",
              "bluvy-deep"
            ],
            "type": "string"
          },
          "breakReminderMinutes": {
            "description": "Wellbeing reminder: minutes of actual playback in vertical swipe feeds before Bluvy Tube interrupts with a take-a-break prompt. Absent means 30. There is intentionally no value that disables the reminder; unknown values are read back as 30.",
            "enum": [
              15,
              30,
              45,
              60,
              90,
              120
            ],
            "type": "integer"
          },
          "darkStyle": {
            "description": "Dark-mode depth. Absent means 'dim' (the default #070D1C ramp); 'black' is the opt-in near-black OLED ramp (#05070D, never pure #000000).",
            "enum": [
              "dim",
              "black"
            ],
            "type": "string"
          },
          "feedMode": {
            "description": "Primary feed navigation and video layout mode. 'youtube' is the standard grid of thumbnails; 'immersive' is the continuous full-screen vertical swipe feed. Absent means 'youtube'.",
            "enum": [
              "youtube",
              "immersive"
            ],
            "type": "string"
          },
          "fontFamily": {
            "description": "UI font family. Absent means the native system stack.",
            "enum": [
              "system",
              "inter"
            ],
            "type": "string"
          },
          "fontSize": {
            "description": "Root text size. Absent means 'default' (100%).",
            "enum": [
              "small",
              "default",
              "large"
            ],
            "type": "string"
          },
          "linkAppView": {
            "description": "Which AT Protocol AppView web frontend external post/profile links (e.g. 'view original post') open through. Absent means 'mu' (Mu.social, Bluvy Tube's default).",
            "enum": [
              "bluesky",
              "mu",
              "blacksky"
            ],
            "type": "string"
          },
          "mode": {
            "description": "Colour-mode axis. 'system' follows the OS prefers-color-scheme.",
            "enum": [
              "light",
              "dark",
              "system"
            ],
            "type": "string"
          },
          "palette": {
            "description": "Ecosystem palette. Absent means the Bluvy Tube default palette (logo-derived). The others are opt-in alternates.",
            "enum": [
              "bluvy",
              "bluesky",
              "blacksky",
              "mu"
            ],
            "type": "string"
          },
          "updatedAt": {
            "description": "Client-declared timestamp of the last change.",
            "format": "datetime",
            "type": "string"
          }
        },
        "required": [
          "mode",
          "updatedAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "app.bluvy.tube.preferences",
  "lexicon": 1
}

Validate Record

Validate a record against app.bluvy.tube.preferences

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:dgqudubx2plnmynqu5wtsoan
CID
bafyreicz75mrhzoqm4pt4sspflsahpq52iw6jswu2qptdv3l2t3sehkthq
Indexed At
2026-09-27 16:16 UTC
AT-URI
at://did:plc:dgqudubx2plnmynqu5wtsoan/com.atproto.lexicon.schema/app.bluvy.tube.preferences

Lexicon Garden

@