Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sjc5/svelte-material-starter
A Simple Svelte Starter App Showing How To Use Plain Material Design Web Components With Svelte
https://github.com/sjc5/svelte-material-starter
material material-button material-components material-components-web material-design ripple-effect svelte sveltejs
Last synced: 27 days ago
JSON representation
A Simple Svelte Starter App Showing How To Use Plain Material Design Web Components With Svelte
- Host: GitHub
- URL: https://github.com/sjc5/svelte-material-starter
- Owner: sjc5
- License: mit
- Created: 2021-09-28T00:34:36.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2021-11-29T00:18:56.000Z (almost 3 years ago)
- Last Synced: 2024-10-03T10:35:31.578Z (about 1 month ago)
- Topics: material, material-button, material-components, material-components-web, material-design, ripple-effect, svelte, sveltejs
- Language: JavaScript
- Homepage:
- Size: 73.2 KB
- Stars: 5
- Watchers: 1
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Svelte Material Starter
This repo shows how to use Google's Material Design Web Components in a basic Svelte project (specifically, the button component with ripple effect). This is based on a clone of the [official Svelte starter project](https://github.com/sveltejs/template) as of [commit f2f9145](https://github.com/sveltejs/template/tree/f2f91456936562571e6ae9bbe017a54a7e044202).
## Video Walkthrough
Here is a video walkthrough explaining the code: https://www.youtube.com/watch?v=-6Hy3MHfPhA
## Installation
To create a new project based on this template using [degit](https://github.com/Rich-Harris/degit):
```bash
npx degit activefog/svelte-material-starter svelte-material-starter
cd svelte-material-starter
```_Note that you will need to have [Node.js](https://nodejs.org) installed._
## Get started
Install the dependencies...
```bash
cd svelte-material-starter
npm install
```...then start [Rollup](https://rollupjs.org):
```bash
npm run dev
```Navigate to [localhost:5000](http://localhost:5000) (or whatever port ends up being used by Rollup, if not port 5000). You should see your app running. Edit a component file in `src`, save it, and reload the page to see your changes.
By default, the server will only respond to requests from localhost. To allow connections from other computers, edit the `sirv` commands in package.json to include the option `--host 0.0.0.0`.
If you're using [Visual Studio Code](https://code.visualstudio.com/) we recommend installing the official extension [Svelte for VS Code](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode). If you are using other editors you may need to install a plugin in order to get syntax highlighting and intellisense.
## Building and running in production mode
To create an optimised version of the app:
```bash
npm run build
```You can run the newly built app with `npm run start`. This uses [sirv](https://github.com/lukeed/sirv), which is included in your package.json's `dependencies` so that the app will work when you deploy to platforms like [Heroku](https://heroku.com).
## Single-page app mode
By default, sirv will only respond to requests that match files in `public`. This is to maximise compatibility with static fileservers, allowing you to deploy your app anywhere.
If you're building a single-page app (SPA) with multiple routes, sirv needs to be able to respond to requests for _any_ path. You can make it so by editing the `"start"` command in package.json:
```js
"start": "sirv public --single"
```## Using TypeScript
This template comes with a script to set up a TypeScript development environment, you can run it immediately after cloning the template with:
```bash
node scripts/setupTypeScript.js
```Or remove the script via:
```bash
rm scripts/setupTypeScript.js
```If you want to use `baseUrl` or `path` aliases within your `tsconfig`, you need to set up `@rollup/plugin-alias` to tell Rollup to resolve the aliases. For more info, see [this StackOverflow question](https://stackoverflow.com/questions/63427935/setup-tsconfig-path-in-svelte).
## Deploying to the web
### With [Vercel](https://vercel.com)
Install `vercel` if you haven't already:
```bash
npm install -g vercel
```Then, from within your project folder:
```bash
cd public
vercel deploy --name my-project
```### With [surge](https://surge.sh/)
Install `surge` if you haven't already:
```bash
npm install -g surge
```Then, from within your project folder:
```bash
npm run build
surge public my-project.surge.sh
```