PageSourceSearch

https://v0lint.vercel.app/

html v0lint.vercel.app collected 2026-10-03 07:58:39 UTC 20,844 bytes, 21 lines download raw bytes

1<!DOCTYPE html><!--wNoUZD3VWK1wyNWS1IY2b--><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/797e433ab948586e-s.p.dbea232f.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/70ec55cdae3b31b7.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/f59ec237d9528a7e.js"/>
1<script src="/_next/static/chunks/8a80c7f2aa2a8276.js" async=""></script>
1<script src="/_next/static/chunks/aabbaefc4b4eb5fe.js" async=""></script>
1<script src="/_next/static/chunks/fe6a3465102b2466.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-8062978fb7c1a970.js" async=""></script>
1<script src="/_next/static/chunks/fddfceb6f7b8a10f.js" async=""></script>
1<script src="/_next/static/chunks/1e086dccfb274931.js" async=""></script>
1<script src="/_next/static/chunks/e11ae5bc6e479666.js" async=""></script>
1<meta name="next-size-adjust" content=""/><title>v0 Prompt Linter</title><meta name="description" content="Analyze and improve your prompts before sending them to v0"/><meta name="generator" content="v0.app"/><link rel="icon" href="/icon-light-32x32.png" media="(prefers-color-scheme: light)"/><link rel="icon" href="/icon-dark-32x32.png" media="(prefers-color-scheme: dark)"/><link rel="icon" href="/icon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/apple-icon.png"/>
1<script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script>
1</head><body class="font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><main class="min-h-screen bg-background"><header class="border-b border-border bg-card"><div class="mx-auto max-w-7xl px-4 py-4 sm:px-6 lg:px-8"><div class="flex items-center justify-between"><div class="flex items-center gap-3"><div class="flex h-10 w-10 items-center justify-center rounded-lg bg-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal h-5 w-5 text-background"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" x2="20" y1="19" y2="19"></line></svg></div><div><h1 class="text-xl font-semibold text-foreground">v0 Prompt Linter</h1><p class="text-sm text-muted-foreground">Analyze prompts using official v0 best practices</p></div></div><button data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 size-9 h-9 w-9 bg-transparent"><span class="h-4 w-4"></span></button></div></div></header><div class="mx-auto max-w-7xl px-4 py-8 sm:px-6 lg:px-8"><div class="grid gap-8 lg:grid-cols-2"><div class="space-y-6"><div class="
2        relative transition-all duration-200
3        
4        
5      "><div draggable="true" class="absolute right-3 top-3 z-10 p-1.5 rounded-md bg-muted/50 text-muted-foreground hover:text-foreground hover:bg-muted cursor-grab active:cursor-grabbing transition-colors" title="Drag to reorder"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-grip-vertical h-4 w-4"><circle cx="9" cy="12" r="1"></circle><circle cx="9" cy="5" r="1"></circle><circle cx="9" cy="19" r="1"></circle><circle cx="15" cy="12" r="1"></circle><circle cx="15" cy="5" r="1"></circle><circle cx="15" cy="19" r="1"></circle></svg></div><div data-slot="card" class="bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm"><div data-slot="card-header" class="@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6 pb-3"><div class="flex items-center justify-between"><div data-slot="card-title" class="text-lg font-medium">Your Prompt</div></div></div><div data-slot="card-content" class="px-6 space-y-4"><textarea data-slot="textarea" class="placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content w-full rounded-md border px-3 py-2 shadow-xs outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm min-h-[280px] resize-none font-mono text-sm bg-secondary border-border focus:border-muted-foreground transition-colors" placeholder="Paste your v0 prompt here to analyze it for potential issues and get suggestions for improvement..."></textarea><div class="flex items-center gap-2 rounded-md bg-info/10 px-3 py-2 text-xs text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info h-3.5 w-3.5 shrink-0 text-info"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg><span>Optimized for <strong class="text-foreground">initial prompts</strong>. Follow-up or conversational prompts may receive less accurate analysis.</span></div><div class="flex items-center justify-between"><div class="flex gap-4 text-sm text-muted-foreground font-mono"><span>0<!-- --> characters</span><span>0<!-- --> words</span></div><button data-slot="button" class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;
5size-&#x27;])]:size-4 shrink-0 [&amp;_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground hover:bg-primary/90 h-9 px-4 py-2 has-[&gt;svg]:px-3 gap-2" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles h-4 w-4"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg>Analyze Prompt</button></div></div></div></div><div class="
6        relative transition-all duration-200
7        
8        
9      "><div draggable="true" class="absolute right-3 top-3 z-10 p-1.5 rounded-md bg-muted/50 text-muted-foreground hover:text-foreground hover:bg-muted cursor-grab active:cursor-grabbing transition-colors" title="Drag to reorder"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-grip-vertical h-4 w-4"><circle cx="9" cy="12" r="1"></circle><circle cx="9" cy="5" r="1"></circle><circle cx="9" cy="19" r="1"></circle><circle cx="15" cy="12" r="1"></circle><circle cx="15" cy="5" r="1"></circle><circle cx="15" cy="19" r="1"></circle></svg></div><div class="rounded-lg border border-border bg-card p-4"><h3 class="mb-3 text-sm font-medium text-foreground">v0 Prompt Framework</h3><div class="space-y-2 text-xs text-muted-foreground"><div class="flex items-start gap-2"><span class="mt-0.5 h-2 w-2 shrink-0 rounded-full bg-info"></span><span><strong class="text-foreground">Product Surface:</strong> <!-- -->What you&#x27;re building (components, data, actions)</span></div><div class="flex items-start gap-2"><span class="mt-0.5 h-2 w-2 shrink-0 rounded-full bg-warning"></span><span><strong class="text-foreground">Context of Use:</strong> <!-- -->Who uses it, when, and for what outcome</span></div><div class="flex items-start gap-2"><span class="mt-0.5 h-2 w-2 shrink-0 rounded-full bg-success"></span><span><strong class="text-foreground">Constraints &amp; Taste:</strong> <!-- -->Visual tone, layout, platform</span></div></div></div></div></div><div class="space-y-6"><div class="
10        relative transition-all duration-200
11        
12        
13      "><div draggable="true" class="absolute right-3 top-3 z-10 p-1.5 rounded-md bg-muted/50 text-muted-foreground hover:text-foreground hover:bg-muted cursor-grab active:cursor-grabbing transition-colors" title="Drag to reorder"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-grip-vertical h-4 w-4"><circle cx="9" cy="12" r="1"></circle><circle cx="9" cy="5" r="1"></circle><circle cx="9" cy="19" r="1"></circle><circle cx="15" cy="12" r="1"></circle><circle cx="15" cy="5" r="1"></circle><circle cx="15" cy="19" r="1"></circle></svg></div><div data-slot="card" class="bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm overflow-hidden"><div data-slot="card-header" class="@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6 pb-2"><div data-slot="card-title" class="text-lg font-medium flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-gauge h-5 w-5 text-muted-foreground"><path d="m12 14 4-4"></path><path d="M3.34 19a10 10 0 1 1 17.32 0"></path></svg>Prompt Score</div></div>
13<div data-slot="card-content" class="px-6"><div class="flex flex-col items-center justify-center py-6"><div class="relative"><svg class="w-36 h-36 -rotate-90"><circle cx="72" cy="72" r="58" fill="none" stroke="currentColor" stroke-width="8" class="text-secondary"></circle></svg><div class="absolute inset-0 flex items-center justify-center"><span class="text-4xl font-mono font-bold text-muted-foreground/30">--</span></div></div><p class="text-sm text-muted-foreground mt-3">Analyze a prompt to see score</p></div></div></div></div><div class="
14        relative transition-all duration-200
15        
16        
17      "><div draggable="true" class="absolute right-3 top-3 z-10 p-1.5 rounded-md bg-muted/50 text-muted-foreground hover:text-foreground hover:bg-muted cursor-grab active:cursor-grabbing transition-colors" title="Drag to reorder"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-grip-vertical h-4 w-4"><circle cx="9" cy="12" r="1"></circle><circle cx="9" cy="5" r="1"></circle><circle cx="9" cy="19" r="1"></circle><circle cx="15" cy="12" r="1"></circle><circle cx="15" cy="5" r="1"></circle><circle cx="15" cy="19" r="1"></circle></svg></div><div data-slot="card" class="bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm"><div data-slot="card-header" class="@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6 pb-3"><div data-slot="card-title" class="text-lg font-medium">Lint Results</div></div><div data-slot="card-content" class="px-6 min-h-[200px]"><div class="flex flex-col items-center justify-center min-h-[180px] text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check h-12 w-12 text-muted-foreground/50 mb-4"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><p class="text-muted-foreground">Enter a prompt and click &quot;Analyze Prompt&quot; to see results</p></div></div></div></div><div class="
18        relative transition-all duration-200
19        
20        
21      "><div draggable="true" class="absolute right-3 top-3 z-10 p-1.5 rounded-md bg-muted/50 text-muted-foreground hover:text-foreground hover:bg-muted cursor-grab active:cursor-grabbing transition-colors" title="Drag to reorder"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-grip-vertical h-4 w-4"><circle cx="9" cy="12" r="1"></circle><circle cx="9" cy="5" r="1"></circle><circle cx="9" cy="19" r="1"></circle><circle cx="15" cy="12" r="1"></circle><circle cx="15" cy="5" r="1"></circle><circle cx="15" cy="19" r="1"></circle></svg></div><div data-slot="card" class="bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm"><div data-slot="card-header" class="@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6 pb-3"><div class="jsx-6dfda0d92c4d91b3 flex items-center justify-between"><div class="jsx-6dfda0d92c4d91b3 flex items-center gap-3"><div data-slot="card-title" class="text-lg font-medium">Improved Prompt</div></div></div></div><div data-slot="card-content" class="px-6"><div class="jsx-6dfda0d92c4d91b3 flex items-center justify-center h-[120px]"><p class="jsx-6dfda0d92c4d91b3 text-sm text-muted-foreground">An improved version of your prompt will appear here</p></div></div></div></div></div></div></div><footer class="mt-12 border-t border-border bg-card"><div class="mx-auto max-w-7xl px-4 py-4 sm:px-6 lg:px-8"><p class="text-center text-xs text-muted-foreground">Based on<!-- --> <a href="https://vercel.com/blog/how-to-prompt-v0" target="_blank" rel="noopener noreferrer" class="underline hover:text-foreground">How to prompt v0</a> <!-- -->and<!-- --> <a href="https://v0.app/docs/text-prompting" target="_blank" rel="noopener noreferrer" class="underline hover:text-foreground">v0 Documentation</a></p></div></footer></main><!--$--><!--/$--><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$-->
21<script src="/_next/static/chunks/f59ec237d9528a7e.js" id="_R_" async=""></script>
21<script>(self.__next_f=self.__next_f||[]).push([0])</script>
21<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[89554,[\"/_next/static/chunks/fddfceb6f7b8a10f.js\"],\"ThemeProvider\"]\n3:I[42869,[\"/_next/static/chunks/1e086dccfb274931.js\"],\"default\"]\n4:I[63587,[\"/_next/static/chunks/1e086dccfb274931.js\"],\"default\"]\n5:I[72005,[\"/_next/static/chunks/fddfceb6f7b8a10f.js\"],\"Analytics\"]\n6:I[27834,[\"/_next/static/chunks/1e086dccfb274931.js\"],\"ClientPageRoot\"]\n7:I[31713,[\"/_next/static/chunks/fddfceb6f7b8a10f.js\",\"/_next/static/chunks/e11ae5bc6e479666.js\"],\"default\"]\na:I[89836,[\"/_next/static/chunks/1e086dccfb274931.js\"],\"OutletBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[89836,[\"/_next/static/chunks/1e086dccfb274931.js\"],\"ViewportBoundary\"]\nf:I[89836,[\"/_next/static/chunks/1e086dccfb274931.js\"],\"MetadataBoundary\"]\n11:I[92670,[\"/_next/static/chunks/1e086dccfb274931.js\"],\"default\"]\n:HL[\"/_next/static/chunks/70ec55cdae3b31b7.css\",\"style\"]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.dbea232f.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script>
21<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"wNoUZD3VWK1wyNWS1IY2b\",\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/70ec55cdae3b31b7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/fddfceb6f7b8a10f.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"font-sans antialiased\",\"children\":[[\"$\",\"$L2\",null,{\"defaultTheme\":\"dark\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L5\",null,{}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L6\",null,{\"Component\":\"$7\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@8\",\"$@9\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/e11ae5bc6e479666.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$La\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@c\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"children\":\"$@e\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.Metadata\",\"children\":\"$@10\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"S\":true}\n"])</script>
21<script>self.__next_f.push([1,"8:{}\n9:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script>
21<script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script>
21<script>self.__next_f.push([1,"12:I[76629,[\"/_next/static/chunks/1e086dccfb274931.js\"],\"IconMark\"]\n10:[[\"$\",\"title\",\"0\",{\"children\":\"v0 Prompt Linter\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Analyze and improve your prompts before sending them to v0\"}],[\"$\",\"meta\",\"2\",{\"name\":\"generator\",\"content\":\"v0.app\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/icon-light-32x32.png\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/icon-dark-32x32.png\",\"media\":\"(prefers-color-scheme: dark)\"}],[\"$\",\"link\",\"5\",{\"rel\":\"icon\",\"href\":\"/icon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"6\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png\"}],[\"$\",\"$L12\",\"7\",{}]]\nc:null\n"])</script>
21</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.