diff options
Diffstat (limited to 'examples/framework-svelte')
-rw-r--r-- | examples/framework-svelte/.gitignore | 18 | ||||
-rw-r--r-- | examples/framework-svelte/.npmrc | 2 | ||||
-rw-r--r-- | examples/framework-svelte/README.md | 5 | ||||
-rw-r--r-- | examples/framework-svelte/package.json | 15 | ||||
-rw-r--r-- | examples/framework-svelte/src/components/Counter.svelte | 20 | ||||
-rw-r--r-- | examples/framework-svelte/src/pages/index.astro | 38 |
6 files changed, 98 insertions, 0 deletions
diff --git a/examples/framework-svelte/.gitignore b/examples/framework-svelte/.gitignore new file mode 100644 index 000000000..d436c6dad --- /dev/null +++ b/examples/framework-svelte/.gitignore @@ -0,0 +1,18 @@ +# build output +dist + +# dependencies +node_modules/ +.snowpack/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store diff --git a/examples/framework-svelte/.npmrc b/examples/framework-svelte/.npmrc new file mode 100644 index 000000000..0cc653b2c --- /dev/null +++ b/examples/framework-svelte/.npmrc @@ -0,0 +1,2 @@ +## force pnpm to hoist +shamefully-hoist = true
\ No newline at end of file diff --git a/examples/framework-svelte/README.md b/examples/framework-svelte/README.md new file mode 100644 index 000000000..a6c995ac4 --- /dev/null +++ b/examples/framework-svelte/README.md @@ -0,0 +1,5 @@ +# Using Svelte with Astro + +This example showcases Astro's built-in support for [Svelte](https://svelte.dev/). + +No configuration is needed to enable Svelte support—just start writing Svelte components in `src/components`. diff --git a/examples/framework-svelte/package.json b/examples/framework-svelte/package.json new file mode 100644 index 000000000..6489eb581 --- /dev/null +++ b/examples/framework-svelte/package.json @@ -0,0 +1,15 @@ +{ + "name": "@astrojs/example-framework-svelte", + "private": true, + "version": "0.0.1", + "scripts": { + "start": "astro dev", + "build": "astro build" + }, + "devDependencies": { + "astro": "^0.15.1" + }, + "snowpack": { + "workspaceRoot": "../.." + } +} diff --git a/examples/framework-svelte/src/components/Counter.svelte b/examples/framework-svelte/src/components/Counter.svelte new file mode 100644 index 000000000..9aaf421c1 --- /dev/null +++ b/examples/framework-svelte/src/components/Counter.svelte @@ -0,0 +1,20 @@ +<script> + let count = 0; + + function add() { + count += 1; + } + + function subtract() { + count -= 1; + } +</script> + +<div class="counter"> + <button on:click={subtract}>-</button> + <pre>{ count }</pre> + <button on:click={add}>+</button> +</div> +<div class="children"> + <slot /> +</div> diff --git a/examples/framework-svelte/src/pages/index.astro b/examples/framework-svelte/src/pages/index.astro new file mode 100644 index 000000000..5a0c1039d --- /dev/null +++ b/examples/framework-svelte/src/pages/index.astro @@ -0,0 +1,38 @@ +--- +import Counter from '../components/Counter.svelte' +--- + +<html> + <head> + <meta charset="utf-8" /> + <meta + name="viewport" + content="width=device-width, initial-scale=1, viewport-fit=cover" + /> + <style> + :global(:root) { + font-family: system-ui; + padding: 2em 0; + } + :global(.counter) { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + place-items: center; + font-size: 2em; + margin-top: 2em; + } + :global(.children) { + display: grid; + place-items: center; + margin-bottom: 2em; + } + </style> + </head> + <body> + <main> + <Counter:visible> + <h1>Hello Svelte!</h1> + </Counter:visible> + </main> + </body> +</html> |