1<!DOCTYPE html><html lang="en"><head><title data-rh="true">Getting Started â Install Scribe Editor in One Line</title><meta data-rh="true" name="description" content="Install Scribe Editor via npm in one command and initialize in one line. Works with React, Vue 3, Svelte & Vanilla JS. Under 50KB, zero deps."><meta data-rh="true" name="keywords" content="install rich text editor, JavaScript editor quick start, npm install scribejs, React WYSIWYG setup, Vue rich text editor install"><meta data-rh="true" property="og:title" content="Getting Started with Scribe Editor"><meta data-rh="true" property="og:description" content="Install in one command. Initialize in one line. Works with React, Vue, Svelte, Vanilla JS."><meta data-rh="true" property="og:url" content="https://scribejs.top/docs/getting-started"><meta data-rh="true" property="og:type" content="article"><meta data-rh="true" property="og:site_name" content="Scribe Editor"><meta data-rh="true" property="og:image" content="https://scribejs.top/og-image.png"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" name="twitter:title" content="Getting Started with Scribe Editor"><meta data-rh="true" name="twitter:description" content="Install in one command. Initialize in one line. Works with React, Vue, Svelte, Vanilla JS."><meta data-rh="true" name="twitter:image" content="https://scribejs.top/og-image.png"><link data-rh="true" rel="canonical" href="https://scribejs.top/docs/getting-started">
1<script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://scribejs.top/#organization","name":"Scribe Editor","url":"https://scribejs.top/","logo":"https://scribejs.top/og-image.png","sameAs":["https://github.com/GoodPHP/scribejs"]},{"@type":"WebSite","@id":"https://scribejs.top/#website","url":"https://scribejs.top/","name":"Scribe Editor","publisher":{"@id":"https://scribejs.top/#organization"}},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://scribejs.top/"},{"@type":"ListItem","position":2,"name":"Docs","item":"https://scribejs.top/docs"},{"@type":"ListItem","position":3,"name":"Getting Started","item":"https://scribejs.top/docs/getting-started"}]},{"@type":"TechArticle","@id":"https://scribejs.top/docs/getting-started#article","headline":"Quick Start","description":"Install Scribe Editor via npm in one command and initialize in one line. Works with React, Vue 3, Svelte & Vanilla JS. Under 50KB, zero deps.","mainEntityOfPage":"https://scribejs.top/docs/getting-started","author":{"@id":"https://scribejs.top/#organization"},"publisher":{"@id":"https://scribejs.top/#organization"}}]}</script>
1 2 <meta charset="UTF-8"> 3 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 4
4<script type="module" crossorigin="" src="/assets/app-D8lRfSMO.js"></script>
4 5 <link rel="stylesheet" crossorigin="" href="/assets/app-BnbTSsP9.css"> 6 </head> 7 8 <body> 9 <div id="root" data-server-rendered="true"><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section><div class="min-h-screen bg-background"><header class="sticky top-0 z-50 border-b border-border/50 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60"><div class="container mx-auto px-4 h-16 flex items-center justify-between"><div class="flex items-center gap-3"><a class="flex items-center gap-3" href="/"><div class="w-8 h-8 rounded-lg bg-gradient-to-br from-primary to-primary/60 flex items-center justify-center"><span class="text-primary-foreground font-bold text-sm">S</span></div><span class="font-semibold text-lg hidden sm:inline">Scribe Editor</span></a><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 text-xs">v1.0.1</div></div><nav class="hidden md:flex items-center gap-6"><a class="text-sm text-muted-foreground hover:text-foreground transition-colors" href="/">Demo</a><a class="text-sm text-foreground font-medium" href="/docs">Docs</a><a href="https://github.com/GoodPHP/scribejs" target="_blank" rel="noopener noreferrer" class="text-sm text-muted-foreground hover:text-foreground transition-colors flex items-center gap-1">GitHub <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-external-link h-3 w-3"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a></nav><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground h-10 w-10 md:hidden"><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-menu h-5 w-5"><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg></button></div></header><div class="container mx-auto px-4"><div class="flex gap-8"><aside class="fixed inset-0 z-40 w-64 bg-background border-r border-border/50 overflow-y-auto md:sticky md:top-16 md:h-[calc(100vh-4rem)] md:block hidden"><nav class="py-6 px-4 space-y-4"><div><a class="flex items-center gap-2 px-3 py-1.5 rounded-md text-sm font-medium transition-colors bg-primary/10 text-primary" href="/docs/getting-started"><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-zap h-4 w-4 flex-shrink-0"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg>Getting Started</a><ul class="mt-1 ml-4 space-y-0.5 border-l border-border/50 pl-3"><li><a href="/docs/getting-started#quickstart" class="block py-1 text-xs text-muted-foreground hover:text-foreground transition-colors">Quick Start</a></li><li><a href="/docs/getting-started#installation" class="block py-1 text-xs text-muted-foreground hover:text-foreground transition-colors">Installation</a></li></ul></div><div><a class="flex items-center gap-2 px-3 py-1.5 rounded-md text-sm font-medium transition-colors text-foreground hover:bg-muted/50" href="/docs/core-concepts"><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-file-code h-4 w-4 flex-shrink-0"><path d="M10 12.5 8 15l2 2.5"></path><path d="m14 12.5 2 2.5-2 2.5"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z"></path></svg>Core Concepts</a></div><div><a class="flex items-center gap-2 px-3 py-1.5 rounded-md text-sm font-medium transition-colors text-foreground hover:bg-muted/50" href="/docs/framework-guides"><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-globe h-4 w-4 flex-shrink-0"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>
9Framework Guides</a></div><div><a class="flex items-center gap-2 px-3 py-1.5 rounded-md text-sm font-medium transition-colors text-foreground hover:bg-muted/50" href="/docs/features"><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-puzzle h-4 w-4 flex-shrink-0"><path d="M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z"></path></svg>Features</a></div><div><a class="flex items-center gap-2 px-3 py-1.5 rounded-md text-sm font-medium transition-colors text-foreground hover:bg-muted/50" href="/docs/advanced"><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-cpu h-4 w-4 flex-shrink-0"><rect width="16" height="16" x="4" y="4" rx="2"></rect><rect width="6" height="6" x="9" y="9" rx="1"></rect><path d="M15 2v2"></path><path d="M15 20v2"></path><path d="M2 15h2"></path><path d="M2 9h2"></path><path d="M20 15h2"></path><path d="M20 9h2"></path><path d="M9 2v2"></path><path d="M9 20v2"></path></svg>Advanced</a></div><div><a class="flex items-center gap-2 px-3 py-1.5 rounded-md text-sm font-medium transition-colors text-foreground hover:bg-muted/50" href="/docs/api-reference"><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-code h-4 w-4 flex-shrink-0"><polyline points="16 18 22 12 16 6"></polyline><polyline points="8 6 2 12 8 18"></polyline></svg>API Reference</a></div><div><a class="flex items-center gap-2 px-3 py-1.5 rounded-md text-sm font-medium transition-colors text-foreground hover:bg-muted/50" href="/docs/migration"><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-book-open h-4 w-4 flex-shrink-0"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg>Migration Guide</a></div></nav></aside><main class="flex-1 min-w-0 py-8 md:py-12"><section id="quickstart" class="mb-16 scroll-mt-24"><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground mb-4">Getting Started</div><h1 class="text-4xl font-bold mb-4">Quick Start</h1><p class="text-lg text-muted-foreground mb-8">Scribe Editor is a modern, inline-first rich text editor under 50KB with zero dependencies. Get up and running in under two minutes.</p><div class="grid sm:grid-cols-3 gap-4 mb-12"><div class="rounded-lg border text-card-foreground shadow-sm bg-card/50"><div class="p-6 pt-6"><div class="text-2xl font-bold text-primary mb-1">< 50KB</div><p class="text-sm text-muted-foreground">Gzipped bundle size</p></div></div><div class="rounded-lg border text-card-foreground shadow-sm bg-card/50"><div class="p-6 pt-6"><div class="text-2xl font-bold text-primary mb-1">0</div><p class="text-sm text-muted-foreground">Runtime dependencies</p></div></div><div class="rounded-lg border text-card-foreground shadow-sm bg-card/50"><div class="p-6 pt-6"><div class="text-2xl font-bold text-primary mb-1">4+</div><p class="text-sm text-muted-foreground">Frameworks supported</p></div></div></div><div dir="ltr" data-orientation="horizontal" class="space-y-4"><div role="tablist" aria-orientation="horizontal" class="inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground" tabindex="-1" data-orientation="horizontal" style="outline:none"><button type="button" role="tab" aria-selected="true" aria-controls="radix-:R1add:-content-vanilla" data-state="active" id="radix-:R1add:-trigger-vanilla" class="inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" tabindex="-1" data-orientation="horizontal" data-radix-collection-item="">Vanilla JS</button><button type="button" role="tab" aria-selected="false" aria-controls="radix-:R1add:-content-react" data-state="inactive" id="radix-:R1add:-trigger-react" class="inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" tabindex="-1" data-orientation="horizontal" data-radix-collection-item="">React</button><button type="button" role="tab" aria-selected="false" aria-controls="radix-:R1add:-content-vue" data-state="inactive" id="radix-:R1add:-trigger-vue" class="inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" tabindex="-1" data-orientation="horizontal" data-radix-collection-item="">Vue 3</button></div><div data-state="active" data-orientation="horizontal" role="tabpanel" aria-labelledby="radix-:R1add:-trigger-vanilla" id="radix-:R1add:-content-vanilla" tabindex="0" class="mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2" style="animation-duration:0s"><div class="relative group rounded-lg border border-border overflow-hidden"><div class="relative"><pre class="bg-muted/30 p-4 overflow-x-auto text-sm">
9<code class="text-foreground/90 leading-relaxed"><!-- 1. Add a container element --> 10<div id="editor"> 11 <p>Start editing here...</p> 12</div> 13 14<script type="module"> 15 import { Scribe } from 'scribejs-editor'; 16 17 // One-line initialization 18 const editor = Scribe.init('#editor'); 19 20 // Direct methods â no exec() needed 21 editor.bold(); 22 editor.italic(); 23 editor.link('https://example.com'); 24 editor.heading(2); 25 26 // Read content 27 const html = editor.getHTML(); 28</script></code></pre><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground absolute top-2 right-2 h-8 w-8 transition-opacity opacity-0 group-hover:opacity-100"><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-copy h-4 w-4"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div></div></div><div data-state="inactive" data-orientation="horizontal" role="tabpanel" aria-labelledby="radix-:R1add:-trigger-react" hidden="" id="radix-:R1add:-content-react" tabindex="0" class="mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"></div><div data-state="inactive" data-orientation="horizontal" role="tabpanel" aria-labelledby="radix-:R1add:-trigger-vue" hidden="" id="radix-:R1add:-content-vue" tabindex="0" class="mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"></div></div></section><section id="installation" class="mb-16 scroll-mt-24"><h2 class="text-2xl font-bold mb-4 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-terminal h-6 w-6 text-primary"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" x2="20" y1="19" y2="19"></line></svg>Installation</h2><p class="text-muted-foreground mb-6">Install Scribe via your preferred package manager or load it directly from a CDN.</p><div class="space-y-4"><div class="rounded-lg border text-card-foreground shadow-sm bg-card/50"><div class="p-6 pt-6"><h3 class="font-semibold mb-2">Package Manager</h3><div class="relative group rounded-lg border border-border overflow-hidden"><div class="relative"><pre class="bg-muted/30 p-4 overflow-x-auto text-sm"><code class="text-foreground/90 leading-relaxed">npm install scribejs-editor 29# or 30yarn add scribejs-editor 31# or 32pnpm add scribejs-editor</code></pre><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground absolute top-2 right-2 h-8 w-8 transition-opacity opacity-0 group-hover:opacity-100"><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-copy h-4 w-4"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div></div></div></div><div class="rounded-lg border text-card-foreground shadow-sm bg-card/50"><div class="p-6 pt-6"><h3 class="font-semibold mb-2">CDN (no bundler needed)</h3><div class="relative group rounded-lg border border-border overflow-hidden"><div class="relative"><pre class="bg-muted/30 p-4 overflow-x-auto text-sm">
32<code class="text-foreground/90 leading-relaxed"><script src="https://unpkg.com/scribejs-editor"></script> 33 34<script> 35 const editor = Scribe.init('#editor'); 36</script></code></pre><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground absolute top-2 right-2 h-8 w-8 transition-opacity opacity-0 group-hover:opacity-100"><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-copy h-4 w-4"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div></div></div></div><div class="rounded-lg border text-card-foreground shadow-sm bg-card/50"><div class="p-6 pt-6"><h3 class="font-semibold mb-3">ES Module (modern browsers)</h3><div class="relative group rounded-lg border border-border overflow-hidden"><div class="relative"><pre class="bg-muted/30 p-4 overflow-x-auto text-sm"><code class="text-foreground/90 leading-relaxed"><script type="module"> 37 import { Scribe } from 'https://esm.sh/scribejs-editor'; 38 const editor = Scribe.init('#editor'); 39</script></code></pre><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground absolute top-2 right-2 h-8 w-8 transition-opacity opacity-0 group-hover:opacity-100"><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-copy h-4 w-4"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></div></div></div></div></div></section><section id="next-steps" class="mb-16 scroll-mt-24"><h2 class="text-2xl font-bold mb-4 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-zap h-5 w-5 text-primary"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg>Next Steps</h2><div class="grid sm:grid-cols-2 gap-4"><a href="/docs/core-concepts" class="block p-4 rounded-lg border border-border/50 hover:border-primary/40 hover:bg-muted/30 transition-colors"><div class="font-medium mb-1">Core Concepts</div><div class="text-sm text-muted-foreground">Understand the architecture and design decisions</div></a><a href="/docs/framework-guides" class="block p-4 rounded-lg border border-border/50 hover:border-primary/40 hover:bg-muted/30 transition-colors"><div class="font-medium mb-1">Framework Guides</div><div class="text-sm text-muted-foreground">Step-by-step guides for React, Vue, Svelte, and more</div></a><a href="/docs/api-reference" class="block p-4 rounded-lg border border-border/50 hover:border-primary/40 hover:bg-muted/30 transition-colors"><div class="font-medium mb-1">API Reference</div><div class="text-sm text-muted-foreground">Complete API documentation for all methods</div></a><a href="/docs/features" class="block p-4 rounded-lg border border-border/50 hover:border-primary/40 hover:bg-muted/30 transition-colors"><div class="font-medium mb-1">Features</div><div class="text-sm text-muted-foreground">Explore all built-in features and configuration options</div></a></div></section><footer class="border-t border-border/50 pt-8 mt-16"><div class="flex flex-col md:flex-row items-center justify-between gap-4 text-sm text-muted-foreground"><p>Scribe Editor â A modern rich text editor for the web</p><div class="flex items-center gap-4"><a class="hover:text-foreground transition-colors" href="/">Demo</a><a class="hover:text-foreground transition-colors" href="/docs">Docs</a><a href="https://github.com/GoodPHP/scribejs" class="hover:text-foreground transition-colors flex items-center gap-1">GitHub <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-external-link h-3 w-3"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a></div></div></footer></main></div></div></div>
39<script>window.__staticRouterHydrationData = JSON.parse("{\"loaderData\":{\"0\":null,\"0-2\":null},\"actionData\":null,\"errors\":null}");</script>
39</div>
40<script>window.__VITE_REACT_SSG_HASH__ = 'ck6s15chen'</script>
40 41 42
43<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"ceadc93872f848e79d3106efc6f04456","r":1,"spa":2}' crossorigin="anonymous"></script>
43 44</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.