diff --git a/api/pexels.php b/api/pexels.php new file mode 100644 index 0000000..9568f0b --- /dev/null +++ b/api/pexels.php @@ -0,0 +1,29 @@ + 'assets/images/pexels/'.$p['id'].'.jpg', + 'photographer' => $p['photographer'] ?? 'Unknown', + 'photographer_url' => $p['photographer_url'] ?? '', + ]; + } else { + // Fallback: Picsum + $out[] = [ + 'src' => 'https://picsum.photos/seed/'.urlencode(trim($q)).'/800/600', + 'photographer' => 'Random Picsum', + 'photographer_url' => 'https://picsum.photos/' + ]; + } + } + echo json_encode($out); +?> \ No newline at end of file diff --git a/assets/css/custom.css b/assets/css/custom.css index 94a7f6f..53f4a3f 100644 --- a/assets/css/custom.css +++ b/assets/css/custom.css @@ -1,4 +1,3 @@ - body { background-color: #F8FAFC; color: #0F172A; @@ -6,13 +5,7 @@ body { } .hero { - background: linear-gradient(45deg, rgba(99, 102, 241, 0.1), rgba(236, 72, 153, 0.1)); padding: 6rem 1rem; - text-align: center; -} - -.hero h1 { - font-weight: 700; } .btn-primary { @@ -26,6 +19,18 @@ body { } .card { - border-radius: 0.5rem; - box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); + border: 1px solid #e5e7eb; + border-radius: 0.75rem; + box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.05); + transition: box-shadow 0.3s ease-in-out, transform 0.3s ease-in-out; } + +.card:hover { + box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -2px rgb(0 0 0 / 0.05); + transform: translateY(-5px); +} + +.card img { + aspect-ratio: 16 / 9; + object-fit: cover; +} \ No newline at end of file diff --git a/assets/css/vibe.css b/assets/css/vibe.css index ed88b23..cda368c 100644 --- a/assets/css/vibe.css +++ b/assets/css/vibe.css @@ -1 +1 @@ -body { font-family: "Arial", sans-serif; background-color: #f0f0f0; color: #000; } .navbar, .card, footer { background-color: #f0f0f0 !important; border: 2px solid #000; box-shadow: none !important; border-radius: 0; } .navbar-brand, .nav-link, h1, h2, h5, p { color: #000 !important; } .btn-primary { background-color: #FFFF00; color: #000; border: 2px solid #000; border-radius: 0; } .vibe-preview { padding: 2rem; border: 2px solid #000; margin-top: 2rem; } \ No newline at end of file +body { font-family: "Courier New", monospace; background-color: #000; color: #0FF; } .navbar, .card, footer { background-color: #002B36 !important; border: 1px solid #0FF; } .navbar-brand, .nav-link, h1, h2, h5, p { color: #0FF !important; } .btn-primary { background-color: #0FF; color: #000; border: none; } .vibe-preview { padding: 2rem; border: 1px dashed #0FF; margin-top: 2rem; } \ No newline at end of file diff --git a/assets/images/pexels/1105666.jpg b/assets/images/pexels/1105666.jpg new file mode 100644 index 0000000..71ecb6b Binary files /dev/null and b/assets/images/pexels/1105666.jpg differ diff --git a/assets/images/pexels/270637.jpg b/assets/images/pexels/270637.jpg new file mode 100644 index 0000000..2907232 Binary files /dev/null and b/assets/images/pexels/270637.jpg differ diff --git a/assets/images/pexels/546819.jpg b/assets/images/pexels/546819.jpg new file mode 100644 index 0000000..ea4f106 Binary files /dev/null and b/assets/images/pexels/546819.jpg differ diff --git a/includes/pexels.php b/includes/pexels.php new file mode 100644 index 0000000..c2b95ff --- /dev/null +++ b/includes/pexels.php @@ -0,0 +1,26 @@ + 0 ? $k : 'Vc99rnmOhHhJAbgGQoKLZtsaIVfkeownoQNbTj78VemUjKh08ZYRbf18'; + } + function pexels_get($url) { + $ch = curl_init(); + curl_setopt_array($ch, [ + CURLOPT_URL => $url, + CURLOPT_RETURNTRANSFER => true, + CURLOPT_HTTPHEADER => [ 'Authorization: '. pexels_key() ], + CURLOPT_TIMEOUT => 15, + ]); + $resp = curl_exec($ch); + $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); + curl_close($ch); + if ($code >= 200 && $code < 300 && $resp) return json_decode($resp, true); + return null; + } + function download_to($srcUrl, $destPath) { + $data = file_get_contents($srcUrl); + if ($data === false) return false; + if (!is_dir(dirname($destPath))) mkdir(dirname($destPath), 0775, true); + return file_put_contents($destPath, $data) !== false; + } + ?> \ No newline at end of file diff --git a/index.php b/index.php index 10dcb1a..50d3613 100644 --- a/index.php +++ b/index.php @@ -14,10 +14,10 @@
-
+
-

Generate a Website With a Vibe

-

Tell our AI your vibe, and we'll spin up a micro-site in seconds. From Synthwave to Brutalism, discover your digital aesthetic.

+

Generate a Website With a Vibe

+

Tell our AI your vibe, and we'll spin up a micro-site in seconds. From Synthwave to Brutalism, discover your digital aesthetic.

Create a Vibe Site @@ -25,12 +25,12 @@
-
+
- A colorful, abstract image representing different design vibes. + A colorful, abstract image representing different design vibes.

Vibe Generator

Choose a vibe, give us a keyword, and watch the magic happen. Your own micro-site, generated by AI.

@@ -39,7 +39,7 @@
- A snippet of code on a dark background, representing the PHP sandbox. + A snippet of code on a dark background, representing the PHP sandbox.

PHP Sandbox

Safely run PHP code snippets in an isolated environment. Perfect for testing and learning.

@@ -48,7 +48,7 @@
- A magnifying glass over a web page, symbolizing SEO analysis. + A magnifying glass over a web page, symbolizing SEO analysis.

SEO Checker

Paste your HTML and get instant feedback on your on-page SEO, powered by AI analysis.

@@ -60,13 +60,32 @@
-