2026-07-18 11:13:12 +08:00

466 lines
18 KiB
JSON

{
"schemaVersion": 1,
"figma": {
"fileKey": "OTOg5cwbhVNWxkImGmzTJl",
"canvasNode": "646:1997",
"referenceFrames": [
"918:4398",
"918:4508",
"918:4607",
"918:5732",
"918:12834"
]
},
"policy": {
"description": "Each runtime bitmap is one decorative layer only. Text, controls, dynamic reward media and user media remain DOM/API content.",
"forbiddenSourceNodes": [
"646:1997",
"918:4398",
"918:4607",
"918:5732"
],
"approvedStandaloneCompositeNodes": [
"918:32244",
"918:4693",
"918:4681",
"918:4669"
],
"forbiddenRuntimeTerms": [
"whole-page",
"full-page",
"page-screenshot",
"root-frame",
"hero-composite"
],
"maxDecorativeLayerPixels": 1600000
},
"assets": [
{
"filename": "countdown-cell.png",
"sourceNode": "918:4415",
"sourceName": "图片 24 5",
"use": "Countdown cell decoration; time remains live DOM text.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 53, "height": 63 },
"file": {
"format": "png",
"pixelWidth": 105,
"pixelHeight": 126,
"bytes": 23166
},
"sha256": "181c560ed0cffc4d4b73aaf241267284742ec935fa1d843d8e0f56ee1b8ea7a0",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "draw-button.png",
"sourceNode": "918:4489",
"sourceName": "图层 0 315",
"use": "Lucky draw button border; label stays in the button DOM.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 269, "height": 48 },
"file": {
"format": "png",
"pixelWidth": 530,
"pixelHeight": 96,
"bytes": 67399
},
"sha256": "82404a50e6bd352c7b5b86a60c86ca98ca1ed601b49a59ef97804efa6a566090",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "hero-game-king.png",
"sourceNode": "918:32244",
"sourceName": "image 5068",
"use": "Approved standalone Figma header fill. It contains only the 375x501 crown, Game King title, decorative gamepad and city/crowd scene; countdown and actions remain DOM overlays.",
"kind": "approved-static-header-composite",
"scope": "runtime",
"renderedDesignSize": { "width": 375, "height": 501 },
"naturalSize": { "width": 1085, "height": 1450 },
"file": {
"format": "png",
"pixelWidth": 1085,
"pixelHeight": 1450,
"bytes": 2866290
},
"sha256": "e430b3407f9d7f10215f3af2c113aaac9e325c6ff6409db79b5f2d3c926fa732",
"containsText": true,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "prize-fallback.png",
"sourceNode": "918:4464",
"sourceName": "缩略图 (1) 3",
"use": "Mock prize thumbnail only when ?mock=1; production prizes are API media.",
"kind": "single-fixture-media",
"scope": "fixture",
"renderedDesignSize": { "width": 50, "height": 50 },
"file": {
"format": "png",
"pixelWidth": 100,
"pixelHeight": 100,
"bytes": 26391
},
"sha256": "11a65b70468495eb9ba1434f0829ff3af911694e0e27764ab5d10e398d4d29fa",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": true,
"mockOnly": true
},
{
"filename": "rank-period-active.png",
"sourceNode": "918:4663",
"sourceName": "啊啊撒啊大撒撒撒 1",
"use": "Selected ranking-period decoration; tab label remains DOM text.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 157, "height": 47 },
"file": {
"format": "png",
"pixelWidth": 314,
"pixelHeight": 94,
"bytes": 49444
},
"sha256": "efa26c376d2acc9bab308af2a953e6f0056bfa7baec3a0120165454772704f19",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "rank-period-frame.png",
"sourceNode": "918:4661",
"sourceName": "sadasdsad 1",
"use": "Ranking-period switcher decoration; buttons remain DOM controls.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 351, "height": 87 },
"file": {
"format": "png",
"pixelWidth": 702,
"pixelHeight": 174,
"bytes": 146732
},
"sha256": "9d7055b4d21bf55b54cb04574b55c89fcf54e63587c6278e415d8bfc667c0e80",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "rank-top1-frame.png",
"sourceNode": "918:4693",
"sourceName": "Top 1 frame",
"use": "Approved static Top 1 podium frame; avatar, account name and score are live DOM/API content within its transparent openings.",
"kind": "approved-static-podium-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 274.219, "height": 234.375 },
"naturalSize": { "width": 854, "height": 730 },
"file": {
"format": "png",
"pixelWidth": 854,
"pixelHeight": 730,
"bytes": 564570
},
"sha256": "a9f2fc2aaf6818bbbfb86e64bbb40e53a47b642e677bc5543bcd0836f43051cc",
"containsText": true,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "rank-top2-frame.png",
"sourceNode": "918:4681",
"sourceName": "Top 2 frame",
"use": "Approved static Top 2 podium frame; avatar, account name and score are live DOM/API content within its transparent openings.",
"kind": "approved-static-podium-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 117.188, "height": 181.641 },
"naturalSize": { "width": 546, "height": 847 },
"file": {
"format": "png",
"pixelWidth": 546,
"pixelHeight": 847,
"bytes": 411924
},
"sha256": "bf0831484639a218404a03a2e6ec07839960a2c91d6ea54313049fd1c093c47f",
"containsText": true,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "rank-top3-frame.png",
"sourceNode": "918:4669",
"sourceName": "Top 3 frame",
"use": "Approved static Top 3 podium frame; avatar, account name and score are live DOM/API content within its transparent openings.",
"kind": "approved-static-podium-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 117.188, "height": 181.641 },
"naturalSize": { "width": 546, "height": 847 },
"file": {
"format": "png",
"pixelWidth": 546,
"pixelHeight": 847,
"bytes": 381162
},
"sha256": "2d57e948ecb742fea3d177d4d2d4f4dd5a341be9cfa94a5e84ac63bf57f5e754",
"containsText": true,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "rank-row.png",
"sourceNode": "918:4706",
"sourceName": "萨达大厦 1",
"use": "Leaderboard row border; rank, avatar, user identity and score are live DOM/API content.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 375, "height": 84 },
"file": {
"format": "png",
"pixelWidth": 750,
"pixelHeight": 168,
"bytes": 192238
},
"sha256": "f130b00221f2a5a7c98fc63841ea06103a3c618e252a7a25624eb2bb597a8d98",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "rank-self-row.png",
"sourceNode": "918:4739",
"sourceName": "撒大撒撒撒 1",
"use": "Current-user ranking row border; user data remains live DOM/API content.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 375, "height": 84 },
"file": {
"format": "png",
"pixelWidth": 750,
"pixelHeight": 167,
"bytes": 199098
},
"sha256": "1d047edab697448aafa8cb49d893f6e452bdaa22d2bc57dbe3c0b8c50d17221b",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "reward-count-frame.png",
"sourceNode": "918:5944",
"sourceName": "dsfsd 2",
"use": "Reward quantity label decoration; reward name and quantity remain DOM/API content.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 100, "height": 17 },
"file": {
"format": "png",
"pixelWidth": 200,
"pixelHeight": 34,
"bytes": 13545
},
"sha256": "6e4780ce10c58f3e2ee775bb20b9fe6f0f99205fe8e5b2b1fe7d2a21ecd77bc1",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "reward-panel.png",
"sourceNode": "918:5775",
"sourceName": "picsart-687df19b-6e40-4c2c-a38b-270043a2c8eb 1",
"use": "Ranking reward-card background slices only; Figma composes the card from this shared image-fill in a 92px top, stretchable middle and 67px bottom. Tier title, reward media and settlement state remain DOM/API content.",
"kind": "single-decorative-panel",
"scope": "runtime",
"renderedDesignSize": { "width": 351, "height": 317 },
"naturalSize": { "width": 702, "height": 318 },
"designUseSize": { "width": 351, "height": 317 },
"file": {
"format": "png",
"pixelWidth": 702,
"pixelHeight": 318,
"bytes": 311440
},
"sha256": "fb8fc0bc0d0e7cef7833fc12608380d6853483e541fcd813b1ab56e6681379c6",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "reward-ring.png",
"sourceNode": "918:5940",
"sourceName": "图片 107 1",
"use": "Reward and podium icon surround; item images remain API media.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 100, "height": 99 },
"file": {
"format": "png",
"pixelWidth": 200,
"pixelHeight": 197,
"bytes": 73676
},
"sha256": "0153c3b90ef9879ac45457f198a0ab580fc3e2f5f4618e2f867043b662a426f8",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "reward-status-frame.png",
"sourceNode": "918:5960",
"sourceName": "asdsad 1",
"use": "Reward settlement-status decoration; status stays live DOM text.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 200, "height": 53 },
"file": {
"format": "png",
"pixelWidth": 400,
"pixelHeight": 106,
"bytes": 76836
},
"sha256": "813f96c2b8f500b64b7fb6a2a8c03ffe54d310431f3c0e67e435d6a8fc29c7c7",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "side-action-frame.png",
"sourceNode": "918:4432",
"sourceName": "图片 92 1",
"use": "Rule and awards side-button decoration; button text remains DOM/i18n content.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 136, "height": 43 },
"file": {
"format": "png",
"pixelWidth": 421,
"pixelHeight": 86,
"bytes": 63072
},
"sha256": "24a168359e5238a67a2077be7fab3cea9f2bca4c708ff3e88a76337e1e1fae28",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "spin-center.png",
"sourceNode": "918:4462",
"sourceName": "图层 0 43",
"use": "Lottery spin-center decoration; button action, chance count and label remain DOM content.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 102, "height": 112 },
"file": {
"format": "png",
"pixelWidth": 201,
"pixelHeight": 224,
"bytes": 64266
},
"sha256": "d38866cf0d5de9cd16f8e656944389c4b06dc0a33f910b7b2c5e392ebd5bf117",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "stage-background.jpg",
"sourceNode": "918:4554",
"sourceName": "8d9724ebcfedc7fe266dce4b22c1acd0c36d3eec106fb4-z5Hap7 2",
"use": "Pure decorative space-stage background only; all activity content stays DOM/API driven.",
"kind": "single-decorative-background",
"scope": "runtime",
"renderedDesignSize": { "width": 591, "height": 1280 },
"file": {
"format": "jpeg",
"pixelWidth": 591,
"pixelHeight": 1280,
"bytes": 68918
},
"sha256": "156036a55c0aaaa6e65cb17cd65842f343ba8b4c20d78f5a753ce25568fca766",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "tab-active.png",
"sourceNode": "918:4448",
"sourceName": "sdasdasd 4",
"use": "Active primary-tab decoration; tab labels remain DOM/i18n content.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 112, "height": 34 },
"file": {
"format": "png",
"pixelWidth": 224,
"pixelHeight": 68,
"bytes": 29835
},
"sha256": "82ad16cf0dea642cd96fd196caba44add87a7a08a3670f9967507fa081f0c5f1",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "tab-idle.png",
"sourceNode": "918:4452",
"sourceName": "sdasdasd 4",
"use": "Inactive primary-tab decoration; tab labels remain DOM/i18n content.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 112, "height": 34 },
"file": {
"format": "png",
"pixelWidth": 224,
"pixelHeight": 68,
"bytes": 17086
},
"sha256": "accbdd006dd7adfbe8334ae1d2bd6c0596f4f8f7d3cbd71293e9b2c0299d5d8a",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
},
{
"filename": "wheel-frame.png",
"sourceNode": "918:4461",
"sourceName": "大撒上的 1",
"use": "Lottery wheel decoration; seven prize cells and button stay DOM/API content.",
"kind": "single-decorative-frame",
"scope": "runtime",
"renderedDesignSize": { "width": 355, "height": 417 },
"file": {
"format": "png",
"pixelWidth": 709,
"pixelHeight": 834,
"bytes": 941508
},
"sha256": "5ba68ed72edddeaa3287537c4698e7a5b2c2a7a45f1378a8f81a97dba096b3b9",
"containsText": false,
"containsControls": false,
"containsDynamicBusinessMedia": false,
"mockOnly": false
}
]
}