app.witchsky.theme.colors

witchsky.app

Schema Diff

+2 -14

From

CID
bafyreidlttkunok...
Indexed At
2026-09-01 00:51 UTC
View this version

To

CID
bafyreiddsm5dsbc...
Indexed At
2026-09-04 03:44 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

5 breaking changes, 7 non-breaking changes.

Breaking Changes (5)
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "app.witchsky.theme.colors#materialYou", src: "app.witchsky.theme.colors#materialYou", tgt: "app.witchsky.theme.colors#materialYou.accent", kind: "prop", name: Some("accent") }
  • RemovedVertex RemovedVertex { vertex_id: "app.witchsky.theme.colors#materialYou" }
  • RemovedVertex RemovedVertex { vertex_id: "app.witchsky.theme.colors#materialYou.accent" }
  • RemovedEdge RemovedEdge { src: "app.witchsky.theme.colors:body.special", tgt: "app.witchsky.theme.colors:body.special:variant0", kind: "variant", name: Some("#materialYou") }
  • RemovedEdge RemovedEdge { src: "app.witchsky.theme.colors:body.special:variant0", tgt: "app.witchsky.theme.colors#materialYou", kind: "ref", name: None }
Non-Breaking Changes (7)
  • AddedVertex AddedVertex { vertex_id: "app.witchsky.theme.colors:body.special:variant1" }
  • AddedVertex AddedVertex { vertex_id: "app.witchsky.theme.defs#hue" }
  • AddedVertex AddedVertex { vertex_id: "app.witchsky.theme.defs#materialYou" }
  • AddedEdge AddedEdge { src: "app.witchsky.theme.colors:body.special", tgt: "app.witchsky.theme.colors:body.special:variant0", kind: "variant", name: Some("app.witchsky.theme.defs#materialYou") }
  • AddedEdge AddedEdge { src: "app.witchsky.theme.colors:body.special", tgt: "app.witchsky.theme.colors:body.special:variant1", kind: "variant", name: Some("app.witchsky.theme.defs#hue") }
  • AddedEdge AddedEdge { src: "app.witchsky.theme.colors:body.special:variant0", tgt: "app.witchsky.theme.defs#materialYou", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "app.witchsky.theme.colors:body.special:variant1", tgt: "app.witchsky.theme.defs#hue", kind: "ref", name: None }

Migration Guidance

Removed Elements

  • RemovedVertex { vertex_id: "app.witchsky.theme.colors#materialYou" }
  • RemovedVertex { vertex_id: "app.witchsky.theme.colors#materialYou.accent" }

Added Elements

  • AddedVertex { vertex_id: "app.witchsky.theme.colors:body.special:variant1" }
  • AddedVertex { vertex_id: "app.witchsky.theme.defs#hue" }
  • AddedVertex { vertex_id: "app.witchsky.theme.defs#materialYou" }

Additional Notes

  • Breaking: RequiredEdgeRemoved { vertex_id: "app.witchsky.theme.colors#materialYou", src: "app.witchsky.theme.colors#materialYou", tgt: "app.witchsky.theme.colors#materialYou.accent", kind: "prop", name: Some("accent") }
  • Breaking: RemovedEdge { src: "app.witchsky.theme.colors:body.special", tgt: "app.witchsky.theme.colors:body.special:variant0", kind: "variant", name: Some("#materialYou") }
  • Breaking: RemovedEdge { src: "app.witchsky.theme.colors:body.special:variant0", tgt: "app.witchsky.theme.colors#materialYou", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "app.witchsky.theme.colors:body.special", tgt: "app.witchsky.theme.colors:body.special:variant0", kind: "variant", name: Some("app.witchsky.theme.defs#materialYou") }
  • Non-breaking: AddedEdge { src: "app.witchsky.theme.colors:body.special", tgt: "app.witchsky.theme.colors:body.special:variant1", kind: "variant", name: Some("app.witchsky.theme.defs#hue") }
  • Non-breaking: AddedEdge { src: "app.witchsky.theme.colors:body.special:variant0", tgt: "app.witchsky.theme.defs#materialYou", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "app.witchsky.theme.colors:body.special:variant1", tgt: "app.witchsky.theme.defs#hue", kind: "ref", name: None }
1 1
{
2 2
  "id": "app.witchsky.theme.colors",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "tid",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "name",
11 11
          "mode",
12 12
          "base",
13 13
          "createdAt"
14 14
        ],
15 15
        "properties": {
16 16
          "base": {
17 17
            "ref": "#colorSet",
18 18
            "type": "ref"
19 19
          },
20 20
          "mode": {
21 21
            "type": "string",
22 22
            "knownValues": [
23 23
              "light",
24 24
              "dark"
25 25
            ]
26 26
          },
27 27
          "name": {
28 28
            "type": "string",
29 29
            "maxLength": 64,
30 30
            "maxGraphemes": 48
31 31
          },
32 32
          "special": {
33 33
            "refs": [
34 -
              "#materialYou"
34 +
              "app.witchsky.theme.defs#materialYou",
35 +
              "app.witchsky.theme.defs#hue"
35 36
            ],
36 37
            "type": "union",
37 38
            "closed": false,
38 39
            "description": "Generator metadata requiring special client support. Unsupported union variants may be hidden."
39 40
          },
40 41
          "variants": {
41 42
            "type": "array",
42 43
            "items": {
43 44
              "ref": "#variant",
44 45
              "type": "ref"
45 46
            },
46 47
            "maxLength": 11
47 48
          },
48 49
          "createdAt": {
49 50
            "type": "string",
50 51
            "format": "datetime"
51 52
          },
52 53
          "updatedAt": {
53 54
            "type": "string",
54 55
            "format": "datetime"
55 56
          },
56 57
          "description": {
57 58
            "type": "string",
58 59
            "maxLength": 300,
59 60
            "maxGraphemes": 300
60 61
          },
61 62
          "recommendedPair": {
62 63
            "type": "string",
63 64
            "format": "at-uri",
64 65
            "description": "Theme recommended for the opposite appearance mode."
65 66
          }
66 67
        }
67 68
      }
68 69
    },
69 70
    "variant": {
70 71
      "type": "object",
71 72
      "required": [
72 73
        "name"
73 74
      ],
74 75
      "properties": {
75 76
        "name": {
76 77
          "type": "string",
77 78
          "maxLength": 48,
78 79
          "maxGraphemes": 32
79 80
        },
80 81
        "colors": {
81 82
          "ref": "#semanticColorOverrides",
82 83
          "type": "ref"
83 84
        }
84 85
      }
85 86
    },
86 87
    "colorSet": {
87 88
      "type": "object",
88 89
      "required": [
89 90
        "name",
90 91
        "colors"
91 92
      ],
92 93
      "properties": {
93 94
        "name": {
94 95
          "type": "string",
95 96
          "maxLength": 48,
96 97
          "maxGraphemes": 32
97 98
        },
98 99
        "colors": {
99 100
          "ref": "#semanticColors",
100 101
          "type": "ref"
101 -
        }
102 -
      }
103 -
    },
104 -
    "materialYou": {
105 -
      "type": "object",
106 -
      "required": [
107 -
        "accent"
108 -
      ],
109 -
      "properties": {
110 -
        "accent": {
111 -
          "type": "string",
112 -
          "maxLength": 7,
113 -
          "description": "Hex accent used to generate this Material You example on clients without a system palette."
114 102
        }
115 103
      }
116 104
    },
117 105
    "semanticColors": {
118 106
      "type": "object",
119 107
      "required": [
120 108
        "canvas",
121 109
        "surface",
122 110
        "surfaceRaised",
123 111
        "text",
124 112
        "textMuted",
125 113
        "border",
126 114
        "accent",
127 115
        "accentSoft",
128 116
        "onAccent",
129 117
        "positive",
130 118
        "warning",
131 119
        "critical",
132 120
        "favorite"
133 121
      ],
134 122
      "properties": {
135 123
        "text": {
136 124
          "type": "string",
137 125
          "description": "Primary content text."
138 126
        },
139 127
        "accent": {
140 128
          "type": "string",
141 129
          "description": "Links, selected controls, and primary actions."
142 130
        },
143 131
        "border": {
144 132
          "type": "string",
145 133
          "description": "Dividers and control outlines."
146 134
        },
147 135
        "canvas": {
148 136
          "type": "string",
149 137
          "description": "App background."
150 138
        },
151 139
        "surface": {
152 140
          "type": "string",
153 141
          "description": "Cards, sheets, and controls."
154 142
        },
155 143
        "warning": {
156 144
          "type": "string",
157 145
          "description": "Caution states."
158 146
        },
159 147
        "critical": {
160 148
          "type": "string",
161 149
          "description": "Errors and destructive actions."
162 150
        },
163 151
        "favorite": {
164 152
          "type": "string",
165 153
          "description": "Like and favorite actions."
166 154
        },
167 155
        "onAccent": {
168 156
          "type": "string",
169 157
          "description": "Content drawn on the accent color."
170 158
        },
171 159
        "positive": {
172 160
          "type": "string",
173 161
          "description": "Success and confirmation states."
174 162
        },
175 163
        "textMuted": {
176 164
          "type": "string",
177 165
          "description": "Secondary labels and metadata."
178 166
        },
179 167
        "accentSoft": {
180 168
          "type": "string",
181 169
          "description": "Subtle selected and accent backgrounds."
182 170
        },
183 171
        "surfaceRaised": {
184 172
          "type": "string",
185 173
          "description": "Menus and elevated surfaces."
186 174
        }
187 175
      }
188 176
    },
189 177
    "semanticColorOverrides": {
190 178
      "type": "object",
191 179
      "properties": {
192 180
        "text": {
193 181
          "type": "string",
194 182
          "description": "Primary content text."
195 183
        },
196 184
        "accent": {
197 185
          "type": "string",
198 186
          "description": "Links, selected controls, and primary actions."
199 187
        },
200 188
        "border": {
201 189
          "type": "string",
202 190
          "description": "Dividers and control outlines."
203 191
        },
204 192
        "canvas": {
205 193
          "type": "string",
206 194
          "description": "App background."
207 195
        },
208 196
        "surface": {
209 197
          "type": "string",
210 198
          "description": "Cards, sheets, and controls."
211 199
        },
212 200
        "warning": {
213 201
          "type": "string",
214 202
          "description": "Caution states."
215 203
        },
216 204
        "critical": {
217 205
          "type": "string",
218 206
          "description": "Errors and destructive actions."
219 207
        },
220 208
        "favorite": {
221 209
          "type": "string",
222 210
          "description": "Like and favorite actions."
223 211
        },
224 212
        "onAccent": {
225 213
          "type": "string",
226 214
          "description": "Content drawn on the accent color."
227 215
        },
228 216
        "positive": {
229 217
          "type": "string",
230 218
          "description": "Success and confirmation states."
231 219
        },
232 220
        "textMuted": {
233 221
          "type": "string",
234 222
          "description": "Secondary labels and metadata."
235 223
        },
236 224
        "accentSoft": {
237 225
          "type": "string",
238 226
          "description": "Subtle selected and accent backgrounds."
239 227
        },
240 228
        "surfaceRaised": {
241 229
          "type": "string",
242 230
          "description": "Menus and elevated surfaces."
243 231
        }
244 232
      }
245 233
    }
246 234
  },
247 235
  "$type": "com.atproto.lexicon.schema",
248 236
  "lexicon": 1
249 237
}

Compare Other Versions

Lexicon Garden

@