> ## Documentation Index > Fetch the complete documentation index at: https://docs.replit.com/llms.txt > Use this file to discover all available pages before exploring further. # Introduction > Replit is the fastest way to go from idea to app. Create and publish full-stack apps from your browser with AI at your fingertips—no installation or setup required. export const AgentInput = () => { if (typeof document !== 'undefined' && !window.LZString) { const script = document.createElement('script'); script.src = 'https://cdnjs.cloudflare.com/ajax/libs/lz-string/1.5.0/lz-string.min.js'; document.head.appendChild(script); } const inputId = 'agent-input-textarea'; const appPlaceholder = "Make a software application that…"; const designPlaceholder = "Design me a website, slide deck, interactive prototype..."; if (typeof document !== 'undefined' && !document.getElementById('agent-input-styles')) { const style = document.createElement('style'); style.id = 'agent-input-styles'; style.textContent = ` /* Theme variables - light mode */ #agent-input-container { --ai-surface-bg: #FFFFFF; --ai-surface-higher: #F5F5F5; --ai-border-default: #E4E4E4; --ai-border-regular: #EBEBEB; --ai-text-secondary: #5C5C5C; --ai-text-tertiary: #858585; --ai-text-primary: #1D1D1D; --ai-button-bg-disabled: #F5F5F5; --ai-button-text-disabled: #858585; --ai-button-bg-active: #0079F2; --ai-button-text-active: #FFFFFF; --ai-inactive-hover-bg: #EBEBEB; --ai-shadow: 0 2px 6px #00000005; } /* Theme variables - dark mode */ .dark #agent-input-container, html.dark #agent-input-container, [data-theme="dark"] #agent-input-container { --ai-surface-bg: #1A1C25; --ai-surface-higher: #24262F; --ai-border-default: #3A3D47; --ai-border-regular: #2E3039; --ai-text-secondary: #E0E0E0; --ai-text-tertiary: #9CA3AF; --ai-text-primary: #F5F5F5; --ai-button-bg-disabled: #24262F; --ai-button-text-disabled: #6B7280; --ai-inactive-hover-bg: #2E3039; --ai-shadow: 0 2px 6px #00000020; } /* Entry animation */ @keyframes agent-input-fade-in-up { from { transform: translateY(10px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } /* Tab states - active */ #agent-input-container a[data-active="true"] { color: var(--ai-text-secondary) !important; background: var(--ai-surface-bg) !important; border-color: var(--ai-border-default) !important; z-index: 2; transform: none; } #agent-input-container a[data-active="true"] .tab-curve-fill { fill: var(--ai-surface-bg); } #agent-input-container a[data-active="true"] .tab-curve-stroke { stroke: var(--ai-border-default); } #agent-input-container a[data-active="true"] .border-cover { display: block; background: var(--ai-surface-bg); } /* Tab states - inactive */ #agent-input-container a[data-active="false"] { color: var(--ai-text-tertiary) !important; background: var(--ai-surface-higher) !important; border-color: var(--ai-border-regular) !important; z-index: 1; transform: translateY(2px); transition: 0.15s transform; } #agent-input-container a[data-active="false"] .tab-curve-fill { fill: var(--ai-surface-higher); } #agent-input-container a[data-active="false"] .tab-curve-stroke { stroke: var(--ai-border-regular); } #agent-input-container a[data-active="false"] .border-cover { display: none; } /* Hover state - triggered by hovering inner container OR active tab */ #agent-input-container:has(#agent-input-inner:hover) #agent-input-inner, #agent-input-container:has(a[data-active="true"]:hover) #agent-input-inner { border-color: #85C7FF !important; } #agent-input-container:has(#agent-input-inner:hover) a[data-active="true"], #agent-input-container:has(a[data-active="true"]:hover) a[data-active="true"] { border-color: #85C7FF !important; } #agent-input-container:has(#agent-input-inner:hover) a[data-active="true"] .tab-curve-stroke, #agent-input-container:has(a[data-active="true"]:hover) a[data-active="true"] .tab-curve-stroke { stroke: #85C7FF !important; } /* Focus state */ #agent-input-container:has(#agent-input-inner:focus-within) #agent-input-inner, #agent-input-container:has(#agent-input-inner:focus-within) a[data-active="true"] { border-color: #0079F2 !important; } #agent-input-container:has(#agent-input-inner:focus-within) a[data-active="true"] .tab-curve-stroke { stroke: #0079F2 !important; } /* Inactive tab hover */ @media (hover: hover) { #agent-input-container a[data-active="false"]:hover { background: var(--ai-inactive-hover-bg) !important; color: var(--ai-text-secondary) !important; transform: translateY(0) !important; border-color: var(--ai-border-default) !important; } #agent-input-container a[data-active="false"]:hover .tab-curve-stroke { stroke: var(--ai-border-default) !important; } } /* Responsive - narrow screens */ @media screen and (max-width: 420px) { #agent-input-container .tab-curve { display: none !important; } #agent-input-container #agent-input-tabs { padding-left: 0 !important; padding-right: 0 !important; } #agent-input-container #agent-input-tabs a { border-radius: 8px 8px 0 0 !important; } #agent-input-container #agent-input-tabs a:last-child { margin-right: 0 !important; } #agent-input-container #agent-input-inner { border-radius: 0 0 8px 8px !important; } #agent-input-container .border-cover { left: 0 !important; right: 0 !important; } } `; document.head.appendChild(style); } const getPromptValue = () => document.getElementById(inputId)?.value?.trim() || ''; const getLink = () => { if (typeof document === 'undefined' || !window.LZString) return ''; const prompt = getPromptValue(); if (!prompt) return ''; const stack = document.getElementById('agent-input-container')?.dataset?.stack || 'Build'; const encoded = window.LZString.compressToEncodedURIComponent(prompt); const utm = 'utm_source=replit-docs&utm_medium=docs&utm_campaign=docs-intro-agent-input&utm_content=homepage-prompt-box'; return `https://replit.com/?stack=${stack}&prompt=${encoded}&referrer=replit-docs&${utm}`; }; const updateButtonState = () => { const btn = document.getElementById('agent-input-start-btn'); if (!btn) return; const hasText = getPromptValue().length > 0; btn.style.background = `var(--ai-button-bg-${hasText ? 'active' : 'disabled'})`; btn.style.color = `var(--ai-button-text-${hasText ? 'active' : 'disabled'})`; btn.style.cursor = hasText ? 'pointer' : 'not-allowed'; }; const handleTabClick = (e, tabName) => { e.preventDefault(); const container = document.getElementById('agent-input-container'); const textarea = document.getElementById(inputId); if (!container) return; const isApp = tabName === 'App'; container.dataset.stack = isApp ? 'Build' : 'Design'; container.querySelector('#agent-input-tab-app').dataset.active = isApp ? 'true' : 'false'; container.querySelector('#agent-input-tab-design').dataset.active = isApp ? 'false' : 'true'; if (textarea) textarea.placeholder = isApp ? appPlaceholder : designPlaceholder; }; const handleStartClick = e => { e.preventDefault(); const link = getLink(); if (link) window.open(link, '_blank'); }; const TabCurve = ({tabId, side}) => { const clipId = `clip-${tabId}-${side}`; return ; }; const Tab = ({id, name, icon, isActive}) => handleTabClick(e, name)} style={{ display: 'flex', flex: 1, position: 'relative', cursor: 'pointer', boxSizing: 'border-box', marginRight: '-1px', borderTop: '1px solid', borderLeft: '1px solid', borderRight: '1px solid', borderBottom: 'none', borderRadius: '8px 8px 0 0', height: '37px', textDecoration: 'none', userSelect: 'none', overflow: 'visible' }}> {icon} {name} ; const AppIcon = ; const DesignIcon = ; const ArrowIcon = ; return