feat: premium gradient button with hover animation, redesign terminal with glow and macOS chrome

This commit is contained in:
ashim-hq
2026-04-24 00:11:17 +08:00
parent 2edee0c21d
commit 4e0ac22de9
2 changed files with 51 additions and 30 deletions
+5 -2
View File
@@ -139,9 +139,12 @@ export function Hero() {
href="https://github.com/ashim-hq/ashim" href="https://github.com/ashim-hq/ashim"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
className="inline-flex items-center gap-2 rounded-xl bg-accent px-10 py-4 text-base font-semibold text-accent-foreground shadow-lg shadow-accent/20 transition-colors hover:bg-accent-hover" className="group relative inline-flex items-center gap-2 overflow-hidden rounded-full bg-gradient-to-r from-amber-500 via-orange-500 to-amber-500 bg-[length:200%_100%] px-10 py-4 text-base font-semibold text-white shadow-[0_0_32px_-8px] shadow-amber-500/40 transition-all duration-500 hover:bg-[position:100%_0] hover:shadow-[0_0_40px_-4px] hover:shadow-amber-500/50"
> >
Start Using It → Get it for free
<span className="transition-transform duration-300 group-hover:translate-x-1">
&rarr;
</span>
</a> </a>
</div> </div>
</FadeIn> </FadeIn>
+35 -17
View File
@@ -1,6 +1,6 @@
"use client"; "use client";
import { Check, Copy } from "lucide-react"; import { Check, Copy, Terminal } from "lucide-react";
import { useState } from "react"; import { useState } from "react";
import { FadeIn } from "./fade-in"; import { FadeIn } from "./fade-in";
@@ -23,44 +23,62 @@ export function HowItWorks() {
<FadeIn> <FadeIn>
<p className="text-sm font-medium text-accent">Get started in seconds</p> <p className="text-sm font-medium text-accent">Get started in seconds</p>
<h2 className="mt-2 text-2xl font-bold tracking-tight md:text-3xl"> <h2 className="mt-2 text-2xl font-bold tracking-tight md:text-3xl">
One command. That's it. One command. That&apos;s it.
</h2> </h2>
</FadeIn> </FadeIn>
<FadeIn delay={0.1}> <FadeIn delay={0.1}>
<div className="relative mx-auto mt-8 max-w-2xl">
<div className="absolute -inset-1 rounded-2xl bg-gradient-to-r from-amber-500/20 via-orange-500/10 to-amber-500/20 blur-lg" />
<button <button
type="button" type="button"
onClick={copyCommand} onClick={copyCommand}
className="group relative mt-8 w-full cursor-pointer overflow-hidden rounded-xl border border-border bg-[#1e1e1e] text-left shadow-lg transition-all hover:border-accent/40" className="group relative w-full cursor-pointer overflow-hidden rounded-2xl border border-white/10 bg-[#151515] text-left shadow-2xl transition-all hover:border-amber-500/30"
> >
<div className="flex items-center gap-3 overflow-x-auto whitespace-nowrap px-5 py-4 font-mono text-xs md:text-sm"> <div className="flex items-center justify-between border-b border-white/[0.06] px-5 py-3">
<span className="text-green-400 shrink-0">$</span> <div className="flex items-center gap-2">
<span className="text-white">{command}</span> <div className="h-3 w-3 rounded-full bg-[#ff5f57]" />
<span className="ml-auto shrink-0 pl-4"> <div className="h-3 w-3 rounded-full bg-[#febc2e]" />
<div className="h-3 w-3 rounded-full bg-[#28c840]" />
</div>
<div className="flex items-center gap-2 text-white/30">
<Terminal size={13} />
<span className="text-xs">Quick Start</span>
</div>
<div className="w-[52px]" />
</div>
<div className="flex items-center gap-3 overflow-x-auto px-6 py-5">
<span className="shrink-0 text-emerald-400 font-mono text-sm">$</span>
<code className="whitespace-nowrap font-mono text-[13px] text-white/90">
{command}
</code>
<span className="ml-auto shrink-0 pl-3">
{copied ? ( {copied ? (
<span className="flex items-center gap-1.5 text-green-400"> <span className="flex items-center gap-1.5 rounded-md bg-emerald-500/10 px-2.5 py-1 text-emerald-400">
<Check size={14} /> <Check size={13} />
<span className="text-xs">Copied!</span> <span className="text-xs font-medium">Copied!</span>
</span> </span>
) : ( ) : (
<Copy <span className="flex items-center gap-1.5 rounded-md px-2.5 py-1 text-white/25 transition-colors group-hover:bg-white/5 group-hover:text-white/60">
size={14} <Copy size={13} />
className="text-white/30 transition-colors group-hover:text-white/70" <span className="hidden text-xs md:inline">Copy</span>
/> </span>
)} )}
</span> </span>
</div> </div>
</button> </button>
</div>
</FadeIn> </FadeIn>
<FadeIn delay={0.15}> <FadeIn delay={0.15}>
<p className="mt-6 text-sm text-muted"> <p className="mt-8 text-sm text-muted">
Linux, macOS, Windows. ARM and x86.{" "} Works on Linux, macOS, and Windows. ARM and x86 supported.{" "}
<a <a
href="https://docs.snapotter.com" href="https://docs.snapotter.com"
className="font-medium text-accent hover:underline" className="font-medium text-accent hover:underline"
> >
Full docs Read the docs
</a> </a>
</p> </p>
</FadeIn> </FadeIn>