commit ee719d07ccdf014cc1ea015c166e593be8412acd Author: kang Date: Wed Apr 22 15:31:45 2026 +0800 feat: 初始化 Figma 模板库 56 套展示站 - 56 套模板元数据(35 Figma 原生 + 21 非 Figma) - 静态展示站 (HTML/CSS/JS 无框架):格式筛选、lightbox、搜索 - 35 个 .fig 已真上传 Figma Drafts 云端 - iframe 实时投射(登录态可看私有 Drafts) - 部署:nginx:alpine + basic-auth (kang) Co-Authored-By: Claude Opus 4.7 (1M context) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3920f35 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +# keep repo lean — source archives + extracted are local only +source/ +extracted/ +.DS_Store +__pycache__/ +*.pyc +.playwright-mcp/ + +# generated manifests stay in repo so site works on fresh clone +# (manifest.json, figma-files.json, figma-match-report.json, web/) diff --git a/.htpasswd b/.htpasswd new file mode 100644 index 0000000..234b508 --- /dev/null +++ b/.htpasswd @@ -0,0 +1 @@ +kang:$2y$10$J/3TiFUWxoSw4ahfmoQNmOPUarSDgf3gYFZzvheogHZbktACWFuxq diff --git a/.memory/status.md b/.memory/status.md new file mode 100644 index 0000000..a2e15ff --- /dev/null +++ b/.memory/status.md @@ -0,0 +1,91 @@ +# Figma 模板库 - 状态 + +> 2026-04-22 立项,从桌面搬迁 11GB "Figma模板网页官网首页PC电脑Web端UI界面Sketch Xd设计素材200套" 整理并展示 + +## 核心事实 + +- **"200 套" 名不副实**:实际 **56 个源包** + 202 张 A 预览索引缩略图 +- 格式分布:51×zip + 3×7z + 2×rar,展开后: + - **含 `.fig`**:35 套(Figma 原生) + - 只 `.sketch`:8 套 + - 只 `.xd`:7 套 + - 只 `.psd`:2 套 + - 混合无 fig:4 套 + +## 目录结构 + +``` +~/Projects/research/20260422-figma模板库/ +├── source/ 11G · 原始压缩包 + A 预览/ 202 张索引图 +├── extracted/ 全 56 套已解压(nested zip 也全递归解压了:W27/W39/W20 等) +├── manifest.json 56 条元数据(name/格式/文件列表/大小) +├── scripts/ +│ └── import-to-figma.sh slim/full 模式批量 open -a Figma +├── web/ 展示站 +│ ├── index.html +│ ├── styles.css +│ ├── app.js +│ ├── data.json 56 条含 cover/gallery/figma_key 字段(key 暂空) +│ ├── thumbs/ 56 张 cover(900px/jpg82)6.1M +│ └── previews/ 全部 galleries(1600px/jpg82)52M +└── .memory/ +``` + +## 已写入 Figma Drafts(slim 模式 43 个) + +- W1 测试 1 个(手动 open)+ 42 个 slim 批量 +- **W37 Daily UI**:30 天的 kit 只入了第 1 天("Day 03 - Videos Website Landing"),其他 29 天本地 `extracted/W37/` 保留 +- W5 Wiloa 全 4 变体(Hotel/Plant/Restaurant/Travel) +- W56 Orabel 全 6 页(Home/About/Portfolio/Blog/Contact/Open Menu) +- 其他 32 个 template 各 1 个 fig + +## 非 Figma 原生的 21 套(已搁置) + +只 Sketch:W11, W12, W18, W20, W30, W44(6) +只 XD:W8, W19, W22, W23, W39, W49(6) +只 PSD:W17(含 68 psd + 2 xd), W42(11 psd) +混合无 fig:W4, W9, W15, W21, W27, W36, W50(7) + +后续如需: +- Sketch → Figma 桌面 File→Import 可批量(多选) +- XD → 第三方转换器(convertxd 之类)或搁置 +- PSD → 非 Figma 生态 + +## 展示站 + +- 端口 **4010**(端口注册中心分的 4010-4019 块) +- 启动:`cd web && python3 -m http.server 4010` +- 功能:卡片网格 · 格式筛选(fig/sketch/xd/psd/imported)· 名称搜索 · lightbox modal · 本地源包路径复制 · Figma Drafts 跳转 +- 暗色调 / CSS variables / 无框架 / 静态 + +## 活·iframe 投射 ✅ 已完成 + +**重大踩坑**:`open -a Figma file.fig` 只在桌面版本地打开(Untitled tab),**不上传云端**。Drafts 云端 API 看不到。 + +**真·上传路径**:Figma 网页版 Drafts 页 → "+" → Import → "Import from computer"(接受 .fig)。Playwright `browser_file_upload` 可一次喂 42 个,Figma 串行处理 ~50s/个 → 约 60 分钟全部上云。 + +**fileKey 抓取(绕了好几圈)**: +1. ❌ Figma REST API:无 "list drafts" 接口 +2. ❌ Figma Desktop `settings.json`:不实时更新 +3. ❌ AppleScript 读 Figma 桌面窗口:被系统拒 +4. ❌ Figma Plugin API:要已知 fileKey 才能进 +5. ❌ Chromium Cookie:macOS Keychain 加密 +6. ✅ **Figma 内部 API**:登录后调 `/api/folders/{drafts_folder_id}/paginated_files?...` 拿全 list(drafts_folder_id 从 `/api/user/state` 拿不到,但触发 Drafts UI 后从 network 抓到 `194902307`) +7. 模糊匹配名称回填 → `scripts/match-and-update.py`(35/35 score 1.0) + +**最终架构**: +- 静态卡片缩略图(本地 56 张,离线可看) +- 点开 modal → `` + : ''; + body.innerHTML = ` +

${escapeHtml(t.name)}

+
+ ${t.id} + ${t.archive_size_mb} MB + ${t.has_fig ? `FIG×${t.fig_count}` : ''} + ${t.has_sketch ? `SKETCH×${t.sketch_count}` : ''} + ${t.has_xd ? `XD×${t.xd_count}` : ''} + ${t.has_psd ? `PSD` : ''} +
+ + ${figmaSection} +
+
源包
source/${t.id}/${t.archive}
+
解压目录
extracted/${t.id}/
+ ${t.figma_key ? `
Figma Key
${t.figma_key}
` : ''} +
+ + `; + document.getElementById('modal').hidden = false; + document.body.style.overflow = 'hidden'; +} + +function closeModal() { + document.getElementById('modal').hidden = true; + document.body.style.overflow = ''; + document.getElementById('modalBody').innerHTML = ''; +} + +function revealSource(id) { + // Dev-only helper: try opening local path in Finder via file:// + // Browsers block file:// from http:// — fall back to a helpful alert + const path = `${location.pathname.replace(/\/[^/]*$/, '')}/../extracted/${id}`; + alert(`本地路径:\n~/Projects/research/20260422-figma模板库/extracted/${id}/\n\n在终端跑:\nopen ~/Projects/research/20260422-figma模板库/extracted/${id}`); +} + +function escapeHtml(s) { + return String(s).replace(/[&<>"']/g, c => ({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c])); +} +function escapeAttr(s) { + return String(s).replace(/"/g, '"'); +} +function copyPath(id) { + const t = DATA.templates.find(x => x.id === id); + if (!t) return; + const p = `~/Projects/research/20260422-figma模板库/extracted/${id}/`; + navigator.clipboard.writeText(p).then(() => { + alert('已复制:\n' + p); + }); +} + +document.getElementById('filters').addEventListener('click', e => { + const btn = e.target.closest('.pill'); + if (!btn) return; + document.querySelectorAll('.pill').forEach(p => p.classList.toggle('active', p === btn)); + currentFilter = btn.dataset.filter; + render(); +}); + +document.getElementById('search').addEventListener('input', e => { + currentSearch = e.target.value.trim().toLowerCase(); + render(); +}); + +document.getElementById('modalClose').addEventListener('click', closeModal); +document.querySelector('.modal-bg').addEventListener('click', closeModal); +document.addEventListener('keydown', e => { if (e.key === 'Escape') closeModal(); }); + +load(); diff --git a/web/data.json b/web/data.json new file mode 100644 index 0000000..bf46e03 --- /dev/null +++ b/web/data.json @@ -0,0 +1,1291 @@ +{ + "generated_at": "2026-04-22T02:42:17.436171Z", + "total": 56, + "templates": [ + { + "id": "W1", + "name": "Saascuy - Saas Landing Page UI KIT", + "cover": "thumbs/W1.jpg", + "gallery": [ + "previews/W1/预览 (1).jpg", + "previews/W1/预览 (2).jpg", + "previews/W1/预览 (3).jpg" + ], + "has_fig": true, + "has_sketch": true, + "has_xd": true, + "has_psd": false, + "fig_count": 1, + "sketch_count": 1, + "xd_count": 1, + "archive": "Saascuy - Saas Landing Page UI KIT (1).zip", + "archive_size_mb": 123.1, + "source_rel": "../extracted/W1", + "figma_key": "pxsKzhDM8UL8oTSB4hUpOZ", + "figma_url": "https://www.figma.com/file/pxsKzhDM8UL8oTSB4hUpOZ" + }, + { + "id": "W10", + "name": "Havoc Agency UI Kit", + "cover": "thumbs/W10.jpg", + "gallery": [ + "previews/W10/预览 (1).jpg", + "previews/W10/预览 (2).jpg", + "previews/W10/预览 (3).jpg" + ], + "has_fig": true, + "has_sketch": true, + "has_xd": true, + "has_psd": false, + "fig_count": 1, + "sketch_count": 1, + "xd_count": 1, + "archive": "Havoc Agency UI Kit.zip", + "archive_size_mb": 102.5, + "source_rel": "../extracted/W10", + "figma_key": "EKp3ZDo2A3kDp88DMvFqte", + "figma_url": "https://www.figma.com/file/EKp3ZDo2A3kDp88DMvFqte" + }, + { + "id": "W11", + "name": "Limitless for Web", + "cover": "thumbs/W11.jpg", + "gallery": [ + "previews/W11/预览 (1).jpg", + "previews/W11/预览 (2).jpg", + "previews/W11/预览 (3).jpg", + "previews/W11/预览 (4).jpg", + "previews/W11/预览 (5).jpg", + "previews/W11/预览 (6).jpg", + "previews/W11/预览 (7).jpg" + ], + "has_fig": false, + "has_sketch": true, + "has_xd": false, + "has_psd": false, + "fig_count": 0, + "sketch_count": 1, + "xd_count": 0, + "archive": "Limitless for Web.zip", + "archive_size_mb": 54.7, + "source_rel": "../extracted/W11", + "figma_key": null, + "figma_url": null + }, + { + "id": "W12", + "name": "Premise - Website and Landing Page Wireframe Kit - Desktop", + "cover": "thumbs/W12.jpg", + "gallery": [ + "previews/W12/预览 (1).jpg", + "previews/W12/预览 (2).jpg", + "previews/W12/预览 (3).jpg", + "previews/W12/预览 (4).jpg" + ], + "has_fig": false, + "has_sketch": true, + "has_xd": false, + "has_psd": false, + "fig_count": 0, + "sketch_count": 2, + "xd_count": 0, + "archive": "Premise - Website and Landing Page Wireframe Kit - Desktop.zip", + "archive_size_mb": 12.2, + "source_rel": "../extracted/W12", + "figma_key": null, + "figma_url": null + }, + { + "id": "W13", + "name": "Premium Online Shop UI Kit & Dashboard", + "cover": "thumbs/W13.jpg", + "gallery": [ + "previews/W13/预览 (1).jpg", + "previews/W13/预览 (2).jpg", + "previews/W13/预览 (3).jpg", + "previews/W13/预览 (4).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "Premium Online Shop UI Kit & Dashboard.zip", + "archive_size_mb": 25.3, + "source_rel": "../extracted/W13", + "figma_key": "ms5OYBa3fRlDwRmSLWWorY", + "figma_url": "https://www.figma.com/file/ms5OYBa3fRlDwRmSLWWorY" + }, + { + "id": "W14", + "name": "Ui Max", + "cover": "thumbs/W14.jpg", + "gallery": [ + "previews/W14/预览 (1).jpg", + "previews/W14/预览 (2).jpg", + "previews/W14/预览 (3).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "Ui Max.zip", + "archive_size_mb": 100.4, + "source_rel": "../extracted/W14", + "figma_key": "s5KbowY6N6M4IkjHbgLjOc", + "figma_url": "https://www.figma.com/file/s5KbowY6N6M4IkjHbgLjOc" + }, + { + "id": "W15", + "name": "BelloBlue Fashion + Delivery Web App", + "cover": "thumbs/W15.jpg", + "gallery": [ + "previews/W15/预览 (1).jpg", + "previews/W15/预览 (2).jpg", + "previews/W15/预览 (3).jpg", + "previews/W15/预览 (4).jpg", + "previews/W15/预览 (5).jpg" + ], + "has_fig": false, + "has_sketch": true, + "has_xd": true, + "has_psd": true, + "fig_count": 0, + "sketch_count": 1, + "xd_count": 1, + "archive": "BelloBlue Fashion + Delivery Web App.zip", + "archive_size_mb": 65.6, + "source_rel": "../extracted/W15", + "figma_key": null, + "figma_url": null + }, + { + "id": "W16", + "name": "Eco -Ecommerce Analytics Admin Dashboard Kit", + "cover": "thumbs/W16.jpg", + "gallery": [ + "previews/W16/预览 (1).jpg", + "previews/W16/预览 (2).jpg", + "previews/W16/预览 (3).jpg", + "previews/W16/预览 (4).jpg", + "previews/W16/预览 (5).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "Eco -Ecommerce Analytics Admin Dashboard Kit.zip", + "archive_size_mb": 22.3, + "source_rel": "../extracted/W16", + "figma_key": "fsufV596UmcNyM8yfCYlAr", + "figma_url": "https://www.figma.com/file/fsufV596UmcNyM8yfCYlAr" + }, + { + "id": "W17", + "name": "ElectroHouse Website UI Kit", + "cover": "thumbs/W17.jpg", + "gallery": [ + "previews/W17/预览 (1).jpg", + "previews/W17/预览 (2).jpg", + "previews/W17/预览 (3).jpg", + "previews/W17/预览 (4).jpg" + ], + "has_fig": false, + "has_sketch": false, + "has_xd": true, + "has_psd": true, + "fig_count": 0, + "sketch_count": 0, + "xd_count": 2, + "archive": "ElectroHouse Website UI Kit.zip", + "archive_size_mb": 920.4, + "source_rel": "../extracted/W17", + "figma_key": null, + "figma_url": null + }, + { + "id": "W18", + "name": "Elemento UI Kit", + "cover": "thumbs/W18.jpg", + "gallery": [ + "previews/W18/预览 (1).jpg", + "previews/W18/预览 (2).jpg", + "previews/W18/预览 (3).jpg", + "previews/W18/预览 (4).jpg", + "previews/W18/预览 (5).jpg", + "previews/W18/预览 (6).jpg", + "previews/W18/预览 (7).jpg", + "previews/W18/预览 (8).jpg" + ], + "has_fig": false, + "has_sketch": true, + "has_xd": false, + "has_psd": false, + "fig_count": 0, + "sketch_count": 1, + "xd_count": 0, + "archive": "Elemento UI Kit.zip", + "archive_size_mb": 84.2, + "source_rel": "../extracted/W18", + "figma_key": null, + "figma_url": null + }, + { + "id": "W19", + "name": "GamerX-eSport Website UI Kit", + "cover": "thumbs/W19.jpg", + "gallery": [ + "previews/W19/预览 (1).jpg", + "previews/W19/预览 (2).jpg", + "previews/W19/预览 (3).jpg" + ], + "has_fig": false, + "has_sketch": false, + "has_xd": true, + "has_psd": false, + "fig_count": 0, + "sketch_count": 0, + "xd_count": 3, + "archive": "GamerX-eSport Website UI Kit.zip", + "archive_size_mb": 161.8, + "source_rel": "../extracted/W19", + "figma_key": null, + "figma_url": null + }, + { + "id": "W2", + "name": "Core – Dashboard Builder", + "cover": "thumbs/W2.jpg", + "gallery": [], + "has_fig": true, + "has_sketch": true, + "has_xd": true, + "has_psd": false, + "fig_count": 1, + "sketch_count": 9, + "xd_count": 9, + "archive": "Core – Dashboard Builder.7z", + "archive_size_mb": 606.0, + "source_rel": "../extracted/W2", + "figma_key": "G4mWQN0IWGkAKpD7Ga0bG3", + "figma_url": "https://www.figma.com/file/G4mWQN0IWGkAKpD7Ga0bG3" + }, + { + "id": "W20", + "name": "Kovid Flew - Coronavirus Awareness", + "cover": "thumbs/W20.jpg", + "gallery": [ + "previews/W20/预览 (1).jpg", + "previews/W20/预览 (2).jpg", + "previews/W20/预览 (3).jpg", + "previews/W20/预览 (4).jpg" + ], + "has_fig": false, + "has_sketch": true, + "has_xd": false, + "has_psd": false, + "fig_count": 0, + "sketch_count": 1, + "xd_count": 0, + "archive": "Kovid Flew - Coronavirus Awareness.zip", + "archive_size_mb": 200.4, + "source_rel": "../extracted/W20", + "figma_key": null, + "figma_url": null + }, + { + "id": "W21", + "name": "Landing Page UI kit fully compatible", + "cover": "thumbs/W21.jpg", + "gallery": [ + "previews/W21/预览 (1).jpg", + "previews/W21/预览 (2).jpg", + "previews/W21/预览 (3).jpg" + ], + "has_fig": false, + "has_sketch": true, + "has_xd": true, + "has_psd": false, + "fig_count": 0, + "sketch_count": 1, + "xd_count": 1, + "archive": "Landing Page UI kit fully compatible.zip", + "archive_size_mb": 18.9, + "source_rel": "../extracted/W21", + "figma_key": null, + "figma_url": null + }, + { + "id": "W22", + "name": "Okos Landing Pages Pack", + "cover": "thumbs/W22.jpg", + "gallery": [ + "previews/W22/预览 (1).jpg", + "previews/W22/预览 (2).jpg", + "previews/W22/预览 (3).jpg", + "previews/W22/预览 (4).jpg", + "previews/W22/预览 (5).jpg" + ], + "has_fig": false, + "has_sketch": false, + "has_xd": true, + "has_psd": false, + "fig_count": 0, + "sketch_count": 0, + "xd_count": 1, + "archive": "Okos Landing Pages Pack.zip", + "archive_size_mb": 37.0, + "source_rel": "../extracted/W22", + "figma_key": null, + "figma_url": null + }, + { + "id": "W23", + "name": "Ozine UI Kit", + "cover": "thumbs/W23.jpg", + "gallery": [ + "previews/W23/预览 (1).jpg", + "previews/W23/预览 (2).jpg", + "previews/W23/预览 (3).jpg" + ], + "has_fig": false, + "has_sketch": false, + "has_xd": true, + "has_psd": false, + "fig_count": 0, + "sketch_count": 0, + "xd_count": 1, + "archive": "Ozine UI Kit.zip", + "archive_size_mb": 34.3, + "source_rel": "../extracted/W23", + "figma_key": null, + "figma_url": null + }, + { + "id": "W24", + "name": "Webflew Agency Template UI Kit", + "cover": "thumbs/W24.jpg", + "gallery": [ + "previews/W24/预览 (1).jpg", + "previews/W24/预览 (2).jpg", + "previews/W24/预览 (3).jpg", + "previews/W24/预览 (4).jpg", + "previews/W24/预览 (5).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "Webflew Agency Template UI Kit.zip", + "archive_size_mb": 75.1, + "source_rel": "../extracted/W24", + "figma_key": "Sarco9c50gDttu37szmurE", + "figma_url": "https://www.figma.com/file/Sarco9c50gDttu37szmurE" + }, + { + "id": "W25", + "name": "Core – Dashboard Builder", + "cover": "thumbs/W25.jpg", + "gallery": [ + "previews/W25/预览 (1).jpg", + "previews/W25/预览 (2).jpg", + "previews/W25/预览 (3).jpg", + "previews/W25/预览 (4).jpg", + "previews/W25/预览 (5).jpg", + "previews/W25/预览 (6).jpg" + ], + "has_fig": true, + "has_sketch": true, + "has_xd": true, + "has_psd": false, + "fig_count": 1, + "sketch_count": 9, + "xd_count": 9, + "archive": "Core – Dashboard Builder.rar", + "archive_size_mb": 606.2, + "source_rel": "../extracted/W25", + "figma_key": "x3g1FivshKeZ9PwccE7w3w", + "figma_url": "https://www.figma.com/file/x3g1FivshKeZ9PwccE7w3w" + }, + { + "id": "W26", + "name": "Jobhuntly - Job Board & Portal UI Kit", + "cover": "thumbs/W26.jpg", + "gallery": [ + "previews/W26/预览 (1).jpg", + "previews/W26/预览 (2).jpg", + "previews/W26/预览 (3).jpg", + "previews/W26/预览 (4).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "Jobhuntly - Job Board & Portal UI Kit.rar", + "archive_size_mb": 82.3, + "source_rel": "../extracted/W26", + "figma_key": "oyHlh6eh7TjxYhCUbFTvBS", + "figma_url": "https://www.figma.com/file/oyHlh6eh7TjxYhCUbFTvBS" + }, + { + "id": "W27", + "name": "Omega - Landing Page Design Template", + "cover": "thumbs/W27.jpg", + "gallery": [ + "previews/W27/预览 (1).jpg", + "previews/W27/预览 (1).jpg", + "previews/W27/预览 (2).jpg", + "previews/W27/预览 (3).jpg" + ], + "has_fig": false, + "has_sketch": true, + "has_xd": true, + "has_psd": false, + "fig_count": 0, + "sketch_count": 1, + "xd_count": 1, + "archive": "Omega - Landing Page Design Template.zip", + "archive_size_mb": 1542.5, + "source_rel": "../extracted/W27", + "figma_key": null, + "figma_url": null + }, + { + "id": "W28", + "name": "Finity - Landing Page Template", + "cover": "thumbs/W28.jpg", + "gallery": [ + "previews/W28/预览 (1).jpg", + "previews/W28/预览 (2).jpg", + "previews/W28/预览 (3).jpg", + "previews/W28/预览 (4).jpg", + "previews/W28/预览 (5).jpg" + ], + "has_fig": true, + "has_sketch": true, + "has_xd": true, + "has_psd": true, + "fig_count": 1, + "sketch_count": 1, + "xd_count": 1, + "archive": "Finity - Landing Page Template.zip", + "archive_size_mb": 249.9, + "source_rel": "../extracted/W28", + "figma_key": "5R9tevOwnk4iJzU3jEjg0q", + "figma_url": "https://www.figma.com/file/5R9tevOwnk4iJzU3jEjg0q" + }, + { + "id": "W29", + "name": "Loomi", + "cover": "thumbs/W29.jpg", + "gallery": [ + "previews/W29/预览 (1).jpg", + "previews/W29/预览 (2).jpg", + "previews/W29/预览 (3).jpg", + "previews/W29/预览 (4).jpg" + ], + "has_fig": true, + "has_sketch": true, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 1, + "xd_count": 0, + "archive": "Loomi.7z", + "archive_size_mb": 206.8, + "source_rel": "../extracted/W29", + "figma_key": "dvPWtG7KaEWr895iCI0Ioy", + "figma_url": "https://www.figma.com/file/dvPWtG7KaEWr895iCI0Ioy" + }, + { + "id": "W3", + "name": "UXFlow Web Kit Design", + "cover": "thumbs/W3.jpg", + "gallery": [ + "previews/W3/预览 (1).jpg", + "previews/W3/预览 (2).jpg", + "previews/W3/预览 (3).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": true, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 1, + "archive": "UXFlow Web Kit Design.zip", + "archive_size_mb": 36.7, + "source_rel": "../extracted/W3", + "figma_key": "5CZLD5lcxxRQNE1QWjqbmP", + "figma_url": "https://www.figma.com/file/5CZLD5lcxxRQNE1QWjqbmP" + }, + { + "id": "W30", + "name": "Rybble TM", + "cover": "thumbs/W30.jpg", + "gallery": [ + "previews/W30/预览 (1).jpg", + "previews/W30/预览 (2).jpg", + "previews/W30/预览 (3).jpg", + "previews/W30/预览 (4).jpg" + ], + "has_fig": false, + "has_sketch": true, + "has_xd": false, + "has_psd": false, + "fig_count": 0, + "sketch_count": 1, + "xd_count": 0, + "archive": "Rybble TM.zip", + "archive_size_mb": 23.2, + "source_rel": "../extracted/W30", + "figma_key": null, + "figma_url": null + }, + { + "id": "W31", + "name": "Sydney Oasis Hotel - Websites Template", + "cover": "thumbs/W31.jpg", + "gallery": [ + "previews/W31/预览 (1).jpg", + "previews/W31/预览 (2).jpg", + "previews/W31/预览 (3).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "Sydney Oasis Hotel - Websites Template.rar", + "archive_size_mb": 58.9, + "source_rel": "../extracted/W31", + "figma_key": "khWI1rrgwj5702NilEcha2", + "figma_url": "https://www.figma.com/file/khWI1rrgwj5702NilEcha2" + }, + { + "id": "W32", + "name": "DevAgency - Web Ui Kits", + "cover": "thumbs/W32.jpg", + "gallery": [ + "previews/W32/预览 (1).jpg", + "previews/W32/预览 (2).jpg", + "previews/W32/预览 (3).jpg", + "previews/W32/预览 (4).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": true, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 1, + "archive": "DevAgency - Web Ui Kits.zip", + "archive_size_mb": 137.8, + "source_rel": "../extracted/W32", + "figma_key": "qFC0pVEHe9Toc2aJ2MgO32", + "figma_url": "https://www.figma.com/file/qFC0pVEHe9Toc2aJ2MgO32" + }, + { + "id": "W33", + "name": "Insight - Dashboard UI Kit", + "cover": "thumbs/W33.jpg", + "gallery": [ + "previews/W33/预览 (1).jpg", + "previews/W33/预览 (2).jpg", + "previews/W33/预览 (3).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "Insight - Dashboard UI Kit.zip", + "archive_size_mb": 11.6, + "source_rel": "../extracted/W33", + "figma_key": "RKIYTIOCADVsASHNxZ5tr2", + "figma_url": "https://www.figma.com/file/RKIYTIOCADVsASHNxZ5tr2" + }, + { + "id": "W34", + "name": "Intirior Architecture web ui kit", + "cover": "thumbs/W34.jpg", + "gallery": [ + "previews/W34/预览 (1).jpg", + "previews/W34/预览 (2).jpg", + "previews/W34/预览 (3).jpg", + "previews/W34/预览 (4).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "Intirior Architecture web ui kit.zip", + "archive_size_mb": 20.7, + "source_rel": "../extracted/W34", + "figma_key": "BfBzvqu4VK53iSD5fbKNAo", + "figma_url": "https://www.figma.com/file/BfBzvqu4VK53iSD5fbKNAo" + }, + { + "id": "W35", + "name": "JackCreative Personal Portfolio Website Design", + "cover": "thumbs/W35.jpg", + "gallery": [ + "previews/W35/预览 (1).jpg", + "previews/W35/预览 (2).jpg", + "previews/W35/预览 (3).jpg", + "previews/W35/预览 (4).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "JackCreative Personal Portfolio Website Design.zip", + "archive_size_mb": 17.5, + "source_rel": "../extracted/W35", + "figma_key": "RNRNDiF6gFcTCi6wJncvgv", + "figma_url": "https://www.figma.com/file/RNRNDiF6gFcTCi6wJncvgv" + }, + { + "id": "W36", + "name": "AppStarter UI Kit", + "cover": "thumbs/W36.jpg", + "gallery": [ + "previews/W36/预览 (1).jpg", + "previews/W36/预览 (2).jpg", + "previews/W36/预览 (3).jpg", + "previews/W36/预览 (4).jpg" + ], + "has_fig": false, + "has_sketch": true, + "has_xd": false, + "has_psd": true, + "fig_count": 0, + "sketch_count": 4, + "xd_count": 0, + "archive": "AppStarter UI Kit.zip", + "archive_size_mb": 716.5, + "source_rel": "../extracted/W36", + "figma_key": null, + "figma_url": null + }, + { + "id": "W37", + "name": "Daily UI Starter Pages - A ready-made UI Kits", + "cover": "thumbs/W37.jpg", + "gallery": [ + "previews/W37/预览 (1).jpg", + "previews/W37/预览 (2).jpg", + "previews/W37/预览 (3).jpg" + ], + "has_fig": true, + "has_sketch": true, + "has_xd": true, + "has_psd": true, + "fig_count": 30, + "sketch_count": 32, + "xd_count": 32, + "archive": "Daily UI Starter Pages - A ready-made UI Kits.zip", + "archive_size_mb": 67.7, + "source_rel": "../extracted/W37", + "figma_key": "PJHgFt29Lyo3JwMKxa5Tsm", + "figma_url": "https://www.figma.com/file/PJHgFt29Lyo3JwMKxa5Tsm" + }, + { + "id": "W38", + "name": "Figmaland - Startup Ui Kit", + "cover": "thumbs/W38.jpg", + "gallery": [ + "previews/W38/预览 (1).jpg", + "previews/W38/预览 (2).jpg", + "previews/W38/预览 (3).jpg", + "previews/W38/预览 (4).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "Figmaland - Startup Ui Kit.zip", + "archive_size_mb": 21.9, + "source_rel": "../extracted/W38", + "figma_key": "fL1KqwIS3OmHCsUwhgJusG", + "figma_url": "https://www.figma.com/file/fL1KqwIS3OmHCsUwhgJusG" + }, + { + "id": "W39", + "name": "Insight - Awesome Website Template", + "cover": "thumbs/W39.jpg", + "gallery": [ + "previews/W39/预览 (1).jpg", + "previews/W39/预览 (2).jpg", + "previews/W39/预览 (3).jpg", + "previews/W39/预览 (4).jpg", + "previews/W39/预览 (5).jpg" + ], + "has_fig": false, + "has_sketch": false, + "has_xd": true, + "has_psd": false, + "fig_count": 0, + "sketch_count": 0, + "xd_count": 1, + "archive": "Insight - Awesome Website Template.zip", + "archive_size_mb": 18.1, + "source_rel": "../extracted/W39", + "figma_key": null, + "figma_url": null + }, + { + "id": "W4", + "name": "UI KIT Grocery Store", + "cover": "thumbs/W4.jpg", + "gallery": [ + "previews/W4/预览 (1).jpg", + "previews/W4/预览 (2).jpg", + "previews/W4/预览 (3).jpg" + ], + "has_fig": false, + "has_sketch": true, + "has_xd": true, + "has_psd": false, + "fig_count": 0, + "sketch_count": 1, + "xd_count": 1, + "archive": "UI KIT Grocery Store.zip", + "archive_size_mb": 352.7, + "source_rel": "../extracted/W4", + "figma_key": null, + "figma_url": null + }, + { + "id": "W40", + "name": "IOTASK UI Kit", + "cover": "thumbs/W40.jpg", + "gallery": [ + "previews/W40/预览 (1).jpg", + "previews/W40/预览 (1).jpg", + "previews/W40/预览 (2).jpg", + "previews/W40/预览 (2).jpg", + "previews/W40/预览 (3).jpg" + ], + "has_fig": true, + "has_sketch": true, + "has_xd": true, + "has_psd": true, + "fig_count": 1, + "sketch_count": 1, + "xd_count": 1, + "archive": "IOTASK UI Kit.zip", + "archive_size_mb": 964.0, + "source_rel": "../extracted/W40", + "figma_key": "uAcopfnDXakv7l5Jr6sMqG", + "figma_url": "https://www.figma.com/file/uAcopfnDXakv7l5Jr6sMqG" + }, + { + "id": "W41", + "name": "Master Flow - Responsive Template for Figma", + "cover": "thumbs/W41.jpg", + "gallery": [ + "previews/W41/预览 (1).jpg", + "previews/W41/预览 (2).jpg", + "previews/W41/预览 (3).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "Master Flow - Responsive Template for Figma.zip", + "archive_size_mb": 144.8, + "source_rel": "../extracted/W41", + "figma_key": "4OTPxx5sgN8eFJ3joudoVH", + "figma_url": "https://www.figma.com/file/4OTPxx5sgN8eFJ3joudoVH" + }, + { + "id": "W42", + "name": "Milestone UI Kit", + "cover": "thumbs/W42.jpg", + "gallery": [ + "previews/W42/预览 (1).jpg", + "previews/W42/预览 (2).jpg", + "previews/W42/预览 (3).jpg", + "previews/W42/预览 (4).jpg", + "previews/W42/预览 (5).jpg" + ], + "has_fig": false, + "has_sketch": false, + "has_xd": false, + "has_psd": true, + "fig_count": 0, + "sketch_count": 0, + "xd_count": 0, + "archive": "Milestone UI Kit.zip", + "archive_size_mb": 496.6, + "source_rel": "../extracted/W42", + "figma_key": null, + "figma_url": null + }, + { + "id": "W43", + "name": "Modularity Web Design System for Figma", + "cover": "thumbs/W43.jpg", + "gallery": [ + "previews/W43/预览 (1).jpg", + "previews/W43/预览 (2).jpg", + "previews/W43/预览 (3).jpg", + "previews/W43/预览 (4).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "Modularity Web Design System for Figma.zip", + "archive_size_mb": 130.8, + "source_rel": "../extracted/W43", + "figma_key": "huDsMAoVThpYnGAU9j8WVB", + "figma_url": "https://www.figma.com/file/huDsMAoVThpYnGAU9j8WVB" + }, + { + "id": "W44", + "name": "Modularity Web Design System for Sketch", + "cover": "thumbs/W44.jpg", + "gallery": [ + "previews/W44/预览 (1).jpg", + "previews/W44/预览 (2).jpg", + "previews/W44/预览 (3).jpg", + "previews/W44/预览 (4).jpg", + "previews/W44/预览 (5).jpg", + "previews/W44/预览 (6).jpg" + ], + "has_fig": false, + "has_sketch": true, + "has_xd": false, + "has_psd": false, + "fig_count": 0, + "sketch_count": 1, + "xd_count": 0, + "archive": "Modularity Web Design System for Sketch.zip", + "archive_size_mb": 127.6, + "source_rel": "../extracted/W44", + "figma_key": null, + "figma_url": null + }, + { + "id": "W45", + "name": "Wiredunk - Landing Page Template for Multipurposes", + "cover": "thumbs/W45.jpg", + "gallery": [ + "previews/W45/预览 (1).jpg", + "previews/W45/预览 (2).jpg", + "previews/W45/预览 (3).jpg", + "previews/W45/预览 (4).jpg", + "previews/W45/预览 (5).jpg" + ], + "has_fig": true, + "has_sketch": true, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 1, + "xd_count": 0, + "archive": "Wiredunk - Landing Page Template for Multipurposes.zip", + "archive_size_mb": 46.6, + "source_rel": "../extracted/W45", + "figma_key": "oZ7a2aFNZ21bg128ixnB3k", + "figma_url": "https://www.figma.com/file/oZ7a2aFNZ21bg128ixnB3k" + }, + { + "id": "W46", + "name": "agency website template", + "cover": "thumbs/W46.jpg", + "gallery": [ + "previews/W46/预览 (1).jpg", + "previews/W46/预览 (2).jpg", + "previews/W46/预览 (3).jpg", + "previews/W46/预览 (4).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "agency website template.zip", + "archive_size_mb": 38.0, + "source_rel": "../extracted/W46", + "figma_key": "sHmAQQxmvRTIxOg8OgQQFG", + "figma_url": "https://www.figma.com/file/sHmAQQxmvRTIxOg8OgQQFG" + }, + { + "id": "W47", + "name": "Estatery - Real Estate SaaS Web UI Kit", + "cover": "thumbs/W47.jpg", + "gallery": [ + "previews/W47/预览 (1).jpg", + "previews/W47/预览 (2).jpg", + "previews/W47/预览 (3).jpg", + "previews/W47/预览 (4).jpg", + "previews/W47/预览 (5).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "Estatery - Real Estate SaaS Web UI Kit.zip", + "archive_size_mb": 203.4, + "source_rel": "../extracted/W47", + "figma_key": "Suvu5K5DSKPngkMKRb01MK", + "figma_url": "https://www.figma.com/file/Suvu5K5DSKPngkMKRb01MK" + }, + { + "id": "W48", + "name": "LANDINGKUY - Landing Page Design Templates", + "cover": "thumbs/W48.jpg", + "gallery": [ + "previews/W48/预览 (1).jpg", + "previews/W48/预览 (2).jpg", + "previews/W48/预览 (3).jpg", + "previews/W48/预览 (4).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "LANDINGKUY - Landing Page Design Templates.zip", + "archive_size_mb": 79.5, + "source_rel": "../extracted/W48", + "figma_key": "df0oLsZta06a79s5iepJdF", + "figma_url": "https://www.figma.com/file/df0oLsZta06a79s5iepJdF" + }, + { + "id": "W49", + "name": "Materia Ui Kit with Design system", + "cover": "thumbs/W49.jpg", + "gallery": [ + "previews/W49/预览 (1).jpg", + "previews/W49/预览 (2).jpg", + "previews/W49/预览 (3).jpg" + ], + "has_fig": false, + "has_sketch": false, + "has_xd": true, + "has_psd": false, + "fig_count": 0, + "sketch_count": 0, + "xd_count": 1, + "archive": "Materia Ui Kit with Design system.zip", + "archive_size_mb": 114.5, + "source_rel": "../extracted/W49", + "figma_key": null, + "figma_url": null + }, + { + "id": "W5", + "name": "Wiloa 2.0 - Landing Page UI-Kit", + "cover": "thumbs/W5.jpg", + "gallery": [ + "previews/W5/预览 (1).jpg", + "previews/W5/预览 (2).jpg", + "previews/W5/预览 (3).jpg" + ], + "has_fig": true, + "has_sketch": true, + "has_xd": true, + "has_psd": false, + "fig_count": 4, + "sketch_count": 3, + "xd_count": 4, + "archive": "Wiloa 2.0 - Landing Page UI-Kit.zip", + "archive_size_mb": 75.9, + "source_rel": "../extracted/W5", + "figma_key": "7C3QNOG6FhBRguT3nQ3dzf", + "figma_url": "https://www.figma.com/file/7C3QNOG6FhBRguT3nQ3dzf" + }, + { + "id": "W50", + "name": "Modern CCTV And Home Security Website UIKit", + "cover": "thumbs/W50.jpg", + "gallery": [ + "previews/W50/预览 (1).jpg", + "previews/W50/预览 (2).jpg", + "previews/W50/预览 (3).jpg" + ], + "has_fig": false, + "has_sketch": false, + "has_xd": true, + "has_psd": false, + "fig_count": 0, + "sketch_count": 0, + "xd_count": 1, + "archive": "Modern CCTV And Home Security Website UIKit.zip", + "archive_size_mb": 116.1, + "source_rel": "../extracted/W50", + "figma_key": null, + "figma_url": null + }, + { + "id": "W51", + "name": "Quickr Design System", + "cover": "thumbs/W51.jpg", + "gallery": [ + "previews/W51/预览 (1).jpg", + "previews/W51/预览 (2).jpg", + "previews/W51/预览 (3).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "Quickr Design System.zip", + "archive_size_mb": 22.6, + "source_rel": "../extracted/W51", + "figma_key": "KtGIx2vrYNtApMiPYCTiiB", + "figma_url": "https://www.figma.com/file/KtGIx2vrYNtApMiPYCTiiB" + }, + { + "id": "W52", + "name": "RealStatic - Real State Website Design", + "cover": "thumbs/W52.jpg", + "gallery": [ + "previews/W52/预览 (1).jpg", + "previews/W52/预览 (2).jpg", + "previews/W52/预览 (3).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "RealStatic - Real State Website Design.zip", + "archive_size_mb": 57.0, + "source_rel": "../extracted/W52", + "figma_key": "U4YDJ7B0Sefem9r8LiEs8b", + "figma_url": "https://www.figma.com/file/U4YDJ7B0Sefem9r8LiEs8b" + }, + { + "id": "W53", + "name": "Skill Shoot - Online course website and responsive uikit", + "cover": "thumbs/W53.jpg", + "gallery": [ + "previews/W53/预览 (1).jpg", + "previews/W53/预览 (2).jpg", + "previews/W53/预览 (3).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "Skill Shoot - Online course website and responsive uikit.zip", + "archive_size_mb": 52.0, + "source_rel": "../extracted/W53", + "figma_key": "pMjAEiLKAFE57eaI4f4vva", + "figma_url": "https://www.figma.com/file/pMjAEiLKAFE57eaI4f4vva" + }, + { + "id": "W54", + "name": "GetPay - 6 Unique Finance Landing Pages", + "cover": "thumbs/W54.jpg", + "gallery": [ + "previews/W54/预览 (1).jpg", + "previews/W54/预览 (2).jpg", + "previews/W54/预览 (3).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "GetPay - 6 Unique Finance Landing Pages.zip", + "archive_size_mb": 49.2, + "source_rel": "../extracted/W54", + "figma_key": "vcb4bLF79NTpybgXvAtkNM", + "figma_url": "https://www.figma.com/file/vcb4bLF79NTpybgXvAtkNM" + }, + { + "id": "W55", + "name": "Fecca - Landing Page UI Kit (Figma)", + "cover": "thumbs/W55.jpg", + "gallery": [ + "previews/W55/预览 (1).jpg", + "previews/W55/预览 (2).jpg", + "previews/W55/预览 (3).jpg", + "previews/W55/预览 (4).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 0, + "xd_count": 0, + "archive": "Fecca - Landing Page UI Kit (Figma).zip", + "archive_size_mb": 48.3, + "source_rel": "../extracted/W55", + "figma_key": "IpdxPbiWuGZQpr3aNXsVpC", + "figma_url": "https://www.figma.com/file/IpdxPbiWuGZQpr3aNXsVpC" + }, + { + "id": "W56", + "name": "Orabel Web UI Kit", + "cover": "thumbs/W56.jpg", + "gallery": [ + "previews/W56/预览 (1).jpg", + "previews/W56/预览 (2).jpg", + "previews/W56/预览 (3).jpg" + ], + "has_fig": true, + "has_sketch": false, + "has_xd": false, + "has_psd": false, + "fig_count": 6, + "sketch_count": 0, + "xd_count": 0, + "archive": "Orabel Web UI Kit.zip", + "archive_size_mb": 299.9, + "source_rel": "../extracted/W56", + "figma_key": "IoQBzPjHw51WjFKL52kJKN", + "figma_url": "https://www.figma.com/file/IoQBzPjHw51WjFKL52kJKN" + }, + { + "id": "W6", + "name": "AKASHA Pages Building Kit", + "cover": "thumbs/W6.jpg", + "gallery": [ + "previews/W6/预览 (1).jpg", + "previews/W6/预览 (2).jpg", + "previews/W6/预览 (3).jpg", + "previews/W6/预览 (4).jpg", + "previews/W6/预览 (5).jpg" + ], + "has_fig": true, + "has_sketch": true, + "has_xd": false, + "has_psd": false, + "fig_count": 1, + "sketch_count": 1, + "xd_count": 0, + "archive": "AKASHA Pages Building Kit.zip", + "archive_size_mb": 413.7, + "source_rel": "../extracted/W6", + "figma_key": "LA2daTQaigGkMUUNgPr6fp", + "figma_url": "https://www.figma.com/file/LA2daTQaigGkMUUNgPr6fp" + }, + { + "id": "W7", + "name": "Bright Kit Web Layouts", + "cover": "thumbs/W7.jpg", + "gallery": [ + "previews/W7/预览 (1).jpg", + "previews/W7/预览 (2).jpg", + "previews/W7/预览 (3).jpg", + "previews/W7/预览 (4).jpg" + ], + "has_fig": true, + "has_sketch": true, + "has_xd": true, + "has_psd": false, + "fig_count": 1, + "sketch_count": 1, + "xd_count": 1, + "archive": "Bright Kit Web Layouts.zip", + "archive_size_mb": 106.5, + "source_rel": "../extracted/W7", + "figma_key": "CLZepne3voPYx198q3wUHO", + "figma_url": "https://www.figma.com/file/CLZepne3voPYx198q3wUHO" + }, + { + "id": "W8", + "name": "ClearAgency - Digital agency website template", + "cover": "thumbs/W8.jpg", + "gallery": [ + "previews/W8/预览 (1).jpg", + "previews/W8/预览 (2).jpg", + "previews/W8/预览 (3).jpg", + "previews/W8/预览 (4).jpg" + ], + "has_fig": false, + "has_sketch": false, + "has_xd": true, + "has_psd": false, + "fig_count": 0, + "sketch_count": 0, + "xd_count": 1, + "archive": "ClearAgency - Digital agency website template.zip", + "archive_size_mb": 69.0, + "source_rel": "../extracted/W8", + "figma_key": null, + "figma_url": null + }, + { + "id": "W9", + "name": "Fresh Grocery - Landing Page Design Template", + "cover": "thumbs/W9.jpg", + "gallery": [ + "previews/W9/预览 (1).jpg", + "previews/W9/预览 (2).jpg", + "previews/W9/预览 (3).jpg" + ], + "has_fig": false, + "has_sketch": true, + "has_xd": true, + "has_psd": false, + "fig_count": 0, + "sketch_count": 1, + "xd_count": 1, + "archive": "Fresh Grocery - Landing Page Design Template.zip", + "archive_size_mb": 15.5, + "source_rel": "../extracted/W9", + "figma_key": null, + "figma_url": null + } + ], + "imported_summary": "✅ 35 个 Figma 原生文件已云端就位在你的 Figma Drafts。点卡片打开 modal 查看 iframe 实时投射 + 跳 Figma 编辑。" +} \ No newline at end of file diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..1e2172c --- /dev/null +++ b/web/index.html @@ -0,0 +1,56 @@ + + + + + +Figma 模板库 · 56 套精选 + + + + +
+
+

Figma 模板库

+

56 套 Web UI Kit · 35 套 Figma 原生 · 本地源包 + 预览 + 可投射到个人账户

+
+ +
+
+ + + +
+
+ +
+ + + +
+
+ 本地路径:~/Projects/research/20260422-figma模板库/ + +
+
+ + + + diff --git a/web/previews/W1/预览 (1).jpg b/web/previews/W1/预览 (1).jpg new file mode 100644 index 0000000..8a33f13 Binary files /dev/null and b/web/previews/W1/预览 (1).jpg differ diff --git a/web/previews/W1/预览 (2).jpg b/web/previews/W1/预览 (2).jpg new file mode 100644 index 0000000..669e2ee Binary files /dev/null and b/web/previews/W1/预览 (2).jpg differ diff --git a/web/previews/W1/预览 (3).jpg b/web/previews/W1/预览 (3).jpg new file mode 100644 index 0000000..1199eb6 Binary files /dev/null and b/web/previews/W1/预览 (3).jpg differ diff --git a/web/previews/W10/预览 (1).jpg b/web/previews/W10/预览 (1).jpg new file mode 100644 index 0000000..a028ef8 Binary files /dev/null and b/web/previews/W10/预览 (1).jpg differ diff --git a/web/previews/W10/预览 (2).jpg b/web/previews/W10/预览 (2).jpg new file mode 100644 index 0000000..8668511 Binary files /dev/null and b/web/previews/W10/预览 (2).jpg differ diff --git a/web/previews/W10/预览 (3).jpg b/web/previews/W10/预览 (3).jpg new file mode 100644 index 0000000..d28b160 Binary files /dev/null and b/web/previews/W10/预览 (3).jpg differ diff --git a/web/previews/W11/预览 (1).jpg b/web/previews/W11/预览 (1).jpg new file mode 100644 index 0000000..3da77f7 Binary files /dev/null and b/web/previews/W11/预览 (1).jpg differ diff --git a/web/previews/W11/预览 (2).jpg b/web/previews/W11/预览 (2).jpg new file mode 100644 index 0000000..3de016d Binary files /dev/null and b/web/previews/W11/预览 (2).jpg differ diff --git a/web/previews/W11/预览 (3).jpg b/web/previews/W11/预览 (3).jpg new file mode 100644 index 0000000..7c26cc4 Binary files /dev/null and b/web/previews/W11/预览 (3).jpg differ diff --git a/web/previews/W11/预览 (4).jpg b/web/previews/W11/预览 (4).jpg new file mode 100644 index 0000000..7d5e98e Binary files /dev/null and b/web/previews/W11/预览 (4).jpg differ diff --git a/web/previews/W11/预览 (5).jpg b/web/previews/W11/预览 (5).jpg new file mode 100644 index 0000000..728a1de Binary files /dev/null and b/web/previews/W11/预览 (5).jpg differ diff --git a/web/previews/W11/预览 (6).jpg b/web/previews/W11/预览 (6).jpg new file mode 100644 index 0000000..650bc38 Binary files /dev/null and b/web/previews/W11/预览 (6).jpg differ diff --git a/web/previews/W11/预览 (7).jpg b/web/previews/W11/预览 (7).jpg new file mode 100644 index 0000000..c268bd4 Binary files /dev/null and b/web/previews/W11/预览 (7).jpg differ diff --git a/web/previews/W12/预览 (1).jpg b/web/previews/W12/预览 (1).jpg new file mode 100644 index 0000000..8e9a3a3 Binary files /dev/null and b/web/previews/W12/预览 (1).jpg differ diff --git a/web/previews/W12/预览 (2).jpg b/web/previews/W12/预览 (2).jpg new file mode 100644 index 0000000..5d68472 Binary files /dev/null and b/web/previews/W12/预览 (2).jpg differ diff --git a/web/previews/W12/预览 (3).jpg b/web/previews/W12/预览 (3).jpg new file mode 100644 index 0000000..33242c9 Binary files /dev/null and b/web/previews/W12/预览 (3).jpg differ diff --git a/web/previews/W12/预览 (4).jpg b/web/previews/W12/预览 (4).jpg new file mode 100644 index 0000000..859a35f Binary files /dev/null and b/web/previews/W12/预览 (4).jpg differ diff --git a/web/previews/W13/预览 (1).jpg b/web/previews/W13/预览 (1).jpg new file mode 100644 index 0000000..39b0848 Binary files /dev/null and b/web/previews/W13/预览 (1).jpg differ diff --git a/web/previews/W13/预览 (2).jpg b/web/previews/W13/预览 (2).jpg new file mode 100644 index 0000000..4cf502a Binary files /dev/null and b/web/previews/W13/预览 (2).jpg differ diff --git a/web/previews/W13/预览 (3).jpg b/web/previews/W13/预览 (3).jpg new file mode 100644 index 0000000..530dcc8 Binary files /dev/null and b/web/previews/W13/预览 (3).jpg differ diff --git a/web/previews/W13/预览 (4).jpg b/web/previews/W13/预览 (4).jpg new file mode 100644 index 0000000..d13195a Binary files /dev/null and b/web/previews/W13/预览 (4).jpg differ diff --git a/web/previews/W14/预览 (1).jpg b/web/previews/W14/预览 (1).jpg new file mode 100644 index 0000000..a004b73 Binary files /dev/null and b/web/previews/W14/预览 (1).jpg differ diff --git a/web/previews/W14/预览 (2).jpg b/web/previews/W14/预览 (2).jpg new file mode 100644 index 0000000..22bbccf Binary files /dev/null and b/web/previews/W14/预览 (2).jpg differ diff --git a/web/previews/W14/预览 (3).jpg b/web/previews/W14/预览 (3).jpg new file mode 100644 index 0000000..b0dc20b Binary files /dev/null and b/web/previews/W14/预览 (3).jpg differ diff --git a/web/previews/W15/预览 (1).jpg b/web/previews/W15/预览 (1).jpg new file mode 100644 index 0000000..15499e2 Binary files /dev/null and b/web/previews/W15/预览 (1).jpg differ diff --git a/web/previews/W15/预览 (2).jpg b/web/previews/W15/预览 (2).jpg new file mode 100644 index 0000000..0f840dd Binary files /dev/null and b/web/previews/W15/预览 (2).jpg differ diff --git a/web/previews/W15/预览 (3).jpg b/web/previews/W15/预览 (3).jpg new file mode 100644 index 0000000..8c585a2 Binary files /dev/null and b/web/previews/W15/预览 (3).jpg differ diff --git a/web/previews/W15/预览 (4).jpg b/web/previews/W15/预览 (4).jpg new file mode 100644 index 0000000..28e83df Binary files /dev/null and b/web/previews/W15/预览 (4).jpg differ diff --git a/web/previews/W15/预览 (5).jpg b/web/previews/W15/预览 (5).jpg new file mode 100644 index 0000000..a80c99c Binary files /dev/null and b/web/previews/W15/预览 (5).jpg differ diff --git a/web/previews/W16/预览 (1).jpg b/web/previews/W16/预览 (1).jpg new file mode 100644 index 0000000..d6edfb8 Binary files /dev/null and b/web/previews/W16/预览 (1).jpg differ diff --git a/web/previews/W16/预览 (2).jpg b/web/previews/W16/预览 (2).jpg new file mode 100644 index 0000000..ef16b01 Binary files /dev/null and b/web/previews/W16/预览 (2).jpg differ diff --git a/web/previews/W16/预览 (3).jpg b/web/previews/W16/预览 (3).jpg new file mode 100644 index 0000000..1e3ed0e Binary files /dev/null and b/web/previews/W16/预览 (3).jpg differ diff --git a/web/previews/W16/预览 (4).jpg b/web/previews/W16/预览 (4).jpg new file mode 100644 index 0000000..7ebb8d1 Binary files /dev/null and b/web/previews/W16/预览 (4).jpg differ diff --git a/web/previews/W16/预览 (5).jpg b/web/previews/W16/预览 (5).jpg new file mode 100644 index 0000000..4360587 Binary files /dev/null and b/web/previews/W16/预览 (5).jpg differ diff --git a/web/previews/W17/预览 (1).jpg b/web/previews/W17/预览 (1).jpg new file mode 100644 index 0000000..34ac584 Binary files /dev/null and b/web/previews/W17/预览 (1).jpg differ diff --git a/web/previews/W17/预览 (2).jpg b/web/previews/W17/预览 (2).jpg new file mode 100644 index 0000000..236537b Binary files /dev/null and b/web/previews/W17/预览 (2).jpg differ diff --git a/web/previews/W17/预览 (3).jpg b/web/previews/W17/预览 (3).jpg new file mode 100644 index 0000000..950150c Binary files /dev/null and b/web/previews/W17/预览 (3).jpg differ diff --git a/web/previews/W17/预览 (4).jpg b/web/previews/W17/预览 (4).jpg new file mode 100644 index 0000000..ef1358b Binary files /dev/null and b/web/previews/W17/预览 (4).jpg differ diff --git a/web/previews/W18/预览 (1).jpg b/web/previews/W18/预览 (1).jpg new file mode 100644 index 0000000..0001dc9 Binary files /dev/null and b/web/previews/W18/预览 (1).jpg differ diff --git a/web/previews/W18/预览 (2).jpg b/web/previews/W18/预览 (2).jpg new file mode 100644 index 0000000..5bcdc47 Binary files /dev/null and b/web/previews/W18/预览 (2).jpg differ diff --git a/web/previews/W18/预览 (3).jpg b/web/previews/W18/预览 (3).jpg new file mode 100644 index 0000000..f393fac Binary files /dev/null and b/web/previews/W18/预览 (3).jpg differ diff --git a/web/previews/W18/预览 (4).jpg b/web/previews/W18/预览 (4).jpg new file mode 100644 index 0000000..4ca336b Binary files /dev/null and b/web/previews/W18/预览 (4).jpg differ diff --git a/web/previews/W18/预览 (5).jpg b/web/previews/W18/预览 (5).jpg new file mode 100644 index 0000000..ce3e3ac Binary files /dev/null and b/web/previews/W18/预览 (5).jpg differ diff --git a/web/previews/W18/预览 (6).jpg b/web/previews/W18/预览 (6).jpg new file mode 100644 index 0000000..f005797 Binary files /dev/null and b/web/previews/W18/预览 (6).jpg differ diff --git a/web/previews/W18/预览 (7).jpg b/web/previews/W18/预览 (7).jpg new file mode 100644 index 0000000..610df4a Binary files /dev/null and b/web/previews/W18/预览 (7).jpg differ diff --git a/web/previews/W18/预览 (8).jpg b/web/previews/W18/预览 (8).jpg new file mode 100644 index 0000000..d0afc3a Binary files /dev/null and b/web/previews/W18/预览 (8).jpg differ diff --git a/web/previews/W19/预览 (1).jpg b/web/previews/W19/预览 (1).jpg new file mode 100644 index 0000000..d53df5f Binary files /dev/null and b/web/previews/W19/预览 (1).jpg differ diff --git a/web/previews/W19/预览 (2).jpg b/web/previews/W19/预览 (2).jpg new file mode 100644 index 0000000..2d644dc Binary files /dev/null and b/web/previews/W19/预览 (2).jpg differ diff --git a/web/previews/W19/预览 (3).jpg b/web/previews/W19/预览 (3).jpg new file mode 100644 index 0000000..8edca5d Binary files /dev/null and b/web/previews/W19/预览 (3).jpg differ diff --git a/web/previews/W20/预览 (1).jpg b/web/previews/W20/预览 (1).jpg new file mode 100644 index 0000000..8d67ed3 Binary files /dev/null and b/web/previews/W20/预览 (1).jpg differ diff --git a/web/previews/W20/预览 (2).jpg b/web/previews/W20/预览 (2).jpg new file mode 100644 index 0000000..4dbdee2 Binary files /dev/null and b/web/previews/W20/预览 (2).jpg differ diff --git a/web/previews/W20/预览 (3).jpg b/web/previews/W20/预览 (3).jpg new file mode 100644 index 0000000..8e8acdc Binary files /dev/null and b/web/previews/W20/预览 (3).jpg differ diff --git a/web/previews/W20/预览 (4).jpg b/web/previews/W20/预览 (4).jpg new file mode 100644 index 0000000..ea22e54 Binary files /dev/null and b/web/previews/W20/预览 (4).jpg differ diff --git a/web/previews/W21/预览 (1).jpg b/web/previews/W21/预览 (1).jpg new file mode 100644 index 0000000..042744f Binary files /dev/null and b/web/previews/W21/预览 (1).jpg differ diff --git a/web/previews/W21/预览 (2).jpg b/web/previews/W21/预览 (2).jpg new file mode 100644 index 0000000..abc41de Binary files /dev/null and b/web/previews/W21/预览 (2).jpg differ diff --git a/web/previews/W21/预览 (3).jpg b/web/previews/W21/预览 (3).jpg new file mode 100644 index 0000000..118939f Binary files /dev/null and b/web/previews/W21/预览 (3).jpg differ diff --git a/web/previews/W22/预览 (1).jpg b/web/previews/W22/预览 (1).jpg new file mode 100644 index 0000000..95311cb Binary files /dev/null and b/web/previews/W22/预览 (1).jpg differ diff --git a/web/previews/W22/预览 (2).jpg b/web/previews/W22/预览 (2).jpg new file mode 100644 index 0000000..0956f68 Binary files /dev/null and b/web/previews/W22/预览 (2).jpg differ diff --git a/web/previews/W22/预览 (3).jpg b/web/previews/W22/预览 (3).jpg new file mode 100644 index 0000000..59c4850 Binary files /dev/null and b/web/previews/W22/预览 (3).jpg differ diff --git a/web/previews/W22/预览 (4).jpg b/web/previews/W22/预览 (4).jpg new file mode 100644 index 0000000..60afa60 Binary files /dev/null and b/web/previews/W22/预览 (4).jpg differ diff --git a/web/previews/W22/预览 (5).jpg b/web/previews/W22/预览 (5).jpg new file mode 100644 index 0000000..9855792 Binary files /dev/null and b/web/previews/W22/预览 (5).jpg differ diff --git a/web/previews/W23/预览 (1).jpg b/web/previews/W23/预览 (1).jpg new file mode 100644 index 0000000..725484e Binary files /dev/null and b/web/previews/W23/预览 (1).jpg differ diff --git a/web/previews/W23/预览 (2).jpg b/web/previews/W23/预览 (2).jpg new file mode 100644 index 0000000..0cfe820 Binary files /dev/null and b/web/previews/W23/预览 (2).jpg differ diff --git a/web/previews/W23/预览 (3).jpg b/web/previews/W23/预览 (3).jpg new file mode 100644 index 0000000..1ee9c7f Binary files /dev/null and b/web/previews/W23/预览 (3).jpg differ diff --git a/web/previews/W24/预览 (1).jpg b/web/previews/W24/预览 (1).jpg new file mode 100644 index 0000000..ef6fdf9 Binary files /dev/null and b/web/previews/W24/预览 (1).jpg differ diff --git a/web/previews/W24/预览 (2).jpg b/web/previews/W24/预览 (2).jpg new file mode 100644 index 0000000..6dffc0c Binary files /dev/null and b/web/previews/W24/预览 (2).jpg differ diff --git a/web/previews/W24/预览 (3).jpg b/web/previews/W24/预览 (3).jpg new file mode 100644 index 0000000..9630371 Binary files /dev/null and b/web/previews/W24/预览 (3).jpg differ diff --git a/web/previews/W24/预览 (4).jpg b/web/previews/W24/预览 (4).jpg new file mode 100644 index 0000000..23b327c Binary files /dev/null and b/web/previews/W24/预览 (4).jpg differ diff --git a/web/previews/W24/预览 (5).jpg b/web/previews/W24/预览 (5).jpg new file mode 100644 index 0000000..8d7ede7 Binary files /dev/null and b/web/previews/W24/预览 (5).jpg differ diff --git a/web/previews/W25/预览 (1).jpg b/web/previews/W25/预览 (1).jpg new file mode 100644 index 0000000..6342711 Binary files /dev/null and b/web/previews/W25/预览 (1).jpg differ diff --git a/web/previews/W25/预览 (2).jpg b/web/previews/W25/预览 (2).jpg new file mode 100644 index 0000000..c06f683 Binary files /dev/null and b/web/previews/W25/预览 (2).jpg differ diff --git a/web/previews/W25/预览 (3).jpg b/web/previews/W25/预览 (3).jpg new file mode 100644 index 0000000..7fbd500 Binary files /dev/null and b/web/previews/W25/预览 (3).jpg differ diff --git a/web/previews/W25/预览 (4).jpg b/web/previews/W25/预览 (4).jpg new file mode 100644 index 0000000..b012656 Binary files /dev/null and b/web/previews/W25/预览 (4).jpg differ diff --git a/web/previews/W25/预览 (5).jpg b/web/previews/W25/预览 (5).jpg new file mode 100644 index 0000000..f3372e8 Binary files /dev/null and b/web/previews/W25/预览 (5).jpg differ diff --git a/web/previews/W25/预览 (6).jpg b/web/previews/W25/预览 (6).jpg new file mode 100644 index 0000000..9f74cc2 Binary files /dev/null and b/web/previews/W25/预览 (6).jpg differ diff --git a/web/previews/W26/预览 (1).jpg b/web/previews/W26/预览 (1).jpg new file mode 100644 index 0000000..79abd47 Binary files /dev/null and b/web/previews/W26/预览 (1).jpg differ diff --git a/web/previews/W26/预览 (2).jpg b/web/previews/W26/预览 (2).jpg new file mode 100644 index 0000000..5128a78 Binary files /dev/null and b/web/previews/W26/预览 (2).jpg differ diff --git a/web/previews/W26/预览 (3).jpg b/web/previews/W26/预览 (3).jpg new file mode 100644 index 0000000..8005d03 Binary files /dev/null and b/web/previews/W26/预览 (3).jpg differ diff --git a/web/previews/W26/预览 (4).jpg b/web/previews/W26/预览 (4).jpg new file mode 100644 index 0000000..28a6fa9 Binary files /dev/null and b/web/previews/W26/预览 (4).jpg differ diff --git a/web/previews/W27/预览 (1).jpg b/web/previews/W27/预览 (1).jpg new file mode 100644 index 0000000..1687c54 Binary files /dev/null and b/web/previews/W27/预览 (1).jpg differ diff --git a/web/previews/W27/预览 (2).jpg b/web/previews/W27/预览 (2).jpg new file mode 100644 index 0000000..b625ffe Binary files /dev/null and b/web/previews/W27/预览 (2).jpg differ diff --git a/web/previews/W27/预览 (3).jpg b/web/previews/W27/预览 (3).jpg new file mode 100644 index 0000000..5319b5a Binary files /dev/null and b/web/previews/W27/预览 (3).jpg differ diff --git a/web/previews/W28/预览 (1).jpg b/web/previews/W28/预览 (1).jpg new file mode 100644 index 0000000..c85d69f Binary files /dev/null and b/web/previews/W28/预览 (1).jpg differ diff --git a/web/previews/W28/预览 (2).jpg b/web/previews/W28/预览 (2).jpg new file mode 100644 index 0000000..069e77e Binary files /dev/null and b/web/previews/W28/预览 (2).jpg differ diff --git a/web/previews/W28/预览 (3).jpg b/web/previews/W28/预览 (3).jpg new file mode 100644 index 0000000..3067c40 Binary files /dev/null and b/web/previews/W28/预览 (3).jpg differ diff --git a/web/previews/W28/预览 (4).jpg b/web/previews/W28/预览 (4).jpg new file mode 100644 index 0000000..c6e0f53 Binary files /dev/null and b/web/previews/W28/预览 (4).jpg differ diff --git a/web/previews/W28/预览 (5).jpg b/web/previews/W28/预览 (5).jpg new file mode 100644 index 0000000..16b997c Binary files /dev/null and b/web/previews/W28/预览 (5).jpg differ diff --git a/web/previews/W29/预览 (1).jpg b/web/previews/W29/预览 (1).jpg new file mode 100644 index 0000000..4999a1f Binary files /dev/null and b/web/previews/W29/预览 (1).jpg differ diff --git a/web/previews/W29/预览 (2).jpg b/web/previews/W29/预览 (2).jpg new file mode 100644 index 0000000..1dccab9 Binary files /dev/null and b/web/previews/W29/预览 (2).jpg differ diff --git a/web/previews/W29/预览 (3).jpg b/web/previews/W29/预览 (3).jpg new file mode 100644 index 0000000..33e9d5b Binary files /dev/null and b/web/previews/W29/预览 (3).jpg differ diff --git a/web/previews/W29/预览 (4).jpg b/web/previews/W29/预览 (4).jpg new file mode 100644 index 0000000..1ec113c Binary files /dev/null and b/web/previews/W29/预览 (4).jpg differ diff --git a/web/previews/W3/预览 (1).jpg b/web/previews/W3/预览 (1).jpg new file mode 100644 index 0000000..5f86e44 Binary files /dev/null and b/web/previews/W3/预览 (1).jpg differ diff --git a/web/previews/W3/预览 (2).jpg b/web/previews/W3/预览 (2).jpg new file mode 100644 index 0000000..5b028ff Binary files /dev/null and b/web/previews/W3/预览 (2).jpg differ diff --git a/web/previews/W3/预览 (3).jpg b/web/previews/W3/预览 (3).jpg new file mode 100644 index 0000000..351edbf Binary files /dev/null and b/web/previews/W3/预览 (3).jpg differ diff --git a/web/previews/W30/预览 (1).jpg b/web/previews/W30/预览 (1).jpg new file mode 100644 index 0000000..e784462 Binary files /dev/null and b/web/previews/W30/预览 (1).jpg differ diff --git a/web/previews/W30/预览 (2).jpg b/web/previews/W30/预览 (2).jpg new file mode 100644 index 0000000..e7d9ccc Binary files /dev/null and b/web/previews/W30/预览 (2).jpg differ diff --git a/web/previews/W30/预览 (3).jpg b/web/previews/W30/预览 (3).jpg new file mode 100644 index 0000000..f89c353 Binary files /dev/null and b/web/previews/W30/预览 (3).jpg differ diff --git a/web/previews/W30/预览 (4).jpg b/web/previews/W30/预览 (4).jpg new file mode 100644 index 0000000..6976cad Binary files /dev/null and b/web/previews/W30/预览 (4).jpg differ diff --git a/web/previews/W31/预览 (1).jpg b/web/previews/W31/预览 (1).jpg new file mode 100644 index 0000000..8d51831 Binary files /dev/null and b/web/previews/W31/预览 (1).jpg differ diff --git a/web/previews/W31/预览 (2).jpg b/web/previews/W31/预览 (2).jpg new file mode 100644 index 0000000..6ff57d7 Binary files /dev/null and b/web/previews/W31/预览 (2).jpg differ diff --git a/web/previews/W31/预览 (3).jpg b/web/previews/W31/预览 (3).jpg new file mode 100644 index 0000000..fce0b36 Binary files /dev/null and b/web/previews/W31/预览 (3).jpg differ diff --git a/web/previews/W32/预览 (1).jpg b/web/previews/W32/预览 (1).jpg new file mode 100644 index 0000000..d87b57e Binary files /dev/null and b/web/previews/W32/预览 (1).jpg differ diff --git a/web/previews/W32/预览 (2).jpg b/web/previews/W32/预览 (2).jpg new file mode 100644 index 0000000..cfc2ac1 Binary files /dev/null and b/web/previews/W32/预览 (2).jpg differ diff --git a/web/previews/W32/预览 (3).jpg b/web/previews/W32/预览 (3).jpg new file mode 100644 index 0000000..349b409 Binary files /dev/null and b/web/previews/W32/预览 (3).jpg differ diff --git a/web/previews/W32/预览 (4).jpg b/web/previews/W32/预览 (4).jpg new file mode 100644 index 0000000..05d2b39 Binary files /dev/null and b/web/previews/W32/预览 (4).jpg differ diff --git a/web/previews/W33/预览 (1).jpg b/web/previews/W33/预览 (1).jpg new file mode 100644 index 0000000..2e6d8e3 Binary files /dev/null and b/web/previews/W33/预览 (1).jpg differ diff --git a/web/previews/W33/预览 (2).jpg b/web/previews/W33/预览 (2).jpg new file mode 100644 index 0000000..c9a1899 Binary files /dev/null and b/web/previews/W33/预览 (2).jpg differ diff --git a/web/previews/W33/预览 (3).jpg b/web/previews/W33/预览 (3).jpg new file mode 100644 index 0000000..53b4f33 Binary files /dev/null and b/web/previews/W33/预览 (3).jpg differ diff --git a/web/previews/W34/预览 (1).jpg b/web/previews/W34/预览 (1).jpg new file mode 100644 index 0000000..cd0382a Binary files /dev/null and b/web/previews/W34/预览 (1).jpg differ diff --git a/web/previews/W34/预览 (2).jpg b/web/previews/W34/预览 (2).jpg new file mode 100644 index 0000000..3404ed3 Binary files /dev/null and b/web/previews/W34/预览 (2).jpg differ diff --git a/web/previews/W34/预览 (3).jpg b/web/previews/W34/预览 (3).jpg new file mode 100644 index 0000000..af3777e Binary files /dev/null and b/web/previews/W34/预览 (3).jpg differ diff --git a/web/previews/W34/预览 (4).jpg b/web/previews/W34/预览 (4).jpg new file mode 100644 index 0000000..91fbb43 Binary files /dev/null and b/web/previews/W34/预览 (4).jpg differ diff --git a/web/previews/W35/预览 (1).jpg b/web/previews/W35/预览 (1).jpg new file mode 100644 index 0000000..620682c Binary files /dev/null and b/web/previews/W35/预览 (1).jpg differ diff --git a/web/previews/W35/预览 (2).jpg b/web/previews/W35/预览 (2).jpg new file mode 100644 index 0000000..c1f9073 Binary files /dev/null and b/web/previews/W35/预览 (2).jpg differ diff --git a/web/previews/W35/预览 (3).jpg b/web/previews/W35/预览 (3).jpg new file mode 100644 index 0000000..860b970 Binary files /dev/null and b/web/previews/W35/预览 (3).jpg differ diff --git a/web/previews/W35/预览 (4).jpg b/web/previews/W35/预览 (4).jpg new file mode 100644 index 0000000..860b970 Binary files /dev/null and b/web/previews/W35/预览 (4).jpg differ diff --git a/web/previews/W36/预览 (1).jpg b/web/previews/W36/预览 (1).jpg new file mode 100644 index 0000000..20e90b6 Binary files /dev/null and b/web/previews/W36/预览 (1).jpg differ diff --git a/web/previews/W36/预览 (2).jpg b/web/previews/W36/预览 (2).jpg new file mode 100644 index 0000000..e0582e8 Binary files /dev/null and b/web/previews/W36/预览 (2).jpg differ diff --git a/web/previews/W36/预览 (3).jpg b/web/previews/W36/预览 (3).jpg new file mode 100644 index 0000000..e9f9f5f Binary files /dev/null and b/web/previews/W36/预览 (3).jpg differ diff --git a/web/previews/W36/预览 (4).jpg b/web/previews/W36/预览 (4).jpg new file mode 100644 index 0000000..4632fed Binary files /dev/null and b/web/previews/W36/预览 (4).jpg differ diff --git a/web/previews/W37/预览 (1).jpg b/web/previews/W37/预览 (1).jpg new file mode 100644 index 0000000..2d5fb65 Binary files /dev/null and b/web/previews/W37/预览 (1).jpg differ diff --git a/web/previews/W37/预览 (2).jpg b/web/previews/W37/预览 (2).jpg new file mode 100644 index 0000000..e77cb3e Binary files /dev/null and b/web/previews/W37/预览 (2).jpg differ diff --git a/web/previews/W37/预览 (3).jpg b/web/previews/W37/预览 (3).jpg new file mode 100644 index 0000000..dfeb498 Binary files /dev/null and b/web/previews/W37/预览 (3).jpg differ diff --git a/web/previews/W38/预览 (1).jpg b/web/previews/W38/预览 (1).jpg new file mode 100644 index 0000000..dfeb0f1 Binary files /dev/null and b/web/previews/W38/预览 (1).jpg differ diff --git a/web/previews/W38/预览 (2).jpg b/web/previews/W38/预览 (2).jpg new file mode 100644 index 0000000..6eee74a Binary files /dev/null and b/web/previews/W38/预览 (2).jpg differ diff --git a/web/previews/W38/预览 (3).jpg b/web/previews/W38/预览 (3).jpg new file mode 100644 index 0000000..595368e Binary files /dev/null and b/web/previews/W38/预览 (3).jpg differ diff --git a/web/previews/W38/预览 (4).jpg b/web/previews/W38/预览 (4).jpg new file mode 100644 index 0000000..de90261 Binary files /dev/null and b/web/previews/W38/预览 (4).jpg differ diff --git a/web/previews/W39/预览 (1).jpg b/web/previews/W39/预览 (1).jpg new file mode 100644 index 0000000..5c6fd6f Binary files /dev/null and b/web/previews/W39/预览 (1).jpg differ diff --git a/web/previews/W39/预览 (2).jpg b/web/previews/W39/预览 (2).jpg new file mode 100644 index 0000000..d297509 Binary files /dev/null and b/web/previews/W39/预览 (2).jpg differ diff --git a/web/previews/W39/预览 (3).jpg b/web/previews/W39/预览 (3).jpg new file mode 100644 index 0000000..fb87cee Binary files /dev/null and b/web/previews/W39/预览 (3).jpg differ diff --git a/web/previews/W39/预览 (4).jpg b/web/previews/W39/预览 (4).jpg new file mode 100644 index 0000000..42e076d Binary files /dev/null and b/web/previews/W39/预览 (4).jpg differ diff --git a/web/previews/W39/预览 (5).jpg b/web/previews/W39/预览 (5).jpg new file mode 100644 index 0000000..4064385 Binary files /dev/null and b/web/previews/W39/预览 (5).jpg differ diff --git a/web/previews/W4/预览 (1).jpg b/web/previews/W4/预览 (1).jpg new file mode 100644 index 0000000..1f2eaec Binary files /dev/null and b/web/previews/W4/预览 (1).jpg differ diff --git a/web/previews/W4/预览 (2).jpg b/web/previews/W4/预览 (2).jpg new file mode 100644 index 0000000..ee036eb Binary files /dev/null and b/web/previews/W4/预览 (2).jpg differ diff --git a/web/previews/W4/预览 (3).jpg b/web/previews/W4/预览 (3).jpg new file mode 100644 index 0000000..05ba248 Binary files /dev/null and b/web/previews/W4/预览 (3).jpg differ diff --git a/web/previews/W40/预览 (1).jpg b/web/previews/W40/预览 (1).jpg new file mode 100644 index 0000000..aacb343 Binary files /dev/null and b/web/previews/W40/预览 (1).jpg differ diff --git a/web/previews/W40/预览 (2).jpg b/web/previews/W40/预览 (2).jpg new file mode 100644 index 0000000..a10742e Binary files /dev/null and b/web/previews/W40/预览 (2).jpg differ diff --git a/web/previews/W40/预览 (3).jpg b/web/previews/W40/预览 (3).jpg new file mode 100644 index 0000000..643f5ca Binary files /dev/null and b/web/previews/W40/预览 (3).jpg differ diff --git a/web/previews/W41/预览 (1).jpg b/web/previews/W41/预览 (1).jpg new file mode 100644 index 0000000..6de47c3 Binary files /dev/null and b/web/previews/W41/预览 (1).jpg differ diff --git a/web/previews/W41/预览 (2).jpg b/web/previews/W41/预览 (2).jpg new file mode 100644 index 0000000..99fa79a Binary files /dev/null and b/web/previews/W41/预览 (2).jpg differ diff --git a/web/previews/W41/预览 (3).jpg b/web/previews/W41/预览 (3).jpg new file mode 100644 index 0000000..adbfba2 Binary files /dev/null and b/web/previews/W41/预览 (3).jpg differ diff --git a/web/previews/W42/预览 (1).jpg b/web/previews/W42/预览 (1).jpg new file mode 100644 index 0000000..c02004d Binary files /dev/null and b/web/previews/W42/预览 (1).jpg differ diff --git a/web/previews/W42/预览 (2).jpg b/web/previews/W42/预览 (2).jpg new file mode 100644 index 0000000..95dfbfb Binary files /dev/null and b/web/previews/W42/预览 (2).jpg differ diff --git a/web/previews/W42/预览 (3).jpg b/web/previews/W42/预览 (3).jpg new file mode 100644 index 0000000..fed95e7 Binary files /dev/null and b/web/previews/W42/预览 (3).jpg differ diff --git a/web/previews/W42/预览 (4).jpg b/web/previews/W42/预览 (4).jpg new file mode 100644 index 0000000..73d0ffc Binary files /dev/null and b/web/previews/W42/预览 (4).jpg differ diff --git a/web/previews/W42/预览 (5).jpg b/web/previews/W42/预览 (5).jpg new file mode 100644 index 0000000..9135e07 Binary files /dev/null and b/web/previews/W42/预览 (5).jpg differ diff --git a/web/previews/W43/预览 (1).jpg b/web/previews/W43/预览 (1).jpg new file mode 100644 index 0000000..5dccdce Binary files /dev/null and b/web/previews/W43/预览 (1).jpg differ diff --git a/web/previews/W43/预览 (2).jpg b/web/previews/W43/预览 (2).jpg new file mode 100644 index 0000000..dd2a0e7 Binary files /dev/null and b/web/previews/W43/预览 (2).jpg differ diff --git a/web/previews/W43/预览 (3).jpg b/web/previews/W43/预览 (3).jpg new file mode 100644 index 0000000..a07c05d Binary files /dev/null and b/web/previews/W43/预览 (3).jpg differ diff --git a/web/previews/W43/预览 (4).jpg b/web/previews/W43/预览 (4).jpg new file mode 100644 index 0000000..f0ca327 Binary files /dev/null and b/web/previews/W43/预览 (4).jpg differ diff --git a/web/previews/W44/预览 (1).jpg b/web/previews/W44/预览 (1).jpg new file mode 100644 index 0000000..5dccdce Binary files /dev/null and b/web/previews/W44/预览 (1).jpg differ diff --git a/web/previews/W44/预览 (2).jpg b/web/previews/W44/预览 (2).jpg new file mode 100644 index 0000000..2a7da4d Binary files /dev/null and b/web/previews/W44/预览 (2).jpg differ diff --git a/web/previews/W44/预览 (3).jpg b/web/previews/W44/预览 (3).jpg new file mode 100644 index 0000000..733c963 Binary files /dev/null and b/web/previews/W44/预览 (3).jpg differ diff --git a/web/previews/W44/预览 (4).jpg b/web/previews/W44/预览 (4).jpg new file mode 100644 index 0000000..f0ca327 Binary files /dev/null and b/web/previews/W44/预览 (4).jpg differ diff --git a/web/previews/W44/预览 (5).jpg b/web/previews/W44/预览 (5).jpg new file mode 100644 index 0000000..b2b2619 Binary files /dev/null and b/web/previews/W44/预览 (5).jpg differ diff --git a/web/previews/W44/预览 (6).jpg b/web/previews/W44/预览 (6).jpg new file mode 100644 index 0000000..f4a92be Binary files /dev/null and b/web/previews/W44/预览 (6).jpg differ diff --git a/web/previews/W45/预览 (1).jpg b/web/previews/W45/预览 (1).jpg new file mode 100644 index 0000000..652bfdc Binary files /dev/null and b/web/previews/W45/预览 (1).jpg differ diff --git a/web/previews/W45/预览 (2).jpg b/web/previews/W45/预览 (2).jpg new file mode 100644 index 0000000..1d1729a Binary files /dev/null and b/web/previews/W45/预览 (2).jpg differ diff --git a/web/previews/W45/预览 (3).jpg b/web/previews/W45/预览 (3).jpg new file mode 100644 index 0000000..29b93da Binary files /dev/null and b/web/previews/W45/预览 (3).jpg differ diff --git a/web/previews/W45/预览 (4).jpg b/web/previews/W45/预览 (4).jpg new file mode 100644 index 0000000..96ef5a7 Binary files /dev/null and b/web/previews/W45/预览 (4).jpg differ diff --git a/web/previews/W45/预览 (5).jpg b/web/previews/W45/预览 (5).jpg new file mode 100644 index 0000000..5ce687e Binary files /dev/null and b/web/previews/W45/预览 (5).jpg differ diff --git a/web/previews/W46/预览 (1).jpg b/web/previews/W46/预览 (1).jpg new file mode 100644 index 0000000..57ea779 Binary files /dev/null and b/web/previews/W46/预览 (1).jpg differ diff --git a/web/previews/W46/预览 (2).jpg b/web/previews/W46/预览 (2).jpg new file mode 100644 index 0000000..8e57dc6 Binary files /dev/null and b/web/previews/W46/预览 (2).jpg differ diff --git a/web/previews/W46/预览 (3).jpg b/web/previews/W46/预览 (3).jpg new file mode 100644 index 0000000..046bc28 Binary files /dev/null and b/web/previews/W46/预览 (3).jpg differ diff --git a/web/previews/W46/预览 (4).jpg b/web/previews/W46/预览 (4).jpg new file mode 100644 index 0000000..2f20e53 Binary files /dev/null and b/web/previews/W46/预览 (4).jpg differ diff --git a/web/previews/W47/预览 (1).jpg b/web/previews/W47/预览 (1).jpg new file mode 100644 index 0000000..28207b7 Binary files /dev/null and b/web/previews/W47/预览 (1).jpg differ diff --git a/web/previews/W47/预览 (2).jpg b/web/previews/W47/预览 (2).jpg new file mode 100644 index 0000000..cf49098 Binary files /dev/null and b/web/previews/W47/预览 (2).jpg differ diff --git a/web/previews/W47/预览 (3).jpg b/web/previews/W47/预览 (3).jpg new file mode 100644 index 0000000..bf6c550 Binary files /dev/null and b/web/previews/W47/预览 (3).jpg differ diff --git a/web/previews/W47/预览 (4).jpg b/web/previews/W47/预览 (4).jpg new file mode 100644 index 0000000..9b1225f Binary files /dev/null and b/web/previews/W47/预览 (4).jpg differ diff --git a/web/previews/W47/预览 (5).jpg b/web/previews/W47/预览 (5).jpg new file mode 100644 index 0000000..7817fda Binary files /dev/null and b/web/previews/W47/预览 (5).jpg differ diff --git a/web/previews/W48/预览 (1).jpg b/web/previews/W48/预览 (1).jpg new file mode 100644 index 0000000..2573b73 Binary files /dev/null and b/web/previews/W48/预览 (1).jpg differ diff --git a/web/previews/W48/预览 (2).jpg b/web/previews/W48/预览 (2).jpg new file mode 100644 index 0000000..e69b1d2 Binary files /dev/null and b/web/previews/W48/预览 (2).jpg differ diff --git a/web/previews/W48/预览 (3).jpg b/web/previews/W48/预览 (3).jpg new file mode 100644 index 0000000..8ad1fae Binary files /dev/null and b/web/previews/W48/预览 (3).jpg differ diff --git a/web/previews/W48/预览 (4).jpg b/web/previews/W48/预览 (4).jpg new file mode 100644 index 0000000..3438969 Binary files /dev/null and b/web/previews/W48/预览 (4).jpg differ diff --git a/web/previews/W49/预览 (1).jpg b/web/previews/W49/预览 (1).jpg new file mode 100644 index 0000000..06387a1 Binary files /dev/null and b/web/previews/W49/预览 (1).jpg differ diff --git a/web/previews/W49/预览 (2).jpg b/web/previews/W49/预览 (2).jpg new file mode 100644 index 0000000..0393b5f Binary files /dev/null and b/web/previews/W49/预览 (2).jpg differ diff --git a/web/previews/W49/预览 (3).jpg b/web/previews/W49/预览 (3).jpg new file mode 100644 index 0000000..63999a9 Binary files /dev/null and b/web/previews/W49/预览 (3).jpg differ diff --git a/web/previews/W5/预览 (1).jpg b/web/previews/W5/预览 (1).jpg new file mode 100644 index 0000000..c47057d Binary files /dev/null and b/web/previews/W5/预览 (1).jpg differ diff --git a/web/previews/W5/预览 (2).jpg b/web/previews/W5/预览 (2).jpg new file mode 100644 index 0000000..7bbfe0d Binary files /dev/null and b/web/previews/W5/预览 (2).jpg differ diff --git a/web/previews/W5/预览 (3).jpg b/web/previews/W5/预览 (3).jpg new file mode 100644 index 0000000..a7fe9ce Binary files /dev/null and b/web/previews/W5/预览 (3).jpg differ diff --git a/web/previews/W50/预览 (1).jpg b/web/previews/W50/预览 (1).jpg new file mode 100644 index 0000000..5e8733b Binary files /dev/null and b/web/previews/W50/预览 (1).jpg differ diff --git a/web/previews/W50/预览 (2).jpg b/web/previews/W50/预览 (2).jpg new file mode 100644 index 0000000..4db95b2 Binary files /dev/null and b/web/previews/W50/预览 (2).jpg differ diff --git a/web/previews/W50/预览 (3).jpg b/web/previews/W50/预览 (3).jpg new file mode 100644 index 0000000..ecb59c2 Binary files /dev/null and b/web/previews/W50/预览 (3).jpg differ diff --git a/web/previews/W51/预览 (1).jpg b/web/previews/W51/预览 (1).jpg new file mode 100644 index 0000000..188b9f1 Binary files /dev/null and b/web/previews/W51/预览 (1).jpg differ diff --git a/web/previews/W51/预览 (2).jpg b/web/previews/W51/预览 (2).jpg new file mode 100644 index 0000000..4473b2f Binary files /dev/null and b/web/previews/W51/预览 (2).jpg differ diff --git a/web/previews/W51/预览 (3).jpg b/web/previews/W51/预览 (3).jpg new file mode 100644 index 0000000..bb436b7 Binary files /dev/null and b/web/previews/W51/预览 (3).jpg differ diff --git a/web/previews/W52/预览 (1).jpg b/web/previews/W52/预览 (1).jpg new file mode 100644 index 0000000..6af9206 Binary files /dev/null and b/web/previews/W52/预览 (1).jpg differ diff --git a/web/previews/W52/预览 (2).jpg b/web/previews/W52/预览 (2).jpg new file mode 100644 index 0000000..7bf24e8 Binary files /dev/null and b/web/previews/W52/预览 (2).jpg differ diff --git a/web/previews/W52/预览 (3).jpg b/web/previews/W52/预览 (3).jpg new file mode 100644 index 0000000..e24acb8 Binary files /dev/null and b/web/previews/W52/预览 (3).jpg differ diff --git a/web/previews/W53/预览 (1).jpg b/web/previews/W53/预览 (1).jpg new file mode 100644 index 0000000..d7f9c45 Binary files /dev/null and b/web/previews/W53/预览 (1).jpg differ diff --git a/web/previews/W53/预览 (2).jpg b/web/previews/W53/预览 (2).jpg new file mode 100644 index 0000000..d53f50b Binary files /dev/null and b/web/previews/W53/预览 (2).jpg differ diff --git a/web/previews/W53/预览 (3).jpg b/web/previews/W53/预览 (3).jpg new file mode 100644 index 0000000..dd63ffa Binary files /dev/null and b/web/previews/W53/预览 (3).jpg differ diff --git a/web/previews/W54/预览 (1).jpg b/web/previews/W54/预览 (1).jpg new file mode 100644 index 0000000..49a5323 Binary files /dev/null and b/web/previews/W54/预览 (1).jpg differ diff --git a/web/previews/W54/预览 (2).jpg b/web/previews/W54/预览 (2).jpg new file mode 100644 index 0000000..773f984 Binary files /dev/null and b/web/previews/W54/预览 (2).jpg differ diff --git a/web/previews/W54/预览 (3).jpg b/web/previews/W54/预览 (3).jpg new file mode 100644 index 0000000..537ac20 Binary files /dev/null and b/web/previews/W54/预览 (3).jpg differ diff --git a/web/previews/W55/预览 (1).jpg b/web/previews/W55/预览 (1).jpg new file mode 100644 index 0000000..57797f1 Binary files /dev/null and b/web/previews/W55/预览 (1).jpg differ diff --git a/web/previews/W55/预览 (2).jpg b/web/previews/W55/预览 (2).jpg new file mode 100644 index 0000000..926c8b6 Binary files /dev/null and b/web/previews/W55/预览 (2).jpg differ diff --git a/web/previews/W55/预览 (3).jpg b/web/previews/W55/预览 (3).jpg new file mode 100644 index 0000000..3e2894f Binary files /dev/null and b/web/previews/W55/预览 (3).jpg differ diff --git a/web/previews/W55/预览 (4).jpg b/web/previews/W55/预览 (4).jpg new file mode 100644 index 0000000..afff346 Binary files /dev/null and b/web/previews/W55/预览 (4).jpg differ diff --git a/web/previews/W56/预览 (1).jpg b/web/previews/W56/预览 (1).jpg new file mode 100644 index 0000000..489b48f Binary files /dev/null and b/web/previews/W56/预览 (1).jpg differ diff --git a/web/previews/W56/预览 (2).jpg b/web/previews/W56/预览 (2).jpg new file mode 100644 index 0000000..2ec1e94 Binary files /dev/null and b/web/previews/W56/预览 (2).jpg differ diff --git a/web/previews/W56/预览 (3).jpg b/web/previews/W56/预览 (3).jpg new file mode 100644 index 0000000..f266328 Binary files /dev/null and b/web/previews/W56/预览 (3).jpg differ diff --git a/web/previews/W6/预览 (1).jpg b/web/previews/W6/预览 (1).jpg new file mode 100644 index 0000000..3137776 Binary files /dev/null and b/web/previews/W6/预览 (1).jpg differ diff --git a/web/previews/W6/预览 (2).jpg b/web/previews/W6/预览 (2).jpg new file mode 100644 index 0000000..54a49b1 Binary files /dev/null and b/web/previews/W6/预览 (2).jpg differ diff --git a/web/previews/W6/预览 (3).jpg b/web/previews/W6/预览 (3).jpg new file mode 100644 index 0000000..22ea254 Binary files /dev/null and b/web/previews/W6/预览 (3).jpg differ diff --git a/web/previews/W6/预览 (4).jpg b/web/previews/W6/预览 (4).jpg new file mode 100644 index 0000000..7175250 Binary files /dev/null and b/web/previews/W6/预览 (4).jpg differ diff --git a/web/previews/W6/预览 (5).jpg b/web/previews/W6/预览 (5).jpg new file mode 100644 index 0000000..ca9ce63 Binary files /dev/null and b/web/previews/W6/预览 (5).jpg differ diff --git a/web/previews/W7/预览 (1).jpg b/web/previews/W7/预览 (1).jpg new file mode 100644 index 0000000..24303c3 Binary files /dev/null and b/web/previews/W7/预览 (1).jpg differ diff --git a/web/previews/W7/预览 (2).jpg b/web/previews/W7/预览 (2).jpg new file mode 100644 index 0000000..f6fee4c Binary files /dev/null and b/web/previews/W7/预览 (2).jpg differ diff --git a/web/previews/W7/预览 (3).jpg b/web/previews/W7/预览 (3).jpg new file mode 100644 index 0000000..f5d3325 Binary files /dev/null and b/web/previews/W7/预览 (3).jpg differ diff --git a/web/previews/W7/预览 (4).jpg b/web/previews/W7/预览 (4).jpg new file mode 100644 index 0000000..b153be2 Binary files /dev/null and b/web/previews/W7/预览 (4).jpg differ diff --git a/web/previews/W8/预览 (1).jpg b/web/previews/W8/预览 (1).jpg new file mode 100644 index 0000000..8628a9d Binary files /dev/null and b/web/previews/W8/预览 (1).jpg differ diff --git a/web/previews/W8/预览 (2).jpg b/web/previews/W8/预览 (2).jpg new file mode 100644 index 0000000..3f5ba56 Binary files /dev/null and b/web/previews/W8/预览 (2).jpg differ diff --git a/web/previews/W8/预览 (3).jpg b/web/previews/W8/预览 (3).jpg new file mode 100644 index 0000000..6ad35ce Binary files /dev/null and b/web/previews/W8/预览 (3).jpg differ diff --git a/web/previews/W8/预览 (4).jpg b/web/previews/W8/预览 (4).jpg new file mode 100644 index 0000000..9ca9ab7 Binary files /dev/null and b/web/previews/W8/预览 (4).jpg differ diff --git a/web/previews/W9/预览 (1).jpg b/web/previews/W9/预览 (1).jpg new file mode 100644 index 0000000..3f4f87e Binary files /dev/null and b/web/previews/W9/预览 (1).jpg differ diff --git a/web/previews/W9/预览 (2).jpg b/web/previews/W9/预览 (2).jpg new file mode 100644 index 0000000..a133bdf Binary files /dev/null and b/web/previews/W9/预览 (2).jpg differ diff --git a/web/previews/W9/预览 (3).jpg b/web/previews/W9/预览 (3).jpg new file mode 100644 index 0000000..64cdcaa Binary files /dev/null and b/web/previews/W9/预览 (3).jpg differ diff --git a/web/styles.css b/web/styles.css new file mode 100644 index 0000000..d551aa6 --- /dev/null +++ b/web/styles.css @@ -0,0 +1,84 @@ +:root{ + --bg:#0f1014; --panel:#171922; --panel2:#1d2030; + --line:#262938; --text:#e6e8ee; --muted:#9aa0b4; --dim:#5b6078; + --fig:#a259ff; --sketch:#f7b500; --xd:#ff61f6; --psd:#31a8ff; + --brand:#6b5cff; --brand2:#19c37d; + --card:#13151d; + --radius:14px; +} +*{box-sizing:border-box} +html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased} +a{color:inherit;text-decoration:none} +code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--panel);padding:1px 6px;border-radius:6px;font-size:.88em;color:var(--muted)} +.wrap{max-width:1440px;margin:0 auto;padding:0 24px} + +/* HERO */ +.hero{padding:56px 0 28px;background:radial-gradient(1200px 400px at 50% -100%,rgba(107,92,255,.25),transparent 60%),linear-gradient(180deg,#141622,#0f1014)} +.hero h1{font-size:36px;margin:0 0 10px;letter-spacing:-.02em;background:linear-gradient(90deg,#fff,#b5bbf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent} +.hero .sub{color:var(--muted);margin:0 0 20px;font-size:15px} +.stats{display:flex;gap:10px;flex-wrap:wrap} +.stats .stat{background:var(--panel);border:1px solid var(--line);padding:8px 14px;border-radius:999px;font-size:13px;color:var(--muted)} +.stats .stat b{color:var(--text);margin-right:4px;font-weight:600} +.banner{margin-top:18px;padding:12px 16px;background:rgba(25,195,125,.08);border:1px solid rgba(25,195,125,.3);border-radius:10px;color:#9ce6c2;font-size:13px;line-height:1.6;display:none} +.banner.show{display:block} +.banner b{color:var(--brand2)} +.banner a{color:#fff;text-decoration:underline;font-weight:600} + +/* TOOLBAR */ +.toolbar{position:sticky;top:0;z-index:10;backdrop-filter:blur(14px);background:rgba(15,16,20,.78);border-bottom:1px solid var(--line);padding:14px 0} +.toolbar .wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap} +.filters{display:flex;gap:8px;flex-wrap:wrap} +.pill{background:var(--panel);border:1px solid var(--line);color:var(--muted);padding:7px 14px;border-radius:999px;cursor:pointer;font-size:13px;transition:all .15s} +.pill:hover{color:var(--text);border-color:#3a3f55} +.pill.active{background:var(--brand);border-color:var(--brand);color:#fff} +#search{margin-left:auto;background:var(--panel);border:1px solid var(--line);color:var(--text);padding:8px 14px;border-radius:10px;font-size:14px;min-width:260px;outline:none} +#search:focus{border-color:var(--brand)} + +/* GRID */ +main{padding:32px 0 80px} +.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px} +.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:all .2s;display:flex;flex-direction:column} +.card:hover{transform:translateY(-3px);border-color:#3a3f55;box-shadow:0 12px 30px -10px rgba(0,0,0,.6)} +.card .cover{aspect-ratio:16/10;background:var(--panel) center/cover;position:relative;overflow:hidden} +.card .cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s} +.card:hover .cover img{transform:scale(1.04)} +.card .id{position:absolute;top:10px;left:10px;background:rgba(0,0,0,.6);color:#fff;font-family:ui-monospace,monospace;font-size:11px;padding:3px 8px;border-radius:6px;font-weight:600} +.card .imported{position:absolute;top:10px;right:10px;background:var(--brand2);color:#000;font-size:10px;font-weight:700;padding:3px 8px;border-radius:6px;letter-spacing:.5px} +.card .body{padding:14px 16px;flex:1;display:flex;flex-direction:column;gap:10px} +.card h3{margin:0;font-size:14px;font-weight:600;line-height:1.35;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em} +.card .meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--dim);font-size:12px;margin-top:auto} +.badges{display:flex;gap:5px;flex-wrap:wrap} +.badge{font-size:10px;padding:2px 7px;border-radius:4px;font-weight:700;letter-spacing:.3px} +.badge.fig {background:rgba(162,89,255,.15);color:var(--fig);border:1px solid rgba(162,89,255,.35)} +.badge.sketch{background:rgba(247,181,0,.12);color:var(--sketch);border:1px solid rgba(247,181,0,.35)} +.badge.xd {background:rgba(255,97,246,.12);color:var(--xd);border:1px solid rgba(255,97,246,.35)} +.badge.psd {background:rgba(49,168,255,.12);color:var(--psd);border:1px solid rgba(49,168,255,.35)} + +.empty{text-align:center;color:var(--muted);padding:60px 0;font-size:14px} + +/* MODAL */ +.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:40px 20px;animation:fadeIn .18s ease} +.modal[hidden]{display:none} +@keyframes fadeIn{from{opacity:0}to{opacity:1}} +.modal-bg{position:absolute;inset:0;background:rgba(0,0,0,.8);backdrop-filter:blur(6px)} +.modal-panel{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:16px;max-width:1200px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.6)} +.modal-close{position:absolute;top:12px;right:12px;background:var(--panel2);border:1px solid var(--line);color:var(--text);width:36px;height:36px;border-radius:10px;cursor:pointer;font-size:16px;z-index:2;display:flex;align-items:center;justify-content:center} +.modal-close:hover{background:var(--line)} +.modal-body{padding:32px} +.modal-body h2{margin:0 0 6px;font-size:22px;letter-spacing:-.01em;padding-right:40px} +.modal-body .sub2{color:var(--muted);font-size:13px;margin-bottom:20px;display:flex;gap:14px;flex-wrap:wrap;align-items:center} +.modal-body .actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px} +.btn{background:var(--brand);color:#fff;border:none;padding:9px 16px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px} +.btn:hover{opacity:.9} +.btn.ghost{background:var(--panel2);border:1px solid var(--line);color:var(--text)} +.btn.ghost:hover{background:var(--line)} +.gallery{display:grid;grid-template-columns:1fr;gap:14px} +.gallery img{width:100%;border-radius:10px;display:block;background:var(--panel2)} +.spec{display:grid;grid-template-columns:120px 1fr;gap:8px 20px;margin:20px 0;font-size:13px} +.spec .k{color:var(--muted)} +.spec .v{color:var(--text);font-family:ui-monospace,monospace;font-size:12px;word-break:break-all} +.figma-embed{width:100%;aspect-ratio:16/10;border:0;border-radius:10px;background:var(--panel2);margin-bottom:16px} + +/* FOOTER */ +footer{border-top:1px solid var(--line);padding:20px 0;color:var(--muted);font-size:12px} +footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap} diff --git a/web/thumbs/W1.jpg b/web/thumbs/W1.jpg new file mode 100644 index 0000000..ff944d9 Binary files /dev/null and b/web/thumbs/W1.jpg differ diff --git a/web/thumbs/W10.jpg b/web/thumbs/W10.jpg new file mode 100644 index 0000000..45a6fe7 Binary files /dev/null and b/web/thumbs/W10.jpg differ diff --git a/web/thumbs/W11.jpg b/web/thumbs/W11.jpg new file mode 100644 index 0000000..9e96e79 Binary files /dev/null and b/web/thumbs/W11.jpg differ diff --git a/web/thumbs/W12.jpg b/web/thumbs/W12.jpg new file mode 100644 index 0000000..0056d58 Binary files /dev/null and b/web/thumbs/W12.jpg differ diff --git a/web/thumbs/W13.jpg b/web/thumbs/W13.jpg new file mode 100644 index 0000000..cdcb18f Binary files /dev/null and b/web/thumbs/W13.jpg differ diff --git a/web/thumbs/W14.jpg b/web/thumbs/W14.jpg new file mode 100644 index 0000000..f98b200 Binary files /dev/null and b/web/thumbs/W14.jpg differ diff --git a/web/thumbs/W15.jpg b/web/thumbs/W15.jpg new file mode 100644 index 0000000..414d3a1 Binary files /dev/null and b/web/thumbs/W15.jpg differ diff --git a/web/thumbs/W16.jpg b/web/thumbs/W16.jpg new file mode 100644 index 0000000..b9e8786 Binary files /dev/null and b/web/thumbs/W16.jpg differ diff --git a/web/thumbs/W17.jpg b/web/thumbs/W17.jpg new file mode 100644 index 0000000..ad576fa Binary files /dev/null and b/web/thumbs/W17.jpg differ diff --git a/web/thumbs/W18.jpg b/web/thumbs/W18.jpg new file mode 100644 index 0000000..c33d703 Binary files /dev/null and b/web/thumbs/W18.jpg differ diff --git a/web/thumbs/W19.jpg b/web/thumbs/W19.jpg new file mode 100644 index 0000000..66af5b0 Binary files /dev/null and b/web/thumbs/W19.jpg differ diff --git a/web/thumbs/W2.jpg b/web/thumbs/W2.jpg new file mode 100644 index 0000000..f959bce Binary files /dev/null and b/web/thumbs/W2.jpg differ diff --git a/web/thumbs/W20.jpg b/web/thumbs/W20.jpg new file mode 100644 index 0000000..d472226 Binary files /dev/null and b/web/thumbs/W20.jpg differ diff --git a/web/thumbs/W21.jpg b/web/thumbs/W21.jpg new file mode 100644 index 0000000..3096a0f Binary files /dev/null and b/web/thumbs/W21.jpg differ diff --git a/web/thumbs/W22.jpg b/web/thumbs/W22.jpg new file mode 100644 index 0000000..3f0900e Binary files /dev/null and b/web/thumbs/W22.jpg differ diff --git a/web/thumbs/W23.jpg b/web/thumbs/W23.jpg new file mode 100644 index 0000000..916efaa Binary files /dev/null and b/web/thumbs/W23.jpg differ diff --git a/web/thumbs/W24.jpg b/web/thumbs/W24.jpg new file mode 100644 index 0000000..9c08b83 Binary files /dev/null and b/web/thumbs/W24.jpg differ diff --git a/web/thumbs/W25.jpg b/web/thumbs/W25.jpg new file mode 100644 index 0000000..f26894a Binary files /dev/null and b/web/thumbs/W25.jpg differ diff --git a/web/thumbs/W26.jpg b/web/thumbs/W26.jpg new file mode 100644 index 0000000..21ef3ae Binary files /dev/null and b/web/thumbs/W26.jpg differ diff --git a/web/thumbs/W27.jpg b/web/thumbs/W27.jpg new file mode 100644 index 0000000..01b102a Binary files /dev/null and b/web/thumbs/W27.jpg differ diff --git a/web/thumbs/W28.jpg b/web/thumbs/W28.jpg new file mode 100644 index 0000000..e213485 Binary files /dev/null and b/web/thumbs/W28.jpg differ diff --git a/web/thumbs/W29.jpg b/web/thumbs/W29.jpg new file mode 100644 index 0000000..1414946 Binary files /dev/null and b/web/thumbs/W29.jpg differ diff --git a/web/thumbs/W3.jpg b/web/thumbs/W3.jpg new file mode 100644 index 0000000..1ea80da Binary files /dev/null and b/web/thumbs/W3.jpg differ diff --git a/web/thumbs/W30.jpg b/web/thumbs/W30.jpg new file mode 100644 index 0000000..01d19f4 Binary files /dev/null and b/web/thumbs/W30.jpg differ diff --git a/web/thumbs/W31.jpg b/web/thumbs/W31.jpg new file mode 100644 index 0000000..a93ad02 Binary files /dev/null and b/web/thumbs/W31.jpg differ diff --git a/web/thumbs/W32.jpg b/web/thumbs/W32.jpg new file mode 100644 index 0000000..59ca772 Binary files /dev/null and b/web/thumbs/W32.jpg differ diff --git a/web/thumbs/W33.jpg b/web/thumbs/W33.jpg new file mode 100644 index 0000000..5611614 Binary files /dev/null and b/web/thumbs/W33.jpg differ diff --git a/web/thumbs/W34.jpg b/web/thumbs/W34.jpg new file mode 100644 index 0000000..f93173e Binary files /dev/null and b/web/thumbs/W34.jpg differ diff --git a/web/thumbs/W35.jpg b/web/thumbs/W35.jpg new file mode 100644 index 0000000..17d59d1 Binary files /dev/null and b/web/thumbs/W35.jpg differ diff --git a/web/thumbs/W36.jpg b/web/thumbs/W36.jpg new file mode 100644 index 0000000..d794b87 Binary files /dev/null and b/web/thumbs/W36.jpg differ diff --git a/web/thumbs/W37.jpg b/web/thumbs/W37.jpg new file mode 100644 index 0000000..8742626 Binary files /dev/null and b/web/thumbs/W37.jpg differ diff --git a/web/thumbs/W38.jpg b/web/thumbs/W38.jpg new file mode 100644 index 0000000..601b15e Binary files /dev/null and b/web/thumbs/W38.jpg differ diff --git a/web/thumbs/W39.jpg b/web/thumbs/W39.jpg new file mode 100644 index 0000000..6ef437a Binary files /dev/null and b/web/thumbs/W39.jpg differ diff --git a/web/thumbs/W4.jpg b/web/thumbs/W4.jpg new file mode 100644 index 0000000..663a027 Binary files /dev/null and b/web/thumbs/W4.jpg differ diff --git a/web/thumbs/W40.jpg b/web/thumbs/W40.jpg new file mode 100644 index 0000000..b4e518c Binary files /dev/null and b/web/thumbs/W40.jpg differ diff --git a/web/thumbs/W41.jpg b/web/thumbs/W41.jpg new file mode 100644 index 0000000..4b58de2 Binary files /dev/null and b/web/thumbs/W41.jpg differ diff --git a/web/thumbs/W42.jpg b/web/thumbs/W42.jpg new file mode 100644 index 0000000..3db8083 Binary files /dev/null and b/web/thumbs/W42.jpg differ diff --git a/web/thumbs/W43.jpg b/web/thumbs/W43.jpg new file mode 100644 index 0000000..422a5e6 Binary files /dev/null and b/web/thumbs/W43.jpg differ diff --git a/web/thumbs/W44.jpg b/web/thumbs/W44.jpg new file mode 100644 index 0000000..422a5e6 Binary files /dev/null and b/web/thumbs/W44.jpg differ diff --git a/web/thumbs/W45.jpg b/web/thumbs/W45.jpg new file mode 100644 index 0000000..1a6b8e7 Binary files /dev/null and b/web/thumbs/W45.jpg differ diff --git a/web/thumbs/W46.jpg b/web/thumbs/W46.jpg new file mode 100644 index 0000000..c50919d Binary files /dev/null and b/web/thumbs/W46.jpg differ diff --git a/web/thumbs/W47.jpg b/web/thumbs/W47.jpg new file mode 100644 index 0000000..9adc4b8 Binary files /dev/null and b/web/thumbs/W47.jpg differ diff --git a/web/thumbs/W48.jpg b/web/thumbs/W48.jpg new file mode 100644 index 0000000..fc0e71f Binary files /dev/null and b/web/thumbs/W48.jpg differ diff --git a/web/thumbs/W49.jpg b/web/thumbs/W49.jpg new file mode 100644 index 0000000..5006d56 Binary files /dev/null and b/web/thumbs/W49.jpg differ diff --git a/web/thumbs/W5.jpg b/web/thumbs/W5.jpg new file mode 100644 index 0000000..ef17af0 Binary files /dev/null and b/web/thumbs/W5.jpg differ diff --git a/web/thumbs/W50.jpg b/web/thumbs/W50.jpg new file mode 100644 index 0000000..82a8dd8 Binary files /dev/null and b/web/thumbs/W50.jpg differ diff --git a/web/thumbs/W51.jpg b/web/thumbs/W51.jpg new file mode 100644 index 0000000..1a795d1 Binary files /dev/null and b/web/thumbs/W51.jpg differ diff --git a/web/thumbs/W52.jpg b/web/thumbs/W52.jpg new file mode 100644 index 0000000..99437be Binary files /dev/null and b/web/thumbs/W52.jpg differ diff --git a/web/thumbs/W53.jpg b/web/thumbs/W53.jpg new file mode 100644 index 0000000..0c2b1b5 Binary files /dev/null and b/web/thumbs/W53.jpg differ diff --git a/web/thumbs/W54.jpg b/web/thumbs/W54.jpg new file mode 100644 index 0000000..35289ab Binary files /dev/null and b/web/thumbs/W54.jpg differ diff --git a/web/thumbs/W55.jpg b/web/thumbs/W55.jpg new file mode 100644 index 0000000..1db5826 Binary files /dev/null and b/web/thumbs/W55.jpg differ diff --git a/web/thumbs/W56.jpg b/web/thumbs/W56.jpg new file mode 100644 index 0000000..5b8ea7a Binary files /dev/null and b/web/thumbs/W56.jpg differ diff --git a/web/thumbs/W6.jpg b/web/thumbs/W6.jpg new file mode 100644 index 0000000..7fd59e0 Binary files /dev/null and b/web/thumbs/W6.jpg differ diff --git a/web/thumbs/W7.jpg b/web/thumbs/W7.jpg new file mode 100644 index 0000000..41e3cf6 Binary files /dev/null and b/web/thumbs/W7.jpg differ diff --git a/web/thumbs/W8.jpg b/web/thumbs/W8.jpg new file mode 100644 index 0000000..8df0124 Binary files /dev/null and b/web/thumbs/W8.jpg differ diff --git a/web/thumbs/W9.jpg b/web/thumbs/W9.jpg new file mode 100644 index 0000000..000f274 Binary files /dev/null and b/web/thumbs/W9.jpg differ