-
-
Notifications
You must be signed in to change notification settings - Fork 204
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Co-authored-by: Anthony Fu <[email protected]>
- Loading branch information
Showing
15 changed files
with
3,298 additions
and
29 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
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,20 @@ | ||
# 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 |
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 @@ | ||
import { defineConfig } from 'astro/config' | ||
import vue from '@astrojs/vue' | ||
import AutoImport from 'unplugin-auto-import/astro' | ||
import svelte from '@astrojs/svelte' | ||
import react from '@astrojs/react' | ||
// https://astro.build/config | ||
export default defineConfig({ | ||
integrations: [vue({ | ||
reactivityTransform: true, | ||
}), | ||
svelte(), | ||
react(), | ||
AutoImport({ | ||
imports: [ | ||
'vue', | ||
'vue/macros', | ||
'svelte', | ||
'svelte/store', | ||
'react', | ||
], | ||
dts: './src/auto-imports.d.ts', | ||
})], | ||
}) |
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 @@ | ||
{ | ||
"name": "@example/basics", | ||
"version": "0.0.1", | ||
"private": true, | ||
"scripts": { | ||
"dev": "astro dev", | ||
"start": "astro dev", | ||
"build": "astro build", | ||
"preview": "astro preview", | ||
"astro": "astro" | ||
}, | ||
"devDependencies": { | ||
"@astrojs/react": "^1.0.0", | ||
"@astrojs/svelte": "^1.0.0", | ||
"@astrojs/vue": "^1.0.0", | ||
"astro": "^1.0.7", | ||
"react": "^18.0.0", | ||
"react-dom": "^18.0.0", | ||
"svelte": "^3.46.4", | ||
"unplugin-auto-import": "workspace:*", | ||
"vue": "^3.2.30" | ||
} | ||
} |
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,14 @@ | ||
<script> | ||
let count = writable(0) | ||
onMount(() => { | ||
console.log('Test unplugin-auto-import ') | ||
}) | ||
function add() { | ||
count.set(($count += 1)) | ||
} | ||
</script> | ||
|
||
<h1 text="#ff3e00">Svelte-{$count}</h1> | ||
<button on:click={add}>add</button> |
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,11 @@ | ||
export function Card() { | ||
const [state, setState] = useState(0) | ||
return ( | ||
<> | ||
<h1>React: {state}</h1> | ||
<button onClick={() => setState(state + 1)}> | ||
Add | ||
</button> | ||
</> | ||
) | ||
} |
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,19 @@ | ||
<script setup lang='ts'> | ||
const count = ref(0) | ||
let number = $ref(0) | ||
function add() { | ||
count.value++ | ||
number++ | ||
} | ||
</script> | ||
|
||
<template> | ||
<div> | ||
<h1>Vue {{ count }}</h1> | ||
<h1>Vue/maros {{ number }}</h1> | ||
<button @click="add"> | ||
Add | ||
</button> | ||
</div> | ||
</template> |
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 @@ | ||
/// <reference types="astro/client" /> |
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,55 @@ | ||
--- | ||
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" /> | ||
<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,103 @@ | ||
--- | ||
import Layout from '../layouts/Layout.astro'; | ||
import Card from '../components/Card.astro'; | ||
import CardVue from '../components/Card.vue'; | ||
import CardSvelte from '../components/Card.svelte'; | ||
import {Card as CardReact} from '../components/Card'; | ||
--- | ||
|
||
<Layout title="Welcome to Astro."> | ||
<main> | ||
<CardVue client:load></CardVue> | ||
<CardSvelte client:load></CardSvelte> | ||
<CardReact client:load></CardReact> | ||
|
||
<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> |
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,16 @@ | ||
{ | ||
"compilerOptions": { | ||
"jsx": "preserve", | ||
// Enable top-level await, and other modern ESM features. | ||
"target": "ESNext", | ||
"module": "ESNext", | ||
// Enable node-style module resolution, for things like npm package imports. | ||
"moduleResolution": "node", | ||
// Enable JSON imports. | ||
"resolveJsonModule": true, | ||
// Enable stricter transpilation for better output. | ||
"isolatedModules": true, | ||
// Astro will directly run your TypeScript code, no transpilation needed. | ||
"noEmit": true | ||
} | ||
} |
Oops, something went wrong.