/sapper-postcss-template

A template that includes Sapper for Svelte and PostCSS preprocessing with Tailwind CSS

Primary LanguageJavaScriptMIT LicenseMIT

๐ŸŒ Sapper with PostCSS project base

โ“ What is this?

This is an extension to the official Sapper Rollup template with support for PostCSS inside Svelte components. You are also recommended to check out @nhristov's similar template.

If you're looking for something with much, much more bundled in, check out my opinionated project base.

๐Ÿงญ Project Status

Sapper is going to change.

Until create-svelte and @sveltejs/kit are ready, this project base will continue to be maintained.

But, once we move on, I won't be creating project bases (templates / boilerplates) anymore. Instead, you'll apply presets onto the default template like this:

npm init svelte@next  # Use the official template from create-svelte
npx use-preset babichjacob/svelte-add-postcss  # Apply the changes to set up PostCSS for create-svelte
npx use-preset babichjacob/svelte-add-tailwindcss  # Apply the changes to set up Tailwind CSS for create-svelte as long as PostCSS is already set up

This should have the same result as cloning a project base, but there are more reasons to reach for this solution:

  1. Reduced "heartbeat commits" (like upgrading packages to their latest versions) to prove the project still works
  2. Allows picking parts instead of taking all or nothing from a project base
  3. Focus on higher quality "atomic" presets. For example, there might be a svelte-add-pwa preset that adds a service worker and manifest.json with example icon files like we have now
  4. create-svelte is young and probably going to change often, so only affected presets will need to be updated
  5. Reduced duplication: I won't need to copy over changes from one project base to another to keep them synchronized

Than there are to continue making project bases:

  1. (I suspect) preset logic is complex
  2. I suspect presets are harder to test and can have harder to predict errors

So this is what's going to happen.

Read on to use this project base today:

๐Ÿ“‹ Copy

Choose either to clone or fork depending on your preference.

๐Ÿ‘ Clone

git clone https://github.com/babichjacob/sapper-postcss-template

๐Ÿด Fork

Click the Use this template button on this project's GitHub page.

โฌ‡๏ธ Install Dependencies

You need to be using version 12 or higher of Node.

cd sapper-postcss-template
npm install  # pnpm also works

๐Ÿ›  Usage

๐Ÿงช Development

npm run dev

๐Ÿ”จ Building for Production

npm run prod

๐Ÿ“ฆ Exporting a Static Site

npm run export

โš™ Configuration

๐Ÿ’จ Optionally removing Tailwind CSS (and PurgeCSS)

  1. Remove all Tailwind imports in the src/global.pcss file
  2. Remove these lines in postcss.config.js:
    1. const tailwindcss = require("tailwindcss");
    2. const tailwindcssConfig = require("./tailwind.config");
    3. tailwindcss(tailwindcssConfig),
  3. Delete the tailwind.config.js file
  4. Uninstall the tailwindcss package

โšก Web app

Many of the fields in static/manifest.json (short_name, name, description, categories, theme_color, and background_color) are filled with demonstrative values that won't match your site. Similarly, you've got to take new screenshots to replace the included static/screenshot-1.png file. If you want, you can add app shortcut definitions for "add to home screen" on Android. Once you change theme_color, update the meta name="theme-color" tag in src/template.html to match.

The Apple touch icon, favicon, and logo- files (also all in the static directory) are created by placing the logo within a "safe area" centered circle that takes up 80% of the canvas's dimension. For instance, the constraining circle in logo-512.png is 512 ร— 0.80 = 409.6 โ‰ˆ 410 pixels wide and tall.

๐Ÿ—บ Source maps

This project base comes with source maps enabled during development and disabled during production (and exports) for the best compromise between performance and developer experience. You can change this behavior through the sourcemap variable in rollup.config.js.

๐Ÿ˜ต Help! I have a question

Create an issue and I'll try to help.

๐Ÿ˜ก Fix! There is something that needs improvement

Create an issue or pull request and I'll try to fix.

I'm sorry, because of my skill level and the fragility of (the combination of) some of these tools, there are likely to be problems in this project. Thank you for bringing them to my attention or fixing them for me.

๐Ÿ“„ License

MIT


This README was generated with โค๏ธ by readme-md-generator