Max Potential First Input Delay
220 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.
正文
843
操作候选
31
图片
24
HTML
563 KB
主要入口
Sign up
Tailwind
移动端模拟 · 性能评分
2026-09-09 · 本次测试有警告,结果可能不完整。
移动端模拟 · 实验室数据,非真实用户体验数据
2026-09-09T12:00:47.794Z · Lighthouse 13.4.1
本次测试有警告,结果可能不完整: The page loaded too slowly to finish within the time limit. Results may be incomplete.
分数会受服务器、网络和测试环境影响,独立于品味/转化评分。诊断保留 Lighthouse 原文。
220 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.
Root document took 720 ms
Keep the server response time for the main document short because all other requests depend on it. Learn more about the Time to First Byte metric.
{
"type": "opportunity",
"items": [
{
"url": "https://github.com/",
"responseTime": 723
}
],
"headings": [
{
"key": "url",
"label": "URL",
"valueType": "url"
},
{
"key": "responseTime",
"label": "Time Spent",
"valueType": "timespanMs"
}
],
"overallSavingsMs": 623
}107.0 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.
6.7 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": "other",
"duration": 2962.4639999999067,
"groupLabel": "Other"
},
{
"group": "styleLayout",
"duration": 2400.216,
"groupLabel": "Style & Layout"
},
{
"group": "paintCompositeRender",
"duration": 632.0839999999998,
"groupLabel": "Rendering"
},
{
"group": "scriptEvaluation",
"duration": 451.72400000000016,
"groupLabel": "Script Evaluation"
},
{
"group": "parseHTML",
"duration": 178.928,
"groupLabel": "Parse HTML & CSS"
},
{
"group": "garbageCollection",
"duration": 14.839999999999986,
"groupLabel": "Garbage Collection"
},
{
"group": "scriptParseCompile",
"duration": 12.959999999999997,
"groupLabel": "Script Parsing & Compilation"
}
],
"headings": [
{
"key": "groupLabel",
"label": "Category",
"valueType": "text"
},
{
"key": "duration",
"label": "Time Spent",
"valueType": "ms",
"granularity": 1
}
],
"sortedBy": [
"duration"
]
}Set an explicit width and height on image elements to reduce layout shifts and improve CLS. Learn how to set image dimensions
{
"type": "table",
"items": [
{
"url": "https://images.ctfassets.net/8aevphvgewt8/g1XhuDG7foMyNWIEIpGJj/b40a790b854d0803704deb7905b1bd82/logo-duolingo-14477f9e54a6.svg",
"node": {
"lhId": "1-154-IMG",
"path": "1,HTML,1,BODY,0,DIV,6,DIV,0,MAIN,0,REACT-APP,1,DIV,0,DIV,0,DIV,0,DIV,1,SECTION,0,DIV,1,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,0,IMG",
"type": "node",
"snippet": "<img alt=\"Duolingo\" class=\"Primer_Brand__Image-module__Image___JSzlx\" height=\"32\" src=\"//images.ctfassets.net/8aevphvgewt8/g1XhuDG7foMyNWIEIpGJj/b40a790b854d0803…\" loading=\"lazy\">",
"selector": "div.lp-SectionTemplate-customer > div.Primer_Brand__Pillar-module__Pillar___xLPAt > div.Primer_Brand__Pillar-module__Pillar__image___z4m11 > img.Primer_Brand__Image-module__Image___JSzlx",
"nodeLabel": "Duolingo",
"boundingRect": {
"top": 2705,
"left": 24,
"right": 160,
"width": 136,
"bottom": 2737,
"height": 32
}
}
},
{
"url": "https://images.ctfassets.net/8aevphvgewt8/6Qr8Snm4JceoMFRJhapgFa/802ded1d2c486a9d0a4c073d9f8f38f4/logo-gartner-aa8c2e452b64.svg",
"node": {
"lhId": "1-155-IMG",
"path": "1,HTML,1,BODY,0,DIV,6,DIV,0,MAIN,0,REACT-APP,1,DIV,0,DIV,0,DIV,0,DIV,1,SECTION,0,DIV,1,DIV,0,DIV,0,DIV,1,DIV,1,DIV,0,DIV,0,DIV,0,IMG",
"type": "node",
"snippet": "<img alt=\"Gartner\" class=\"Primer_Brand__Image-module__Image___JSzlx\" height=\"32\" src=\"//images.ctfassets.net/8aevphvgewt8/6Qr8Snm4JceoMFRJhapgFa/802ded1d2c486a9…\" loading=\"lazy\">",
"selector": "div.lp-SectionTemplate-customer > div.Primer_Brand__Pillar-module__Pillar___xLPAt > div.Primer_Brand__Pillar-module__Pillar__image___z4m11 > img.Primer_Brand__Image-module__Image___JSzlx",
"nodeLabel": "Gartner",
"boundingRect": {
"top": 2993,
"left": 24,
"right": 163,
"width": 139,
"bottom": 3025,
"height": 32
}
}
}
],
"headings": [
{
"key": "node",
"label": "",
"valueType": "node"
},
{
"key": "url",
"label": "URL",
"valueType": "url"
}
]
}Est savings of 202 KiB
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. Learn how to reduce unused CSS.
{
"type": "opportunity",
"items": [
{
"url": "https://github.githubassets.com/assets/primer-react-brand-css.206bbd4fd232654e.module.css",
"totalBytes": 71554,
"wastedBytes": 71554,
"wastedPercent": 100
},
{
"url": "https://github.githubassets.com/assets/global-adcabba7b5c5d221.css",
"totalBytes": 40579,
"wastedBytes": 40219,
"wastedPercent": 99.11276599329436
},
{
"url": "https://github.githubassets.com/assets/primer-react-css.c4086b4d579ad1e7.module.css",
"totalBytes": 35121,
"wastedBytes": 35121,
"wastedPercent": 100
},
{
"url": "https://github.githubassets.com/assets/github-552513ad07a183a1.css",
"totalBytes": 21827,
"wastedBytes": 21822,
"wastedPercent": 99.97503685963694
},
{
"url": "https://github.githubassets.com/assets/landing-pages.3335b8a95b85fbbc.module.css",
"totalBytes": 20938,
"wastedBytes": 20938,
"wastedPercent": 100
},
{
"url": "https://github.githubassets.com/assets/primer-1d2c7f7b52a6068b.css",
"totalBytes": 43113,
"wastedBytes": 17448,
"wastedPercent": 40.46957734636797
}
],
"headings": [
{
"key": "url",
"label": "URL",
"valueType": "url"
},
{
"key": "totalBytes",
"label": "Transfer Size",
"valueType": "bytes"
},
{
"key": "wastedBytes",
"label": "Est Savings",
"valueType": "bytes"
}
],
"sortedBy": [
"wastedBytes"
],
"debugData": {
"type": "debugdata",
"metricSavings": {
"FCP": 1200,
"LCP": 900
}
},
"overallSavingsMs": 900,
"overallSavingsBytes": 207102
}Est savings of 448 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://github.githubassets.com/assets/primer-react-795d3d4785478ddd.js",
"totalBytes": 120373,
"wastedBytes": 120242,
"wastedPercent": 99.89091784483753
},
{
"url": "https://github.githubassets.com/assets/react-core-b3944113ce58176b.js",
"totalBytes": 82391,
"wastedBytes": 80624,
"wastedPercent": 97.85522689286465
},
{
"url": "https://github.githubassets.com/assets/mz-991b0be334f7b646.js",
"totalBytes": 59818,
"wastedBytes": 59759,
"wastedPercent": 99.90205398553856
},
{
"url": "https://github.githubassets.com/assets/react-lib-b5f08b83f94216f8.js",
"totalBytes": 57421,
"wastedBytes": 56372,
"wastedPercent": 98.17231305417457
},
{
"url": "https://github.githubassets.com/assets/behaviors-592edc94fa6fd58a.js",
"totalBytes": 59819,
"wastedBytes": 49562,
"wastedPercent": 82.85359801488835
},
{
"url": "https://github.githubassets.com/assets/nvz-46a994f1aea249d4.js",
"totalBytes": 27910,
"wastedBytes": 27875,
"wastedPercent": 99.87355285387063
},
{
"url": "https://github.githubassets.com/assets/j05-dce4d588268f0f7e.js",
"totalBytes": 27043,
"wastedBytes": 22117,
"wastedPercent": 81.78506925814813
},
{
"url": "https://github.githubassets.com/assets/3d8-52820d324301d734.js",
"totalBytes": 21979,
"wastedBytes": 21931,
"wastedPercent": 99.7793784884598
},
{
"url": "https://github.githubassets.com/assets/app-runtime-0b7903e63f63ea8d.js",
"totalBytes": 29326,
"wastedBytes": 20643,
"wastedPercent": 70.39287547602278
}
],
"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": 0
}
},
"overallSavingsMs": 0,
"overallSavingsBytes": 459125
}Est savings of 620 ms
Your first network request is the most important. Reduce its latency by avoiding redirects, ensuring a fast server response, and enabling text compression.
{
"type": "checklist",
"items": {
"noRedirects": {
"label": "Avoids redirects",
"value": true
},
"usesCompression": {
"label": "Applies text compression",
"value": true
},
"serverResponseIsFast": {
"label": "Server responded slowly (observed 723 ms)",
"value": false
}
},
"debugData": {
"type": "debugdata",
"wastedBytes": 0,
"redirectDuration": 0,
"serverResponseTime": 723,
"uncompressedResponseBytes": 0
}
}A forced reflow occurs when JavaScript queries geometric properties (such as offsetWidth) after styles have been invalidated by a change to the DOM state. This can result in poor performance. Learn more about forced reflows and possible mitigations.
{
"type": "list",
"items": [
{
"type": "table",
"items": [
{
"source": {
"url": "https://github.githubassets.com/assets/6ny-c969fbae697a356f.js",
"line": 16,
"type": "source-location",
"column": 20520,
"urlProvider": "network"
},
"reflowTime": 99.779
}
],
"headings": [
{
"key": "source",
"label": "Top function call",
"valueType": "source-location"
},
{
"key": "reflowTime",
"label": "Total reflow time",
"valueType": "ms",
"granularity": 1
}
]
},
{
"type": "table",
"items": [
{
"source": {
"type": "text",
"value": "[unattributed]"
},
"reflowTime": 425.429
},
{
"source": {
"url": "https://github.githubassets.com/assets/6ny-c969fbae697a356f.js",
"line": 15,
"type": "source-location",
"column": 20578,
"urlProvider": "network"
},
"reflowTime": 99.779
}
],
"headings": [
{
"key": "source",
"label": "Source",
"valueType": "source-location"
},
{
"key": "reflowTime",
"label": "Total reflow time",
"valueType": "ms",
"granularity": 1
}
]
}
]
}Est savings of 662 KiB
Reducing the download time of images can improve the perceived load time of the page and LCP. Learn more about optimizing image size
{
"type": "table",
"items": [
{
"url": "https://images.ctfassets.net/8aevphvgewt8/1uXZYDy7dMcH9QwxuAU06F/1cb167cc60d725b8cf7089faf9a4ed06/accordion-2-730955545f07.webp",
"node": {
"lhId": "page-3-IMG",
"path": "1,HTML,1,BODY,0,DIV,7,DIV,0,MAIN,0,REACT-APP,1,DIV,0,DIV,0,DIV,0,DIV,1,SECTION,0,DIV,2,DIV,0,DIV,0,DIV,0,DIV,1,IMG",
"type": "node",
"snippet": "<img alt=\"\" class=\"Primer_Brand__Image-module__Image___JSzlx \n \n …\" src=\"//images.ctfassets.net/8aevphvgewt8/1uXZYDy7dMcH9QwxuAU06F/1cb167cc60d725b…\" loading=\"lazy\">",
"selector": "div.lp-SectionBlock-content > div.Primer_Brand__Grid-module__Grid___H4Yx1 > div.Primer_Brand__Grid-module__Grid__column___bCs9w > img.Primer_Brand__Image-module__Image___JSzlx",
"nodeLabel": "div.lp-SectionBlock-content > div.Primer_Brand__Grid-module__Grid___H4Yx1 > div.Primer_Brand__Grid-module__Grid__column___bCs9w > img.Primer_Brand__Image-module__Image___JSzlx",
"boundingRect": {
"top": 3332,
"left": -10,
"right": 422,
"width": 433,
"bottom": 3677,
"height": 345
}
},
"subItems": {
"type": "subitems",
"items": [
{
"reason": "This image file is larger than it needs to be (1600x1278) for its displayed dimensions (412x359). Use responsive images to reduce the image download size.",
"wastedBytes": 197869
}
]
},
"totalBytes": 213302,
"wastedBytes": 197869
},
{
"url": "https://images.ctfassets.net/8aevphvgewt8/3xzVZaJhqo3B62R8NeHjX2/e37c81e4f26e9dac2aff1f23a0243087/accordion-3-52ca331d22ea.webp",
"node": {
"lhId": "page-4-IMG",
"path": "1,HTML,1,BODY,0,DIV,7,DIV,0,MAIN,0,REACT-APP,1,DIV,0,DIV,0,DIV,0,DIV,1,SECTION,0,DIV,2,DIV,0,DIV,0,DIV,0,DIV,2,IMG",
"type": "node",
"snippet": "<img alt=\"\" class=\"Primer_Brand__Image-module__Image___JSzlx \n \n …\" src=\"//images.ctfassets.net/8aevphvgewt8/3xzVZaJhqo3B62R8NeHjX2/e37c81e4f26e9da…\" loading=\"lazy\">",
"selector": "div.lp-SectionBlock-content > div.Primer_Brand__Grid-module__Grid___H4Yx1 > div.Primer_Brand__Grid-module__Grid__column___bCs9w > img.Primer_Brand__Image-module__Image___JSzlx",
"nodeLabel": "div.lp-SectionBlock-content > div.Primer_Brand__Grid-module__Grid___H4Yx1 > div.Primer_Brand__Grid-module__Grid__column___bCs9w > img.Primer_Brand__Image-module__Image___JSzlx",
"boundingRect": {
"top": 3332,
"left": -10,
"right": 422,
"width": 433,
"bottom": 3677,
"height": 345
}
},
"subItems": {
"type": "subitems",
"items": [
{
"reason": "This image file is larger than it needs to be (1600x1278) for its displayed dimensions (412x359). Use responsive images to reduce the image download size.",
"wastedBytes": 177441
}
]
},
"totalBytes": 191280,
"wastedBytes": 177441
},
{
"url": "https://images.ctfassets.net/8aevphvgewt8/1Dt1ncaR6ZM4dQvknFzfBI/e5c2092be5bd53881622eced4fd37564/accordion-1-ce487d44c0bf.webp",
"node": {
"lhId": "page-5-IMG",
"path": "1,HTML,1,BODY,0,DIV,7,DIV,0,MAIN,0,REACT-APP,1,DIV,0,DIV,0,DIV,0,DIV,1,SECTION,0,DIV,2,DIV,0,DIV,0,DIV,0,DIV,0,IMG",
"type": "node",
"snippet": "<img alt=\"\" class=\"Primer_Brand__Image-module__Image___JSzlx \n lp-Sect…\" src=\"//images.ctfassets.net/8aevphvgewt8/1Dt1ncaR6ZM4dQvknFzfBI/e5c2092be5bd538…\" loading=\"lazy\">",
"selector": "div.lp-SectionBlock-content > div.Primer_Brand__Grid-module__Grid___H4Yx1 > div.Primer_Brand__Grid-module__Grid__column___bCs9w > img.Primer_Brand__Image-module__Image___JSzlx",
"nodeLabel": "div.lp-SectionBlock-content > div.Primer_Brand__Grid-module__Grid___H4Yx1 > div.Primer_Brand__Grid-module__Grid__column___bCs9w > img.Primer_Brand__Image-module__Image___JSzlx",
"boundingRect": {
"top": 3340,
"left": 0,
"right": 412,
"width": 412,
"bottom": 3669,
"height": 329
}
},
"subItems": {
"type": "subitems",
"items": [
{
"reason": "This image file is larger than it needs to be (1600x1278) for its displayed dimensions (412x359). Use responsive images to reduce the image download size.",
"wastedBytes": 154383
}
]
},
"totalBytes": 166424,
"wastedBytes": 154383
},
{
"url": "https://images.ctfassets.net/8aevphvgewt8/3cgNgdKFqflI27vyDh4Gpa/c459dc8690133e7663b8db2626cf2045/accordion-4-a26744b70ff7.webp",
"node": {
"lhId": "page-6-IMG",
"path": "1,HTML,1,BODY,0,DIV,7,DIV,0,MAIN,0,REACT-APP,1,DIV,0,DIV,0,DIV,0,DIV,1,SECTION,0,DIV,2,DIV,0,DIV,0,DIV,0,DIV,3,IMG",
"type": "node",
"snippet": "<img alt=\"\" class=\"Primer_Brand__Image-module__Image___JSzlx \n \n …\" src=\"//images.ctfassets.net/8aevphvgewt8/3cgNgdKFqflI27vyDh4Gpa/c459dc8690133e7…\" loading=\"lazy\">",
"selector": "div.lp-SectionBlock-content > div.Primer_Brand__Grid-module__Grid___H4Yx1 > div.Primer_Brand__Grid-module__Grid__column___bCs9w > img.Primer_Brand__Image-module__Image___JSzlx",
"nodeLabel": "div.lp-SectionBlock-content > div.Primer_Brand__Grid-module__Grid___H4Yx1 > div.Primer_Brand__Grid-module__Grid__column___bCs9w > img.Primer_Brand__Image-module__Image___JSzlx",
"boundingRect": {
"top": 3332,
"left": -10,
"right": 422,
"width": 433,
"bottom": 3677,
"height": 345
}
},
"subItems": {
"type": "subitems",
"items": [
{
"reason": "This image file is larger than it needs to be (1600x1278) for its displayed dimensions (412x359). Use responsive images to reduce the image download size.",
"wastedBytes": 114052
}
]
},
"totalBytes": 122948,
"wastedBytes": 114052
},
{
"url": "https://github.githubassets.com/assets/particles-170bd1fd231f4669.png",
"node": {
"lhId": "page-7-IMG",
"path": "1,HTML,1,BODY,0,DIV,7,DIV,0,MAIN,0,REACT-APP,1,DIV,0,DIV,0,DIV,0,DIV,3,SECTION,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,1,IMG",
"type": "node",
"snippet": "<img class=\"particles\" src=\"https://github.githubassets.com/assets/particles-170bd1fd231f4669.png\" alt=\"\" aria-hidden=\"true\" loading=\"lazy\">",
"selector": "div.lp-SectionBlock-content > div.lp-SectionHero > div.lp-SectionHero-glow > img.particles",
"nodeLabel": "div.lp-SectionBlock-content > div.lp-SectionHero > div.lp-SectionHero-glow > img.particles",
"boundingRect": {
"top": 7644,
"left": 124,
"right": 288,
"width": 165,
"bottom": 7845,
"height": 200
}
},
"subItems": {
"type": "subitems",
"items": [
{
"reason": "This image file is larger than it needs to be (1075x1307) for its displayed dimensions (165x200). Use responsive images to reduce the image download size.",
"wastedBytes": 33699
}
]
},
"totalBytes": 34510,
"wastedBytes": 33699
}
],
"headings": [
{
"key": "node",
"label": "",
"valueType": "node"
},
{
"key": "url",
"label": "URL",
"valueType": "url",
"subItemsHeading": {
"key": "reason",
"valueType": "text"
}
},
{
"key": "totalBytes",
"label": "Resource Size",
"valueType": "bytes"
},
{
"key": "wastedBytes",
"label": "Est Savings",
"valueType": "bytes",
"subItemsHeading": {
"key": "wastedBytes",
"valueType": "bytes"
}
}
],
"debugData": {
"type": "debugdata",
"wastedBytes": 677444
}
}Each subpart has specific improvement strategies. Ideally, most of the LCP time should be spent on loading the resources, not within delays.
{
"type": "list",
"items": [
{
"type": "table",
"items": [
{
"label": "Time to first byte",
"subpart": "timeToFirstByte",
"duration": 963.157
},
{
"label": "Element render delay",
"subpart": "elementRenderDelay",
"duration": 8988.733
}
],
"headings": [
{
"key": "label",
"label": "Subpart",
"valueType": "text"
},
{
"key": "duration",
"label": "Duration",
"valueType": "ms"
}
]
},
{
"lhId": "page-0-H1",
"path": "1,HTML,1,BODY,0,DIV,7,DIV,0,MAIN,0,REACT-APP,1,DIV,0,DIV,0,DIV,0,DIV,0,SECTION,0,DIV,3,DIV,0,SECTION,0,DIV,0,DIV,0,DIV,0,H1",
"type": "node",
"snippet": "<h1 class=\"Primer_Brand__Heading-module__Heading___fudyh Primer_Brand__Heading-module…\" id=\"hero-section-brand-heading\">",
"selector": "div.Primer_Brand__Grid-module__Grid___H4Yx1 > div.Primer_Brand__Grid-module__Grid__column___bCs9w > div.Primer_Brand__Stack-module__Stack___kkChc > h1#hero-section-brand-heading",
"nodeLabel": "The future of building happens together",
"boundingRect": {
"top": 267,
"left": 48,
"right": 364,
"width": 316,
"bottom": 405,
"height": 138
}
}
]
}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": {
"CCB7DA1EE5DDE0A049D1D1B1B04B1BAA": {
"url": "https://github.com/",
"children": {
"313143.4": {
"url": "https://github.githubassets.com/assets/light-99f877e9ddfc0e51.css",
"children": {},
"transferSize": 7516,
"navStartToEndTime": 2504
},
"313143.5": {
"url": "https://github.githubassets.com/assets/light_high_contrast-48fdd0811afbab3c.css",
"children": {},
"transferSize": 7411,
"navStartToEndTime": 2688
},
"313143.6": {
"url": "https://github.githubassets.com/assets/dark-79ad2ace604703b3.css",
"children": {},
"transferSize": 7514,
"navStartToEndTime": 3507
},
"313143.7": {
"url": "https://github.githubassets.com/assets/dark_high_contrast-24484a076f02295f.css",
"children": {},
"transferSize": 7634,
"navStartToEndTime": 3566
},
"313143.8": {
"url": "https://github.githubassets.com/assets/primer-primitives-ed9ca172356fd545.css",
"children": {},
"transferSize": 2556,
"navStartToEndTime": 4428
},
"313143.9": {
"url": "https://github.githubassets.com/assets/primer-1d2c7f7b52a6068b.css",
"children": {},
"transferSize": 43556,
"navStartToEndTime": 4213
},
"313143.10": {
"url": "https://github.githubassets.com/assets/global-adcabba7b5c5d221.css",
"children": {},
"transferSize": 41021,
"navStartToEndTime": 4638
},
"313143.11": {
"url": "https://github.githubassets.com/assets/github-552513ad07a183a1.css",
"children": {},
"transferSize": 22270,
"navStartToEndTime": 4872
},
"313143.12": {
"url": "https://github.githubassets.com/assets/marketing-c6c574a5b2679474.css",
"children": {
"313143.201": {
"url": "https://github.githubassets.com/assets/MonaSansMonoVF-wght-da74d51ce1316829.woff2",
"children": {},
"transferSize": 37800,
"navStartToEndTime": 11665
}
},
"transferSize": 1825,
"navStartToEndTime": 4874
},
"313143.13": {
"url": "https://github.githubassets.com/assets/home-87c3046c3560e1b7.css",
"children": {},
"transferSize": 7405,
"navStartToEndTime": 4900
},
"313143.14": {
"url": "https://github.githubassets.com/assets/high-contrast-cookie-e3d808ee18eb9784.js",
"children": {},
"transferSize": 964,
"navStartToEndTime": 5089
},
"313143.20": {
"url": "https://github.githubassets.com/assets/environment-6d7bc83f464641dd.js",
"children": {},
"transferSize": 3149,
"navStartToEndTime": 10097
},
"313143.21": {
"url": "https://github.githubassets.com/assets/app-runtime.b732c9a532d735a7.module.css",
"children": {},
"transferSize": 1502,
"navStartToEndTime": 5085
},
"313143.32": {
"url": "https://github.githubassets.com/assets/github-elements-8f7f28096a446d5d.js",
"children": {},
"transferSize": 3267,
"navStartToEndTime": 14354
},
"313143.33": {
"url": "https://github.githubassets.com/assets/element-registry-2b5e245fb4415fe9.js",
"children": {
"313143.254": {
"url": "https://github.githubassets.com/assets/chunk-lazy-element-select-panel-c1e7af998a1d00c5.js",
"children": {},
"transferSize": 0,
"navStartToEndTime": 18639
},
"313143.255": {
"url": "https://github.githubassets.com/assets/chunk-lazy-element-toggle-switch-0b0e875a5b4f4f2e.js",
"children": {},
"transferSize": 0,
"navStartToEndTime": 18639
},
"313143.256": {
"url": "https://github.githubassets.com/assets/chunk-lazy-element-cookie-consent-link-107acedd3d61c045.js",
"children": {},
"transferSize": 0,
"navStartToEndTime": 18640
},
"313143.257": {
"url": "https://github.githubassets.com/assets/chunk-dg-c9fddb85345164af.js",
"children": {},
"transferSize": 0,
"navStartToEndTime": 18641
},
"313143.258": {
"url": "https://github.githubassets.com/assets/chunk-lazy-element-fullstory-capture-2484cc12a67724f1.js",
"children": {},
"transferSize": 0,
"navStartToEndTime": 18641
},
"313143.259": {
"url": "https://github.githubassets.com/assets/chunk-lazy-element-ghcc-consent-c2868a800ad1375a.js",
"children": {},
"transferSize": 0,
"navStartToEndTime": 18641
},
"313143.260": {
"url": "https://github.githubassets.com/assets/u2l.ccebc7a07d93130c.module.css",
"children": {},
"transferSize": 635,
"navStartToEndTime": 19013
},
"313143.261": {
"url": "https://github.githubassets.com/assets/chunk-lazy-react-partial-keyboard-shortcuts-dialog-841ba6c2f0aed1dc.js",
"children": {},
"transferSize": 0,
"navStartToEndTime": 18643
},
"313143.262": {
"url": "https://github.githubassets.com/assets/7gn.e38425ead0b59349.module.css",
"children": {},
"transferSize": 1902,
"navStartToEndTime": 19014
},
"313143.263": {
"url": "https://github.githubassets.com/assets/xy.ac674e627f4d0699.module.css",
"children": {},
"transferSize": 1752,
"navStartToEndTime": 19014
}
},
"transferSize": 12066,
"navStartToEndTime": 14566
},
"313143.49": {
"url": "https://github.githubassets.com/assets/behaviors-592edc94fa6fd58a.js",
"children": {
"313143.264": {
"url": "https://github.githubassets.com/assets/chunk-xg-0bc1b5900d59e0d9.js",
"children": {},
"transferSize": 0,
"navStartToEndTime": 25019
},
"313143.265": {
"url": "https://github.githubassets.com/assets/chunk-3m-396c8d3168589b84.js",
"children": {},
"transferSize": 0,
"navStartToEndTime": 25019
}
},
"transferSize": 60255,
"navStartToEndTime": 24964
},
"313143.50": {
"url": "https://github.githubassets.com/assets/react-core.20be589990c46106.module.css",
"children": {},
"transferSize": 679,
"navStartToEndTime": 6205
},
"313143.52": {
"url": "https://github.githubassets.com/assets/marketing-essentials-28b9131041e36274.js",
"children": {
"313143.267": {
"url": "https://github.githubassets.com/assets/chunk-c1-38178dc0e7cae70d.js",
"children": {},
"transferSize": 0,
"navStartToEndTime": 25375
},
"313143.268": {
"url": "https://github.githubassets.com/assets/chunk-8x-e6fcfc76692041a9.js",
"children": {},
"isLongest": true,
"transferSize": 0,
"navStartToEndTime": 25375
}
},
"isLongest": true,
"transferSize": 910,
"navStartToEndTime": 25364
},
"313143.82": {
"url": "https://github.githubassets.com/assets/landing-pages-3b4f111997bc127a.js",
"children": {},
"transferSize": 0,
"navStartToEndTime": 987
},
"313143.83": {
"url": "https://github.githubassets.com/assets/primer-react-css.c4086b4d579ad1e7.module.css",
"children": {},
"transferSize": 35562,
"navStartToEndTime": 9198
},
"313143.84": {
"url": "https://github.githubassets.com/assets/primer-react-brand-css.206bbd4fd232654e.module.css",
"children": {},
"transferSize": 71995,
"navStartToEndTime": 8268
},
"313143.85": {
"url": "https://github.githubassets.com/assets/landing-pages.3335b8a95b85fbbc.module.css",
"children": {},
"transferSize": 21377,
"navStartToEndTime": 9424
},
"313143.170": {
"url": "https://github.githubassets.com/assets/obo-b97774c6eb95c7ee.js",
"children": {},
"transferSize": 0,
"navStartToEndTime": 1077
},
"313143.171": {
"url": "https://github.githubassets.com/assets/bi0-5a602e8242c55c27.js",
"children": {},
"transferSize": 0,
"navStartToEndTime": 1078
},
"313143.172": {
"url": "https://github.githubassets.com/assets/keyboard-shortcuts-dialog-dcd7e9b611a8d7e7.js",
"children": {},
"transferSize": 0,
"navStartToEndTime": 1078
},
"313143.178": {
"url": "https://github.githubassets.com/assets/keyboard-shortcuts-dialog.63ee55a8093b9a0a.module.css",
"children": {},
"transferSize": 639,
"navStartToEndTime": 9640
},
"313143.183": {
"url": "https://github.githubassets.com/assets/marketing-global-banner.a53cb6fed94b4932.module.css",
"children": {},
"transferSize": 1757,
"navStartToEndTime": 9641
},
"313143.192": {
"url": "https://github.githubassets.com/assets/lazy-react-partial-marketing-header.18fa9e9936132bbe.module.css",
"children": {},
"transferSize": 3705,
"navStartToEndTime": 9846
},
"313143.193": {
"url": "https://github.com/manifest.json",
"children": {},
"transferSize": 4729,
"navStartToEndTime": 21445
},
"313143.198": {
"url": "https://github.githubassets.com/assets/marketing-footer.42532d8061c63a3b.module.css",
"children": {},
"transferSize": 1899,
"navStartToEndTime": 9931
}
},
"isLongest": true,
"transferSize": 123009,
"navStartToEndTime": 1307
}
},
"longestChain": {
"duration": 25375
}
}
},
{
"type": "list-section",
"title": "Preconnected origins",
"value": {
"type": "table",
"items": [
{
"origin": "https://github.githubassets.com/",
"source": {
"lhId": "page-1-LINK",
"path": "1,HTML,0,HEAD,6,LINK",
"type": "node",
"snippet": "<link rel=\"preconnect\" href=\"https://github.githubassets.com\" crossorigin=\"\">",
"selector": "head > link",
"nodeLabel": "head > link",
"boundingRect": {
"top": 0,
"left": 0,
"right": 0,
"width": 0,
"bottom": 0,
"height": 0
}
},
"subItems": {
"type": "subitems",
"items": []
}
},
{
"origin": "https://avatars.githubusercontent.com/",
"source": {
"lhId": "page-2-LINK",
"path": "1,HTML,0,HEAD,7,LINK",
"type": "node",
"snippet": "<link rel=\"preconnect\" href=\"https://avatars.githubusercontent.com\">",
"selector": "head > link",
"nodeLabel": "head > link",
"boundingRect": {
"top": 0,
"left": 0,
"right": 0,
"width": 0,
"bottom": 0,
"height": 0
}
},
"subItems": {
"type": "subitems",
"items": [
{
"warning": "Unused preconnect. Only use preconnect for origins that the page is likely to request."
}
]
}
}
],
"headings": [
{
"key": "origin",
"label": "Origin",
"valueType": "text",
"subItemsHeading": {
"key": "warning"
}
},
{
"key": "source",
"label": "Source",
"valueType": "node"
}
]
},
"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://github.com/",
"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": 83574.587
},
{
"id": "cumulative-layout-shift",
"unit": "unitless",
"value": 0
},
{
"id": "total-blocking-time",
"unit": "millisecond",
"value": 434
},
{
"id": "first-contentful-paint",
"unit": "millisecond",
"value": 54542.645
},
{
"id": "speed-index",
"unit": "millisecond",
"value": 54542.645
}
]
}01 / 值得借鉴
采用深基色 #0d1117 配以细腻的紫光渐变、精练的 Mona Sans 字体排印以及精准的强调绿(#08872b / #238636),迅速确立了极高的技术专业度与品牌信服力。
将邮箱输入框与高对比度的“Sign up for GitHub”主按钮紧密结合,消除了繁琐的跳转路径,在首屏即可直接承接开发者的注册意向。
02 / 下一步
在 390px 移动视口中,“Join GitHub Copilot Day...”文本与汉堡菜单、Octocat 图标及“Sign in”按钮在同一水平区域重叠,破坏了导航可读性与可操作性。
将顶部通知横幅作为独立流式块置于导航栏上方,确保移动端导航栏具有充分的顶部间距或标准块级堆叠。在 Chrome 开发者工具 390px 视口下验证文本与导航控件之间完全无重叠。
将“Sign up for GitHub”与“Download GitHub Copilot app”并列呈现且缺乏引导说明,会让访客困惑是否需要先注册账号再下载客户端,增加了决策摩擦。
保持邮箱注册表单为首要视觉焦点,并在下载按钮旁增加微文案或轻量说明,提示 Copilot 应用需配合账号使用,监测两者的点击流向与转化率。
03 / 设计语言
背景
#0d1117文字
#ffffff表达也可以更准确
The future of building happens together
Build, automate, and secure software with AI
现有标题偏向抽象品牌口号。更具结果导向的标题能让初次访问者迅速了解 GitHub 全流程 AI 开发能力。04 / 检查依据
逐项查看观察、建议与采集记录。
在 390px 屏幕下,“Join GitHub Copilot Day, live on Sept 10...”直接穿插在汉堡菜单与 Logo 后方,暴露出移动端上线审核的细节缺失。
确保通知横幅容器采用 position: relative 并占据正常文档流高度,或通过动态计算高度将导航栏向下偏移。在 375px 和 390px 视口下验证无遮挡。
Join GitHub Copilot Day, live on Sept 10. Come for the product news, stay for the demos, live coding, and surprises.Set your reminder Navigation Menu Platform
品类句读完,陌生人复述不出你在卖什么。承诺具体了,转化才开始。
一行里写出给谁、干什么、得到什么。删掉“the easiest way to”。
The future of building happens together
看不到谁跳出,就不知道下一次修改有没有用。没有计数就等于盲飞。
在公开页放上 Plausible、PostHog 或 GA4。一段脚本就够。
no gtag / plausible / posthog / umami
没有 alt,读屏到这里就断了,搜索也会减分。装饰图可以 alt="",内容图不行。
产品和照片写短 alt。纯装饰才用空 alt。
17 images without alt
标签、分享卡、首屏各说各的,访客就记不住这是同一个产品。
让 title、og:title 和 H1 共用同一个名词。
title="GitHub · Change is constant. GitHub keeps you ahead. · GitHub" h1="The future of building happens together"
首包超过 350 KB,多半是内联垃圾:整份 CSS、JSON,或整个应用。手机还没看到标题就已经在付钱。
把 CSS 和数据移出文档。首包 HTML 控制在 200 KB 以内。
563 KB HTML

Join the world's most widely adopted, AI-powered developer platform where millions of developers, businesses, and the largest open source community build software that advances humanity.
05 / 开始动手
优化指令用于调整这个页面;设计指令用于借鉴它的视觉语言。「做同款」会附带截图与实施步骤。复制后粘贴到你的代码助手中。
修复 GitHub 首页移动端顶部通知横幅与导航栏的层叠重叠缺陷。 问题描述: 在移动端视口(390px 宽)下,顶部活动横幅文字('Join GitHub Copilot Day, live on Sept 10...')与导航栏内的汉堡菜单图标、GitHub Logo 以及“Sign in”按钮发生物理重叠,影响可读性与操作。 修改需求: 1. 调整头部布局结构,使通知横幅处于独立的文档流块中,具备完整的空间高度。导航栏若处于 sticky 或 fixed 状态,必须明确位于横幅下方,避免负边距与 z-index 层叠混乱。 2. 严格保留设计令牌:背景色 #0d1117,字体栈 'Mona Sans VF', 'Mona Sans',正文 14px,按钮圆角 6px,输入框圆角 8px,主按钮背景色 #08872b / #238636。 3. 在断点低于 63.25rem(--brand-breakpoint-large)时,调整通知文案排版或支持折叠收起,禁止与导航栏按钮产生任何接触或遮挡。 4. 在 375px、390px 和 414px 视口下测试,确认横幅、汉堡菜单按钮、Logo 与 Sign in 按钮间距正常且无任何穿透现象。