-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
copy Astro example from vercel/vercel (#1001)
### Description <!-- ✍️ Write a short summary of your work. Screenshots and videos are welcome! --> ### Demo URL <!-- Provide a URL to a live deployment where we can test your PR. If a demo isn't possible feel free to omit this section. --> ### Type of Change - [ ] New Example - [ ] Example updates (Bug fixes, new features, etc.) - [ ] Other (changes to the codebase, but not to examples) ### New Example Checklist - [ ] 🛫 `npm run new-example` was used to create the example - [ ] 📚 The template wasn't used but I carefuly read the [Adding a new example](https://github.com/vercel/examples#adding-a-new-example) steps and implemented them in the example - [ ] 📱 Is it responsive? Are mobile and tablets considered?
- Loading branch information
1 parent
f1c79ca
commit 2dba884
Showing
14 changed files
with
349 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# astro | ||
.astro | ||
|
||
# build output | ||
dist/ | ||
.output/ | ||
|
||
# dependencies | ||
node_modules/ | ||
|
||
# logs | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
pnpm-debug.log* | ||
|
||
# environment variables | ||
.env | ||
.env.production | ||
|
||
# macOS-specific files | ||
.DS_Store | ||
.vercel |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# Expose Astro dependencies for `pnpm` users | ||
shamefully-hoist=true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# Astro | ||
|
||
This directory is a brief example of an [Astro](https://astro.build/) site that can be deployed to Vercel with zero configuration. This demo showcases: | ||
|
||
- `/` - A static page (pre-rendered) | ||
- `/ssr` - A page that uses server-side rendering (through [Vercel Functions](https://vercel.com/docs/functions)) | ||
- `/ssr-with-swr-caching` - Similar to the previous page, but also caches the response on the [Vercel Edge Network](https://vercel.com/docs/edge-network/overview) using `cache-control` headers | ||
- `/image` - Astro [Asset](https://docs.astro.build/en/guides/images/) using Vercel [Image Optimization](https://vercel.com/docs/image-optimization) | ||
|
||
Learn more about [Astro on Vercel](https://vercel.com/docs/frameworks/astro). | ||
|
||
## Deploy Your Own | ||
|
||
Deploy your own Astro project with Vercel. | ||
|
||
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/examples/tree/main/framework-boilerplates/astro&template=astro) | ||
|
||
_Live Example: https://astro-template.vercel.app_ | ||
|
||
## Project Structure | ||
|
||
Astro looks for `.astro`, `.md`, or `.js` files in the `src/pages/` directory. Each page is exposed as a route based on its file name. | ||
|
||
There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components or layouts. | ||
|
||
Any static assets, like images, can be placed in the `public/` directory. | ||
|
||
## Commands | ||
|
||
All commands are run from the root of the project, from a terminal: | ||
|
||
| Command | Action | | ||
| :--------------------- | :------------------------------------------------- | | ||
| `pnpm install` | Installs dependencies | | ||
| `pnpm run dev` | Starts local dev server at `localhost:3000` | | ||
| `pnpm run build` | Build your production site to `./dist/` | | ||
| `pnpm run preview` | Preview your build locally, before deploying | | ||
| `pnpm run start` | Starts a production dev server at `localhost:3000` | | ||
| `pnpm run astro ...` | Run CLI commands like `astro add`, `astro preview` | | ||
| `pnpm run astro --help` | Get help using the Astro CLI | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
import { defineConfig } from 'astro/config'; | ||
import vercel from '@astrojs/vercel'; | ||
|
||
export default defineConfig({ | ||
output: 'server', | ||
adapter: vercel({ | ||
imageService: true, | ||
webAnalytics: { | ||
enabled: true, | ||
}, | ||
}), | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
{ | ||
"private": true, | ||
"scripts": { | ||
"dev": "astro dev", | ||
"start": "astro dev", | ||
"build": "astro build", | ||
"preview": "astro preview", | ||
"astro": "astro" | ||
}, | ||
"dependencies": { | ||
"@astrojs/vercel": "8.0.1", | ||
"astro": "^5.1.1", | ||
"react": "18.3.1" | ||
} | ||
} |
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
--- | ||
export interface Props { | ||
title: string; | ||
body: string; | ||
href: string; | ||
} | ||
const { href, title, body } = Astro.props as Props; | ||
--- | ||
|
||
<li class="link-card"> | ||
<a href={href}> | ||
<h2> | ||
{title} | ||
<span>→</span> | ||
</h2> | ||
<p> | ||
{body} | ||
</p> | ||
</a> | ||
</li> | ||
<style> | ||
:root { | ||
--link-gradient: linear-gradient(45deg, #4f39fa, #da62c4 30%, var(--color-border) 60%); | ||
} | ||
|
||
.link-card { | ||
list-style: none; | ||
display: flex; | ||
padding: 0.15rem; | ||
background-image: var(--link-gradient); | ||
background-size: 400%; | ||
border-radius: 0.5rem; | ||
background-position: 100%; | ||
transition: background-position 0.6s cubic-bezier(0.22, 1, 0.36, 1); | ||
} | ||
|
||
.link-card > a { | ||
width: 100%; | ||
text-decoration: none; | ||
line-height: 1.4; | ||
padding: 1em 1.3em; | ||
border-radius: 0.35rem; | ||
color: var(--text-color); | ||
background-color: white; | ||
opacity: 0.8; | ||
} | ||
|
||
h2 { | ||
margin: 0; | ||
transition: color 0.6s cubic-bezier(0.22, 1, 0.36, 1); | ||
} | ||
|
||
p { | ||
margin-top: 0.75rem; | ||
margin-bottom: 0; | ||
} | ||
|
||
h2 span { | ||
display: inline-block; | ||
transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1); | ||
} | ||
|
||
.link-card:is(:hover, :focus-within) { | ||
background-position: 0; | ||
} | ||
|
||
.link-card:is(:hover, :focus-within) h2 { | ||
color: #4f39fa; | ||
} | ||
|
||
.link-card:is(:hover, :focus-within) h2 span { | ||
will-change: transform; | ||
transform: translateX(2px); | ||
} | ||
</style> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
/// <reference types="astro/client-image" /> | ||
|
||
interface ImportMetaEnv { | ||
readonly PUBLIC_VERCEL_ANALYTICS_ID: string; | ||
} | ||
|
||
interface ImportMeta { | ||
readonly env: ImportMetaEnv; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
--- | ||
export interface Props { | ||
title: string; | ||
} | ||
const { title } = Astro.props as Props; | ||
--- | ||
|
||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="UTF-8" /> | ||
<meta name="viewport" content="width=device-width" /> | ||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | ||
<meta name="generator" content={Astro.generator} /> | ||
<title>{title}</title> | ||
</head> | ||
<body> | ||
<slot /> | ||
</body> | ||
</html> | ||
<style> | ||
:root { | ||
--font-size-base: clamp(1rem, 0.34vw + 0.91rem, 1.19rem); | ||
--font-size-lg: clamp(1.2rem, 0.7vw + 1.2rem, 1.5rem); | ||
--font-size-xl: clamp(2.44rem, 2.38vw + 1.85rem, 3.75rem); | ||
|
||
--color-text: hsl(12, 5%, 4%); | ||
--color-bg: hsl(10, 21%, 95%); | ||
--color-border: hsl(17, 24%, 90%); | ||
} | ||
|
||
html { | ||
font-family: system-ui, sans-serif; | ||
font-size: var(--font-size-base); | ||
color: var(--color-text); | ||
background-color: var(--color-bg); | ||
} | ||
|
||
body { | ||
margin: 0; | ||
} | ||
|
||
:global(h1) { | ||
font-size: var(--font-size-xl); | ||
} | ||
|
||
:global(h2) { | ||
font-size: var(--font-size-lg); | ||
} | ||
|
||
:global(code) { | ||
font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, | ||
Bitstream Vera Sans Mono, Courier New, monospace; | ||
} | ||
</style> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
--- | ||
import { Image } from 'astro:assets'; | ||
import astroLogo from '../assets/logo.png'; | ||
--- | ||
|
||
<Image src={astroLogo} alt="Astro Logo" width={50} quality={75} /> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
--- | ||
import Layout from '../layouts/Layout.astro'; | ||
import Card from '../components/Card.astro'; | ||
export const prerender = true; | ||
--- | ||
|
||
<Layout title="Welcome to Astro."> | ||
<main> | ||
<h1>Welcome to <span class="text-gradient">Astro</span></h1> | ||
<p class="instructions"> | ||
Check out the <code>src/pages</code> directory to get started.<br /> | ||
<strong>Code Challenge:</strong> Tweak the "Welcome to Astro" message above. | ||
</p> | ||
<ul role="list" class="link-card-grid"> | ||
<Card | ||
href="https://docs.astro.build/" | ||
title="Documentation" | ||
body="Learn how Astro works and explore the official API docs." | ||
/> | ||
<Card | ||
href="https://astro.build/integrations/" | ||
title="Integrations" | ||
body="Supercharge your project with new frameworks and libraries." | ||
/> | ||
<Card | ||
href="https://astro.build/themes/" | ||
title="Themes" | ||
body="Explore a galaxy of community-built starter themes." | ||
/> | ||
<Card | ||
href="https://astro.build/chat/" | ||
title="Chat" | ||
body="Come say hi to our amazing Discord community. ❤️" | ||
/> | ||
</ul> | ||
</main> | ||
</Layout> | ||
|
||
<style> | ||
:root { | ||
--astro-gradient: linear-gradient(0deg, #4f39fa, #da62c4); | ||
} | ||
|
||
h1 { | ||
margin: 2rem 0; | ||
} | ||
|
||
main { | ||
margin: auto; | ||
padding: 1em; | ||
max-width: 60ch; | ||
} | ||
|
||
.text-gradient { | ||
font-weight: 900; | ||
background-image: var(--astro-gradient); | ||
-webkit-background-clip: text; | ||
-webkit-text-fill-color: transparent; | ||
background-size: 100% 200%; | ||
background-position-y: 100%; | ||
border-radius: 0.4rem; | ||
animation: pulse 4s ease-in-out infinite; | ||
} | ||
|
||
@keyframes pulse { | ||
0%, | ||
100% { | ||
background-position-y: 0%; | ||
} | ||
50% { | ||
background-position-y: 80%; | ||
} | ||
} | ||
|
||
.instructions { | ||
line-height: 1.6; | ||
margin: 1rem 0; | ||
background: #4f39fa; | ||
padding: 1rem; | ||
border-radius: 0.4rem; | ||
color: var(--color-bg); | ||
} | ||
|
||
.instructions code { | ||
font-size: 0.875em; | ||
border: 0.1em solid var(--color-border); | ||
border-radius: 4px; | ||
padding: 0.15em 0.25em; | ||
} | ||
|
||
.link-card-grid { | ||
display: grid; | ||
grid-template-columns: repeat(auto-fit, minmax(24ch, 1fr)); | ||
gap: 1rem; | ||
padding: 0; | ||
} | ||
</style> |
7 changes: 7 additions & 0 deletions
7
framework-boilerplates/astro/src/pages/ssr-with-swr-caching.astro
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
Astro.response.headers.set('Cache-Control', 's-maxage=10, stale-while-revalidate'); | ||
const time = new Date().toLocaleTimeString(); | ||
--- | ||
|
||
<h1>{time}</h1> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
const time = new Date().toLocaleTimeString(); | ||
--- | ||
|
||
<h1>{time}</h1> |