Skip to content

Commit 0c9dc61

Browse files
committed
feat: enhance build process and improve layout; add navigation component and blog page
1 parent f0918e7 commit 0c9dc61

File tree

7 files changed

+126
-14
lines changed

7 files changed

+126
-14
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"type": "module",
66
"scripts": {
77
"dev": "vite dev",
8-
"build": "vite build --emptyOutDir",
8+
"build": "prettier --write . && vite build --emptyOutDir",
99
"preview": "vite preview",
1010
"prepare": "svelte-kit sync || echo ''",
1111
"format": "prettier --write .",

src/lib/components/Navigation.svelte

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
<script>
2+
import { onMount } from 'svelte';
3+
import logo from '$lib/assets/logo.svg';
4+
onMount(async () => {
5+
// Only runs in browser
6+
await import('bootstrap/js/dist/dropdown.js');
7+
await import('bootstrap/js/dist/collapse.js');
8+
// await import('bootstrap/js/dist/scrollspy.js');
9+
});
10+
11+
// Navigation links
12+
// You can add more links here
13+
const navLinks = [
14+
{ name: 'Home', href: '/' },
15+
{ name: 'Blog', href: '/blog' }
16+
];
17+
</script>
18+
19+
{#snippet navigationLinks(name, href)}
20+
{#each navLinks as { name, href }}
21+
{#if href && name}
22+
<li class="nav-item text-uppercase fw-medium bg-body px-2 rounded">
23+
<a class="nav-link" {href} aria-current="page">{name}</a>
24+
</li>
25+
{/if}
26+
{/each}
27+
{/snippet}
28+
29+
<nav class="navbar navbar-expand-lg bg-body-tertiary sticky-top shadow-sm">
30+
<div class="container px-3 py-2">
31+
<a class="navbar-brand me-5" href="/" aria-label="Svelte + Bootstrap by Saaqi">
32+
<img src={logo} class="img-fluid navLogo" alt="Svelte + Bootstrap by Saaqi" />
33+
</a>
34+
<button
35+
class="navbar-toggler"
36+
type="button"
37+
data-bs-toggle="collapse"
38+
data-bs-target="#navbarNavDropdown"
39+
aria-controls="navbarNavDropdown"
40+
aria-expanded="false"
41+
aria-label="Toggle navigation"
42+
>
43+
<span class="navbar-toggler-icon"></span>
44+
</button>
45+
<div class="collapse navbar-collapse" id="navbarNavDropdown">
46+
<ul class="navbar-nav gap-3 pt-lg-0 pt-3">
47+
{@render navigationLinks(navLinks)}
48+
<!-- <li class="nav-item dropdown">
49+
<a
50+
class="nav-link dropdown-toggle"
51+
href="#home"
52+
role="button"
53+
data-bs-toggle="dropdown"
54+
aria-expanded="false"
55+
>
56+
Dropdown link
57+
</a>
58+
<ul class="dropdown-menu">
59+
<li><a class="dropdown-item" href="#home">Action</a></li>
60+
<li><a class="dropdown-item" href="#home">Another action</a></li>
61+
<li><a class="dropdown-item" href="#home">Something else here</a></li>
62+
</ul>
63+
</li> -->
64+
</ul>
65+
</div>
66+
</div>
67+
</nav>
68+
69+
<style>
70+
.navLogo {
71+
width: 60px;
72+
height: auto;
73+
}
74+
</style>

src/lib/components/TextInput.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
rows="3"
1414
></textarea>
1515
</div>
16-
<div class="inputTextOutput bg-light text-bg-light rounded-3 border-1 border-black">
16+
<div class="inputTextOutput bg-light text-bg-light rounded-3 border-1 border-black mb-3">
1717
{inputText}
1818
</div>
1919

src/lib/styles/style.scss

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
.svh-100 {
2-
min-height: 100svh !important;
3-
display: flex;
42
align-items: center;
3+
display: flex;
4+
min-height: calc(100svh - 80px);
55
}

src/routes/+page.svelte

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
<script>
2+
import Navigation from '$lib/components/Navigation.svelte';
23
import Counter from '$lib/components/Counter.svelte';
34
import Logos from '$lib/components/Logos.svelte';
45
import Modal from '$lib/components/Modal.svelte';
56
import TextInput from '$lib/components/TextInput.svelte';
67
import { onMount } from 'svelte';
78
8-
let hrefLocation = '';
9+
let hrefLocation = $state('');
910
onMount(() => {
1011
hrefLocation = window.location.href;
1112
});
13+
14+
let textBoxToggle = $state(false);
1215
</script>
1316

1417
<svelte:head>
@@ -19,15 +22,16 @@
1922
/>
2023
</svelte:head>
2124

22-
<main class="svh-100 py-5">
23-
<div class="container">
25+
<Navigation />
26+
<main class="svh-100">
27+
<div id="home" class="container py-2">
2428
<div class="d-flex flex-column gap-3">
25-
<h1 class="">Welcome to SvelteKit + Bootstrap by Saaqi</h1>
26-
27-
<div class="d-flex gap-5">
29+
<div class="d-flex gap-5 my-4">
2830
<Logos />
2931
</div>
3032

33+
<h1>Welcome to SvelteKit + Bootstrap by Saaqi</h1>
34+
3135
<div class="col-12 col-md-6">
3236
<div class="row g-2">
3337
<div class="col-6">
@@ -52,8 +56,17 @@
5256
Google PageSpeed Report
5357
</a>
5458
</div>
59+
5560
<div class="col-12">
56-
<TextInput />
61+
{#if textBoxToggle}
62+
<TextInput />
63+
{/if}
64+
<button
65+
class="btn btn-{!textBoxToggle ? `secondary` : `light`}"
66+
onclick={() => (textBoxToggle = !textBoxToggle)}
67+
>
68+
{!textBoxToggle ? 'Show' : 'Hide'} Text Input
69+
</button>
5770
</div>
5871
</div>
5972
</div>

src/routes/blog/+page.svelte

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<script>
2+
import Navigation from '$lib/components/Navigation.svelte';
3+
</script>
4+
5+
<svelte:head>
6+
<title>Blog - Svelte + Bootstrap by Saaqi</title>
7+
<meta
8+
name="description"
9+
content="This template should help get you started developing with Sveltekit with bootstrap."
10+
/>
11+
</svelte:head>
12+
13+
<Navigation />
14+
<main class="mt-3">
15+
<div class="container">
16+
<h1>Blog</h1>
17+
<p>Welcome to the blog page!</p>
18+
<p>Here you can find various articles and posts.</p>
19+
<p>Stay tuned for more updates!</p>
20+
<slot></slot>
21+
<p>End of blog content.</p>
22+
<p>Thank you for visiting!</p>
23+
<slot name="footer"></slot>
24+
</div>
25+
</main>

vite.config.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ export default defineConfig({
2121
// `${bootstrap}/js/dist/base-component.js`,
2222
// `${bootstrap}/js/dist/button.js`,
2323
// `${bootstrap}/js/dist/carousel.js`,
24-
// `${bootstrap}/js/dist/collapse.js`,
25-
// `${bootstrap}/js/dist/dropdown.js`,
24+
`${bootstrap}/js/dist/collapse.js`,
25+
`${bootstrap}/js/dist/dropdown.js`,
2626
`${bootstrap}/js/dist/modal.js`
2727
// `${bootstrap}/js/dist/offcanvas.js`,
2828
// `${bootstrap}/js/dist/popover.js`,
@@ -65,7 +65,7 @@ export default defineConfig({
6565
}
6666
},
6767

68-
base: './',
68+
// base: './',
6969
server: {
7070
port: 3000
7171
},

0 commit comments

Comments
 (0)