(UPDATE): [docs(index.html)]: add full landing page for CodeMind AI-powered development assistant
Browse filesCreate a complete HTML landing page for CodeMind, an AI-powered development assistant focused on local document analysis and commit message generation.
Add header navigation with links to Features, Why CodeMind, How It Works, Usage, and Setup sections.
Implement hero section introducing CodeMind, its purpose, and quick access buttons for setup and features.
Document features including document embedding, semantic search, commit message generation, retrieval-augmented generation, local processing, and flexible configuration.
Explain the value proposition in the "Why CodeMind?" section, highlighting efficient knowledge retrieval, smarter git workflow, and AI-powered documentation Q&A.
Detail the workflow in "How It Works" with steps for document indexing, semantic search, retrieval-augmented generation, and commit message generation.
Provide usage examples for indexing documentation, semantic search, asking questions, and generating commit messages via CLI commands.
Outline setup instructions, including prerequisites, installation steps, and model setup guidance.
Add FAQ section addressing model compatibility, RAM requirements, data privacy, and re-indexing frequency.
Include a footer with navigation links and copyright.
Structure the page for clarity, accessibility, and ease of use for new users.
- index.html +271 -10
- style.css +313 -28
@@ -4,19 +4,280 @@
|
|
4 |
<head>
|
5 |
<meta charset="utf-8" />
|
6 |
<meta name="viewport" content="width=device-width" />
|
7 |
-
<
|
8 |
-
<
|
9 |
</head>
|
10 |
|
11 |
<body>
|
12 |
-
|
13 |
-
|
14 |
-
<
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
</body>
|
21 |
|
22 |
</html>
|
|
|
4 |
<head>
|
5 |
<meta charset="utf-8" />
|
6 |
<meta name="viewport" content="width=device-width" />
|
7 |
+
<link rel="stylesheet" href="style.css" />
|
8 |
+
<title>CodeMind - AI-Powered Development Assistant</title>
|
9 |
</head>
|
10 |
|
11 |
<body>
|
12 |
+
<!-- Header -->
|
13 |
+
<header>
|
14 |
+
<div class="container">
|
15 |
+
<nav>
|
16 |
+
<div class="logo">
|
17 |
+
<span class="logo-icon">🔧</span> CodeMind
|
18 |
+
</div>
|
19 |
+
<ul class="nav-links">
|
20 |
+
<li><a href="#features">Features</a></li>
|
21 |
+
<li><a href="#why">Why CodeMind</a></li>
|
22 |
+
<li><a href="#how">How It Works</a></li>
|
23 |
+
<li><a href="#usage">Usage</a></li>
|
24 |
+
<li><a href="#setup">Setup</a></li>
|
25 |
+
</ul>
|
26 |
+
</nav>
|
27 |
+
</div>
|
28 |
+
</header>
|
29 |
+
|
30 |
+
<!-- Hero Section -->
|
31 |
+
<section class="hero">
|
32 |
+
<div class="container">
|
33 |
+
<h1>AI-Powered Development Assistant</h1>
|
34 |
+
<p>CodeMind is an AI-powered development assistant that runs entirely on your local machine for intelligent
|
35 |
+
document analysis and commit message generation.</p>
|
36 |
+
<a href="#setup" class="btn">Get Started</a>
|
37 |
+
<a href="#features" class="btn btn-outline">Learn More</a>
|
38 |
+
</div>
|
39 |
+
</section>
|
40 |
+
|
41 |
+
<!-- Features Section -->
|
42 |
+
<section id="features" class="features">
|
43 |
+
<div class="container">
|
44 |
+
<h2>Features</h2>
|
45 |
+
<div class="features-grid">
|
46 |
+
<div class="feature-card">
|
47 |
+
<div class="feature-icon">📄</div>
|
48 |
+
<h3>Document Embedding</h3>
|
49 |
+
<p>Using EmbeddingGemma-300m to create semantic representations of your documentation and code.</p>
|
50 |
+
</div>
|
51 |
+
<div class="feature-card">
|
52 |
+
<div class="feature-icon">🔍</div>
|
53 |
+
<h3>Semantic Search</h3>
|
54 |
+
<p>Using FAISS for vector similarity search to find relevant content based on meaning, not just
|
55 |
+
keywords.</p>
|
56 |
+
</div>
|
57 |
+
<div class="feature-card">
|
58 |
+
<div class="feature-icon">💬</div>
|
59 |
+
<h3>Commit Message Generation</h3>
|
60 |
+
<p>Automatically generate descriptive commit messages based on your changes using Phi-2 model.</p>
|
61 |
+
</div>
|
62 |
+
<div class="feature-card">
|
63 |
+
<div class="feature-icon">🤖</div>
|
64 |
+
<h3>Retrieval-Augmented Generation</h3>
|
65 |
+
<p>Answers questions using your indexed document context for accurate, relevant responses.</p>
|
66 |
+
</div>
|
67 |
+
<div class="feature-card">
|
68 |
+
<div class="feature-icon">💻</div>
|
69 |
+
<h3>Local Processing</h3>
|
70 |
+
<p>All AI processing happens on your machine with no data sent to cloud services.</p>
|
71 |
+
</div>
|
72 |
+
<div class="feature-card">
|
73 |
+
<div class="feature-icon">⚙️</div>
|
74 |
+
<h3>Flexible Configuration</h3>
|
75 |
+
<p>Customize models and parameters to suit your specific needs and preferences.</p>
|
76 |
+
</div>
|
77 |
+
</div>
|
78 |
+
</div>
|
79 |
+
</section>
|
80 |
+
|
81 |
+
<!-- Why Section -->
|
82 |
+
<section id="why" class="why">
|
83 |
+
<div class="container">
|
84 |
+
<h2>Why CodeMind?</h2>
|
85 |
+
<div class="why-content">
|
86 |
+
<p>CodeMind brings together document semantic search, retrieval-augmented Q&A, and AI-powered commit
|
87 |
+
message generation to help you work faster and smarter by leveraging your own project context.</p>
|
88 |
+
|
89 |
+
<h3>Efficient Knowledge Retrieval</h3>
|
90 |
+
<p>Makes searching and querying documentation more powerful by using semantic embeddings rather than
|
91 |
+
keyword search.</p>
|
92 |
+
|
93 |
+
<h3>Smarter Git Workflow</h3>
|
94 |
+
<p>Automates the creation of meaningful commit messages by analyzing git diffs and using an LLM to
|
95 |
+
summarize changes.</p>
|
96 |
+
|
97 |
+
<h3>AI-Powered Documentation</h3>
|
98 |
+
<p>Enables you to ask questions about your project, using your own docs/context rather than just generic
|
99 |
+
answers.</p>
|
100 |
+
</div>
|
101 |
+
</div>
|
102 |
+
</section>
|
103 |
+
|
104 |
+
<!-- How It Works -->
|
105 |
+
<section id="how" class="how">
|
106 |
+
<div class="container">
|
107 |
+
<h2>How It Works</h2>
|
108 |
+
<div class="how-steps">
|
109 |
+
<div class="step">
|
110 |
+
<div class="step-number">1</div>
|
111 |
+
<div class="step-content">
|
112 |
+
<h3>Document Indexing</h3>
|
113 |
+
<p>The app uses EmbeddingGemma-300m via sentence-transformers to embed documents. Embeddings are
|
114 |
+
normalized and stored in a FAISS vector index for efficient similarity search. Metadata
|
115 |
+
(document text and filenames) are stored alongside the index.</p>
|
116 |
+
</div>
|
117 |
+
</div>
|
118 |
+
<div class="step">
|
119 |
+
<div class="step-number">2</div>
|
120 |
+
<div class="step-content">
|
121 |
+
<h3>Semantic Search</h3>
|
122 |
+
<p>When you search, your query is embedded using the same embedding model. FAISS searches for
|
123 |
+
the most similar documents based on cosine similarity. Results are filtered by a similarity
|
124 |
+
threshold and returned with scores.</p>
|
125 |
+
</div>
|
126 |
+
</div>
|
127 |
+
<div class="step">
|
128 |
+
<div class="step-number">3</div>
|
129 |
+
<div class="step-content">
|
130 |
+
<h3>Retrieval-Augmented Generation (RAG)</h3>
|
131 |
+
<p>When you ask a question, the system retrieves relevant docs (via semantic search). The
|
132 |
+
retrieved context is fed to the Phi-2 LLM, which generates an answer using both your
|
133 |
+
question and the context.</p>
|
134 |
+
</div>
|
135 |
+
</div>
|
136 |
+
<div class="step">
|
137 |
+
<div class="step-number">4</div>
|
138 |
+
<div class="step-content">
|
139 |
+
<h3>Commit Message Generation</h3>
|
140 |
+
<p>Analyzes your staged git changes (via a diff analyzer). Summarizes changes and sends them to
|
141 |
+
the Phi-2 LLM, which generates a commit message aligned to your config (tone, style,
|
142 |
+
length).</p>
|
143 |
+
</div>
|
144 |
+
</div>
|
145 |
+
</div>
|
146 |
+
</div>
|
147 |
+
</section>
|
148 |
+
|
149 |
+
<!-- Usage -->
|
150 |
+
<section id="usage" class="usage">
|
151 |
+
<div class="container">
|
152 |
+
<h2>Usage Examples</h2>
|
153 |
+
|
154 |
+
<h3>Index Your Documentation</h3>
|
155 |
+
<div class="code-block">
|
156 |
+
<span class="code-comment"># Index documents in the docs directory</span><br>
|
157 |
+
python cli.py init ./docs/
|
158 |
+
</div>
|
159 |
+
|
160 |
+
<h3>Semantic Search</h3>
|
161 |
+
<div class="code-block">
|
162 |
+
<span class="code-comment"># Search for relevant documentation</span><br>
|
163 |
+
python cli.py search "how to configure the model"
|
164 |
+
</div>
|
165 |
+
|
166 |
+
<h3>Ask Questions (RAG)</h3>
|
167 |
+
<div class="code-block">
|
168 |
+
<span class="code-comment"># Ask questions about your project</span><br>
|
169 |
+
python cli.py ask "What are the configuration options?"
|
170 |
+
</div>
|
171 |
+
|
172 |
+
<h3>Generate Commit Messages</h3>
|
173 |
+
<div class="code-block">
|
174 |
+
<span class="code-comment"># Preview a generated commit message</span><br>
|
175 |
+
python cli.py commit --preview<br><br>
|
176 |
+
|
177 |
+
<span class="code-comment"># Generate and apply commit message</span><br>
|
178 |
+
python cli.py commit --apply
|
179 |
+
</div>
|
180 |
+
</div>
|
181 |
+
</section>
|
182 |
+
|
183 |
+
<!-- Setup -->
|
184 |
+
<section id="setup" class="setup">
|
185 |
+
<div class="container">
|
186 |
+
<h2>Setup & Installation</h2>
|
187 |
+
|
188 |
+
<div class="setup-cards">
|
189 |
+
<div class="setup-card">
|
190 |
+
<h3>Prerequisites</h3>
|
191 |
+
<ul>
|
192 |
+
<li>Python 3.8 or higher</li>
|
193 |
+
<li>8GB+ RAM recommended</li>
|
194 |
+
<li>4GB+ disk space for model files</li>
|
195 |
+
<li>Git for repository cloning</li>
|
196 |
+
</ul>
|
197 |
+
</div>
|
198 |
+
|
199 |
+
<div class="setup-card">
|
200 |
+
<h3>Installation</h3>
|
201 |
+
<div class="code-block">
|
202 |
+
<span class="code-comment"># Clone the repository</span><br>
|
203 |
+
git clone https://github.com/devjas1/codemind.git<br>
|
204 |
+
cd codemind<br><br>
|
205 |
+
|
206 |
+
<span class="code-comment"># Create virtual environment</span><br>
|
207 |
+
python -m venv venv<br><br>
|
208 |
+
|
209 |
+
<span class="code-comment"># Activate on macOS/Linux</span><br>
|
210 |
+
source venv/bin/activate<br><br>
|
211 |
+
|
212 |
+
<span class="code-comment"># Install dependencies</span><br>
|
213 |
+
pip install -r requirements.txt
|
214 |
+
</div>
|
215 |
+
</div>
|
216 |
+
|
217 |
+
<div class="setup-card">
|
218 |
+
<h3>Model Setup</h3>
|
219 |
+
<p>Download these models:</p>
|
220 |
+
<ul>
|
221 |
+
<li>Phi-2 Model for commit message generation</li>
|
222 |
+
<li>EmbeddingGemma-300m for document embedding</li>
|
223 |
+
</ul>
|
224 |
+
<p>Place them in the models/ directory as specified in the configuration.</p>
|
225 |
+
</div>
|
226 |
+
</div>
|
227 |
+
</div>
|
228 |
+
</section>
|
229 |
+
|
230 |
+
<!-- FAQ -->
|
231 |
+
<section class="faq">
|
232 |
+
<div class="container">
|
233 |
+
<h2>Frequently Asked Questions</h2>
|
234 |
+
|
235 |
+
<div class="faq-list">
|
236 |
+
<div class="faq-item">
|
237 |
+
<div class="faq-question">Can I use different models?</div>
|
238 |
+
<p>Yes, you can use any GGUF-compatible model for generation and any SentenceTransformers-compatible
|
239 |
+
model for embeddings. Update the paths in config.yaml accordingly.</p>
|
240 |
+
</div>
|
241 |
+
|
242 |
+
<div class="faq-item">
|
243 |
+
<div class="faq-question">How much RAM do I need?</div>
|
244 |
+
<p>For the Phi-2 Q4_0 model, 8GB RAM is recommended. Larger models will require more memory.</p>
|
245 |
+
</div>
|
246 |
+
|
247 |
+
<div class="faq-item">
|
248 |
+
<div class="faq-question">Is my data sent to the cloud?</div>
|
249 |
+
<p>No, all processing happens locally on your machine. No code or data is sent to external services.
|
250 |
+
</p>
|
251 |
+
</div>
|
252 |
+
|
253 |
+
<div class="faq-item">
|
254 |
+
<div class="faq-question">How often should I re-index my documents?</div>
|
255 |
+
<p>Re-index whenever your documentation or codebase changes significantly to keep search results
|
256 |
+
relevant.</p>
|
257 |
+
</div>
|
258 |
+
</div>
|
259 |
+
</div>
|
260 |
+
</section>
|
261 |
+
|
262 |
+
<!-- Footer -->
|
263 |
+
<footer>
|
264 |
+
<div class="container">
|
265 |
+
<div class="logo">
|
266 |
+
<span class="logo-icon">🔧</span> CodeMind
|
267 |
+
</div>
|
268 |
+
<p>AI-powered development assistant for your local machine</p>
|
269 |
+
|
270 |
+
<ul class="footer-links">
|
271 |
+
<li><a href="#features">Features</a></li>
|
272 |
+
<li><a href="#why">Why</a></li>
|
273 |
+
<li><a href="#how">How It Works</a></li>
|
274 |
+
<li><a href="#usage">Usage</a></li>
|
275 |
+
<li><a href="#setup">Setup</a></li>
|
276 |
+
</ul>
|
277 |
+
|
278 |
+
<p>© 2023 CodeMind. All rights reserved.</p>
|
279 |
+
</div>
|
280 |
+
</footer>
|
281 |
</body>
|
282 |
|
283 |
</html>
|
@@ -1,28 +1,313 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
}
|
25 |
-
|
26 |
-
.
|
27 |
-
|
28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
:root {
|
2 |
+
--primary: #6c63ff;
|
3 |
+
--primary-dark: #5651e9;
|
4 |
+
--secondary: #4a4a4a;
|
5 |
+
--light: #f8f9fa;
|
6 |
+
--dark: #212529;
|
7 |
+
--success: #28a745;
|
8 |
+
--info: #17a2b8;
|
9 |
+
--gradient-start: #6c63ff;
|
10 |
+
--gradient-end: #4a43b7;
|
11 |
+
}
|
12 |
+
|
13 |
+
* {
|
14 |
+
margin: 0;
|
15 |
+
padding: 0;
|
16 |
+
box-sizing: border-box;
|
17 |
+
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
18 |
+
}
|
19 |
+
|
20 |
+
body {
|
21 |
+
color: var(--dark);
|
22 |
+
line-height: 1.6;
|
23 |
+
background-color: #f9f9f9;
|
24 |
+
}
|
25 |
+
|
26 |
+
.container {
|
27 |
+
width: 90%;
|
28 |
+
max-width: 1200px;
|
29 |
+
margin: 0 auto;
|
30 |
+
padding: 0 15px;
|
31 |
+
}
|
32 |
+
|
33 |
+
/* Header & Navigation */
|
34 |
+
header {
|
35 |
+
background: linear-gradient(135deg, var(--gradient-start), var(--gradient-end));
|
36 |
+
color: white;
|
37 |
+
padding: 1rem 0;
|
38 |
+
position: sticky;
|
39 |
+
top: 0;
|
40 |
+
z-index: 100;
|
41 |
+
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
|
42 |
+
}
|
43 |
+
|
44 |
+
nav {
|
45 |
+
display: flex;
|
46 |
+
justify-content: space-between;
|
47 |
+
align-items: center;
|
48 |
+
}
|
49 |
+
|
50 |
+
.logo {
|
51 |
+
font-size: 1.8rem;
|
52 |
+
font-weight: 700;
|
53 |
+
display: flex;
|
54 |
+
align-items: center;
|
55 |
+
}
|
56 |
+
|
57 |
+
.logo-icon {
|
58 |
+
margin-right: 10px;
|
59 |
+
font-size: 2rem;
|
60 |
+
}
|
61 |
+
|
62 |
+
.nav-links {
|
63 |
+
display: flex;
|
64 |
+
list-style: none;
|
65 |
+
}
|
66 |
+
|
67 |
+
.nav-links li {
|
68 |
+
margin-left: 2rem;
|
69 |
+
}
|
70 |
+
|
71 |
+
.nav-links a {
|
72 |
+
color: white;
|
73 |
+
text-decoration: none;
|
74 |
+
font-weight: 500;
|
75 |
+
transition: opacity 0.3s;
|
76 |
+
}
|
77 |
+
|
78 |
+
.nav-links a:hover {
|
79 |
+
opacity: 0.8;
|
80 |
+
}
|
81 |
+
|
82 |
+
/* Hero Section */
|
83 |
+
.hero {
|
84 |
+
background: linear-gradient(135deg, var(--gradient-start), var(--gradient-end));
|
85 |
+
color: white;
|
86 |
+
padding: 5rem 0;
|
87 |
+
text-align: center;
|
88 |
+
}
|
89 |
+
|
90 |
+
.hero h1 {
|
91 |
+
font-size: 3rem;
|
92 |
+
margin-bottom: 1rem;
|
93 |
+
}
|
94 |
+
|
95 |
+
.hero p {
|
96 |
+
font-size: 1.2rem;
|
97 |
+
max-width: 700px;
|
98 |
+
margin: 0 auto 2rem;
|
99 |
+
}
|
100 |
+
|
101 |
+
.btn {
|
102 |
+
display: inline-block;
|
103 |
+
background: white;
|
104 |
+
color: var(--primary);
|
105 |
+
padding: 0.8rem 1.5rem;
|
106 |
+
border-radius: 30px;
|
107 |
+
text-decoration: none;
|
108 |
+
font-weight: 600;
|
109 |
+
transition: all 0.3s;
|
110 |
+
border: none;
|
111 |
+
cursor: pointer;
|
112 |
+
}
|
113 |
+
|
114 |
+
.btn:hover {
|
115 |
+
transform: translateY(-3px);
|
116 |
+
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
|
117 |
+
}
|
118 |
+
|
119 |
+
.btn-outline {
|
120 |
+
background: transparent;
|
121 |
+
border: 2px solid white;
|
122 |
+
color: white;
|
123 |
+
margin-left: 1rem;
|
124 |
+
}
|
125 |
+
|
126 |
+
/* Sections */
|
127 |
+
section {
|
128 |
+
padding: 5rem 0;
|
129 |
+
}
|
130 |
+
|
131 |
+
section h2 {
|
132 |
+
text-align: center;
|
133 |
+
margin-bottom: 3rem;
|
134 |
+
font-size: 2.5rem;
|
135 |
+
color: var(--secondary);
|
136 |
+
}
|
137 |
+
|
138 |
+
section h3 {
|
139 |
+
margin-bottom: 1rem;
|
140 |
+
color: var(--primary);
|
141 |
+
}
|
142 |
+
|
143 |
+
/* Features */
|
144 |
+
.features {
|
145 |
+
background-color: white;
|
146 |
+
}
|
147 |
+
|
148 |
+
.features-grid {
|
149 |
+
display: grid;
|
150 |
+
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
151 |
+
gap: 2rem;
|
152 |
+
}
|
153 |
+
|
154 |
+
.feature-card {
|
155 |
+
background: var(--light);
|
156 |
+
padding: 2rem;
|
157 |
+
border-radius: 10px;
|
158 |
+
text-align: center;
|
159 |
+
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
|
160 |
+
transition: transform 0.3s;
|
161 |
+
}
|
162 |
+
|
163 |
+
.feature-card:hover {
|
164 |
+
transform: translateY(-5px);
|
165 |
+
}
|
166 |
+
|
167 |
+
.feature-icon {
|
168 |
+
font-size: 2.5rem;
|
169 |
+
color: var(--primary);
|
170 |
+
margin-bottom: 1rem;
|
171 |
+
}
|
172 |
+
|
173 |
+
/* Why Section */
|
174 |
+
.why {
|
175 |
+
background-color: var(--light);
|
176 |
+
}
|
177 |
+
|
178 |
+
.why-content {
|
179 |
+
max-width: 800px;
|
180 |
+
margin: 0 auto;
|
181 |
+
}
|
182 |
+
|
183 |
+
/* How It Works */
|
184 |
+
.how-steps {
|
185 |
+
display: flex;
|
186 |
+
flex-direction: column;
|
187 |
+
gap: 2rem;
|
188 |
+
max-width: 900px;
|
189 |
+
margin: 0 auto;
|
190 |
+
}
|
191 |
+
|
192 |
+
.step {
|
193 |
+
display: flex;
|
194 |
+
align-items: flex-start;
|
195 |
+
gap: 1.5rem;
|
196 |
+
}
|
197 |
+
|
198 |
+
.step-number {
|
199 |
+
background: var(--primary);
|
200 |
+
color: white;
|
201 |
+
width: 40px;
|
202 |
+
height: 40px;
|
203 |
+
border-radius: 50%;
|
204 |
+
display: flex;
|
205 |
+
align-items: center;
|
206 |
+
justify-content: center;
|
207 |
+
flex-shrink: 0;
|
208 |
+
font-weight: bold;
|
209 |
+
}
|
210 |
+
|
211 |
+
.step-content {
|
212 |
+
flex: 1;
|
213 |
+
}
|
214 |
+
|
215 |
+
/* Usage */
|
216 |
+
.usage {
|
217 |
+
background-color: var(--light);
|
218 |
+
}
|
219 |
+
|
220 |
+
.code-block {
|
221 |
+
background: #2d2d2d;
|
222 |
+
color: #f8f8f2;
|
223 |
+
padding: 1.5rem;
|
224 |
+
border-radius: 5px;
|
225 |
+
overflow-x: auto;
|
226 |
+
margin: 1.5rem 0;
|
227 |
+
font-family: 'Courier New', monospace;
|
228 |
+
}
|
229 |
+
|
230 |
+
.code-comment {
|
231 |
+
color: #75715e;
|
232 |
+
}
|
233 |
+
|
234 |
+
/* Setup */
|
235 |
+
.setup-cards {
|
236 |
+
display: grid;
|
237 |
+
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
238 |
+
gap: 2rem;
|
239 |
+
}
|
240 |
+
|
241 |
+
.setup-card {
|
242 |
+
background: white;
|
243 |
+
padding: 2rem;
|
244 |
+
border-radius: 10px;
|
245 |
+
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
|
246 |
+
}
|
247 |
+
|
248 |
+
/* FAQ */
|
249 |
+
.faq-list {
|
250 |
+
max-width: 800px;
|
251 |
+
margin: 0 auto;
|
252 |
+
}
|
253 |
+
|
254 |
+
.faq-item {
|
255 |
+
margin-bottom: 1.5rem;
|
256 |
+
border-bottom: 1px solid #eee;
|
257 |
+
padding-bottom: 1.5rem;
|
258 |
+
}
|
259 |
+
|
260 |
+
.faq-question {
|
261 |
+
font-weight: 600;
|
262 |
+
margin-bottom: 0.5rem;
|
263 |
+
color: var(--primary);
|
264 |
+
}
|
265 |
+
|
266 |
+
/* Footer */
|
267 |
+
footer {
|
268 |
+
background: var(--dark);
|
269 |
+
color: white;
|
270 |
+
padding: 3rem 0;
|
271 |
+
text-align: center;
|
272 |
+
}
|
273 |
+
|
274 |
+
.footer-links {
|
275 |
+
display: flex;
|
276 |
+
justify-content: center;
|
277 |
+
list-style: none;
|
278 |
+
margin: 2rem 0;
|
279 |
+
}
|
280 |
+
|
281 |
+
.footer-links li {
|
282 |
+
margin: 0 1rem;
|
283 |
+
}
|
284 |
+
|
285 |
+
.footer-links a {
|
286 |
+
color: white;
|
287 |
+
text-decoration: none;
|
288 |
+
}
|
289 |
+
|
290 |
+
/* Responsive */
|
291 |
+
@media (max-width: 768px) {
|
292 |
+
.nav-links {
|
293 |
+
display: none;
|
294 |
+
}
|
295 |
+
|
296 |
+
.hero h1 {
|
297 |
+
font-size: 2.2rem;
|
298 |
+
}
|
299 |
+
|
300 |
+
.step {
|
301 |
+
flex-direction: column;
|
302 |
+
}
|
303 |
+
|
304 |
+
.btn {
|
305 |
+
display: block;
|
306 |
+
margin: 0.5rem auto;
|
307 |
+
width: 80%;
|
308 |
+
}
|
309 |
+
|
310 |
+
.btn-outline {
|
311 |
+
margin-left: 0;
|
312 |
+
}
|
313 |
+
}
|