// Delete this file and put your own home page in app/actions/controller.tsx import type { Handle, RemixNode } from 'remix/ui' import { css } from 'remix/ui' import { PromptButton } from '../assets/prompt-button.tsx' import { Document } from './document.tsx' const FONT_STACK = "'JetBrains Mono', ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace" export function HomePage() { return () => ( }>
) } function HomeHead() { return () => ( <> ) } function Masthead() { return () => (

Welcome to

) } function Columns() { return () => (
) } function GetStartedCard() { return () => (

Get started

) } function CodingWithAiCard() { return () => (

Coding with AI?

Navigate to this project folder using your preferred AI-powered tool, and try copying any of these prompts into the agent chat:

) } function CardLink(handle: Handle<{ href: string; icon: RemixNode; label: string }>) { return () => { let { href, icon, label } = handle.props return ( {icon} {label} ) } } function IconSlot(handle: Handle<{ children: RemixNode; rotated?: boolean }>) { return () => { let { children, rotated = false } = handle.props return ( ) } } function Footer() { return () => ( ) } const cardStyle = css({ background: 'var(--surface-3)', borderRadius: '20px', padding: '32px 16px 16px', display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '32px', }) const cardHeaderStyle = css({ margin: 0, width: '100%', padding: '0 16px', display: 'flex', alignItems: 'flex-start', fontSize: '14px', fontWeight: 700, lineHeight: 1.5, textTransform: 'uppercase', letterSpacing: '0.1em', color: 'var(--text-primary)', }) // ----- SVG icons ----- // Inline so the page is fully self-contained with no external icon assets. function AtomIcon() { return () => ( ) } function DiscordFaceIcon() { return () => ( ) } function GitHubIcon() { return () => ( ) } function XIcon() { return () => ( ) } function YouTubeIcon() { return () => ( ) } function DiscordIcon() { return () => ( ) } function FooterWordmark() { // Same wordmark used for both light and dark mode; the text paths use // currentColor so they inherit `--text-primary` from . return () => ( ) } function RemixWordmarkHero() { // Single SVG used for both themes: bracket characters keep their decorative // colors; the "REMIX" letterforms use currentColor so they inherit // `--text-primary` from (light or dark). return () => ( ) }