š Scenario: You are starting a new Svelte project to build a simple user profile card. This card will show a user's name and age.
šÆ Goal: Build the basic Svelte component structure with a script section for data, a style section for simple styling, and markup to display the user information.
š What You'll Learn
Create a Svelte component file with a <script> section
Define a user object with name and age inside the script
Add a <style> section with basic styling for the card
Use markup to display the user's name and age inside a container
š” Why This Matters
š Real World
Building user interface components with Svelte is common in web apps to show dynamic data cleanly and efficiently.
š¼ Career
Understanding Svelte component structure is essential for frontend developers working with modern frameworks to create interactive web pages.
Progress0 / 4 steps
1
Create the user data in the <script> section
Create a <script> section and inside it define a variable called user with the exact object: { name: 'Alice', age: 30 }.
Svelte
Hint
Use let user = { name: 'Alice', age: 30 }; inside the <script> tags.
2
Add a <style> section for the card
Add a <style> section below the script. Inside it, create a CSS rule for a class .card that sets padding to 1rem, border to 1px solid #ccc, and border-radius to 0.5rem.
Svelte
Hint
Use CSS inside <style> tags to style the .card class.
3
Add markup to display the user info inside a div with class card
Below the <style> section, add a <div> with class card. Inside it, add a <h2> that shows the user's name using {user.name} and a <p> that shows the user's age with the text Age: {user.age}.
Svelte
Hint
Use {user.name} and {user.age} inside the markup to show the data.
4
Complete the Svelte component structure
Ensure the entire Svelte component includes the <script> section with the user object, the <style> section with the .card styles, and the markup <div class="card"> showing the user's name and age exactly as before.
Svelte
Hint
Check that all parts of the component are present and correctly structured.
Practice
(1/5)
1. In a Svelte project, where should you place reusable components that can be used across multiple pages?
easy
A. static/components
B. src/routes
C. src/lib
D. public/assets
Solution
Step 1: Understand folder purpose
src/lib is designed for reusable components and utilities.
Step 2: Compare with other folders
src/routes holds pages, public/assets is for static files, and static/components is not a standard folder.
Final Answer:
src/lib -> Option C
Quick Check:
Reusable components = src/lib [OK]
Hint: Reusable parts go in src/lib folder [OK]
Common Mistakes:
Putting reusable components in src/routes
Using public folder for components
Creating non-standard folders like static/components
2. Which of the following is the correct folder to place page files in a SvelteKit project?
easy
A. src/pages
B. src/lib
C. public/pages
D. src/routes
Solution
Step 1: Identify the folder for pages
In SvelteKit, src/routes is the folder where page components live.
Step 2: Check other options
src/lib is for reusable components, public/pages and src/pages are not standard folders for pages.
Final Answer:
src/routes -> Option D
Quick Check:
Pages go in src/routes [OK]
Hint: Pages always go in src/routes in SvelteKit [OK]
Common Mistakes:
Confusing src/lib with src/routes
Placing pages in public folder
Using non-standard src/pages folder
3. Given the following SvelteKit project structure:
Where should you import the Button.svelte component to use it on the homepage?
medium
A. From ./Button.svelte inside src/routes/index.svelte
B. From ../lib/Button.svelte inside src/routes/index.svelte
C. From ../../public/logo.png inside src/routes/index.svelte
D. From public/Button.svelte inside src/routes/index.svelte
Solution
Step 1: Understand folder hierarchy
src/routes/index.svelte is one level deeper than src/lib/Button.svelte, so import path is ../lib/Button.svelte.
Step 2: Eliminate wrong paths
../../public/logo.png is for static assets, not components; ./Button.svelte assumes Button is in routes folder; public/Button.svelte is incorrect location.
Final Answer:
From ../lib/Button.svelte inside src/routes/index.svelte -> Option B
Quick Check:
Import reusable components with relative path ../lib [OK]
Hint: Use relative path ../lib to import components from routes [OK]
Common Mistakes:
Trying to import components from public folder
Using wrong relative path like ./Button.svelte
Confusing static assets with components
4. You placed an image file inside src/lib/images and tried to use it in your SvelteKit page, but it doesn't load in the browser. What is the most likely reason?
medium
A. Static assets must be inside the public folder to be served correctly.
B. Images must be imported from src/routes folder only.
C. You need to rename the image file to have a .svelte extension.
D. The image file size is too large to load.
Solution
Step 1: Understand static asset serving
SvelteKit serves static files only from the public folder, so files in src/lib/images are not accessible directly.
Step 2: Check other options
Images don't belong in src/routes, renaming to .svelte is incorrect, and file size doesn't prevent loading if path is correct.
Final Answer:
Static assets must be inside the public folder to be served correctly. -> Option A
Quick Check:
Static files go in public folder [OK]
Hint: Put images in public folder to load in browser [OK]
Common Mistakes:
Placing images inside src/lib or src/routes
Renaming images as .svelte files
Assuming large file size causes loading failure
5. You want to organize your SvelteKit project so that: 1. All page routes are inside src/routes. 2. Reusable UI components are inside src/lib/components. 3. Static assets like images and fonts are inside public/assets.
Which folder structure below correctly reflects this setup?