Skip to content

Commit b0fb5e9

Browse files
author
ComputelessComputer
committed
remove shadow from install cmd, add clipboard copy button
1 parent 49cd7ca commit b0fb5e9

1 file changed

Lines changed: 33 additions & 11 deletions

File tree

apps/web/src/pages/index.astro

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,8 @@ const features = [
4949
<h1 class="hero-title">Run every project with execution-grade AI orchestration, from inbox to roadmap to shipped work with local tasks and real tool execution.</h1>
5050
<pre
5151
class="install-cmd"
52-
onclick="navigator.clipboard.writeText('brew tap ComputelessComputer/aipm && brew install aipm'); const prompt = this.querySelector('.terminal-prompt'); if (!prompt) return; prompt.classList.add('copied'); this.classList.add('copied'); clearTimeout(this.copyTimer); this.copyTimer = setTimeout(() => { prompt.classList.remove('copied'); this.classList.remove('copied'); }, 1200);"
5352
title="Click to copy"
54-
><code><span class="terminal-prompt" aria-hidden="true"><span class="prompt-dollar">$</span><span class="prompt-check"><CheckIcon size={16} strokeWidth={2.5} /></span></span><span>brew tap ComputelessComputer/aipm && brew install aipm</span></code></pre>
53+
><code><span class="terminal-prompt" aria-hidden="true">$</span><span>brew tap ComputelessComputer/aipm && brew install aipm</span><button class="copy-btn" type="button" onclick="navigator.clipboard.writeText('brew tap ComputelessComputer/aipm && brew install aipm'); const btn = this; btn.classList.add('copied'); clearTimeout(btn.copyTimer); btn.copyTimer = setTimeout(() => btn.classList.remove('copied'), 1200);" aria-label="Copy to clipboard"><span class="copy-icon"><svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect width='14' height='14' x='8' y='8' rx='2' ry='2'/><path d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'/></svg></span><span class="check-icon"><CheckIcon size={16} strokeWidth={2.5} /></span></button></code></pre>
5554
</div>
5655
</div>
5756
</section>
@@ -160,15 +159,14 @@ const features = [
160159
}
161160

162161
.install-cmd {
163-
display: inline-block;
162+
display: inline-flex;
163+
align-items: center;
164164
width: fit-content;
165165
max-width: 100%;
166166
text-align: left;
167-
cursor: pointer;
168167
border-radius: 10px;
169168
border: 1px solid #e5dbc8;
170169
background: #f3ede4;
171-
box-shadow: 0 8px 18px rgba(44, 36, 24, 0.06);
172170
padding: 0.9rem 1rem;
173171
transition: border-color var(--transition-fast), background-color var(--transition-fast);
174172
}
@@ -181,6 +179,7 @@ const features = [
181179
.install-cmd code {
182180
display: flex;
183181
align-items: center;
182+
gap: 0.5rem;
184183
color: #2c2418;
185184
font-size: clamp(0.86rem, 1.45vw, 1rem);
186185
line-height: 1.35;
@@ -189,31 +188,54 @@ const features = [
189188
background: none;
190189
border: 0;
191190
padding: 0;
191+
width: 100%;
192192
}
193193

194194
.terminal-prompt {
195-
display: inline-flex;
196-
align-items: center;
197195
color: #c07a3e;
198196
margin-right: 0.6ch;
199197
user-select: none;
200198
-webkit-user-select: none;
201199
}
202200

203-
.prompt-check {
201+
.copy-btn {
202+
display: inline-flex;
203+
align-items: center;
204+
justify-content: center;
205+
margin-left: auto;
206+
padding: 0.3rem;
207+
background: none;
208+
border: none;
209+
border-radius: 4px;
210+
cursor: pointer;
211+
color: #9d8c78;
212+
transition: color var(--transition-fast);
213+
flex-shrink: 0;
214+
}
215+
216+
.copy-btn:hover {
217+
color: #c07a3e;
218+
}
219+
220+
.copy-btn .check-icon {
204221
display: none;
205222
line-height: 0;
206223
}
207224

208-
.terminal-prompt.copied .prompt-dollar {
225+
.copy-btn .copy-icon {
226+
display: inline-flex;
227+
line-height: 0;
228+
}
229+
230+
.copy-btn.copied .copy-icon {
209231
display: none;
210232
}
211233

212-
.terminal-prompt.copied .prompt-check {
234+
.copy-btn.copied .check-icon {
213235
display: inline-flex;
214236
}
215237

216-
.install-cmd.copied .terminal-prompt {
238+
.copy-btn.copied {
217239
color: #5a9a6b;
218240
}
219241

0 commit comments

Comments
 (0)