/** * Rynex Starter Template * A premium dark-themed starter with modern UI and smooth interactions */ import { state } from 'rynex'; import * as UI from 'rynex'; export default function App() { const appState = state({ hoveredButton: null as string | null }); return UI.container({ class: 'app', style: { minHeight: '100vh', background: '#000000', color: '#ffffff', fontFamily: '"Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif' } }, [ // Main Content Container UI.vbox({ class: 'container', style: { flex: '1', display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '2rem', gap: '2.5rem' } }, [ // Hero Section UI.vbox({ class: 'hero', style: { textAlign: 'center', gap: '1.5rem', maxWidth: '800px' } }, [ // Logo/Badge UI.container({ style: { display: 'inline-block', padding: '0.5rem 1.25rem', background: '#0a0a0a', border: '1px solid #333333', borderRadius: '9999px', marginBottom: '1rem', boxShadow: '0 4px 6px -1px rgba(0, 255, 136, 0.1)' } }, [ UI.text({ style: { fontSize: '0.875rem', color: '#00ff88', fontWeight: '600', letterSpacing: '0.05em' } }, 'Rynex') ]), // Main Title UI.h1({ style: { fontSize: '4rem', fontWeight: '800', lineHeight: '1.1', margin: '0', fontFamily: '"Montserrat", sans-serif', background: 'linear-gradient(135deg, #ffffff 0%, #b0b0b0 100%)', webkitBackgroundClip: 'text', webkitTextFillColor: 'transparent', backgroundClip: 'text' } }, 'Welcome to Rynex'), // Subtitle UI.text({ style: { fontSize: '1.25rem', color: '#b0b0b0', lineHeight: '1.6', maxWidth: '600px', margin: '0 auto' } }, 'A modern, reactive web framework with elegant syntax and powerful features. Build beautiful applications with minimal code and maximum performance.'), // Button Group UI.hbox({ class: 'button-group', style: { gap: '1rem', justifyContent: 'center', marginTop: '1rem', flexWrap: 'wrap' } }, [ // Documentation Button UI.hbox({ onClick: () => { window.open('https://github.com/your-repo/rynex/docs', '_blank'); }, style: { padding: '0.875rem 2rem', background: '#00ff88', color: '#000000', border: 'none', borderRadius: '9999px', fontSize: '1rem', fontWeight: '600', cursor: 'pointer', transition: 'all 0.2s ease-in-out', boxShadow: '0 4px 6px -1px rgba(0, 255, 136, 0.1)', gap: '0.5rem', alignItems: 'center', display: 'inline-flex' }, onHover: { transform: 'translateY(-2px)', background: '#00cc6a' } }, [ UI.svg({ viewBox: '0 0 24 24', width: '20', height: '20', fill: 'currentColor', style: { display: 'block' } }, ''), UI.text({}, 'Documentation') ]), // GitHub Button UI.hbox({ onClick: () => { window.open('https://github.com/your-repo/rynex', '_blank'); }, style: { padding: '0.875rem 2rem', background: '#0a0a0a', color: '#ffffff', border: '1px solid #333333', borderRadius: '9999px', fontSize: '1rem', fontWeight: '600', cursor: 'pointer', transition: 'all 0.2s ease-in-out', boxShadow: '0 1px 2px rgba(0, 255, 136, 0.1)', gap: '0.5rem', alignItems: 'center', display: 'inline-flex' }, onHover: { transform: 'translateY(-2px)', borderColor: '#00ff88' } }, [ UI.svg({ viewBox: '0 0 24 24', width: '20', height: '20', fill: 'currentColor', style: { display: 'block' } }, ''), UI.text({}, 'GitHub') ]) ]) ]), // Features Grid UI.vbox({ class: 'features', style: { gap: '1.5rem', maxWidth: '900px', width: '100%' } }, [ UI.text({ style: { fontSize: '1.5rem', fontWeight: '700', textAlign: 'center', marginBottom: '1rem', fontFamily: '"Montserrat", sans-serif' } }, 'Quick Start Guide'), UI.hbox({ style: { gap: '1.5rem', flexWrap: 'wrap', justifyContent: 'center' } }, [ // Feature Card 1 UI.vbox({ style: { flex: '1', minWidth: '250px', padding: '1.5rem', background: '#0a0a0a', border: '1px solid #333333', borderRadius: '0.5rem', gap: '0.75rem', boxShadow: '0 1px 2px rgba(0, 255, 136, 0.1)', transition: 'all 0.2s ease-in-out' } }, [ UI.svg({ viewBox: '0 0 24 24', width: '48', height: '48', fill: '#00ff88', style: { display: 'block' } }, '') as any, UI.text({ style: { fontSize: '1.125rem', fontWeight: '600', color: '#00ff88' } }, 'Reactive by Default'), UI.text({ style: { fontSize: '0.875rem', color: '#b0b0b0', lineHeight: '1.5' } }, 'Built-in reactivity with automatic UI updates. No manual subscriptions needed.') ]), // Feature Card 2 UI.vbox({ style: { flex: '1', minWidth: '250px', padding: '1.5rem', background: '#0a0a0a', border: '1px solid #333333', borderRadius: '0.5rem', gap: '0.75rem', boxShadow: '0 1px 2px rgba(0, 255, 136, 0.1)', transition: 'all 0.2s ease-in-out' } }, [ UI.svg({ viewBox: '0 0 24 24', width: '48', height: '48', fill: '#00ff88', style: { display: 'block' } }, '') as any, UI.text({ style: { fontSize: '1.125rem', fontWeight: '600', color: '#00ff88' } }, 'Clean Syntax'), UI.text({ style: { fontSize: '0.875rem', color: '#b0b0b0', lineHeight: '1.5' } }, 'Elegant API design with TypeScript support for better developer experience.') ]), // Feature Card 3 UI.vbox({ style: { flex: '1', minWidth: '250px', padding: '1.5rem', background: '#0a0a0a', border: '1px solid #333333', borderRadius: '0.5rem', gap: '0.75rem', boxShadow: '0 1px 2px rgba(0, 255, 136, 0.1)', transition: 'all 0.2s ease-in-out' } }, [ UI.svg({ viewBox: '0 0 24 24', width: '48', height: '48', fill: '#00ff88', style: { display: 'block' } }, '') as any, UI.text({ style: { fontSize: '1.125rem', fontWeight: '600', color: '#00ff88' } }, 'Zero Config'), UI.text({ style: { fontSize: '0.875rem', color: '#b0b0b0', lineHeight: '1.5' } }, 'Start building immediately with sensible defaults and minimal setup.') ]) ]) ]) ]), // Footer UI.footer({ style: { padding: '2rem', textAlign: 'center', borderTop: '1px solid #333333', background: '#0a0a0a' } }, [ UI.text({ style: { fontSize: '0.875rem', color: '#b0b0b0' } }, '© 2025 Razen Core. Built with ❤️ and modern web technologies.') ]) ]); }