Max Potential First Input Delay
390 ms
The maximum potential First Input Delay that your users could experience is the duration of the longest task. Learn more about the Maximum Potential First Input Delay metric.
正文
1216
操作候选
4
图片
0
HTML
172 KB
主要入口
注册
Next.js / Tailwind
移动端模拟 · 性能评分
2026-09-05 · 实验室数据,非真实用户体验数据。
移动端模拟 · 实验室数据,非真实用户体验数据
2026-09-05T04:46:31.057Z · Lighthouse 13.4.1
分数会受服务器、网络和测试环境影响,独立于品味/转化评分。诊断保留 Lighthouse 原文。
390 ms
The maximum potential First Input Delay that your users could experience is the duration of the longest task. Learn more about the Maximum Potential First Input Delay metric.
4.4 s
Time to Interactive is the amount of time it takes for the page to become fully interactive. Learn more about the Time to Interactive metric.
5.4 s
Consider reducing the time spent parsing, compiling and executing JS. You may find delivering smaller JS payloads helps with this. Learn how to minimize main-thread work
{
"type": "table",
"items": [
{
"group": "scriptEvaluation",
"duration": 2183.2079999999705,
"groupLabel": "Script Evaluation"
},
{
"group": "other",
"duration": 1231.643999999989,
"groupLabel": "Other"
},
{
"group": "styleLayout",
"duration": 1123.5280000000007,
"groupLabel": "Style & Layout"
},
{
"group": "paintCompositeRender",
"duration": 462.2560000000099,
"groupLabel": "Rendering"
},
{
"group": "scriptParseCompile",
"duration": 214.86399999999998,
"groupLabel": "Script Parsing & Compilation"
},
{
"group": "parseHTML",
"duration": 128.39600000000002,
"groupLabel": "Parse HTML & CSS"
},
{
"group": "garbageCollection",
"duration": 66.72800000000002,
"groupLabel": "Garbage Collection"
}
],
"headings": [
{
"key": "groupLabel",
"label": "Category",
"valueType": "text"
},
{
"key": "duration",
"label": "Time Spent",
"valueType": "ms",
"granularity": 1
}
],
"sortedBy": [
"duration"
]
}2.3 s
Consider reducing the time spent parsing, compiling, and executing JS. You may find delivering smaller JS payloads helps with this. Learn how to reduce Javascript execution time.
{
"type": "table",
"items": [
{
"url": "https://itool.tech/zh",
"total": 2189.4400000000082,
"scripting": 17.22399999999998,
"scriptParseCompile": 15.976
},
{
"url": "https://itool.tech/_next/static/chunks/001037fa79564177.js",
"total": 1825.7039999999831,
"scripting": 1579.3359999999834,
"scriptParseCompile": 28.607999999999997
},
{
"url": "Unattributable",
"total": 602.3400000000019,
"scripting": 43.70000000000001,
"scriptParseCompile": 0
},
{
"url": "https://www.googletagmanager.com/gtag/js?id=G-BF3WR74HTN",
"total": 472.7639999999999,
"scripting": 400.1839999999999,
"scriptParseCompile": 65.684
},
{
"url": "https://itool.tech/_next/static/chunks/c513ae37a14e4024.js",
"total": 99.24000000000001,
"scripting": 71.44400000000002,
"scriptParseCompile": 13.568
},
{
"url": "https://itool.tech/_next/static/chunks/ae3b95db7622951d.js",
"total": 69.80799999999999,
"scripting": 40.15599999999999,
"scriptParseCompile": 24.508
}
],
"summary": {
"wastedMs": 2300.3879999999835
},
"headings": [
{
"key": "url",
"label": "URL",
"valueType": "url"
},
{
"key": "total",
"label": "Total CPU Time",
"valueType": "ms",
"granularity": 1
},
{
"key": "scripting",
"label": "Script Evaluation",
"valueType": "ms",
"granularity": 1
},
{
"key": "scriptParseCompile",
"label": "Script Parse",
"valueType": "ms",
"granularity": 1
}
],
"sortedBy": [
"total"
]
}15 layout shifts found
These are the largest layout shifts observed on the page. Each table item represents a single layout shift, and shows the element that shifted the most. Below each item are possible root causes that led to the layout shift. Some of these layout shifts may not be included in the CLS metric value due to windowing. Learn how to improve CLS
{
"type": "table",
"items": [
{
"node": {
"lhId": "page-2-DIV",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,0,SECTION,1,DIV",
"type": "node",
"snippet": "<div class=\"home-enter rounded-[18px] border border-[var(--border)] bg-[var(--surface)…\">",
"selector": "div.home-shell > main.relative > section.pt-12 > div.home-enter",
"nodeLabel": "regex-tester\nINPUT\n/\\b[A\nOUTPUT",
"boundingRect": {
"top": 447,
"left": 20,
"right": 392,
"width": 372,
"bottom": 791,
"height": 344
}
},
"score": 0.1464090573219699
},
{
"node": {
"lhId": "page-1-DIV",
"path": "1,HTML,1,BODY,3,DIV,5,HEADER,0,DIV,2,DIV",
"type": "node",
"snippet": "<div class=\"flex items-center gap-2\">",
"selector": "div.home-shell > header.sticky > div.relative > div.flex",
"nodeLabel": "中文\n登录\n注册",
"boundingRect": {
"top": 11,
"left": 112,
"right": 392,
"width": 280,
"bottom": 45,
"height": 33
}
},
"score": 0.00277463360615778
},
{
"score": 0.0000540386455438536
},
{
"score": 0.00003353898860324965
},
{
"score": 0.00003353898860324965
},
{
"score": 0.00003353898860324965
},
{
"score": 0.00003273405287677166
},
{
"score": 0.00002655179263029553
},
{
"score": 0.00002575794324729573
},
{
"score": 0.00001953660084047724
},
{
"score": 0.0000172140678734275
},
{
"score": 0.00001412601729004449
},
{
"score": 0.000008087879508784985
},
{
"score": 0.000006428735418148101
},
{
"score": 0.000006380134680071939
}
],
"headings": [
{
"key": "node",
"label": "Element",
"valueType": "node",
"subItemsHeading": {
"key": "extra"
}
},
{
"key": "score",
"label": "Layout shift score",
"valueType": "numeric",
"granularity": 0.001,
"subItemsHeading": {
"key": "cause",
"valueType": "text"
}
}
]
}When a button doesn't have an accessible name, screen readers announce it as "button", making it unusable for users who rely on screen readers. Learn how to make buttons more accessible.
{
"type": "table",
"items": [
{
"node": {
"lhId": "1-0-BUTTON",
"path": "1,HTML,1,BODY,3,DIV,5,HEADER,0,DIV,2,DIV,0,BUTTON",
"type": "node",
"snippet": "<button type=\"button\" class=\"flex items-center gap-2 h-8 px-2.5 rounded-[10px] text-[13px] text-[var(--…\">",
"selector": "header.sticky > div.relative > div.flex > button.flex",
"nodeLabel": "header.sticky > div.relative > div.flex > button.flex",
"explanation": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"boundingRect": {
"top": 12,
"left": 112,
"right": 148,
"width": 36,
"bottom": 44,
"height": 32
}
}
}
],
"headings": [
{
"key": "node",
"label": "Failing Elements",
"valueType": "node",
"subItemsHeading": {
"key": "relatedNode",
"valueType": "node"
}
}
],
"debugData": {
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT",
"RGAAv4",
"RGAA-11.9.1"
],
"type": "debugdata",
"impact": "critical"
}
}Low-contrast text is difficult or impossible for many users to read. Learn how to provide sufficient color contrast.
{
"type": "table",
"items": [
{
"node": {
"lhId": "1-1-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,0,DIV,0,DIV,0,P",
"type": "node",
"snippet": "<p class=\"font-mono text-[10px] uppercase tracking-[0.2em] text-[var(--brand)]\">",
"selector": "section.border-t > div.mb-8 > div > p.font-mono",
"nodeLabel": "SPOTLIGHT / 03",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.57 (foreground color: #2a7a60, background color: #121412, font size: 7.5pt (10px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 896,
"left": 20,
"right": 392,
"width": 372,
"bottom": 913,
"height": 17
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-3-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,0,DIV,1,P",
"type": "node",
"snippet": "<p class=\"max-w-md text-sm leading-relaxed text-[var(--text-muted)] sm:text-right\">",
"selector": "main.relative > section.border-t > div.mb-8 > p.max-w-md",
"nodeLabel": "两局 AI 对局、一次性格测试,外加一套可安装的 Agent Skills。",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 961,
"left": 20,
"right": 392,
"width": 372,
"bottom": 1006,
"height": 46
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-4-SPAN",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,0,A,1,DIV,0,SPAN",
"type": "node",
"snippet": "<span class=\"grid h-11 w-8 place-items-center rounded-[6px] border border-[#DDE2E4] bg-…\" style=\"transition-delay:0ms;color:#D4514C\">",
"selector": "div.grid > a.group > div.absolute > span.grid",
"nodeLabel": "A♥",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 4.13 (foreground color: #d4514c, background color: #ffffff, font size: 6.8pt (9px), font weight: bold). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 1125,
"left": 114,
"right": 146,
"width": 32,
"bottom": 1169,
"height": 44
}
}
},
{
"node": {
"lhId": "1-5-SPAN",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,0,A,1,DIV,1,SPAN",
"type": "node",
"snippet": "<span class=\"grid h-11 w-8 place-items-center rounded-[6px] border border-[#DDE2E4] bg-…\" style=\"transition-delay:35ms;color:#D4514C\">",
"selector": "div.grid > a.group > div.absolute > span.grid",
"nodeLabel": "10♦",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 4.13 (foreground color: #d4514c, background color: #ffffff, font size: 6.8pt (9px), font weight: bold). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 1125,
"left": 152,
"right": 184,
"width": 32,
"bottom": 1169,
"height": 44
}
}
},
{
"node": {
"lhId": "1-6-SPAN",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,0,A,1,DIV,4,SPAN",
"type": "node",
"snippet": "<span class=\"grid h-11 w-8 place-items-center rounded-[6px] border border-[#DDE2E4] bg-…\" style=\"transition-delay:140ms;color:#D4514C\">",
"selector": "div.grid > a.group > div.absolute > span.grid",
"nodeLabel": "Q♥",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 4.13 (foreground color: #d4514c, background color: #ffffff, font size: 6.8pt (9px), font weight: bold). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 1125,
"left": 266,
"right": 298,
"width": 32,
"bottom": 1169,
"height": 44
}
}
},
{
"node": {
"lhId": "1-7-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,0,A,5,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-1.5 line-clamp-2 text-[12px] leading-relaxed text-[#69747A]\">",
"selector": "div.grid > a.group > div.absolute > p.mt-1.5",
"nodeLabel": "单机打 AI,或用配对码开房间,让 Agent 通过 WebMCP 入座真人牌局",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 4.45 (foreground color: #69747a, background color: #f5f7f6, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 1256,
"left": 41,
"right": 371,
"width": 330,
"bottom": 1295,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-8-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,0,A",
"type": "node",
"snippet": "<a class=\"group relative min-h-[310px] overflow-hidden rounded-[18px] border border-…\" href=\"/zh/tools/token-holdem\">",
"selector": "main.relative > section.border-t > div.grid > a.group",
"nodeLabel": "A♥\n10♦\n8♠\nA♣\nQ♥\nAI GAME\nToken 德州扑克\n\n单机打 AI,或用配对码开房间,让 Agent 通过 WebMCP 入座真人牌局\n\n进…",
"boundingRect": {
"top": 1038,
"left": 20,
"right": 392,
"width": 372,
"bottom": 1348,
"height": 310
}
}
}
]
}
},
{
"node": {
"lhId": "1-9-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,1,A,5,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-1.5 line-clamp-2 text-[12px] leading-relaxed text-[#69756E]\">",
"selector": "div.grid > a.group > div.absolute > p.mt-1.5",
"nodeLabel": "和 GPT-5、Claude、DeepSeek 打一局定缺、血战到底的四川麻将",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 4.39 (foreground color: #69756e, background color: #f6f5ee, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 1578,
"left": 41,
"right": 371,
"width": 330,
"bottom": 1617,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-10-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,1,A",
"type": "node",
"snippet": "<a class=\"group relative min-h-[310px] overflow-hidden rounded-[18px] border border-…\" href=\"/zh/tools/sichuan-mahjong\">",
"selector": "main.relative > section.border-t > div.grid > a.group",
"nodeLabel": "一\n萬\n九\n萬\n定缺 · 万\n胡\nAI GAME\nAI 四川麻将\n\n和 GPT-5、Claude、DeepSeek 打一局定缺、血战到底的四川麻将\n\n开始血战",
"boundingRect": {
"top": 1360,
"left": 20,
"right": 392,
"width": 372,
"bottom": 1670,
"height": 310
}
}
}
]
}
},
{
"node": {
"lhId": "1-11-SPAN",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,3,A,0,DIV,0,DIV,2,SPAN",
"type": "node",
"snippet": "<span class=\"ml-auto text-white/30\">",
"selector": "a.group > div.absolute > div.flex > span.ml-auto",
"nodeLabel": "01",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 2.67 (foreground color: #5a5a58, background color: #131411, font size: 6.8pt (9px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 2086,
"left": 347,
"right": 358,
"width": 11,
"bottom": 2101,
"height": 15
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-12-DIV",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,3,A,0,DIV,0,DIV",
"type": "node",
"snippet": "<div class=\"flex items-center gap-2 rounded-[8px] border border-white/10 bg-black/25 p…\" style=\"margin-left:0px;transition-delay:0ms\">",
"selector": "div.grid > a.group > div.absolute > div.flex",
"nodeLabel": "+\nfrontend-design\n01",
"boundingRect": {
"top": 2077,
"left": 41,
"right": 371,
"width": 330,
"bottom": 2110,
"height": 33
}
}
},
{
"relatedNode": {
"lhId": "1-13-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,3,A",
"type": "node",
"snippet": "<a class=\"group relative min-h-[310px] overflow-hidden rounded-[18px] border border-…\" href=\"/zh/skills\">",
"selector": "main.relative > section.border-t > div.grid > a.group",
"nodeLabel": "+\nfrontend-design\n01\n+\napi-architect\n02\n+\ntesting-agent\n03\nAGENT SKILLS\nSkills …",
"boundingRect": {
"top": 2004,
"left": 20,
"right": 392,
"width": 372,
"bottom": 2314,
"height": 310
}
}
}
]
}
},
{
"node": {
"lhId": "1-14-SPAN",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,3,A,0,DIV,1,DIV,2,SPAN",
"type": "node",
"snippet": "<span class=\"ml-auto text-white/30\">",
"selector": "a.group > div.absolute > div.flex > span.ml-auto",
"nodeLabel": "02",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 2.67 (foreground color: #5a5a58, background color: #131411, font size: 6.8pt (9px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 2125,
"left": 347,
"right": 358,
"width": 11,
"bottom": 2140,
"height": 15
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-15-DIV",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,3,A,0,DIV,1,DIV",
"type": "node",
"snippet": "<div class=\"flex items-center gap-2 rounded-[8px] border border-white/10 bg-black/25 p…\" style=\"margin-left:12px;transition-delay:45ms\">",
"selector": "div.grid > a.group > div.absolute > div.flex",
"nodeLabel": "+\napi-architect\n02",
"boundingRect": {
"top": 2116,
"left": 53,
"right": 371,
"width": 318,
"bottom": 2149,
"height": 33
}
}
},
{
"relatedNode": {
"lhId": "1-13-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,3,A",
"type": "node",
"snippet": "<a class=\"group relative min-h-[310px] overflow-hidden rounded-[18px] border border-…\" href=\"/zh/skills\">",
"selector": "main.relative > section.border-t > div.grid > a.group",
"nodeLabel": "+\nfrontend-design\n01\n+\napi-architect\n02\n+\ntesting-agent\n03\nAGENT SKILLS\nSkills …",
"boundingRect": {
"top": 2004,
"left": 20,
"right": 392,
"width": 372,
"bottom": 2314,
"height": 310
}
}
}
]
}
},
{
"node": {
"lhId": "1-16-SPAN",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,3,A,0,DIV,2,DIV,2,SPAN",
"type": "node",
"snippet": "<span class=\"ml-auto text-white/30\">",
"selector": "a.group > div.absolute > div.flex > span.ml-auto",
"nodeLabel": "03",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 2.67 (foreground color: #5a5a58, background color: #131411, font size: 6.8pt (9px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 2164,
"left": 347,
"right": 358,
"width": 11,
"bottom": 2179,
"height": 15
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-17-DIV",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,3,A,0,DIV,2,DIV",
"type": "node",
"snippet": "<div class=\"flex items-center gap-2 rounded-[8px] border border-white/10 bg-black/25 p…\" style=\"margin-left:24px;transition-delay:90ms\">",
"selector": "div.grid > a.group > div.absolute > div.flex",
"nodeLabel": "+\ntesting-agent\n03",
"boundingRect": {
"top": 2155,
"left": 65,
"right": 371,
"width": 306,
"bottom": 2188,
"height": 33
}
}
},
{
"relatedNode": {
"lhId": "1-13-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,3,A",
"type": "node",
"snippet": "<a class=\"group relative min-h-[310px] overflow-hidden rounded-[18px] border border-…\" href=\"/zh/skills\">",
"selector": "main.relative > section.border-t > div.grid > a.group",
"nodeLabel": "+\nfrontend-design\n01\n+\napi-architect\n02\n+\ntesting-agent\n03\nAGENT SKILLS\nSkills …",
"boundingRect": {
"top": 2004,
"left": 20,
"right": 392,
"width": 372,
"bottom": 2314,
"height": 310
}
}
}
]
}
},
{
"node": {
"lhId": "1-18-SPAN",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,3,A,1,DIV,0,SPAN",
"type": "node",
"snippet": "<span class=\"inline-flex items-center gap-1.5 rounded-full border border-[var(--brand)]…\">",
"selector": "div.grid > a.group > div.relative > span.inline-flex",
"nodeLabel": "AGENT SKILLS",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.07 (foreground color: #2a7a60, background color: #1b241e, font size: 6.8pt (9px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 2025,
"left": 41,
"right": 151,
"width": 110,
"bottom": 2050,
"height": 25
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-13-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,3,A",
"type": "node",
"snippet": "<a class=\"group relative min-h-[310px] overflow-hidden rounded-[18px] border border-…\" href=\"/zh/skills\">",
"selector": "main.relative > section.border-t > div.grid > a.group",
"nodeLabel": "+\nfrontend-design\n01\n+\napi-architect\n02\n+\ntesting-agent\n03\nAGENT SKILLS\nSkills …",
"boundingRect": {
"top": 2004,
"left": 20,
"right": 392,
"width": 372,
"bottom": 2314,
"height": 310
}
}
}
]
}
},
{
"node": {
"lhId": "1-19-SPAN",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,3,A,2,DIV,2,SPAN",
"type": "node",
"snippet": "<span class=\"mt-3 inline-flex text-[11px] font-semibold text-[var(--brand)]\">",
"selector": "div.grid > a.group > div.absolute > span.mt-3",
"nodeLabel": "查看详情",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.37 (foreground color: #2a7a60, background color: #191a17, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 2273,
"left": 41,
"right": 85,
"width": 44,
"bottom": 2291,
"height": 18
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-13-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,1,SECTION,1,DIV,3,A",
"type": "node",
"snippet": "<a class=\"group relative min-h-[310px] overflow-hidden rounded-[18px] border border-…\" href=\"/zh/skills\">",
"selector": "main.relative > section.border-t > div.grid > a.group",
"nodeLabel": "+\nfrontend-design\n01\n+\napi-architect\n02\n+\ntesting-agent\n03\nAGENT SKILLS\nSkills …",
"boundingRect": {
"top": 2004,
"left": 20,
"right": 392,
"width": 372,
"bottom": 2314,
"height": 310
}
}
}
]
}
},
{
"node": {
"lhId": "1-20-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,0,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-2 text-sm text-[var(--text-muted)]\">",
"selector": "main.relative > section#catalog > div.mb-8 > p.mt-2",
"nodeLabel": "点开即用。数据处理都在浏览器本地完成,不经由任何服务器。",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 2467,
"left": 20,
"right": 392,
"width": 372,
"bottom": 2507,
"height": 40
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-21-SPAN",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,0,NAV,0,A,1,SPAN",
"type": "node",
"snippet": "<span class=\"font-mono text-[11px] tabular-nums text-[var(--text-muted)]\">",
"selector": "div.grid > nav.flex > a.shrink-0 > span.font-mono",
"nodeLabel": "12",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 2549,
"left": 96,
"right": 109,
"width": 13,
"bottom": 2564,
"height": 16
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-22-SPAN",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,0,NAV,1,A,1,SPAN",
"type": "node",
"snippet": "<span class=\"font-mono text-[11px] tabular-nums text-[var(--text-muted)]\">",
"selector": "div.grid > nav.flex > a.shrink-0 > span.font-mono",
"nodeLabel": "06",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 2549,
"left": 201,
"right": 214,
"width": 13,
"bottom": 2564,
"height": 16
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-23-SPAN",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,0,NAV,2,A,1,SPAN",
"type": "node",
"snippet": "<span class=\"font-mono text-[11px] tabular-nums text-[var(--text-muted)]\">",
"selector": "div.grid > nav.flex > a.shrink-0 > span.font-mono",
"nodeLabel": "03",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 2549,
"left": 306,
"right": 320,
"width": 13,
"bottom": 2564,
"height": 16
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-24-H3",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,0,DIV,0,H3",
"type": "node",
"snippet": "<h3 class=\"text-xs font-mono uppercase tracking-wider text-[var(--text-muted)]\">",
"selector": "div.min-w-0 > section#dev > div.flex > h3.text-xs",
"nodeLabel": "开发工具",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 2618,
"left": 20,
"right": 70,
"width": 50,
"bottom": 2634,
"height": 16
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-25-SPAN",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,0,DIV,1,SPAN",
"type": "node",
"snippet": "<span class=\"text-[11px] font-mono text-[var(--text-muted)]\">",
"selector": "div.min-w-0 > section#dev > div.flex > span.text-[11px]",
"nodeLabel": "12 items",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 2617,
"left": 339,
"right": 392,
"width": 53,
"bottom": 2635,
"height": 18
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-26-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,0,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "格式化、校验、压缩 JSON 数据,支持语法高亮与错误提示",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 2696,
"left": 73,
"right": 379,
"width": 306,
"bottom": 2735,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-27-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,0,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/json-formatter\">",
"selector": "div.min-w-0 > section#dev > div.grid > a.group",
"nodeLabel": "JSON 格式化\n\n格式化、校验、压缩 JSON 数据,支持语法高亮与错误提示",
"boundingRect": {
"top": 2658,
"left": 20,
"right": 392,
"width": 372,
"bottom": 2748,
"height": 90
}
}
}
]
}
},
{
"node": {
"lhId": "1-28-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,1,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "对比两段文本或代码的差异,逐行高亮显示新增、删除与修改",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 2794,
"left": 73,
"right": 379,
"width": 306,
"bottom": 2833,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-29-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,1,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/diff-editor\">",
"selector": "div.min-w-0 > section#dev > div.grid > a.group",
"nodeLabel": "Diff 对比\n\n对比两段文本或代码的差异,逐行高亮显示新增、删除与修改",
"boundingRect": {
"top": 2756,
"left": 20,
"right": 392,
"width": 372,
"bottom": 2846,
"height": 90
}
}
}
]
}
},
{
"node": {
"lhId": "1-30-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,2,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "对 URL 或任意字符串进行 encodeURIComponent / decodeURIComponent 处理",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 2892,
"left": 73,
"right": 379,
"width": 306,
"bottom": 2931,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-31-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,2,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/url-codec\">",
"selector": "div.min-w-0 > section#dev > div.grid > a.group",
"nodeLabel": "URL 编解码\n\n对 URL 或任意字符串进行 encodeURIComponent / decodeURIComponent 处理",
"boundingRect": {
"top": 2854,
"left": 20,
"right": 392,
"width": 372,
"bottom": 2944,
"height": 90
}
}
}
]
}
},
{
"node": {
"lhId": "1-32-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,3,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "实时测试正则表达式匹配与替换,快速定位文本规则",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 2990,
"left": 73,
"right": 379,
"width": 306,
"bottom": 3010,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-33-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,3,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/regex-tester\">",
"selector": "div.min-w-0 > section#dev > div.grid > a.group",
"nodeLabel": "Regex 测试器\n\n实时测试正则表达式匹配与替换,快速定位文本规则",
"boundingRect": {
"top": 2952,
"left": 20,
"right": 392,
"width": 372,
"bottom": 3023,
"height": 71
}
}
}
]
}
},
{
"node": {
"lhId": "1-34-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,4,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "Unix 时间戳与日期时间互转,支持秒/毫秒、本地与 UTC",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 3069,
"left": 73,
"right": 379,
"width": 306,
"bottom": 3089,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-35-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,4,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/timestamp-converter\">",
"selector": "div.min-w-0 > section#dev > div.grid > a.group",
"nodeLabel": "时间戳转换\n\nUnix 时间戳与日期时间互转,支持秒/毫秒、本地与 UTC",
"boundingRect": {
"top": 3031,
"left": 20,
"right": 392,
"width": 372,
"bottom": 3102,
"height": 71
}
}
}
]
}
},
{
"node": {
"lhId": "1-36-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,5,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "快速解析 JWT 的 Header 与 Payload(不做签名校验)",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 3148,
"left": 73,
"right": 379,
"width": 306,
"bottom": 3167,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-37-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,5,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/jwt-decoder\">",
"selector": "div.min-w-0 > section#dev > div.grid > a.group",
"nodeLabel": "JWT 解码\n\n快速解析 JWT 的 Header 与 Payload(不做签名校验)",
"boundingRect": {
"top": 3110,
"left": 20,
"right": 392,
"width": 372,
"bottom": 3180,
"height": 71
}
}
}
]
}
},
{
"node": {
"lhId": "1-38-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,6,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "支持 SHA-1 / SHA-256 / SHA-384 / SHA-512 文本哈希",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 3226,
"left": 73,
"right": 379,
"width": 306,
"bottom": 3246,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-39-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,6,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/hash-generator\">",
"selector": "div.min-w-0 > section#dev > div.grid > a.group",
"nodeLabel": "Hash 生成器\n\n支持 SHA-1 / SHA-256 / SHA-384 / SHA-512 文本哈希",
"boundingRect": {
"top": 3188,
"left": 20,
"right": 392,
"width": 372,
"bottom": 3259,
"height": 71
}
}
}
]
}
},
{
"node": {
"lhId": "1-40-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,7,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "将文本编码为 Base64 格式或从 Base64 解码,支持 URL 安全选项",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 3305,
"left": 73,
"right": 379,
"width": 306,
"bottom": 3344,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-41-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,7,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/base64-codec\">",
"selector": "div.min-w-0 > section#dev > div.grid > a.group",
"nodeLabel": "Base64 编解码\n\n将文本编码为 Base64 格式或从 Base64 解码,支持 URL 安全选项",
"boundingRect": {
"top": 3267,
"left": 20,
"right": 392,
"width": 372,
"bottom": 3357,
"height": 90
}
}
}
]
}
},
{
"node": {
"lhId": "1-42-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,8,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "格式化和美化 SQL 查询,支持多种方言(PostgreSQL、MySQL 等)",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 3403,
"left": 73,
"right": 379,
"width": 306,
"bottom": 3442,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-43-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,8,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/sql-formatter\">",
"selector": "div.min-w-0 > section#dev > div.grid > a.group",
"nodeLabel": "SQL 格式化\n\n格式化和美化 SQL 查询,支持多种方言(PostgreSQL、MySQL 等)",
"boundingRect": {
"top": 3365,
"left": 20,
"right": 392,
"width": 372,
"bottom": 3455,
"height": 90
}
}
}
]
}
},
{
"node": {
"lhId": "1-44-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,9,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "生成和解析 Cron 表达式,提供人类可读的描述和下次执行时间",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 3501,
"left": 73,
"right": 379,
"width": 306,
"bottom": 3540,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-45-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,9,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/cron-generator\">",
"selector": "div.min-w-0 > section#dev > div.grid > a.group",
"nodeLabel": "Cron 生成器\n\n生成和解析 Cron 表达式,提供人类可读的描述和下次执行时间",
"boundingRect": {
"top": 3463,
"left": 20,
"right": 392,
"width": 372,
"bottom": 3553,
"height": 90
}
}
}
]
}
},
{
"node": {
"lhId": "1-46-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,10,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "将 JSON 对象转换为 TypeScript 接口、Go 结构体、Rust 结构体等",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 3599,
"left": 73,
"right": 379,
"width": 306,
"bottom": 3638,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-47-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,10,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/json-to-types\">",
"selector": "div.min-w-0 > section#dev > div.grid > a.group",
"nodeLabel": "JSON 转类型\n\n将 JSON 对象转换为 TypeScript 接口、Go 结构体、Rust 结构体等",
"boundingRect": {
"top": 3561,
"left": 20,
"right": 392,
"width": 372,
"bottom": 3651,
"height": 90
}
}
}
]
}
},
{
"node": {
"lhId": "1-48-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,11,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "解析 cURL 命令,生成 TypeScript、Go、Rust、Python、Java 类型定义",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 3697,
"left": 73,
"right": 379,
"width": 306,
"bottom": 3736,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-49-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,0,SECTION,1,DIV,11,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/curl-to-code\">",
"selector": "div.min-w-0 > section#dev > div.grid > a.group",
"nodeLabel": "cURL 转类型\n\n解析 cURL 命令,生成 TypeScript、Go、Rust、Python、Java 类型定义",
"boundingRect": {
"top": 3659,
"left": 20,
"right": 392,
"width": 372,
"bottom": 3749,
"height": 90
}
}
}
]
}
},
{
"node": {
"lhId": "1-50-H3",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,1,SECTION,0,DIV,0,H3",
"type": "node",
"snippet": "<h3 class=\"text-xs font-mono uppercase tracking-wider text-[var(--text-muted)]\">",
"selector": "div.min-w-0 > section#design > div.flex > h3.text-xs",
"nodeLabel": "设计工具",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 3798,
"left": 20,
"right": 70,
"width": 50,
"bottom": 3814,
"height": 16
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-51-SPAN",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,1,SECTION,0,DIV,1,SPAN",
"type": "node",
"snippet": "<span class=\"text-[11px] font-mono text-[var(--text-muted)]\">",
"selector": "div.min-w-0 > section#design > div.flex > span.text-[11px]",
"nodeLabel": "6 items",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 3797,
"left": 346,
"right": 392,
"width": 46,
"bottom": 3815,
"height": 18
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-52-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,1,SECTION,1,DIV,0,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "批量压缩图片,支持 WebP/JPEG/PNG 输出、质量调节与 ZIP 下载",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 3876,
"left": 73,
"right": 379,
"width": 306,
"bottom": 3915,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-53-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,1,SECTION,1,DIV,0,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/image-compressor\">",
"selector": "div.min-w-0 > section#design > div.grid > a.group",
"nodeLabel": "图片压缩\n\n批量压缩图片,支持 WebP/JPEG/PNG 输出、质量调节与 ZIP 下载",
"boundingRect": {
"top": 3838,
"left": 20,
"right": 392,
"width": 372,
"bottom": 3928,
"height": 90
}
}
}
]
}
},
{
"node": {
"lhId": "1-54-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,1,SECTION,1,DIV,1,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "在 HEX、RGB、HSL、HWB、CMYK 和 LCH 格式之间转换颜色",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 3975,
"left": 73,
"right": 379,
"width": 306,
"bottom": 4014,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-55-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,1,SECTION,1,DIV,1,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/color-converter\">",
"selector": "div.min-w-0 > section#design > div.grid > a.group",
"nodeLabel": "颜色转换器\n\n在 HEX、RGB、HSL、HWB、CMYK 和 LCH 格式之间转换颜色",
"boundingRect": {
"top": 3936,
"left": 20,
"right": 392,
"width": 372,
"bottom": 4027,
"height": 90
}
}
}
]
}
},
{
"node": {
"lhId": "1-56-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,1,SECTION,1,DIV,2,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "生成 box-shadow、渐变、border-radius 等 CSS 代码,并提供可视化预览",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 4073,
"left": 73,
"right": 379,
"width": 306,
"bottom": 4112,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-57-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,1,SECTION,1,DIV,2,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/css-generator\">",
"selector": "div.min-w-0 > section#design > div.grid > a.group",
"nodeLabel": "CSS 生成器\n\n生成 box-shadow、渐变、border-radius 等 CSS 代码,并提供可视化预览",
"boundingRect": {
"top": 4035,
"left": 20,
"right": 392,
"width": 372,
"bottom": 4125,
"height": 90
}
}
}
]
}
},
{
"node": {
"lhId": "1-58-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,1,SECTION,1,DIV,3,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "将代码片段渲染为适合分享的高清图片",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 4171,
"left": 73,
"right": 379,
"width": 306,
"bottom": 4190,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-59-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,1,SECTION,1,DIV,3,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/code-to-image\">",
"selector": "div.min-w-0 > section#design > div.grid > a.group",
"nodeLabel": "代码转图片\n\n将代码片段渲染为适合分享的高清图片",
"boundingRect": {
"top": 4133,
"left": 20,
"right": 392,
"width": 372,
"bottom": 4203,
"height": 71
}
}
}
]
}
},
{
"node": {
"lhId": "1-60-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,1,SECTION,1,DIV,4,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "优化和压缩 SVG 文件,在保持质量的同时减小文件大小",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 4249,
"left": 73,
"right": 379,
"width": 306,
"bottom": 4269,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-61-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,1,SECTION,1,DIV,4,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/svg-optimizer\">",
"selector": "div.min-w-0 > section#design > div.grid > a.group",
"nodeLabel": "SVG 优化器\n\n优化和压缩 SVG 文件,在保持质量的同时减小文件大小",
"boundingRect": {
"top": 4211,
"left": 20,
"right": 392,
"width": 372,
"bottom": 4282,
"height": 71
}
}
}
]
}
},
{
"node": {
"lhId": "1-62-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,1,SECTION,1,DIV,5,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "在 PNG、JPEG、WebP、GIF 和 AVIF 格式之间转换图片",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 4328,
"left": 73,
"right": 379,
"width": 306,
"bottom": 4347,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-63-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,1,SECTION,1,DIV,5,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/image-converter\">",
"selector": "div.min-w-0 > section#design > div.grid > a.group",
"nodeLabel": "图片格式转换\n\n在 PNG、JPEG、WebP、GIF 和 AVIF 格式之间转换图片",
"boundingRect": {
"top": 4290,
"left": 20,
"right": 392,
"width": 372,
"bottom": 4360,
"height": 71
}
}
}
]
}
},
{
"node": {
"lhId": "1-64-H3",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,2,SECTION,0,DIV,0,H3",
"type": "node",
"snippet": "<h3 class=\"text-xs font-mono uppercase tracking-wider text-[var(--text-muted)]\">",
"selector": "div.min-w-0 > section#office > div.flex > h3.text-xs",
"nodeLabel": "效率办公",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 4409,
"left": 20,
"right": 70,
"width": 50,
"bottom": 4425,
"height": 16
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-65-SPAN",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,2,SECTION,0,DIV,1,SPAN",
"type": "node",
"snippet": "<span class=\"text-[11px] font-mono text-[var(--text-muted)]\">",
"selector": "div.min-w-0 > section#office > div.flex > span.text-[11px]",
"nodeLabel": "3 items",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 4408,
"left": 346,
"right": 392,
"width": 46,
"bottom": 4427,
"height": 18
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-66-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,2,SECTION,1,DIV,0,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "在浏览器中合并多个 PDF,或按页码范围拆分 PDF",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 4488,
"left": 73,
"right": 379,
"width": 306,
"bottom": 4507,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-67-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,2,SECTION,1,DIV,0,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/pdf-toolkit\">",
"selector": "div.min-w-0 > section#office > div.grid > a.group",
"nodeLabel": "PDF 合并/拆分\n\n在浏览器中合并多个 PDF,或按页码范围拆分 PDF",
"boundingRect": {
"top": 4450,
"left": 20,
"right": 392,
"width": 372,
"bottom": 4520,
"height": 71
}
}
}
]
}
},
{
"node": {
"lhId": "1-68-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,2,SECTION,1,DIV,1,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "CSV、Excel 与 JSON 互转,支持导入文件快速转换",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 4566,
"left": 73,
"right": 379,
"width": 306,
"bottom": 4586,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-69-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,2,SECTION,1,DIV,1,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/table-json-converter\">",
"selector": "div.min-w-0 > section#office > div.grid > a.group",
"nodeLabel": "CSV/Excel ⇔ JSON\n\nCSV、Excel 与 JSON 互转,支持导入文件快速转换",
"boundingRect": {
"top": 4528,
"left": 20,
"right": 392,
"width": 372,
"bottom": 4599,
"height": 71
}
}
}
]
}
},
{
"node": {
"lhId": "1-70-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,2,SECTION,1,DIV,2,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "链接、Wi-Fi、文本和电子名片一键生成 QR 码,本地导出 PNG / SVG",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 4645,
"left": 73,
"right": 379,
"width": 306,
"bottom": 4684,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-71-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,2,SECTION,1,DIV,2,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/qr-generator\">",
"selector": "div.min-w-0 > section#office > div.grid > a.group",
"nodeLabel": "QR 码生成器\n\n链接、Wi-Fi、文本和电子名片一键生成 QR 码,本地导出 PNG / SVG",
"boundingRect": {
"top": 4607,
"left": 20,
"right": 392,
"width": 372,
"bottom": 4697,
"height": 90
}
}
}
]
}
},
{
"node": {
"lhId": "1-72-H3",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,3,SECTION,0,DIV,0,H3",
"type": "node",
"snippet": "<h3 class=\"text-xs font-mono uppercase tracking-wider text-[var(--text-muted)]\">",
"selector": "div.min-w-0 > section#text > div.flex > h3.text-xs",
"nodeLabel": "文本处理",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 4746,
"left": 20,
"right": 70,
"width": 50,
"bottom": 4762,
"height": 16
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-73-SPAN",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,3,SECTION,0,DIV,1,SPAN",
"type": "node",
"snippet": "<span class=\"text-[11px] font-mono text-[var(--text-muted)]\">",
"selector": "div.min-w-0 > section#text > div.flex > span.text-[11px]",
"nodeLabel": "3 items",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 4745,
"left": 346,
"right": 392,
"width": 46,
"bottom": 4763,
"height": 18
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-74-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,3,SECTION,1,DIV,0,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "Markdown 与 HTML 双向转换,并支持实时预览",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 4824,
"left": 73,
"right": 379,
"width": 306,
"bottom": 4844,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-75-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,3,SECTION,1,DIV,0,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/markdown-converter\">",
"selector": "div.min-w-0 > section#text > div.grid > a.group",
"nodeLabel": "Markdown 转换器\n\nMarkdown 与 HTML 双向转换,并支持实时预览",
"boundingRect": {
"top": 4786,
"left": 20,
"right": 392,
"width": 372,
"bottom": 4857,
"height": 71
}
}
}
]
}
},
{
"node": {
"lhId": "1-76-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,3,SECTION,1,DIV,1,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "支持行修剪、去空行、去重、排序,快速整理文本内容",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 4903,
"left": 73,
"right": 379,
"width": 306,
"bottom": 4922,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-77-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,3,SECTION,1,DIV,1,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/text-cleaner\">",
"selector": "div.min-w-0 > section#text > div.grid > a.group",
"nodeLabel": "文本清洗\n\n支持行修剪、去空行、去重、排序,快速整理文本内容",
"boundingRect": {
"top": 4865,
"left": 20,
"right": 392,
"width": 372,
"bottom": 4935,
"height": 71
}
}
}
]
}
},
{
"node": {
"lhId": "1-78-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,3,SECTION,1,DIV,2,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "实时统计字数、词数和阅读时间,对照常用内容平台发布限额",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 4981,
"left": 73,
"right": 379,
"width": 306,
"bottom": 5020,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-79-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,3,SECTION,1,DIV,2,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/platform-word-counter\">",
"selector": "div.min-w-0 > section#text > div.grid > a.group",
"nodeLabel": "字数统计与平台限额\n\n实时统计字数、词数和阅读时间,对照常用内容平台发布限额",
"boundingRect": {
"top": 4943,
"left": 20,
"right": 392,
"width": 372,
"bottom": 5033,
"height": 90
}
}
}
]
}
},
{
"node": {
"lhId": "1-80-H3",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,4,SECTION,0,DIV,0,H3",
"type": "node",
"snippet": "<h3 class=\"text-xs font-mono uppercase tracking-wider text-[var(--text-muted)]\">",
"selector": "div.min-w-0 > section#ai > div.flex > h3.text-xs",
"nodeLabel": "AI 工具",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 5082,
"left": 20,
"right": 69,
"width": 49,
"bottom": 5098,
"height": 16
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-81-SPAN",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,4,SECTION,0,DIV,1,SPAN",
"type": "node",
"snippet": "<span class=\"text-[11px] font-mono text-[var(--text-muted)]\">",
"selector": "div.min-w-0 > section#ai > div.flex > span.text-[11px]",
"nodeLabel": "7 items",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 5081,
"left": 346,
"right": 392,
"width": 46,
"bottom": 5099,
"height": 18
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-82-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,4,SECTION,1,DIV,0,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "连接远程 MCP Server,调试 Tools / Resources / Prompts",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 5160,
"left": 73,
"right": 379,
"width": 306,
"bottom": 5199,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-83-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,4,SECTION,1,DIV,0,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/mcp-debugger\">",
"selector": "div.min-w-0 > section#ai > div.grid > a.group",
"nodeLabel": "MCP Debugger\n\n连接远程 MCP Server,调试 Tools / Resources / Prompts",
"boundingRect": {
"top": 5122,
"left": 20,
"right": 392,
"width": 372,
"bottom": 5212,
"height": 90
}
}
}
]
}
},
{
"node": {
"lhId": "1-84-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,4,SECTION,1,DIV,1,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "使用 AI 从自然语言描述生成正则表达式",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 5259,
"left": 73,
"right": 379,
"width": 306,
"bottom": 5278,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-85-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,4,SECTION,1,DIV,1,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/ai-regex\">",
"selector": "div.min-w-0 > section#ai > div.grid > a.group",
"nodeLabel": "AI 正则生成器\n\n使用 AI 从自然语言描述生成正则表达式",
"boundingRect": {
"top": 5220,
"left": 20,
"right": 392,
"width": 372,
"bottom": 5291,
"height": 71
}
}
}
]
}
},
{
"node": {
"lhId": "1-86-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,4,SECTION,1,DIV,2,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "输入数据结构,自动生成结构规范的测试 Mock 数据",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 5337,
"left": 73,
"right": 379,
"width": 306,
"bottom": 5357,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-87-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,4,SECTION,1,DIV,2,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/ai-mock\">",
"selector": "div.min-w-0 > section#ai > div.grid > a.group",
"nodeLabel": "AI Mock API\n\n输入数据结构,自动生成结构规范的测试 Mock 数据",
"boundingRect": {
"top": 5299,
"left": 20,
"right": 392,
"width": 372,
"bottom": 5370,
"height": 71
}
}
}
]
}
},
{
"node": {
"lhId": "1-88-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,4,SECTION,1,DIV,3,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "使用 AI 从自然语言描述生成 Mermaid 流程图、时序图等图表",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 5416,
"left": 73,
"right": 379,
"width": 306,
"bottom": 5455,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-89-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,4,SECTION,1,DIV,3,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/ai-mermaid\">",
"selector": "div.min-w-0 > section#ai > div.grid > a.group",
"nodeLabel": "AI Mermaid 图表\n\n使用 AI 从自然语言描述生成 Mermaid 流程图、时序图等图表",
"boundingRect": {
"top": 5378,
"left": 20,
"right": 392,
"width": 372,
"bottom": 5468,
"height": 90
}
}
}
]
}
},
{
"node": {
"lhId": "1-90-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,4,SECTION,1,DIV,4,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "估算 GPT、Claude、Gemini、DeepSeek 的 token 数量与参考费用",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 5514,
"left": 73,
"right": 379,
"width": 306,
"bottom": 5553,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-91-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,4,SECTION,1,DIV,4,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/ai-token-counter\">",
"selector": "div.min-w-0 > section#ai > div.grid > a.group",
"nodeLabel": "AI Token 计数器\n\n估算 GPT、Claude、Gemini、DeepSeek 的 token 数量与参考费用",
"boundingRect": {
"top": 5476,
"left": 20,
"right": 392,
"width": 372,
"bottom": 5566,
"height": 90
}
}
}
]
}
},
{
"node": {
"lhId": "1-92-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,4,SECTION,1,DIV,5,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "自动识别主体并抠出透明背景,支持无损 PNG 导出",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 5612,
"left": 73,
"right": 379,
"width": 306,
"bottom": 5631,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-93-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,4,SECTION,1,DIV,5,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/background-remover\">",
"selector": "div.min-w-0 > section#ai > div.grid > a.group",
"nodeLabel": "AI 背景移除\n\n自动识别主体并抠出透明背景,支持无损 PNG 导出",
"boundingRect": {
"top": 5574,
"left": 20,
"right": 392,
"width": 372,
"bottom": 5644,
"height": 71
}
}
}
]
}
},
{
"node": {
"lhId": "1-94-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,4,SECTION,1,DIV,6,A,1,DIV,1,P",
"type": "node",
"snippet": "<p class=\"mt-0.5 text-[12px] text-[var(--text-muted)] line-clamp-2 leading-relaxed\">",
"selector": "div.grid > a.group > div.min-w-0 > p.mt-0.5",
"nodeLabel": "生成标准一寸、二寸与护照证件照,支持白底、蓝底、红底切换",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.7 (foreground color: #6f766c, background color: #181b18, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 5691,
"left": 73,
"right": 379,
"width": 306,
"bottom": 5730,
"height": 39
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-95-A",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,2,SECTION,1,DIV,1,DIV,4,SECTION,1,DIV,6,A",
"type": "node",
"snippet": "<a class=\"group relative flex items-start gap-3 p-3 rounded-[10px] border border-[va…\" href=\"/zh/tools/id-photo-generator\">",
"selector": "div.min-w-0 > section#ai > div.grid > a.group",
"nodeLabel": "AI 证件照生成\n\n生成标准一寸、二寸与护照证件照,支持白底、蓝底、红底切换",
"boundingRect": {
"top": 5652,
"left": 20,
"right": 392,
"width": 372,
"bottom": 5743,
"height": 90
}
}
}
]
}
},
{
"node": {
"lhId": "1-96-SPAN",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,4,SECTION,0,DIV,0,DIV,1,DIV,1,SPAN",
"type": "node",
"snippet": "<span class=\"text-sm text-[var(--text-muted)]\">",
"selector": "div.flex > div > div.mt-4 > span.text-sm",
"nodeLabel": "/ 月",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 6089,
"left": 122,
"right": 144,
"width": 22,
"bottom": 6109,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-97-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,4,SECTION,0,DIV,0,DIV,2,P",
"type": "node",
"snippet": "<p class=\"mt-2 text-sm text-[var(--text-muted)]\">",
"selector": "section#pricing > div.flex > div > p.mt-2",
"nodeLabel": "或 ¥99 / 年",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 6119,
"left": 20,
"right": 392,
"width": 372,
"bottom": 6139,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-98-P",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,4,SECTION,1,P",
"type": "node",
"snippet": "<p class=\"mt-8 text-sm text-[var(--text-muted)]\">",
"selector": "div.home-shell > main.relative > section#pricing > p.mt-8",
"nodeLabel": "免费 ¥0 · 所有基础格式化与转换工具无限制使用 / 高级 AI 工具每日免费试用额度 / 数据完全留在本地浏览器沙盒",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 6407,
"left": 20,
"right": 392,
"width": 372,
"bottom": 6447,
"height": 40
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-99-P",
"path": "1,HTML,1,BODY,3,DIV,7,FOOTER,0,DIV,0,P",
"type": "node",
"snippet": "<p translate=\"no\">",
"selector": "div.home-shell > footer.relative > div.border-t > p",
"nodeLabel": "iTool · itool.tech · 免费在线工具库",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 6568,
"left": 20,
"right": 392,
"width": 372,
"bottom": 6588,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-100-A",
"path": "1,HTML,1,BODY,3,DIV,7,FOOTER,0,DIV,1,DIV,0,A",
"type": "node",
"snippet": "<a class=\"hover:text-[var(--brand)]\" href=\"/zh/privacy\">",
"selector": "footer.relative > div.border-t > div.flex > a.hover:text-[var(--brand)]",
"nodeLabel": "隐私政策",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 6600,
"left": 20,
"right": 68,
"width": 48,
"bottom": 6620,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
},
{
"node": {
"lhId": "1-101-A",
"path": "1,HTML,1,BODY,3,DIV,7,FOOTER,0,DIV,1,DIV,1,A",
"type": "node",
"snippet": "<a class=\"hover:text-[var(--brand)]\" href=\"/zh/terms\">",
"selector": "footer.relative > div.border-t > div.flex > a.hover:text-[var(--brand)]",
"nodeLabel": "服务条款",
"explanation": "Fix any of the following:\n Element has insufficient color contrast of 3.95 (foreground color: #6f766c, background color: #121412, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
"boundingRect": {
"top": 6600,
"left": 84,
"right": 132,
"width": 48,
"bottom": 6620,
"height": 20
}
},
"subItems": {
"type": "subitems",
"items": [
{
"relatedNode": {
"lhId": "1-2-DIV",
"path": "1,HTML,1,BODY,3,DIV",
"type": "node",
"snippet": "<div class=\"home-shell relative min-h-[100dvh]\">",
"selector": "body > div.home-shell",
"nodeLabel": "跳到工具列表\niTool\n中文\n登录\n注册\n\nITOOL.TECH · 干净纯粹,开箱即用\n\niTool · 趁手的 数字军刀\niTool · 趁手的\n数字军…",
"boundingRect": {
"top": 0,
"left": 0,
"right": 412,
"width": 412,
"bottom": 6683,
"height": 6683
}
}
}
]
}
}
],
"headings": [
{
"key": "node",
"label": "Failing Elements",
"valueType": "node",
"subItemsHeading": {
"key": "relatedNode",
"valueType": "node"
}
}
],
"debugData": {
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT",
"RGAAv4",
"RGAA-3.2.1"
],
"type": "debugdata",
"impact": "serious"
}
}Est savings of 94 KiB
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. Learn how to reduce unused JavaScript.
{
"type": "opportunity",
"items": [
{
"url": "https://www.googletagmanager.com/gtag/js?id=G-BF3WR74HTN",
"totalBytes": 164240,
"wastedBytes": 70164,
"wastedPercent": 42.72049168017683
},
{
"url": "https://itool.tech/_next/static/chunks/ae3b95db7622951d.js",
"totalBytes": 32936,
"wastedBytes": 26481,
"wastedPercent": 80.40081540008929
}
],
"headings": [
{
"key": "url",
"label": "URL",
"valueType": "url",
"subItemsHeading": {
"key": "source",
"valueType": "code"
}
},
{
"key": "totalBytes",
"label": "Transfer Size",
"valueType": "bytes",
"subItemsHeading": {
"key": "sourceBytes"
}
},
{
"key": "wastedBytes",
"label": "Est Savings",
"valueType": "bytes",
"subItemsHeading": {
"key": "sourceWastedBytes"
}
}
],
"sortedBy": [
"wastedBytes"
],
"debugData": {
"type": "debugdata",
"metricSavings": {
"FCP": 0,
"LCP": 150
}
},
"overallSavingsMs": 150,
"overallSavingsBytes": 96645
}3 failure reasons
Many navigations are performed by going back to a previous page, or forwards again. The back/forward cache (bfcache) can speed up these return navigations. Learn more about the bfcache
{
"type": "table",
"items": [
{
"reason": "Pages with cache-control:no-store header cannot enter back/forward cache.",
"subItems": {
"type": "subitems",
"items": [
{
"frameUrl": "https://itool.tech/zh"
}
]
},
"failureType": "Actionable",
"protocolReason": "CacheControlNoStoreCookieModified"
},
{
"reason": "Pages whose main resource has cache-control:no-store cannot enter back/forward cache.",
"subItems": {
"type": "subitems",
"items": [
{
"frameUrl": "https://itool.tech/zh"
}
]
},
"failureType": "Not actionable",
"protocolReason": "MainResourceHasCacheControlNoStore"
},
{
"reason": "Back/forward cache is disabled because some JavaScript network request received resource with Cache-Control: no-store header.",
"subItems": {
"type": "subitems",
"items": [
{
"frameUrl": "https://itool.tech/zh"
}
]
},
"failureType": "Not actionable",
"protocolReason": "JsNetworkRequestReceivedCacheControlNoStoreResource"
}
],
"headings": [
{
"key": "reason",
"label": "Failure reason",
"valueType": "text",
"subItemsHeading": {
"key": "frameUrl",
"valueType": "url"
}
},
{
"key": "failureType",
"label": "Failure type",
"valueType": "text"
}
]
}Layout shifts occur when elements move absent any user interaction. Investigate the causes of layout shifts, such as elements being added, removed, or their fonts changing as the page loads.
{
"type": "list",
"items": [
{
"type": "table",
"items": [
{
"node": {
"type": "text",
"value": "Total"
},
"score": 0.1495649194849446
},
{
"node": {
"lhId": "page-2-DIV",
"path": "1,HTML,1,BODY,3,DIV,6,MAIN,0,SECTION,1,DIV",
"type": "node",
"snippet": "<div class=\"home-enter rounded-[18px] border border-[var(--border)] bg-[var(--surface)…\">",
"selector": "div.home-shell > main.relative > section.pt-12 > div.home-enter",
"nodeLabel": "regex-tester\nINPUT\n/\\b[A\nOUTPUT",
"boundingRect": {
"top": 447,
"left": 20,
"right": 392,
"width": 372,
"bottom": 791,
"height": 344
}
},
"score": 0.1464090573219699
},
{
"node": {
"lhId": "page-1-DIV",
"path": "1,HTML,1,BODY,3,DIV,5,HEADER,0,DIV,2,DIV",
"type": "node",
"snippet": "<div class=\"flex items-center gap-2\">",
"selector": "div.home-shell > header.sticky > div.relative > div.flex",
"nodeLabel": "中文\n登录\n注册",
"boundingRect": {
"top": 11,
"left": 112,
"right": 392,
"width": 280,
"bottom": 45,
"height": 33
}
},
"score": 0.00277463360615778
},
{
"score": 0.0000540386455438536
},
{
"score": 0.00003353898860324965
},
{
"score": 0.00003353898860324965
}
],
"headings": [
{
"key": "node",
"label": "Element",
"valueType": "node",
"subItemsHeading": {
"key": "extra"
}
},
{
"key": "score",
"label": "Layout shift score",
"valueType": "numeric",
"granularity": 0.001,
"subItemsHeading": {
"key": "cause",
"valueType": "text"
}
}
]
}
]
}Est savings of 13 KiB
Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile Baseline features, unless you know you must support older browsers. Learn why most sites can deploy ES6+ code without transpiling
{
"type": "table",
"items": [
{
"url": "https://itool.tech/_next/static/chunks/001037fa79564177.js",
"subItems": {
"type": "subitems",
"items": [
{
"signal": "Array.prototype.at",
"location": {
"url": "https://itool.tech/_next/static/chunks/001037fa79564177.js",
"line": 0,
"type": "source-location",
"column": 5126,
"urlProvider": "network"
}
},
{
"signal": "Array.prototype.flat",
"location": {
"url": "https://itool.tech/_next/static/chunks/001037fa79564177.js",
"line": 0,
"type": "source-location",
"column": 4514,
"urlProvider": "network"
}
},
{
"signal": "Array.prototype.flatMap",
"location": {
"url": "https://itool.tech/_next/static/chunks/001037fa79564177.js",
"line": 0,
"type": "source-location",
"column": 4627,
"urlProvider": "network"
}
},
{
"signal": "Object.fromEntries",
"location": {
"url": "https://itool.tech/_next/static/chunks/001037fa79564177.js",
"line": 0,
"type": "source-location",
"column": 5003,
"urlProvider": "network"
}
},
{
"signal": "Object.hasOwn",
"location": {
"url": "https://itool.tech/_next/static/chunks/001037fa79564177.js",
"line": 0,
"type": "source-location",
"column": 5261,
"urlProvider": "network"
}
},
{
"signal": "String.prototype.trimEnd",
"location": {
"url": "https://itool.tech/_next/static/chunks/001037fa79564177.js",
"line": 0,
"type": "source-location",
"column": 4256,
"urlProvider": "network"
}
},
{
"signal": "String.prototype.trimStart",
"location": {
"url": "https://itool.tech/_next/static/chunks/001037fa79564177.js",
"line": 0,
"type": "source-location",
"column": 4171,
"urlProvider": "network"
}
}
]
},
"wastedBytes": 13712
}
],
"headings": [
{
"key": "url",
"label": "URL",
"valueType": "url",
"subItemsHeading": {
"key": "location",
"valueType": "source-location"
}
},
{
"key": null,
"label": "",
"valueType": "code",
"subItemsHeading": {
"key": "signal"
}
},
{
"key": "wastedBytes",
"label": "Wasted bytes",
"valueType": "bytes"
}
],
"debugData": {
"type": "debugdata",
"wastedBytes": 13712
}
}Avoid chaining critical requests by reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load.
{
"type": "list",
"items": [
{
"type": "list-section",
"value": {
"type": "network-tree",
"chains": {
"4A9B45714D20E029726D92D6C764EE75": {
"url": "https://itool.tech/zh",
"children": {
"692.5": {
"url": "https://itool.tech/_next/static/chunks/5db513996f654ad0.css",
"children": {},
"transferSize": 23702,
"navStartToEndTime": 453
},
"692.6": {
"url": "https://itool.tech/_next/static/chunks/416d710481295565.css",
"children": {},
"transferSize": 1059,
"navStartToEndTime": 456
},
"692.45": {
"url": "https://itool.tech/manifest.webmanifest",
"children": {},
"isLongest": true,
"transferSize": 710,
"navStartToEndTime": 667
}
},
"isLongest": true,
"transferSize": 44457,
"navStartToEndTime": 394
}
},
"longestChain": {
"duration": 667
}
}
},
{
"type": "list-section",
"title": "Preconnected origins",
"value": {
"type": "text",
"value": "no origins were preconnected"
},
"description": "[preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) hints help the browser establish a connection earlier in the page load, saving time when the first request for that origin is made. The following are the origins that the page preconnected to."
},
{
"type": "list-section",
"title": "Preconnect candidates",
"value": {
"type": "text",
"value": "No additional origins are good candidates for preconnecting"
},
"description": "Add [preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) hints to your most important origins, but try to use no more than 4."
}
]
}{
"finalUrl": "https://itool.tech/zh",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.0.0 Safari/537.36",
"formFactor": "mobile",
"throttlingMethod": "simulate",
"throttling": {
"rttMs": 150,
"throughputKbps": 1638.4,
"requestLatencyMs": 562.5,
"uploadThroughputKbps": 675,
"cpuSlowdownMultiplier": 4,
"downloadThroughputKbps": 1474.5600000000002
},
"metrics": [
{
"id": "largest-contentful-paint",
"unit": "millisecond",
"value": 3009.7675
},
{
"id": "cumulative-layout-shift",
"unit": "unitless",
"value": 0.1495649194849446
},
{
"id": "total-blocking-time",
"unit": "millisecond",
"value": 597.2114999999999
},
{
"id": "first-contentful-paint",
"unit": "millisecond",
"value": 1453.7675
},
{
"id": "speed-index",
"unit": "millisecond",
"value": 1815.1050957961802
}
]
}01 / 值得借鉴
深色背景(#121412)、卡片底色(#181b18)与细边框(#2a2f2a),配合低饱和翠绿点缀(#2a7a60、#7eb8a8)及 IBM Plex Mono 终端字体,精准传达了工程师工具所需的沉浸感与秩序感。
首屏下方直接用标签强调「31 款工具」「数据不出浏览器」「无需注册登录」,在用户操作前打消隐私顾虑,有效建立信任基石。
02 / 下一步
点击「取用工具」的用户通常抱有明确的工作任务,但视觉下潜首先映入眼帘的是麻将和扑克等娱乐小游戏,冲淡了军刀工具库的严肃定位,容易导致直接跳出。
确保「取用工具」按钮精准锚定到实用工具区域(`H2 工具`),或在首屏标签旁增加直接跳转链接。在 1440px 与 390px 视口下点击测试,验证页面平滑滚动并直接展示分类切换栏。
在 390px 截图上,移动端顶部栏拥挤,明暗切换、语言选择与登录注册按钮堆叠在一起,导致「登录」和「注册」文字在极窄区域内纵向折行,严重影响首屏专业感。
在小于 640px 屏幕下,将次要按钮收进抽屉或汉堡菜单;将登录与注册整合成单行清晰按钮或头像入口,保证点击区域不低于 44px 且文字不折行。在 390px 视口下复查顶栏元素是否严格单行水平对齐。
全站共有 5 大类 31 款工具,但搜索功能目前仅隐藏在顶部导航细小的 `⌘K` 按钮中。对于多工具站,即时可见的全局检索是提升停留与使用频次最核心的抓手。
在工具分类列表上方或首屏正文下方植入常驻搜索框(占位符如「搜索工具,如: JSON, JWT, 正则...」),实现输入即过滤 31 款工具卡片,并验证键入响应体验。
03 / 设计语言
背景
#121412文字
#edeeea强调
#1f2421表达也可以更准确
iTool · 趁手的 数字军刀 iTool ·
iTool · 趁手的数字军刀
去除标题末尾多余且重复出现的品牌字样,保持排版工整干练。作品 · Alex 的 Vibe 项目索引 作品
作品 · Alex 的项目索引
去除尾部重复拼贴的「作品」字样,提升个人项目索引的专业感。04 / 检查依据
逐项查看观察、建议与采集记录。
大标题加渐变、没有真实图片或核心交互,是典型的生成首屏套路。
加一张真照片、产品静物,或真实交互。不要用空 div 假装内容。
iTool · 趁手的 数字军刀iTool ·
在 X、Slack 或微信里展开成空白或套话,等于浪费已经拿到的点击。这是分发,不是装饰。
补上 og:title、og:description,以及一张和线上标题一致的 1200x630 图。
og:title=yes og:image=no
陌生人落到一个看起来像 AI、没有作者、没有客户、没有联系方式的站点上,不会把邮箱给你。
加上真名、真脸、真实联系方式,或一句真实客户的话。
no about, no first-person, no quote
想买、想问、想投诉的人没有出口。这是转化漏洞,也是信任漏洞。
页脚放一个能用的邮箱、表单,或真实社交账号。一个就够。
no mailto / telegram / x / github / email
在 390px 视口中,演示终端卡片占据了整屏以上的高度,将所有实质工具列表推至首屏两屏之后,增加了用户的探索阻力。
在移动端将终端模拟窗口高度限制在 220px 以内或设为可折叠,让工具卡片能够在下滑 1.5 屏以内立即露头。
INPUT {"name":"iTool","tools":["JSON","Diff","Re没有 Strict-Transport-Security,第一次访问仍可能被降到 http。浏览器不会钉死 HTTPS。
在边缘设置 Strict-Transport-Security: max-age=31536000; includeSubDomains。
strict-transport-security missing
每多一个脚本,就多一次布局跳动、追踪和失败。十八个不是技术栈,是一堆。
只留真正有用的脚本。其余等空闲再加载,或者删掉。
19 external scripts
CSP 是限制脚本源的标准做法。vibe 页面常常什么都加载,包括被注入的脚本。
先开 report-only CSP,再收成 default-src 'self' 和明确的 script-src。
content-security-policy missing
没有 nosniff,浏览器可能按错误类型解释文件。这是一行响应头。
设置 X-Content-Type-Options: nosniff。
x-content-type-options missing
默认 referrer 可能把站内路径和查询串漏给第三方。
设置 Referrer-Policy: strict-origin-when-cross-origin。
referrer-policy missing
iTool 是 itool.tech 上的免费浏览器在线工具库。无需下载、无需安装,打开即可使用 JSON 格式化、Diff 对比、URL 编解码、PDF、图片压缩等开发与效率工具。
05 / 开始动手
优化指令用于调整这个页面;设计指令用于借鉴它的视觉语言。「做同款」会附带截图与实施步骤。复制后粘贴到你的代码助手中。
修复 iTool 首页移动端导航栏与首屏视觉交互流向:
1. 针对 <= 640px 移动端视口,重构顶部导航栏弹性布局,解决「登录」和「注册」按钮纵向折行堆叠的问题,保持所有导航元素在单行基线上水平对齐,或者将次要入口收纳至菜单折叠面板中。
2. 清理 H1 标题文本节点,消除末尾重复的品牌后缀,规范为「iTool · 趁手的数字军刀」。
3. 将主 CTA 按钮「取用工具」的锚点精准指向 `#tools` 容器,点击后平滑滚动直达工具分类与列表,避免视口停留在娱乐游戏卡片区域。
4. 在 390px 移动端将代码演示终端(`INPUT {"name":"iTool"...}`)最大高度限制在 240px,避免过长占用导致工具列表过于靠后。
5. 严格保留现有设计令牌(#121412 画布底色、#181b18 卡片表面色、#2a2f2a 边框色、#2a7a60 品牌绿)与字体配置(Bricolage Grotesque 与 IBM Plex Mono)。