Svelte
Posted on October 2, 2021
Tags: javascript
1 Adding https to Svelte dev environment
- things like web crypto api or certain cookie behavior require HTTPS
npm install vite-plugin-mkcert
vite.config.js
import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vitest/config';
import mkcert from "vite-plugin-mkcert"
export default defineConfig({
plugins: [sveltekit(),mkcert()],
server: {
https: true,
,
}test: {
include: ['src/**/*.{test,spec}.{js,ts}']
}; })
add to package.json scripts
vite dev --host --https
2 Adding bootstrap to sveltekit
- since sveltekit uses vite, vite automatically allows *.scss imports without manual conversion to css
- No need to modify vite.config.js nor svelte.config.js
npm install -D sass
npm install bootstrap
npm install @popperjs/core
(bootstrap js dependency)- add styles.scss to the common
lib
folder import $lib/styles.scss
in your layout or anywhere really- that’s it
// Override Bootstrap's Sass default variables
//
// Nearly all variables in Bootstrap are written with the `!default` flag.
// This allows you to override the default values of those variables before
// you import Bootstrap's source Sass files.
//
// Overriding the default variable values is the best way to customize your
// CSS without writing _new_ styles. For example, you can either change
// `$body-color` or write more CSS that override's Bootstrap's CSS like so:
// `body { color: red; }`.
//
// Bring in Bootstrap
//
// Option 1
//
// Import all of Bootstrap's CSS
// @import "bootstrap/scss/bootstrap";
// Option 2
//
// Place variable overrides first, then import just the styles you need. Note that some stylesheets are required no matter what.
// Toggle global options
: true;
$enable-gradients: true;
$enable-shadows
: 0 1rem 3rem rgba(0, 0, 0, .175);
$offcanvas-box-shadow
// Include functions first
@import "bootstrap/scss/functions";
// Customize some defaults
: #333;
$body-color: #fff;
$body-bg// $border-radius: .4rem;
: #7952b3;
$success
// Required
@import "bootstrap/scss/variables";
@import "bootstrap/scss/variables-dark";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";
@import "bootstrap/scss/root";
@import "bootstrap/scss/reboot";
@import "bootstrap/scss/type";
// @import "bootstrap/scss/images";
@import "bootstrap/scss/containers";
@import "bootstrap/scss/grid";
// @import "bootstrap/scss/tables";
// @import "bootstrap/scss/forms";
@import "bootstrap/scss/buttons";
@import "bootstrap/scss/transitions";
@import "bootstrap/scss/dropdown";
// @import "bootstrap/scss/button-group";
// @import "bootstrap/scss/nav";
// @import "bootstrap/scss/navbar"; // Requires nav
// @import "bootstrap/scss/card";
// @import "bootstrap/scss/breadcrumb";
// @import "bootstrap/scss/accordion";
// @import "bootstrap/scss/pagination";
// @import "bootstrap/scss/badge";
// @import "bootstrap/scss/alert";
// @import "bootstrap/scss/progress";
// @import "bootstrap/scss/list-group";
@import "bootstrap/scss/close";
// @import "bootstrap/scss/toasts";
@import "bootstrap/scss/modal"; // Requires transitions
// @import "bootstrap/scss/tooltip";
@import "bootstrap/scss/popover";
// @import "bootstrap/scss/carousel";
// @import "bootstrap/scss/spinners";
@import "bootstrap/scss/offcanvas"; // Requires transitions
// @import "bootstrap/scss/placeholders";
// Helpers
// @import "bootstrap/scss/helpers";
// Utilities
@import "bootstrap/scss/utilities/api";
//
// Custom styles
//
<script>
import "$lib/styles.scss"
</script>
<h1>Welcome to SvelteKit</h1>
<button>Some Button </button>
<button type="button" class="btn btn-primary">Bootstrap Primary Button</button>