odac 1.4.3 → 1.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/.agent/rules/coding.md +2 -2
  2. package/.agent/rules/memory.md +5 -1
  3. package/.github/workflows/release.yml +2 -0
  4. package/.husky/pre-push +0 -1
  5. package/.kiro/steering/coding.md +27 -0
  6. package/.kiro/steering/memory.md +56 -0
  7. package/.kiro/steering/project.md +30 -0
  8. package/.kiro/steering/workflow.md +16 -0
  9. package/CHANGELOG.md +98 -0
  10. package/README.md +2 -1
  11. package/client/odac.js +121 -2
  12. package/docs/ai/skills/backend/authentication.md +7 -5
  13. package/docs/ai/skills/backend/controllers.md +24 -3
  14. package/docs/ai/skills/backend/forms.md +8 -6
  15. package/docs/ai/skills/backend/image-processing.md +93 -0
  16. package/docs/ai/skills/backend/request_response.md +2 -2
  17. package/docs/ai/skills/backend/routing.md +11 -0
  18. package/docs/ai/skills/backend/structure.md +1 -1
  19. package/docs/ai/skills/backend/views.md +34 -9
  20. package/docs/ai/skills/frontend/navigation.md +45 -1
  21. package/docs/ai/skills/frontend/realtime.md +18 -2
  22. package/docs/backend/05-controllers/02-your-trusty-odac-assistant.md +24 -0
  23. package/docs/backend/07-views/03-template-syntax.md +65 -15
  24. package/docs/backend/07-views/03-variables.md +22 -7
  25. package/docs/backend/07-views/11-image-optimization.md +197 -0
  26. package/docs/frontend/02-ajax-navigation/01-quick-start.md +22 -0
  27. package/docs/frontend/02-ajax-navigation/03-advanced-usage.md +51 -0
  28. package/package.json +5 -2
  29. package/src/Auth.js +8 -4
  30. package/src/Config.js +5 -0
  31. package/src/Database/ConnectionFactory.js +16 -0
  32. package/src/Ipc.js +3 -2
  33. package/src/Lang.js +17 -10
  34. package/src/Odac.js +1 -0
  35. package/src/Request.js +20 -20
  36. package/src/Route.js +39 -3
  37. package/src/Validator.js +5 -5
  38. package/src/View/Image.js +495 -0
  39. package/src/View.js +4 -0
  40. package/template/controller/page/about.js +3 -3
  41. package/template/controller/page/index.js +2 -2
  42. package/template/public/assets/js/app.js +38 -54
  43. package/template/skeleton/main.html +4 -4
  44. package/template/view/content/about.html +64 -60
  45. package/template/view/content/home.html +148 -175
  46. package/template/view/css/app.css +46 -0
  47. package/template/view/footer/main.html +10 -9
  48. package/template/view/header/main.html +34 -11
  49. package/test/Auth/verifyMagicLink.test.js +281 -0
  50. package/test/Client/load.test.js +306 -0
  51. package/test/Lang/get.test.js +37 -11
  52. package/test/Odac/image.test.js +61 -0
  53. package/test/Route/set.test.js +102 -0
  54. package/test/View/Image/buildFilename.test.js +62 -0
  55. package/test/View/Image/hash.test.js +59 -0
  56. package/test/View/Image/isAvailable.test.js +15 -0
  57. package/test/View/Image/parse.test.js +83 -0
  58. package/test/View/Image/process.test.js +38 -0
  59. package/test/View/Image/render.test.js +117 -0
  60. package/test/View/Image/serve.test.js +56 -0
  61. package/test/View/Image/url.test.js +53 -0
  62. package/test/View/constructor.test.js +10 -0
  63. package/template/public/assets/css/style.css +0 -1835
@@ -1,65 +1,69 @@
1
- <div class="container">
2
- <section class="page-hero">
3
- <h1>🍭 About This Template</h1>
4
- <p class="lead">This is a starter template for your Odac website. Customize it to build your own application.</p>
5
- </section>
1
+ <div class="space-y-24">
2
+ <!-- About Hero -->
3
+ <section class="text-center space-y-6">
4
+ <h1 class="text-4xl md:text-6xl font-bold tracking-tight text-brand-900 leading-tight">
5
+ About This <br/><span class="text-brand-900/40">Template</span>
6
+ </h1>
7
+ <p class="text-xl text-brand-900/50 max-w-2xl mx-auto font-medium leading-relaxed">
8
+ This is your starting point for building something incredible with ODAC. A modern, high-performance foundation.
9
+ </p>
10
+ </section>
6
11
 
7
- <section class="content-section">
8
- <h2>What You Can Build</h2>
9
- <p>
10
- With Odac, you can build any type of web application - from simple websites to complex web apps.
11
- This template provides a solid foundation with modern features and best practices already configured.
12
- </p>
13
- </section>
12
+ <!-- Template Features -->
13
+ <section class="space-y-12">
14
+ <div class="text-center space-y-2">
15
+ <h2 class="text-3xl font-bold tracking-tight text-brand-900">Template Features</h2>
16
+ <p class="text-brand-900/40">Everything you need, already configured.</p>
17
+ </div>
14
18
 
15
- <section class="content-section">
16
- <h2>Template Features</h2>
17
- <div class="component-grid">
18
- <div class="component-card">
19
- <h3>🎨 Modern UI</h3>
20
- <p>Dark theme with indigo colors, responsive design, and smooth animations.</p>
21
- </div>
22
-
23
- <div class="component-card">
24
- <h3>⚡ AJAX Navigation</h3>
25
- <p>Smooth page transitions without full reloads, already configured and working.</p>
26
- </div>
27
-
28
- <div class="component-card">
29
- <h3>🔒 Security</h3>
30
- <p>CSRF protection, secure sessions, and authentication ready to use.</p>
31
- </div>
32
-
33
- <div class="component-card">
34
- <h3>📱 Responsive</h3>
35
- <p>Mobile-first design that works perfectly on all devices.</p>
36
- </div>
37
- </div>
38
- </section>
19
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-8">
20
+ <div class="p-8 bg-white rounded-[2rem] border border-brand-100 shadow-sm space-y-4">
21
+ <h3 class="text-xl font-bold text-brand-900">Modern UI</h3>
22
+ <p class="text-brand-900/60 leading-relaxed">Design with Apple-style aesthetics using Tailwind CSS. Responsive, minimal, and premium.</p>
23
+ </div>
24
+
25
+ <div class="p-8 bg-white rounded-[2rem] border border-brand-100 shadow-sm space-y-4">
26
+ <h3 class="text-xl font-bold text-brand-900">AJAX Navigation</h3>
27
+ <p class="text-brand-900/60 leading-relaxed">Smooth page transitions without full reloads, already configured and working out of the box.</p>
28
+ </div>
29
+
30
+ <div class="p-8 bg-white rounded-[2rem] border border-brand-100 shadow-sm space-y-4">
31
+ <h3 class="text-xl font-bold text-brand-900">Security</h3>
32
+ <p class="text-brand-900/60 leading-relaxed">CSRF protection, secure sessions, and authentication ready to use for your application.</p>
33
+ </div>
34
+
35
+ <div class="p-8 bg-white rounded-[2rem] border border-brand-100 shadow-sm space-y-4">
36
+ <h3 class="text-xl font-bold text-brand-900">Responsive</h3>
37
+ <p class="text-brand-900/60 leading-relaxed">Mobile-first design that works perfectly on all devices, from small phones to large desktop displays.</p>
38
+ </div>
39
+ </div>
40
+ </section>
39
41
 
40
- <section class="content-section">
41
- <h2>Next Steps</h2>
42
- <ul class="philosophy-list">
43
- <li><strong>Routes:</strong> Define URL patterns in <code>route/www.js</code> to map URLs to controllers</li>
44
- <li><strong>Controllers:</strong> Create page logic in <code>controller/</code> to handle requests and set data</li>
45
- <li><strong>Skeleton:</strong> Design your layout structure in <code>skeleton/</code> with placeholders</li>
46
- <li><strong>Views:</strong> Build page content in <code>view/</code> directory to fill skeleton sections</li>
47
- <li><strong>Assets:</strong> Customize styles and scripts in <code>public/</code> for your brand</li>
48
- </ul>
49
- </section>
42
+ <!-- Next Steps -->
43
+ <section class="bg-brand-900 rounded-[3rem] p-12 md:p-20 text-white space-y-12">
44
+ <h2 class="text-3xl font-bold tracking-tight text-center">Next Steps</h2>
45
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
46
+ <div class="space-y-2 border-l-2 border-white/10 pl-6">
47
+ <h4 class="font-bold">Routes</h4>
48
+ <p class="text-white/40 text-sm">Define URL patterns in <code>route/www.js</code></p>
49
+ </div>
50
+ <div class="space-y-2 border-l-2 border-white/10 pl-6">
51
+ <h4 class="font-bold">Controllers</h4>
52
+ <p class="text-white/40 text-sm">Create page logic in <code>controller/</code></p>
53
+ </div>
54
+ <div class="space-y-2 border-l-2 border-white/10 pl-6">
55
+ <h4 class="font-bold">Skeleton</h4>
56
+ <p class="text-white/40 text-sm">Design your layout structure in <code>skeleton/</code></p>
57
+ </div>
58
+ </div>
59
+ </section>
50
60
 
51
- <section class="content-section">
52
- <h2>Learn More</h2>
53
- <div class="links-grid">
54
- <a href="https://docs.odac.run" class="link-card" target="_blank" data-navigate="false">
55
- <h3>📚 Documentation</h3>
56
- <p>Complete guides, API reference, and tutorials</p>
57
- </a>
58
-
59
- <a href="https://odac.run" class="link-card" target="_blank" data-navigate="false">
60
- <h3>🌐 odac.run</h3>
61
- <p>Official website with examples and community</p>
62
- </a>
63
- </div>
64
- </section>
61
+ <!-- Learn More -->
62
+ <section class="text-center pb-24 space-y-8">
63
+ <h2 class="text-3xl font-bold text-brand-900 tracking-tight">Need help?</h2>
64
+ <div class="flex justify-center gap-4">
65
+ <a href="https://docs.odac.run" target="_blank" rel="noopener" class="px-8 py-3 bg-white border border-brand-100 rounded-full font-bold hover:bg-brand-50 transition-colors" data-navigate="false">Documentation</a>
66
+ <a href="https://odac.run" target="_blank" rel="noopener" class="px-8 py-3 bg-brand-900 text-white rounded-full font-bold hover:opacity-90 transition-opacity" data-navigate="false">Official Site</a>
67
+ </div>
68
+ </section>
65
69
  </div>
@@ -1,205 +1,178 @@
1
1
  <!-- Hero Section -->
2
- <section class="hero">
3
- <div class="container">
4
- <div class="hero-content">
5
- <h1 class="hero-title">🍭 Your Odac Site is Ready!</h1>
6
- <p class="hero-subtitle">You've successfully created a new website with Odac</p>
7
- <p class="hero-description">
8
- This is your starting template. Edit the files in your project directory to customize your site. Everything you need to build a
9
- modern web application is already set up and ready to go.
10
- </p>
11
- <div class="hero-actions">
12
- <a href="https://odac.run" target="_blank" class="btn btn-primary" data-navigate="false">Visit odac.run</a>
13
- <a href="https://docs.odac.run" target="_blank" class="btn btn-secondary" data-navigate="false">Read Documentation</a>
14
- </div>
2
+ <section class="mb-24 py-12">
3
+ <div class="flex flex-col items-center text-center space-y-8">
4
+ <h1 class="text-5xl md:text-7xl font-bold tracking-tight text-brand-900 leading-tight">
5
+ Your ODAC Site is <br/><span class="text-brand-900/40">Ready to Build.</span>
6
+ </h1>
7
+ <p class="text-xl md:text-2xl text-brand-900/50 max-w-2xl font-medium leading-relaxed">
8
+ A next-generation framework for modern web applications. Fast, secure, and zero-config by design.
9
+ </p>
10
+ <div class="flex items-center gap-4 pt-4">
11
+ <a href="https://docs.odac.run" target="_blank" rel="noopener" class="btn-apple btn-primary px-8 py-3 text-lg" data-navigate="false">
12
+ Quick Start
13
+ </a>
14
+ <a href="/about" class="btn-apple btn-secondary px-8 py-3 text-lg">
15
+ Learn More
16
+ </a>
17
+ </div>
15
18
  </div>
16
- </div>
17
19
  </section>
18
20
 
19
21
  <!-- Project Structure Section -->
20
- <section class="features">
21
- <div class="container">
22
- <h2 class="section-title">📁 Your Project Structure</h2>
23
- <p class="section-description">Here's what you'll find in your project directory:</p>
24
-
25
- <div class="structure-grid">
26
- <div class="structure-item">
27
- <div class="structure-icon">📄</div>
28
- <h3 class="structure-title">controller/</h3>
29
- <p class="structure-description">Your application logic lives here. Each file handles requests and prepares data for views.</p>
30
- <code class="structure-path">controller/page/index.js</code>
31
- </div>
32
-
33
- <div class="structure-item">
34
- <div class="structure-icon">🎨</div>
35
- <h3 class="structure-title">view/</h3>
36
- <p class="structure-description">HTML templates for your pages. Organized by type (content, header, footer).</p>
37
- <code class="structure-path">view/content/home.html</code>
38
- </div>
39
-
40
- <div class="structure-item">
41
- <div class="structure-icon">🎯</div>
42
- <h3 class="structure-title">route/</h3>
43
- <p class="structure-description">Define your URL routes here. Map URLs to controllers and views.</p>
44
- <code class="structure-path">route/www.js</code>
45
- </div>
46
-
47
- <div class="structure-item">
48
- <div class="structure-icon">💎</div>
49
- <h3 class="structure-title">public/</h3>
50
- <p class="structure-description">Static assets like CSS, JavaScript, and images. Served directly to browsers.</p>
51
- <code class="structure-path">public/assets/css/style.css</code>
52
- </div>
53
-
54
- <div class="structure-item">
55
- <div class="structure-icon">🏗️</div>
56
- <h3 class="structure-title">skeleton/</h3>
57
- <p class="structure-description">Page layouts that wrap your content. Define your HTML structure once.</p>
58
- <code class="structure-path">skeleton/main.html</code>
59
- </div>
22
+ <section class="mb-24">
23
+ <div class="space-y-4 mb-12">
24
+ <h2 class="text-3xl font-semibold tracking-tight text-brand-900">Project Structure</h2>
25
+ <p class="text-brand-900/50 text-lg">Everything has a place. Convention over configuration.</p>
26
+ </div>
60
27
 
61
- <div class="structure-item">
62
- <div class="structure-icon">⚙️</div>
63
- <h3 class="structure-title">odac.json</h3>
64
- <p class="structure-description">Configuration file for database, routes, and other settings.</p>
65
- <code class="structure-path">odac.json</code>
66
- </div>
28
+ <div class="bg-white rounded-[2rem] shadow-sm border border-brand-100 overflow-hidden">
29
+ <div class="grid grid-cols-1 lg:grid-cols-2">
30
+ <!-- Tree -->
31
+ <div class="p-8 lg:p-10 bg-brand-900 text-brand-200">
32
+ <pre class="text-sm leading-relaxed font-mono"><code>my-project/
33
+ ├── controller/ <span class="text-brand-500"># Request handlers</span>
34
+ ├── middleware/ <span class="text-brand-500"># Route middlewares</span>
35
+ ├── public/ <span class="text-brand-500"># Static assets</span>
36
+ ├── route/ <span class="text-brand-500"># Route definitions</span>
37
+ ├── schema/ <span class="text-brand-500"># Database schemas</span>
38
+ ├── skeleton/ <span class="text-brand-500"># Page layouts</span>
39
+ ├── view/
40
+ │ ├── content/ <span class="text-brand-500"># Page templates</span>
41
+ │ ├── css/ <span class="text-brand-500"># Tailwind source</span>
42
+ │ ├── head/ <span class="text-brand-500"># &lt;head&gt; partials</span>
43
+ │ ├── header/ <span class="text-brand-500"># Header partials</span>
44
+ │ └── footer/ <span class="text-brand-500"># Footer partials</span>
45
+ └── odac.json <span class="text-brand-500"># Configuration</span></code></pre>
46
+ </div>
47
+
48
+ <!-- Description -->
49
+ <div class="p-8 lg:p-10 space-y-6">
50
+ <div class="space-y-1">
51
+ <h3 class="text-sm font-bold text-brand-900">controller/</h3>
52
+ <p class="text-sm text-brand-900/50">Your application logic. Each file handles requests and prepares data for views.</p>
53
+ </div>
54
+ <div class="space-y-1">
55
+ <h3 class="text-sm font-bold text-brand-900">route/</h3>
56
+ <p class="text-sm text-brand-900/50">Map URLs to controllers. Simple, declarative routing.</p>
57
+ </div>
58
+ <div class="space-y-1">
59
+ <h3 class="text-sm font-bold text-brand-900">view/</h3>
60
+ <p class="text-sm text-brand-900/50">HTML templates organized by type. Tailwind CSS source lives in <code class="text-xs bg-brand-50 px-1 py-0.5 rounded text-brand-900/60">view/css/</code>.</p>
61
+ </div>
62
+ <div class="space-y-1">
63
+ <h3 class="text-sm font-bold text-brand-900">schema/</h3>
64
+ <p class="text-sm text-brand-900/50">Database table definitions. Auto-migrated on every startup.</p>
65
+ </div>
66
+ <div class="space-y-1">
67
+ <h3 class="text-sm font-bold text-brand-900">skeleton/</h3>
68
+ <p class="text-sm text-brand-900/50">Page layouts that wrap your content. Define once, reuse everywhere.</p>
69
+ </div>
70
+ <div class="space-y-1">
71
+ <h3 class="text-sm font-bold text-brand-900">odac.json</h3>
72
+ <p class="text-sm text-brand-900/50">Centralized config for database, routes, and framework behavior.</p>
73
+ </div>
74
+ </div>
75
+ </div>
67
76
  </div>
68
- </div>
69
77
  </section>
70
78
 
71
- <!-- Quick Start Section -->
72
- <section class="demo">
73
- <div class="container">
74
- <h2 class="section-title">🚀 Quick Start Guide</h2>
75
-
76
- <div class="quickstart-grid">
77
- <div class="quickstart-step">
78
- <div class="step-number">1</div>
79
- <h3 class="step-title">Edit Your Content</h3>
80
- <p class="step-description">
81
- Open <code>view/content/home.html</code> to customize this page. All your HTML templates are in the <code>view/</code> directory.
82
- </p>
83
- </div>
79
+ <!-- Quick Start Guide -->
80
+ <section class="mb-24">
81
+ <div class="space-y-4 mb-12">
82
+ <h2 class="text-3xl font-semibold tracking-tight text-brand-900">Quick Start</h2>
83
+ <p class="text-brand-900/50 text-lg">Four steps to your first custom page.</p>
84
+ </div>
84
85
 
85
- <div class="quickstart-step">
86
- <div class="step-number">2</div>
87
- <h3 class="step-title">Add Routes</h3>
88
- <p class="step-description">Define new pages in <code>route/www.js</code>. Map URLs to controllers:</p>
89
- <pre class="code-snippet"><code>Odac.Route.page('/my-page', 'page.mypage')</code></pre>
90
- </div>
86
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-8">
87
+ <div class="bg-white p-8 rounded-[2rem] shadow-sm border border-brand-100 space-y-4 flex flex-col">
88
+ <div class="flex items-center gap-3">
89
+ <span class="w-8 h-8 bg-brand-900 text-white rounded-full flex items-center justify-center text-sm font-bold">1</span>
90
+ <h3 class="text-lg font-bold">Define a Route</h3>
91
+ </div>
92
+ <p class="text-brand-900/50 text-sm">Map a URL to a controller in <code class="text-xs bg-brand-50 px-1.5 py-0.5 rounded text-brand-900/60">route/www.js</code></p>
93
+ <pre class="bg-brand-900 text-brand-200 text-sm p-4 rounded-xl overflow-x-auto mt-auto h-full"><code>Odac.Route.page('/my-page', 'page.mypage')</code></pre>
94
+ </div>
91
95
 
92
- <div class="quickstart-step">
93
- <div class="step-number">3</div>
94
- <h3 class="step-title">Create Controllers</h3>
95
- <p class="step-description">Add logic in <code>controller/page/mypage.js</code>:</p>
96
- <pre class="code-snippet"><code>module.exports = function(Odac) {
97
- Odac.View.skeleton('main')
96
+ <div class="bg-white p-8 rounded-[2rem] shadow-sm border border-brand-100 space-y-4 flex flex-col">
97
+ <div class="flex items-center gap-3">
98
+ <span class="w-8 h-8 bg-brand-900 text-white rounded-full flex items-center justify-center text-sm font-bold">2</span>
99
+ <h3 class="text-lg font-bold">Create a Controller</h3>
100
+ </div>
101
+ <p class="text-brand-900/50 text-sm">Add logic in <code class="text-xs bg-brand-50 px-1.5 py-0.5 rounded text-brand-900/60">controller/page/mypage.js</code></p>
102
+ <pre class="bg-brand-900 text-brand-200 text-sm p-4 rounded-xl overflow-x-auto mt-auto h-full"><code>module.exports = function(Odac) {
98
103
  Odac.View.set({
104
+ skeleton: 'main',
105
+ head: 'main',
99
106
  header: 'main',
100
107
  content: 'mypage',
101
108
  footer: 'main'
102
109
  })
103
110
  }</code></pre>
104
- </div>
105
-
106
- <div class="quickstart-step">
107
- <div class="step-number">4</div>
108
- <h3 class="step-title">Style Your Site</h3>
109
- <p class="step-description">
110
- Customize the look in <code>public/assets/css/style.css</code>. Add your own CSS or use your favorite framework.
111
- </p>
112
- </div>
113
- </div>
114
- </div>
115
- </section>
116
-
117
- <!-- Features Section -->
118
- <section class="code-examples">
119
- <div class="container">
120
- <h2 class="section-title">✨ What's Included</h2>
121
-
122
- <div class="features-list">
123
- <div class="feature-item">
124
- <div class="feature-icon">🎯</div>
125
- <div class="feature-content">
126
- <h3>AJAX Navigation</h3>
127
- <p>Smooth page transitions without full reloads. Already configured in <code>public/assets/js/app.js</code></p>
128
111
  </div>
129
- </div>
130
112
 
131
- <div class="feature-item">
132
- <div class="feature-icon">🔒</div>
133
- <div class="feature-content">
134
- <h3>CSRF Protection</h3>
135
- <p>Automatic security tokens for all forms and AJAX requests. No configuration needed.</p>
113
+ <div class="bg-white p-8 rounded-[2rem] shadow-sm border border-brand-100 space-y-4 flex flex-col">
114
+ <div class="flex items-center gap-3">
115
+ <span class="w-8 h-8 bg-brand-900 text-white rounded-full flex items-center justify-center text-sm font-bold">3</span>
116
+ <h3 class="text-lg font-bold">Build the View</h3>
117
+ </div>
118
+ <p class="text-brand-900/50 text-sm">Create your template in <code class="text-xs bg-brand-50 px-1.5 py-0.5 rounded text-brand-900/60">view/content/mypage.html</code></p>
119
+ <pre class="bg-brand-900 text-brand-200 text-sm p-4 rounded-xl overflow-x-auto mt-auto h-full"><code>&lt;section class="py-12"&gt;
120
+ &lt;h1 class="text-4xl font-bold"&gt;My Page&lt;/h1&gt;
121
+ &lt;p class="text-brand-900/50"&gt;Welcome!&lt;/p&gt;
122
+ &lt;/section&gt;</code></pre>
136
123
  </div>
137
- </div>
138
124
 
139
- <div class="feature-item">
140
- <div class="feature-icon">📱</div>
141
- <div class="feature-content">
142
- <h3>Responsive Design</h3>
143
- <p>Mobile-first CSS framework included. Customize in <code>public/assets/css/style.css</code></p>
125
+ <div class="bg-white p-8 rounded-[2rem] shadow-sm border border-brand-100 space-y-4 flex flex-col">
126
+ <div class="flex items-center gap-3">
127
+ <span class="w-8 h-8 bg-brand-900 text-white rounded-full flex items-center justify-center text-sm font-bold">4</span>
128
+ <h3 class="text-lg font-bold">Style with Tailwind</h3>
129
+ </div>
130
+ <p class="text-brand-900/50 text-sm">Customize the theme in <code class="text-xs bg-brand-50 px-1.5 py-0.5 rounded text-brand-900/60">view/css/app.css</code></p>
131
+ <pre class="bg-brand-900 text-brand-200 text-sm p-4 rounded-xl overflow-x-auto mt-auto h-full"><code>@theme {
132
+ --color-brand: #0071e3;
133
+ --font-display: "Inter", sans-serif;
134
+ }</code></pre>
144
135
  </div>
145
- </div>
136
+ </div>
137
+ </section>
146
138
 
147
- <div class="feature-item">
148
- <div class="feature-icon">⚡</div>
149
- <div class="feature-content">
150
- <h3>Fast Development</h3>
151
- <p>Hot reload enabled. Changes to views and controllers are reflected immediately.</p>
139
+ <!-- Features Spotlight -->
140
+ <section class="mb-24">
141
+ <div class="bg-brand-900 rounded-[3rem] p-12 md:p-20 text-white space-y-12">
142
+ <div class="text-center space-y-4">
143
+ <h2 class="text-3xl md:text-5xl font-bold tracking-tight">Built for modern scale.</h2>
144
+ <p class="text-white/50 text-xl font-medium">Enterprise grade performance out of the box.</p>
152
145
  </div>
153
- </div>
154
-
155
- <div class="feature-item">
156
- <div class="feature-icon">🗄️</div>
157
- <div class="feature-content">
158
- <h3>Database Ready</h3>
159
- <p>MySQL and SQLite support built-in. Configure in <code>odac.json</code></p>
146
+
147
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-12 pt-8">
148
+ <div class="space-y-4 border-l-2 border-white/10 pl-8">
149
+ <h3 class="text-xl font-bold">AJAX Navigation</h3>
150
+ <p class="text-white/40 leading-relaxed">Smooth page transitions without full reloads, giving your users a native app feel.</p>
151
+ </div>
152
+ <div class="space-y-4 border-l-2 border-white/10 pl-8">
153
+ <h3 class="text-xl font-bold">Security First</h3>
154
+ <p class="text-white/40 leading-relaxed">Automatic CSRF protection and secure session management built into the core.</p>
155
+ </div>
156
+ <div class="space-y-4 border-l-2 border-white/10 pl-8">
157
+ <h3 class="text-xl font-bold">Sub-ms Latency</h3>
158
+ <p class="text-white/40 leading-relaxed">Optimized routing and view engine designed for the highest possible throughput.</p>
159
+ </div>
160
+ <div class="space-y-4 border-l-2 border-white/10 pl-8">
161
+ <h3 class="text-xl font-bold">Tailwind Included</h3>
162
+ <p class="text-white/40 leading-relaxed">The default template now leverages Tailwind CSS for professional, scalable designs.</p>
163
+ </div>
160
164
  </div>
161
- </div>
162
-
163
- <div class="feature-item">
164
- <div class="feature-icon">📧</div>
165
- <div class="feature-content">
166
- <h3>Email Support</h3>
167
- <p>Send emails with the built-in mail service. SMTP and IMAP included.</p>
168
- </div>
169
- </div>
170
165
  </div>
171
- </div>
172
166
  </section>
173
167
 
174
- <!-- Resources Section -->
175
- <section class="resources">
176
- <div class="container">
177
- <h2 class="section-title">📚 Learn More</h2>
178
-
179
- <div class="resources-grid">
180
- <a href="https://odac.run" target="_blank" class="resource-card" data-navigate="false">
181
- <div class="resource-icon">🌐</div>
182
- <h3>odac.run</h3>
183
- <p>Official website with guides, tutorials, and community resources</p>
184
- </a>
185
-
186
- <a href="https://docs.odac.run" target="_blank" class="resource-card" data-navigate="false">
187
- <div class="resource-icon">📖</div>
188
- <h3>Documentation</h3>
189
- <p>Complete API reference, examples, and best practices</p>
190
- </a>
191
-
192
- <a href="https://github.com/odac-run/odac" target="_blank" class="resource-card" data-navigate="false">
193
- <div class="resource-icon">💻</div>
194
- <h3>GitHub</h3>
195
- <p>Source code, issues, and contribution guidelines</p>
196
- </a>
197
- </div>
198
-
199
- <div class="next-steps">
200
- <h3>🎨 Ready to Build?</h3>
201
- <p>Start by editing <code>view/content/home.html</code> to replace this page with your own content.</p>
202
- <p>Check out the <a href="/about">About</a> page for more examples.</p>
168
+ <!-- Call to Action -->
169
+ <section class="mb-12 py-12">
170
+ <div class="flex flex-col items-center text-center space-y-6">
171
+ <h2 class="text-3xl font-bold text-brand-900 tracking-tight">Ready to build the future?</h2>
172
+ <p class="text-brand-900/50 max-w-xl">Start by editing <code class="text-xs bg-brand-50 px-1.5 py-0.5 rounded text-brand-900/60">view/content/home.html</code> to replace this page with your own vision.</p>
173
+ <div class="pt-4 flex items-center gap-4">
174
+ <a href="https://github.com/odac-run/odac" target="_blank" rel="noopener" class="px-6 py-2 border border-brand-100 rounded-full font-medium hover:bg-brand-50 transition-colors" data-navigate="false">Star on GitHub</a>
175
+ <a href="/about" class="px-6 py-2 text-brand-900 font-medium hover:opacity-60 transition-opacity">Meet the Framework →</a>
176
+ </div>
203
177
  </div>
204
- </div>
205
178
  </section>
@@ -0,0 +1,46 @@
1
+ @import "tailwindcss";
2
+
3
+ @theme {
4
+ --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
5
+
6
+ --color-brand-50: #f8f8f8;
7
+ --color-brand-100: #e8e8e8;
8
+ --color-brand-200: #d1d1d1;
9
+ --color-brand-300: #b0b0b0;
10
+ --color-brand-400: #888888;
11
+ --color-brand-500: #6d6d6d;
12
+ --color-brand-600: #5d5d5d;
13
+ --color-brand-700: #4b4b4b;
14
+ --color-brand-800: #373737;
15
+ --color-brand-900: #1d1d1f;
16
+ }
17
+
18
+ /* Base Styles */
19
+ body {
20
+ @apply bg-[#f5f5f7] text-brand-900 antialiased;
21
+ }
22
+
23
+ h1, h2, h3, h4, h5, h6 {
24
+ @apply font-semibold tracking-tight;
25
+ }
26
+
27
+ /* Components */
28
+ .glass {
29
+ @apply bg-white/70 backdrop-blur-md border-b border-white/10;
30
+ }
31
+
32
+ .btn-apple {
33
+ @apply px-6 py-2 rounded-full font-medium transition-all duration-200 inline-flex items-center justify-center;
34
+ }
35
+
36
+ .btn-primary {
37
+ @apply bg-brand-900 text-white hover:bg-brand-800;
38
+ }
39
+
40
+ .btn-secondary {
41
+ @apply bg-brand-100 text-brand-900 hover:bg-brand-200;
42
+ }
43
+
44
+ .active {
45
+ @apply !text-brand-900 opacity-100 font-semibold;
46
+ }
@@ -1,11 +1,12 @@
1
- <!-- Footer -->
2
- <div class="footer">
3
- <div class="container">
4
- <p>Powered by <strong>Odac</strong> - A next-generation server and framework toolkit</p>
5
- <p class="footer-links">
6
- <a href="https://github.com/odac-run/odac" target="_blank" data-navigate="false">GitHub</a>
7
- <a href="https://docs.odac.run" target="_blank" data-navigate="false">Documentation</a> •
8
- <a href="https://odac.run" target="_blank" data-navigate="false">Official Site</a>
9
- </p>
1
+ <div class="max-w-5xl mx-auto px-6 flex flex-col items-center gap-6">
2
+ <div class="flex items-center gap-6">
3
+ <a href="https://github.com/odac-run/odac" target="_blank" rel="noopener" class="text-xs font-medium text-brand-900/40 hover:text-brand-900/60 transition-colors" data-navigate="false">GitHub</a>
4
+ <a href="https://docs.odac.run" target="_blank" rel="noopener" class="text-xs font-medium text-brand-900/40 hover:text-brand-900/60 transition-colors" data-navigate="false">Documentation</a>
5
+ <a href="https://odac.run" target="_blank" rel="noopener" class="text-xs font-medium text-brand-900/40 hover:text-brand-900/60 transition-colors" data-navigate="false">Official Site</a>
6
+ </div>
7
+
8
+ <div class="flex flex-col items-center gap-2">
9
+ <p class="text-xs text-brand-900/30">Powered by <span class="font-semibold text-brand-900/40">ODAC</span> Framework</p>
10
+ <p class="text-[10px] uppercase tracking-widest text-brand-900/20 font-medium">Built for High Performance</p>
10
11
  </div>
11
12
  </div>
@@ -1,14 +1,37 @@
1
- <!-- Navigation -->
2
- <nav class="navbar">
3
- <div class="container">
4
- <div class="nav-brand">
5
- <span class="brand-icon">🍭</span>
6
- <span class="brand-name">Odac</span>
7
- </div>
8
- <div class="nav-links">
9
- <a href="/" class="nav-link active">Getting Started</a>
10
- <a href="/about" class="nav-link">About</a>
11
- <a href="https://docs.odac.run" class="nav-link" target="_blank" data-navigate="false">Docs ↗</a>
1
+ <div class="container mx-auto px-6 h-full flex items-center justify-between">
2
+ <a href="/" class="flex items-center gap-2 transition-opacity hover:opacity-80">
3
+ <span class="text-xl font-bold tracking-tight text-brand-900">ODAC</span>
4
+ </a>
5
+
6
+ <!-- Desktop Nav -->
7
+ <nav class="hidden md:flex items-center gap-8">
8
+ <div class="flex items-center gap-6">
9
+ <a href="/" class="text-sm font-medium text-brand-900/60 hover:text-brand-900 transition-colors active">Getting Started</a>
10
+ <a href="/about" class="text-sm font-medium text-brand-900/60 hover:text-brand-900 transition-colors">About</a>
11
+ <a href="https://docs.odac.run" target="_blank" rel="noopener" class="text-sm font-medium text-brand-900/60 hover:text-brand-900 transition-colors flex items-center gap-1" data-navigate="false">
12
+ Docs
13
+ <svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" /></svg>
14
+ </a>
12
15
  </div>
16
+
17
+ <a href="https://github.com/odac-run/odac" target="_blank" rel="noopener" class="btn-apple btn-primary text-sm px-4 py-1.5" data-navigate="false">
18
+ GitHub
19
+ </a>
20
+ </nav>
21
+
22
+ <!-- Mobile Menu Toggle -->
23
+ <label for="mobile-menu" class="md:hidden cursor-pointer p-2 -mr-2 text-brand-900/60 hover:text-brand-900 transition-colors">
24
+ <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" /></svg>
25
+ </label>
26
+ </div>
27
+
28
+ <!-- Mobile Menu (CSS-only toggle) -->
29
+ <input type="checkbox" id="mobile-menu" class="hidden peer" />
30
+ <nav class="peer-checked:flex hidden md:hidden flex-col w-full bg-white/90 backdrop-blur-xl border-t border-brand-100 px-6 py-6 gap-4">
31
+ <a href="/" class="text-sm font-medium text-brand-900/60 hover:text-brand-900 transition-colors py-2 active">Getting Started</a>
32
+ <a href="/about" class="text-sm font-medium text-brand-900/60 hover:text-brand-900 transition-colors py-2">About</a>
33
+ <a href="https://docs.odac.run" target="_blank" rel="noopener" class="text-sm font-medium text-brand-900/60 hover:text-brand-900 transition-colors py-2" data-navigate="false">Docs</a>
34
+ <div class="pt-2 border-t border-brand-100">
35
+ <a href="https://github.com/odac-run/odac" target="_blank" rel="noopener" class="btn-apple btn-primary text-sm w-full" data-navigate="false">GitHub</a>
13
36
  </div>
14
37
  </nav>