Initial Commit
This commit is contained in:
		
							
								
								
									
										25
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| node_modules | ||||
| .browser_screenshots | ||||
| .vscode | ||||
|  | ||||
| # Output | ||||
| .output | ||||
| .vercel | ||||
| .netlify | ||||
| .wrangler | ||||
| /.svelte-kit | ||||
| /build | ||||
|  | ||||
| # OS | ||||
| .DS_Store | ||||
| Thumbs.db | ||||
|  | ||||
| # Env | ||||
| .env | ||||
| .env.* | ||||
| !.env.example | ||||
| !.env.test | ||||
|  | ||||
| # Vite | ||||
| vite.config.js.timestamp-* | ||||
| vite.config.ts.timestamp-* | ||||
							
								
								
									
										243
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										243
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,243 @@ | ||||
| # Responsive Grid Skeleton | ||||
|  | ||||
| A clean, minimal skeleton framework for building responsive, grid-based websites with SvelteKit, TailwindCSS, and DaisyUI. | ||||
|  | ||||
| ## 🚀 Features | ||||
|  | ||||
| - **Mobile-First Design**: All layouts start with mobile and scale up | ||||
| - **Responsive Grid System**: Flexible CSS Grid and Flexbox layouts | ||||
| - **Modern Tech Stack**: SvelteKit 2.0, TailwindCSS 3.4, DaisyUI 5.1 | ||||
| - **Comprehensive Documentation**: Detailed comments explaining every pattern | ||||
| - **Accessibility Ready**: ARIA labels, keyboard navigation, screen reader support | ||||
| - **Performance Optimized**: Minimal bundle size and fast loading times | ||||
| - **TypeScript Support**: Full type safety out of the box | ||||
|  | ||||
| ## 📱 Responsive Breakpoints | ||||
|  | ||||
| The framework uses TailwindCSS's responsive breakpoints: | ||||
|  | ||||
| - **Mobile**: Default (0px+) - Single column layouts, stacked content | ||||
| - **Small**: `sm:` 640px+ - Small tablets, 2-column layouts | ||||
| - **Medium**: `md:` 768px+ - Tablets, 2-3 column layouts   | ||||
| - **Large**: `lg:` 1024px+ - Laptops, multi-column layouts | ||||
| - **Extra Large**: `xl:` 1280px+ - Desktops, maximum columns | ||||
| - **2X Large**: `2xl:` 1536px+ - Large desktops, spacious layouts | ||||
|  | ||||
| ## 🎯 Grid Layout Patterns | ||||
|  | ||||
| ### Basic Responsive Grid | ||||
| ```html | ||||
| <!-- 1 column on mobile, 2 on tablet, 3 on desktop --> | ||||
| <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6"> | ||||
|   <div>Item 1</div> | ||||
|   <div>Item 2</div> | ||||
|   <div>Item 3</div> | ||||
| </div> | ||||
| ``` | ||||
|  | ||||
| ### Asymmetric Layout (2:1 Ratio) | ||||
| ```html | ||||
| <!-- Main content + sidebar layout --> | ||||
| <div class="grid grid-cols-1 lg:grid-cols-3 gap-6"> | ||||
|   <div class="lg:col-span-2">Main Content</div> | ||||
|   <div class="lg:col-span-1">Sidebar</div> | ||||
| </div> | ||||
| ``` | ||||
|  | ||||
| ### Mixed Column Spans | ||||
| ```html | ||||
| <!-- Complex layouts with different column spans --> | ||||
| <div class="grid grid-cols-1 md:grid-cols-4 gap-6"> | ||||
|   <div class="md:col-span-4">Full Width Header</div> | ||||
|   <div class="md:col-span-3">Main Area</div> | ||||
|   <div class="md:col-span-1">Sidebar</div> | ||||
|   <div class="md:col-span-2">Half Width</div> | ||||
|   <div class="md:col-span-2">Half Width</div> | ||||
| </div> | ||||
| ``` | ||||
|  | ||||
| ## 🏗️ Project Structure | ||||
|  | ||||
| ``` | ||||
| src/ | ||||
| ├── routes/ | ||||
| │   ├── +layout.svelte          # Main layout with navigation | ||||
| │   ├── +page.svelte            # Homepage with grid examples | ||||
| │   ├── about/ | ||||
| │   │   └── +page.svelte        # About page (content layout example) | ||||
| │   └── contact/ | ||||
| │       └── +page.svelte        # Contact page (form layout example) | ||||
| ├── app.css                     # Global styles and custom CSS | ||||
| └── app.html                    # HTML template | ||||
| ``` | ||||
|  | ||||
| ## 🎨 Container Patterns | ||||
|  | ||||
| ### Centered Container | ||||
| ```html | ||||
| <!-- Standard centered container with responsive padding --> | ||||
| <div class="container mx-auto px-4"> | ||||
|   <!-- Content --> | ||||
| </div> | ||||
| ``` | ||||
|  | ||||
| ### Custom Max-Width | ||||
| ```html | ||||
| <!-- Custom max-width container --> | ||||
| <div class="max-w-7xl mx-auto px-4"> | ||||
|   <!-- Content --> | ||||
| </div> | ||||
| ``` | ||||
|  | ||||
| ### Full Width | ||||
| ```html | ||||
| <!-- Full width within parent --> | ||||
| <div class="w-full"> | ||||
|   <!-- Content --> | ||||
| </div> | ||||
| ``` | ||||
|  | ||||
| ## 📏 Spacing Patterns | ||||
|  | ||||
| ### Responsive Grid Gaps | ||||
| ```html | ||||
| <!-- Responsive spacing between grid items --> | ||||
| <div class="grid gap-4 md:gap-6 lg:gap-8"> | ||||
|   <!-- Items --> | ||||
| </div> | ||||
| ``` | ||||
|  | ||||
| ### Responsive Padding | ||||
| ```html | ||||
| <!-- Responsive padding --> | ||||
| <div class="p-4 md:p-6 lg:p-8"> | ||||
|   <!-- Content --> | ||||
| </div> | ||||
| ``` | ||||
|  | ||||
| ### Responsive Vertical Spacing | ||||
| ```html | ||||
| <!-- Responsive vertical spacing between elements --> | ||||
| <div class="space-y-4 md:space-y-6 lg:space-y-8"> | ||||
|   <!-- Elements --> | ||||
| </div> | ||||
| ``` | ||||
|  | ||||
| ## 🚀 Getting Started | ||||
|  | ||||
| 1. **Clone or download** this skeleton project | ||||
| 2. **Install dependencies**: | ||||
|    ```bash | ||||
|    npm install | ||||
|    ``` | ||||
| 3. **Start development server**: | ||||
|    ```bash | ||||
|    npm run dev | ||||
|    ``` | ||||
| 4. **Start building** your responsive website! | ||||
|  | ||||
| ## 🛠️ Development Commands | ||||
|  | ||||
| - `npm run dev` - Start development server | ||||
| - `npm run build` - Build for production | ||||
| - `npm run preview` - Preview production build | ||||
| - `npm run check` - Run TypeScript checks | ||||
|  | ||||
| ## 📚 Best Practices | ||||
|  | ||||
| ### Mobile-First Approach | ||||
| Always start with mobile styles and add larger breakpoints: | ||||
| ```html | ||||
| <!-- ✅ Good: Mobile-first --> | ||||
| <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3"> | ||||
|  | ||||
| <!-- ❌ Avoid: Desktop-first --> | ||||
| <div class="grid grid-cols-3 lg:grid-cols-3 md:grid-cols-2 grid-cols-1"> | ||||
| ``` | ||||
|  | ||||
| ### Semantic HTML | ||||
| Use proper HTML5 semantic elements: | ||||
| ```html | ||||
| <header>Navigation</header> | ||||
| <main> | ||||
|   <section>Content sections</section> | ||||
|   <aside>Sidebar content</aside> | ||||
| </main> | ||||
| <footer>Footer content</footer> | ||||
| ``` | ||||
|  | ||||
| ### Accessibility | ||||
| Include proper ARIA labels and keyboard navigation: | ||||
| ```html | ||||
| <button aria-label="Toggle menu" class="lg:hidden"> | ||||
|   <Menu class="h-6 w-6" /> | ||||
| </button> | ||||
| ``` | ||||
|  | ||||
| ## 🎨 Customization | ||||
|  | ||||
| ### Colors | ||||
| Customize the color scheme in `tailwind.config.js`: | ||||
| ```javascript | ||||
| module.exports = { | ||||
|   // ... other config | ||||
|   daisyui: { | ||||
|     themes: [ | ||||
|       { | ||||
|         mytheme: { | ||||
|           "primary": "#your-color", | ||||
|           "secondary": "#your-color", | ||||
|           // ... other colors | ||||
|         }, | ||||
|       }, | ||||
|     ], | ||||
|   }, | ||||
| } | ||||
| ``` | ||||
|  | ||||
| ### Breakpoints | ||||
| Add custom breakpoints in `tailwind.config.js`: | ||||
| ```javascript | ||||
| module.exports = { | ||||
|   theme: { | ||||
|     screens: { | ||||
|       'xs': '475px', | ||||
|       // ... default breakpoints | ||||
|       '3xl': '1600px', | ||||
|     } | ||||
|   } | ||||
| } | ||||
| ``` | ||||
|  | ||||
| ## 📦 Tech Stack | ||||
|  | ||||
| - **[SvelteKit](https://kit.svelte.dev/)** - Full-stack web framework | ||||
| - **[TailwindCSS](https://tailwindcss.com/)** - Utility-first CSS framework | ||||
| - **[DaisyUI](https://daisyui.com/)** - Component library for TailwindCSS | ||||
| - **[Lucide Svelte](https://lucide.dev/)** - Beautiful & consistent icons | ||||
| - **[TypeScript](https://www.typescriptlang.org/)** - Type safety | ||||
| - **[Vite](https://vitejs.dev/)** - Fast build tool | ||||
|  | ||||
| ## 🤝 Contributing | ||||
|  | ||||
| This is a skeleton framework meant to be customized for your projects. Feel free to: | ||||
|  | ||||
| 1. Fork this repository | ||||
| 2. Customize it for your needs | ||||
| 3. Share improvements back to the community | ||||
|  | ||||
| ## 📄 License | ||||
|  | ||||
| This project is open source and available under the [MIT License](LICENSE). | ||||
|  | ||||
| ## 🆘 Support | ||||
|  | ||||
| - Check the example pages for common patterns | ||||
| - Review the comprehensive comments in the code | ||||
| - Open an issue for bugs or feature requests | ||||
|  | ||||
| --- | ||||
|  | ||||
| **Happy building!** 🎉 | ||||
|  | ||||
| Use this skeleton as your starting point for creating beautiful, responsive, and accessible web applications. | ||||
							
								
								
									
										3463
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										3463
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										32
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | ||||
| { | ||||
| 	"name": "responsive-grid-skeleton", | ||||
| 	"private": true, | ||||
| 	"version": "1.0.0", | ||||
| 	"type": "module", | ||||
| 	"description": "A clean, minimal skeleton for building responsive, grid-based websites with SvelteKit, TailwindCSS, and DaisyUI", | ||||
| 	"keywords": ["svelte", "sveltekit", "tailwindcss", "daisyui", "responsive", "grid", "skeleton", "framework"], | ||||
| 	"scripts": { | ||||
| 		"dev": "vite dev", | ||||
| 		"build": "vite build", | ||||
| 		"preview": "vite preview", | ||||
| 		"prepare": "svelte-kit sync || echo ''", | ||||
| 		"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", | ||||
| 		"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch" | ||||
| 	}, | ||||
| 	"devDependencies": { | ||||
| 		"@sveltejs/adapter-auto": "^6.1.0", | ||||
| 		"@sveltejs/kit": "^2.43.2", | ||||
| 		"@sveltejs/vite-plugin-svelte": "^6.2.0", | ||||
| 		"autoprefixer": "^10.4.21", | ||||
| 		"daisyui": "^5.1.27", | ||||
| 		"postcss": "^8.5.6", | ||||
| 		"svelte": "^5.39.5", | ||||
| 		"svelte-check": "^4.3.2", | ||||
| 		"tailwindcss": "^3.4.18", | ||||
| 		"typescript": "^5.9.2", | ||||
| 		"vite": "^7.1.7" | ||||
| 	}, | ||||
| 	"dependencies": { | ||||
| 		"lucide-svelte": "^0.544.0" | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										6
									
								
								postcss.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								postcss.config.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| export default { | ||||
|   plugins: { | ||||
|     tailwindcss: {}, | ||||
|     autoprefixer: {}, | ||||
|   }, | ||||
| } | ||||
							
								
								
									
										35
									
								
								src/app.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								src/app.css
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | ||||
| @tailwind base; | ||||
| @tailwind components; | ||||
| @tailwind utilities; | ||||
|  | ||||
| /* Custom styles for the games shop */ | ||||
| @layer components { | ||||
|   .card-hover { | ||||
|     @apply transition-all duration-300 hover:shadow-lg hover:-translate-y-1; | ||||
|   } | ||||
|    | ||||
|   .btn-primary-custom { | ||||
|     @apply btn btn-primary hover:btn-primary-focus; | ||||
|   } | ||||
|    | ||||
|   .text-gradient { | ||||
|     @apply bg-gradient-to-r from-primary to-secondary bg-clip-text text-transparent; | ||||
|   } | ||||
| } | ||||
|  | ||||
| /* Custom scrollbar */ | ||||
| ::-webkit-scrollbar { | ||||
|   width: 8px; | ||||
| } | ||||
|  | ||||
| ::-webkit-scrollbar-track { | ||||
|   @apply bg-base-200; | ||||
| } | ||||
|  | ||||
| ::-webkit-scrollbar-thumb { | ||||
|   @apply bg-primary rounded-full; | ||||
| } | ||||
|  | ||||
| ::-webkit-scrollbar-thumb:hover { | ||||
|   background-color: hsl(var(--p) / 0.8); | ||||
| } | ||||
							
								
								
									
										13
									
								
								src/app.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/app.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| // See https://svelte.dev/docs/kit/types#app.d.ts | ||||
| // for information about these interfaces | ||||
| declare global { | ||||
| 	namespace App { | ||||
| 		// interface Error {} | ||||
| 		// interface Locals {} | ||||
| 		// interface PageData {} | ||||
| 		// interface PageState {} | ||||
| 		// interface Platform {} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| export {}; | ||||
							
								
								
									
										13
									
								
								src/app.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/app.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| <!doctype html> | ||||
| <html lang="en" data-theme="gamestore"> | ||||
| 	<head> | ||||
| 		<meta charset="utf-8" /> | ||||
| 		<meta name="viewport" content="width=device-width, initial-scale=1" /> | ||||
| 		<title>GameHub - Your Local Games Shop</title> | ||||
| 		<meta name="description" content="Your local destination for board games, card games, and gaming events" /> | ||||
| 		%sveltekit.head% | ||||
| 	</head> | ||||
| 	<body data-sveltekit-preload-data="hover" class="min-h-screen bg-base-100"> | ||||
| 		<div style="display: contents">%sveltekit.body%</div> | ||||
| 	</body> | ||||
| </html> | ||||
							
								
								
									
										1
									
								
								src/lib/assets/favicon.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/lib/assets/favicon.svg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| <svg xmlns="http://www.w3.org/2000/svg" width="107" height="128" viewBox="0 0 107 128"><title>svelte-logo</title><path d="M94.157 22.819c-10.4-14.885-30.94-19.297-45.792-9.835L22.282 29.608A29.92 29.92 0 0 0 8.764 49.65a31.5 31.5 0 0 0 3.108 20.231 30 30 0 0 0-4.477 11.183 31.9 31.9 0 0 0 5.448 24.116c10.402 14.887 30.942 19.297 45.791 9.835l26.083-16.624A29.92 29.92 0 0 0 98.235 78.35a31.53 31.53 0 0 0-3.105-20.232 30 30 0 0 0 4.474-11.182 31.88 31.88 0 0 0-5.447-24.116" style="fill:#ff3e00"/><path d="M45.817 106.582a20.72 20.72 0 0 1-22.237-8.243 19.17 19.17 0 0 1-3.277-14.503 18 18 0 0 1 .624-2.435l.49-1.498 1.337.981a33.6 33.6 0 0 0 10.203 5.098l.97.294-.09.968a5.85 5.85 0 0 0 1.052 3.878 6.24 6.24 0 0 0 6.695 2.485 5.8 5.8 0 0 0 1.603-.704L69.27 76.28a5.43 5.43 0 0 0 2.45-3.631 5.8 5.8 0 0 0-.987-4.371 6.24 6.24 0 0 0-6.698-2.487 5.7 5.7 0 0 0-1.6.704l-9.953 6.345a19 19 0 0 1-5.296 2.326 20.72 20.72 0 0 1-22.237-8.243 19.17 19.17 0 0 1-3.277-14.502 17.99 17.99 0 0 1 8.13-12.052l26.081-16.623a19 19 0 0 1 5.3-2.329 20.72 20.72 0 0 1 22.237 8.243 19.17 19.17 0 0 1 3.277 14.503 18 18 0 0 1-.624 2.435l-.49 1.498-1.337-.98a33.6 33.6 0 0 0-10.203-5.1l-.97-.294.09-.968a5.86 5.86 0 0 0-1.052-3.878 6.24 6.24 0 0 0-6.696-2.485 5.8 5.8 0 0 0-1.602.704L37.73 51.72a5.42 5.42 0 0 0-2.449 3.63 5.79 5.79 0 0 0 .986 4.372 6.24 6.24 0 0 0 6.698 2.486 5.8 5.8 0 0 0 1.602-.704l9.952-6.342a19 19 0 0 1 5.295-2.328 20.72 20.72 0 0 1 22.237 8.242 19.17 19.17 0 0 1 3.277 14.503 18 18 0 0 1-8.13 12.053l-26.081 16.622a19 19 0 0 1-5.3 2.328" style="fill:#fff"/></svg> | ||||
| After Width: | Height: | Size: 1.5 KiB | 
							
								
								
									
										1
									
								
								src/lib/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/lib/index.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| // place files you want to import through the `$lib` alias in this folder. | ||||
							
								
								
									
										171
									
								
								src/routes/+layout.svelte
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										171
									
								
								src/routes/+layout.svelte
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,171 @@ | ||||
| <!-- | ||||
|   RESPONSIVE GRID LAYOUT FRAMEWORK | ||||
|    | ||||
|   This layout provides a foundation for building responsive, grid-based websites. | ||||
|    | ||||
|   KEY RESPONSIVE BREAKPOINTS (TailwindCSS): | ||||
|   - sm: 640px and up (small tablets) | ||||
|   - md: 768px and up (tablets)  | ||||
|   - lg: 1024px and up (laptops) | ||||
|   - xl: 1280px and up (desktops) | ||||
|   - 2xl: 1536px and up (large desktops) | ||||
|    | ||||
|   GRID LAYOUT PATTERNS: | ||||
|   - Mobile-first approach: Start with single column, expand upward | ||||
|   - Use grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 for responsive columns | ||||
|   - Use col-span-full for full-width elements across all columns | ||||
|   - Use col-span-2 lg:col-span-3 for elements that span multiple columns | ||||
|    | ||||
|   CONTAINER PATTERNS: | ||||
|   - container mx-auto px-4: Centered container with responsive padding | ||||
|   - max-w-7xl mx-auto: Custom max-width container | ||||
|   - w-full: Full width within parent | ||||
|    | ||||
|   SPACING PATTERNS: | ||||
|   - gap-4 md:gap-6 lg:gap-8: Responsive grid gaps | ||||
|   - p-4 md:p-6 lg:p-8: Responsive padding | ||||
|   - space-y-4 md:space-y-6: Responsive vertical spacing | ||||
| --> | ||||
|  | ||||
| <script lang="ts"> | ||||
|   import '../app.css'; | ||||
|   import { Menu, X } from 'lucide-svelte'; | ||||
|    | ||||
|   let mobileMenuOpen = $state(false); | ||||
|    | ||||
|   function toggleMobileMenu() { | ||||
|     mobileMenuOpen = !mobileMenuOpen; | ||||
|   } | ||||
| </script> | ||||
|  | ||||
| <!--  | ||||
|   MAIN LAYOUT STRUCTURE | ||||
|   - min-h-screen: Ensures full viewport height | ||||
|   - bg-base-200: DaisyUI background color that adapts to theme | ||||
| --> | ||||
| <div class="min-h-screen bg-base-200"> | ||||
|    | ||||
|   <!--  | ||||
|     RESPONSIVE NAVIGATION | ||||
|     - Hidden on mobile (lg:flex), shows hamburger menu instead | ||||
|     - Full navigation on desktop screens | ||||
|   --> | ||||
|   <nav class="bg-base-100 shadow-lg"> | ||||
|     <div class="container mx-auto px-4"> | ||||
|       <div class="flex items-center justify-between h-16"> | ||||
|          | ||||
|         <!-- Logo/Brand --> | ||||
|         <a href="/" class="text-2xl font-bold text-primary"> | ||||
|           Skeleton | ||||
|         </a> | ||||
|          | ||||
|         <!-- Desktop Navigation (hidden on mobile) --> | ||||
|         <div class="hidden lg:flex space-x-8"> | ||||
|           <a href="/" class="text-base-content hover:text-primary transition-colors"> | ||||
|             Home | ||||
|           </a> | ||||
|           <a href="/about" class="text-base-content hover:text-primary transition-colors"> | ||||
|             About | ||||
|           </a> | ||||
|           <a href="/contact" class="text-base-content hover:text-primary transition-colors"> | ||||
|             Contact | ||||
|           </a> | ||||
|         </div> | ||||
|          | ||||
|         <!-- Mobile Menu Button (visible on mobile only) --> | ||||
|         <button  | ||||
|           class="lg:hidden btn btn-ghost btn-square" | ||||
|           onclick={toggleMobileMenu} | ||||
|           aria-label="Toggle menu" | ||||
|         > | ||||
|           {#if mobileMenuOpen} | ||||
|             <X class="h-6 w-6" /> | ||||
|           {:else} | ||||
|             <Menu class="h-6 w-6" /> | ||||
|           {/if} | ||||
|         </button> | ||||
|       </div> | ||||
|        | ||||
|       <!-- Mobile Navigation Menu (toggleable) --> | ||||
|       {#if mobileMenuOpen} | ||||
|         <div class="lg:hidden border-t border-base-300"> | ||||
|           <div class="px-2 pt-2 pb-3 space-y-1"> | ||||
|             <a href="/" class="block px-3 py-2 text-base-content hover:bg-base-200 rounded"> | ||||
|               Home | ||||
|             </a> | ||||
|             <a href="/about" class="block px-3 py-2 text-base-content hover:bg-base-200 rounded"> | ||||
|               About | ||||
|             </a> | ||||
|             <a href="/contact" class="block px-3 py-2 text-base-content hover:bg-base-200 rounded"> | ||||
|               Contact | ||||
|             </a> | ||||
|           </div> | ||||
|         </div> | ||||
|       {/if} | ||||
|     </div> | ||||
|   </nav> | ||||
|  | ||||
|   <!--  | ||||
|     MAIN CONTENT AREA | ||||
|     - flex-1: Takes remaining space between header and footer | ||||
|     - This is where page content will be rendered | ||||
|   --> | ||||
|   <main class="flex-1"> | ||||
|     <slot /> | ||||
|   </main> | ||||
|  | ||||
|   <!--  | ||||
|     RESPONSIVE FOOTER | ||||
|     - Uses grid layout that adapts from 1 column on mobile to 3 columns on desktop | ||||
|     - Demonstrates responsive grid patterns | ||||
|   --> | ||||
|   <footer class="bg-base-300 text-base-content mt-auto"> | ||||
|     <div class="container mx-auto px-4 py-8"> | ||||
|        | ||||
|       <!--  | ||||
|         RESPONSIVE GRID EXAMPLE | ||||
|         - grid-cols-1: Single column on mobile | ||||
|         - md:grid-cols-2: Two columns on tablets | ||||
|         - lg:grid-cols-3: Three columns on desktop | ||||
|         - gap-8: Consistent spacing between grid items | ||||
|       --> | ||||
|       <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> | ||||
|          | ||||
|         <!-- Footer Column 1 --> | ||||
|         <div> | ||||
|           <h3 class="font-semibold mb-4">Navigation</h3> | ||||
|           <nav class="flex flex-col space-y-2"> | ||||
|             <a href="/" class="link link-hover">Home</a> | ||||
|             <a href="/about" class="link link-hover">About</a> | ||||
|             <a href="/contact" class="link link-hover">Contact</a> | ||||
|           </nav> | ||||
|         </div> | ||||
|          | ||||
|         <!-- Footer Column 2 --> | ||||
|         <div> | ||||
|           <h3 class="font-semibold mb-4">Information</h3> | ||||
|           <div class="space-y-2 text-sm"> | ||||
|             <p>This is a skeleton framework for responsive grid layouts.</p> | ||||
|             <p>Built with SvelteKit, TailwindCSS, and DaisyUI.</p> | ||||
|           </div> | ||||
|         </div> | ||||
|          | ||||
|         <!-- Footer Column 3 (hidden on mobile, shows on tablet+) --> | ||||
|         <div class="hidden md:block"> | ||||
|           <h3 class="font-semibold mb-4">Framework</h3> | ||||
|           <div class="space-y-2 text-sm"> | ||||
|             <p>Mobile-first responsive design</p> | ||||
|             <p>Grid-based layout system</p> | ||||
|             <p>Accessible components</p> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|        | ||||
|       <!-- Footer Bottom --> | ||||
|       <div class="divider"></div> | ||||
|       <div class="text-center text-sm"> | ||||
|         <p>© 2024 Responsive Grid Skeleton. Built for scalable web development.</p> | ||||
|       </div> | ||||
|     </div> | ||||
|   </footer> | ||||
| </div> | ||||
							
								
								
									
										327
									
								
								src/routes/+page.svelte
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										327
									
								
								src/routes/+page.svelte
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,327 @@ | ||||
| <!-- | ||||
|   RESPONSIVE GRID EXAMPLES PAGE | ||||
|    | ||||
|   This page demonstrates various responsive grid patterns and best practices. | ||||
|   Use these patterns as templates for building responsive layouts. | ||||
| --> | ||||
|  | ||||
| <script lang="ts"> | ||||
|   import { Grid, Layout, Smartphone, Tablet, Monitor } from 'lucide-svelte'; | ||||
| </script> | ||||
|  | ||||
| <svelte:head> | ||||
|   <title>Responsive Grid Skeleton</title> | ||||
|   <meta name="description" content="A skeleton framework for responsive, grid-based web layouts" /> | ||||
| </svelte:head> | ||||
|  | ||||
| <!--  | ||||
|   HERO SECTION | ||||
|   - Full-width hero with centered content | ||||
|   - Responsive padding and text sizes | ||||
| --> | ||||
| <section class="bg-gradient-to-br from-primary to-secondary text-primary-content"> | ||||
|   <div class="container mx-auto px-4 py-16 md:py-24"> | ||||
|     <div class="text-center max-w-4xl mx-auto"> | ||||
|       <h1 class="text-4xl md:text-6xl font-bold mb-6"> | ||||
|         Responsive Grid Framework | ||||
|       </h1> | ||||
|       <p class="text-xl md:text-2xl mb-8 opacity-90"> | ||||
|         A clean, minimal skeleton for building responsive, grid-based websites with SvelteKit, TailwindCSS, and DaisyUI. | ||||
|       </p> | ||||
|       <div class="flex flex-col sm:flex-row gap-4 justify-center"> | ||||
|         <button class="btn btn-accent btn-lg">Get Started</button> | ||||
|         <button class="btn btn-outline btn-lg">View Examples</button> | ||||
|       </div> | ||||
|     </div> | ||||
|   </div> | ||||
| </section> | ||||
|  | ||||
| <!--  | ||||
|   FEATURES SECTION | ||||
|   - Responsive grid: 1 column on mobile, 2 on tablet, 3 on desktop | ||||
|   - Equal height cards using grid | ||||
| --> | ||||
| <section class="py-16 md:py-24"> | ||||
|   <div class="container mx-auto px-4"> | ||||
|     <div class="text-center mb-12"> | ||||
|       <h2 class="text-3xl md:text-4xl font-bold mb-4">Framework Features</h2> | ||||
|       <p class="text-lg text-base-content/70 max-w-2xl mx-auto"> | ||||
|         Built with modern web technologies and responsive design principles. | ||||
|       </p> | ||||
|     </div> | ||||
|      | ||||
|     <!--  | ||||
|       RESPONSIVE FEATURE GRID | ||||
|       - grid-cols-1: Single column on mobile (default) | ||||
|       - md:grid-cols-2: Two columns on tablets (768px+) | ||||
|       - lg:grid-cols-3: Three columns on desktop (1024px+) | ||||
|       - gap-8: Consistent spacing between items | ||||
|     --> | ||||
|     <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> | ||||
|        | ||||
|       <!-- Feature Card 1 --> | ||||
|       <div class="card bg-base-100 shadow-lg"> | ||||
|         <div class="card-body text-center"> | ||||
|           <div class="mx-auto mb-4 p-3 bg-primary/10 rounded-full w-fit"> | ||||
|             <Smartphone class="h-8 w-8 text-primary" /> | ||||
|           </div> | ||||
|           <h3 class="card-title justify-center">Mobile First</h3> | ||||
|           <p>Designed with mobile-first responsive principles for optimal performance on all devices.</p> | ||||
|         </div> | ||||
|       </div> | ||||
|        | ||||
|       <!-- Feature Card 2 --> | ||||
|       <div class="card bg-base-100 shadow-lg"> | ||||
|         <div class="card-body text-center"> | ||||
|           <div class="mx-auto mb-4 p-3 bg-secondary/10 rounded-full w-fit"> | ||||
|             <Grid class="h-8 w-8 text-secondary" /> | ||||
|           </div> | ||||
|           <h3 class="card-title justify-center">Grid System</h3> | ||||
|           <p>Flexible CSS Grid and Flexbox layouts that adapt seamlessly across breakpoints.</p> | ||||
|         </div> | ||||
|       </div> | ||||
|        | ||||
|       <!-- Feature Card 3 --> | ||||
|       <div class="card bg-base-100 shadow-lg"> | ||||
|         <div class="card-body text-center"> | ||||
|           <div class="mx-auto mb-4 p-3 bg-accent/10 rounded-full w-fit"> | ||||
|             <Layout class="h-8 w-8 text-accent" /> | ||||
|           </div> | ||||
|           <h3 class="card-title justify-center">Clean Code</h3> | ||||
|           <p>Well-documented, semantic HTML with comprehensive comments and best practices.</p> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|   </div> | ||||
| </section> | ||||
|  | ||||
| <!--  | ||||
|   GRID EXAMPLES SECTION | ||||
|   - Demonstrates various grid patterns | ||||
|   - Shows responsive behavior at different breakpoints | ||||
| --> | ||||
| <section class="py-16 md:py-24 bg-base-200"> | ||||
|   <div class="container mx-auto px-4"> | ||||
|     <div class="text-center mb-12"> | ||||
|       <h2 class="text-3xl md:text-4xl font-bold mb-4">Grid Layout Examples</h2> | ||||
|       <p class="text-lg text-base-content/70 max-w-2xl mx-auto"> | ||||
|         Common responsive grid patterns you can use in your projects. | ||||
|       </p> | ||||
|     </div> | ||||
|      | ||||
|     <!--  | ||||
|       EXAMPLE 1: ASYMMETRIC GRID | ||||
|       - Main content takes 2/3 width on desktop | ||||
|       - Sidebar takes 1/3 width on desktop | ||||
|       - Stacks vertically on mobile | ||||
|     --> | ||||
|     <div class="mb-16"> | ||||
|       <h3 class="text-2xl font-semibold mb-6">Asymmetric Layout (2:1 Ratio)</h3> | ||||
|       <div class="grid grid-cols-1 lg:grid-cols-3 gap-6"> | ||||
|          | ||||
|         <!-- Main Content Area (spans 2 columns on desktop) --> | ||||
|         <div class="lg:col-span-2"> | ||||
|           <div class="card bg-base-100 shadow-lg"> | ||||
|             <div class="card-body"> | ||||
|               <h4 class="card-title">Main Content Area</h4> | ||||
|               <p>This area spans 2 columns on desktop (lg:col-span-2) but takes full width on mobile. Perfect for main content, articles, or primary information.</p> | ||||
|               <div class="grid grid-cols-1 sm:grid-cols-2 gap-4 mt-4"> | ||||
|                 <div class="bg-base-200 p-4 rounded">Sub-item 1</div> | ||||
|                 <div class="bg-base-200 p-4 rounded">Sub-item 2</div> | ||||
|               </div> | ||||
|             </div> | ||||
|           </div> | ||||
|         </div> | ||||
|          | ||||
|         <!-- Sidebar (spans 1 column) --> | ||||
|         <div class="lg:col-span-1"> | ||||
|           <div class="card bg-base-100 shadow-lg"> | ||||
|             <div class="card-body"> | ||||
|               <h4 class="card-title">Sidebar</h4> | ||||
|               <p>This sidebar spans 1 column on desktop but stacks below main content on mobile.</p> | ||||
|               <div class="space-y-3 mt-4"> | ||||
|                 <div class="bg-base-200 p-3 rounded text-sm">Widget 1</div> | ||||
|                 <div class="bg-base-200 p-3 rounded text-sm">Widget 2</div> | ||||
|                 <div class="bg-base-200 p-3 rounded text-sm">Widget 3</div> | ||||
|               </div> | ||||
|             </div> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|      | ||||
|     <!--  | ||||
|       EXAMPLE 2: EQUAL COLUMNS | ||||
|       - 1 column on mobile | ||||
|       - 2 columns on tablet | ||||
|       - 4 columns on desktop | ||||
|     --> | ||||
|     <div class="mb-16"> | ||||
|       <h3 class="text-2xl font-semibold mb-6">Equal Columns (1→2→4)</h3> | ||||
|       <div class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-6"> | ||||
|         <div class="card bg-base-100 shadow-lg"> | ||||
|           <div class="card-body"> | ||||
|             <h4 class="card-title text-lg">Column 1</h4> | ||||
|             <p>Equal width columns that adapt: 1 on mobile, 2 on tablet, 4 on desktop.</p> | ||||
|           </div> | ||||
|         </div> | ||||
|         <div class="card bg-base-100 shadow-lg"> | ||||
|           <div class="card-body"> | ||||
|             <h4 class="card-title text-lg">Column 2</h4> | ||||
|             <p>Perfect for product grids, team members, or feature showcases.</p> | ||||
|           </div> | ||||
|         </div> | ||||
|         <div class="card bg-base-100 shadow-lg"> | ||||
|           <div class="card-body"> | ||||
|             <h4 class="card-title text-lg">Column 3</h4> | ||||
|             <p>Uses responsive breakpoints: md:grid-cols-2 xl:grid-cols-4</p> | ||||
|           </div> | ||||
|         </div> | ||||
|         <div class="card bg-base-100 shadow-lg"> | ||||
|           <div class="card-body"> | ||||
|             <h4 class="card-title text-lg">Column 4</h4> | ||||
|             <p>Maintains consistent spacing with gap-6 across all breakpoints.</p> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|      | ||||
|     <!--  | ||||
|       EXAMPLE 3: MIXED SPANS | ||||
|       - Demonstrates different column spans | ||||
|       - Shows how to create complex layouts | ||||
|     --> | ||||
|     <div class="mb-16"> | ||||
|       <h3 class="text-2xl font-semibold mb-6">Mixed Column Spans</h3> | ||||
|       <div class="grid grid-cols-1 md:grid-cols-4 gap-6"> | ||||
|          | ||||
|         <!-- Full width header --> | ||||
|         <div class="md:col-span-4"> | ||||
|           <div class="card bg-primary text-primary-content shadow-lg"> | ||||
|             <div class="card-body"> | ||||
|               <h4 class="card-title">Full Width Header (col-span-4)</h4> | ||||
|               <p>This element spans all 4 columns on desktop, full width on mobile.</p> | ||||
|             </div> | ||||
|           </div> | ||||
|         </div> | ||||
|          | ||||
|         <!-- 3-column main area --> | ||||
|         <div class="md:col-span-3"> | ||||
|           <div class="card bg-base-100 shadow-lg"> | ||||
|             <div class="card-body"> | ||||
|               <h4 class="card-title">Main Area (col-span-3)</h4> | ||||
|               <p>Takes up 3/4 of the width on desktop. Great for primary content areas.</p> | ||||
|             </div> | ||||
|           </div> | ||||
|         </div> | ||||
|          | ||||
|         <!-- 1-column sidebar --> | ||||
|         <div class="md:col-span-1"> | ||||
|           <div class="card bg-base-100 shadow-lg"> | ||||
|             <div class="card-body"> | ||||
|               <h4 class="card-title text-lg">Aside</h4> | ||||
|               <p>1/4 width sidebar for secondary content.</p> | ||||
|             </div> | ||||
|           </div> | ||||
|         </div> | ||||
|          | ||||
|         <!-- Two half-width items --> | ||||
|         <div class="md:col-span-2"> | ||||
|           <div class="card bg-base-100 shadow-lg"> | ||||
|             <div class="card-body"> | ||||
|               <h4 class="card-title">Half Width (col-span-2)</h4> | ||||
|               <p>Takes up half the grid width on desktop.</p> | ||||
|             </div> | ||||
|           </div> | ||||
|         </div> | ||||
|          | ||||
|         <div class="md:col-span-2"> | ||||
|           <div class="card bg-base-100 shadow-lg"> | ||||
|             <div class="card-body"> | ||||
|               <h4 class="card-title">Half Width (col-span-2)</h4> | ||||
|               <p>Perfect for side-by-side content sections.</p> | ||||
|             </div> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|   </div> | ||||
| </section> | ||||
|  | ||||
| <!--  | ||||
|   RESPONSIVE BREAKPOINTS SECTION | ||||
|   - Visual guide to breakpoints | ||||
|   - Shows how content adapts | ||||
| --> | ||||
| <section class="py-16 md:py-24"> | ||||
|   <div class="container mx-auto px-4"> | ||||
|     <div class="text-center mb-12"> | ||||
|       <h2 class="text-3xl md:text-4xl font-bold mb-4">Responsive Breakpoints</h2> | ||||
|       <p class="text-lg text-base-content/70 max-w-2xl mx-auto"> | ||||
|         Understanding how layouts adapt across different screen sizes. | ||||
|       </p> | ||||
|     </div> | ||||
|      | ||||
|     <!-- Breakpoint indicators --> | ||||
|     <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6"> | ||||
|        | ||||
|       <!-- Mobile --> | ||||
|       <div class="card bg-base-100 shadow-lg"> | ||||
|         <div class="card-body text-center"> | ||||
|           <Smartphone class="h-12 w-12 mx-auto mb-4 text-primary" /> | ||||
|           <h3 class="card-title justify-center">Mobile</h3> | ||||
|           <p class="text-sm">Default (0px+)</p> | ||||
|           <p class="text-xs text-base-content/70">Single column layouts, stacked content</p> | ||||
|         </div> | ||||
|       </div> | ||||
|        | ||||
|       <!-- Tablet --> | ||||
|       <div class="card bg-base-100 shadow-lg"> | ||||
|         <div class="card-body text-center"> | ||||
|           <Tablet class="h-12 w-12 mx-auto mb-4 text-secondary" /> | ||||
|           <h3 class="card-title justify-center">Tablet</h3> | ||||
|           <p class="text-sm">md: 768px+</p> | ||||
|           <p class="text-xs text-base-content/70">2-column layouts, condensed navigation</p> | ||||
|         </div> | ||||
|       </div> | ||||
|        | ||||
|       <!-- Desktop --> | ||||
|       <div class="card bg-base-100 shadow-lg"> | ||||
|         <div class="card-body text-center"> | ||||
|           <Monitor class="h-12 w-12 mx-auto mb-4 text-accent" /> | ||||
|           <h3 class="card-title justify-center">Desktop</h3> | ||||
|           <p class="text-sm">lg: 1024px+</p> | ||||
|           <p class="text-xs text-base-content/70">Multi-column layouts, full navigation</p> | ||||
|         </div> | ||||
|       </div> | ||||
|        | ||||
|       <!-- Large Desktop --> | ||||
|       <div class="card bg-base-100 shadow-lg"> | ||||
|         <div class="card-body text-center"> | ||||
|           <Monitor class="h-12 w-12 mx-auto mb-4 text-info" /> | ||||
|           <h3 class="card-title justify-center">Large</h3> | ||||
|           <p class="text-sm">xl: 1280px+</p> | ||||
|           <p class="text-xs text-base-content/70">Maximum columns, spacious layouts</p> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|   </div> | ||||
| </section> | ||||
|  | ||||
| <!--  | ||||
|   CALL TO ACTION SECTION | ||||
|   - Simple centered content | ||||
|   - Responsive button layout | ||||
| --> | ||||
| <section class="py-16 md:py-24 bg-gradient-to-r from-primary to-secondary text-primary-content"> | ||||
|   <div class="container mx-auto px-4 text-center"> | ||||
|     <h2 class="text-3xl md:text-4xl font-bold mb-6">Ready to Build?</h2> | ||||
|     <p class="text-xl mb-8 opacity-90 max-w-2xl mx-auto"> | ||||
|       Use this skeleton as your starting point for responsive, grid-based web applications. | ||||
|     </p> | ||||
|     <div class="flex flex-col sm:flex-row gap-4 justify-center"> | ||||
|       <button class="btn btn-accent btn-lg">Start Building</button> | ||||
|       <button class="btn btn-outline btn-lg">View Documentation</button> | ||||
|     </div> | ||||
|   </div> | ||||
| </section> | ||||
							
								
								
									
										230
									
								
								src/routes/about/+page.svelte
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										230
									
								
								src/routes/about/+page.svelte
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,230 @@ | ||||
| <!-- | ||||
|   ABOUT PAGE - EXAMPLE CONTENT LAYOUT | ||||
|    | ||||
|   This page demonstrates how to structure content using the responsive grid system. | ||||
|   Shows various layout patterns for text-heavy pages. | ||||
| --> | ||||
|  | ||||
| <script lang="ts"> | ||||
|   import { Code, Palette, Zap } from 'lucide-svelte'; | ||||
| </script> | ||||
|  | ||||
| <svelte:head> | ||||
|   <title>About - Responsive Grid Skeleton</title> | ||||
|   <meta name="description" content="Learn about the responsive grid framework and its features" /> | ||||
| </svelte:head> | ||||
|  | ||||
| <!--  | ||||
|   PAGE HEADER | ||||
|   - Full-width header with background | ||||
|   - Centered content with responsive padding | ||||
| --> | ||||
| <section class="bg-gradient-to-r from-secondary to-accent text-secondary-content"> | ||||
|   <div class="container mx-auto px-4 py-16"> | ||||
|     <div class="text-center max-w-3xl mx-auto"> | ||||
|       <h1 class="text-4xl md:text-5xl font-bold mb-6">About This Framework</h1> | ||||
|       <p class="text-xl opacity-90"> | ||||
|         A comprehensive guide to building responsive, accessible, and maintainable web layouts. | ||||
|       </p> | ||||
|     </div> | ||||
|   </div> | ||||
| </section> | ||||
|  | ||||
| <!--  | ||||
|   MAIN CONTENT SECTION | ||||
|   - Two-column layout on desktop | ||||
|   - Single column on mobile | ||||
|   - Demonstrates content + sidebar pattern | ||||
| --> | ||||
| <section class="py-16 md:py-24"> | ||||
|   <div class="container mx-auto px-4"> | ||||
|      | ||||
|     <!--  | ||||
|       CONTENT GRID | ||||
|       - lg:grid-cols-4: 4-column grid on desktop | ||||
|       - Content spans 3 columns, sidebar spans 1 | ||||
|       - Stacks vertically on mobile | ||||
|     --> | ||||
|     <div class="grid grid-cols-1 lg:grid-cols-4 gap-8"> | ||||
|        | ||||
|       <!-- Main Content Area --> | ||||
|       <div class="lg:col-span-3"> | ||||
|         <div class="prose prose-lg max-w-none"> | ||||
|           <h2>What is This Framework?</h2> | ||||
|           <p> | ||||
|             This responsive grid skeleton is designed to be a starting point for modern web applications.  | ||||
|             It combines the power of SvelteKit's reactive framework with TailwindCSS's utility-first  | ||||
|             approach and DaisyUI's beautiful components. | ||||
|           </p> | ||||
|            | ||||
|           <h3>Key Principles</h3> | ||||
|           <p> | ||||
|             The framework is built around several core principles that ensure your websites are  | ||||
|             fast, accessible, and maintainable: | ||||
|           </p> | ||||
|            | ||||
|           <ul> | ||||
|             <li><strong>Mobile-First Design:</strong> All layouts start with mobile and scale up</li> | ||||
|             <li><strong>Semantic HTML:</strong> Proper use of HTML5 semantic elements</li> | ||||
|             <li><strong>Accessibility:</strong> ARIA labels, keyboard navigation, and screen reader support</li> | ||||
|             <li><strong>Performance:</strong> Optimized for fast loading and smooth interactions</li> | ||||
|           </ul> | ||||
|            | ||||
|           <h3>Grid System Overview</h3> | ||||
|           <p> | ||||
|             The grid system uses CSS Grid as its foundation, providing flexible and powerful  | ||||
|             layout capabilities. Here are the key concepts: | ||||
|           </p> | ||||
|            | ||||
|           <!--  | ||||
|             NESTED GRID EXAMPLE | ||||
|             - Shows how grids can be nested within content | ||||
|           --> | ||||
|           <div class="grid grid-cols-1 md:grid-cols-2 gap-6 my-8"> | ||||
|             <div class="card bg-base-100 shadow-lg"> | ||||
|               <div class="card-body"> | ||||
|                 <h4 class="card-title">Responsive Columns</h4> | ||||
|                 <p class="text-sm"> | ||||
|                   Use classes like <code>grid-cols-1 md:grid-cols-2 lg:grid-cols-3</code>  | ||||
|                   to create responsive column layouts. | ||||
|                 </p> | ||||
|               </div> | ||||
|             </div> | ||||
|             <div class="card bg-base-100 shadow-lg"> | ||||
|               <div class="card-body"> | ||||
|                 <h4 class="card-title">Column Spanning</h4> | ||||
|                 <p class="text-sm"> | ||||
|                   Use <code>col-span-2</code>, <code>col-span-3</code>, etc. to make  | ||||
|                   elements span multiple columns. | ||||
|                 </p> | ||||
|               </div> | ||||
|             </div> | ||||
|           </div> | ||||
|            | ||||
|           <h3>Component Architecture</h3> | ||||
|           <p> | ||||
|             The framework encourages a component-based approach where each piece of UI  | ||||
|             is self-contained and reusable. This makes maintenance easier and promotes  | ||||
|             consistency across your application. | ||||
|           </p> | ||||
|         </div> | ||||
|       </div> | ||||
|        | ||||
|       <!-- Sidebar --> | ||||
|       <div class="lg:col-span-1"> | ||||
|         <div class="sticky top-8 space-y-6"> | ||||
|            | ||||
|           <!-- Quick Stats Card --> | ||||
|           <div class="card bg-base-100 shadow-lg"> | ||||
|             <div class="card-body"> | ||||
|               <h3 class="card-title text-lg">Quick Stats</h3> | ||||
|               <div class="space-y-3"> | ||||
|                 <div class="flex justify-between"> | ||||
|                   <span class="text-sm">Framework Size</span> | ||||
|                   <span class="text-sm font-semibold">~50KB</span> | ||||
|                 </div> | ||||
|                 <div class="flex justify-between"> | ||||
|                   <span class="text-sm">Components</span> | ||||
|                   <span class="text-sm font-semibold">15+</span> | ||||
|                 </div> | ||||
|                 <div class="flex justify-between"> | ||||
|                   <span class="text-sm">Breakpoints</span> | ||||
|                   <span class="text-sm font-semibold">5</span> | ||||
|                 </div> | ||||
|                 <div class="flex justify-between"> | ||||
|                   <span class="text-sm">Browser Support</span> | ||||
|                   <span class="text-sm font-semibold">Modern</span> | ||||
|                 </div> | ||||
|               </div> | ||||
|             </div> | ||||
|           </div> | ||||
|            | ||||
|           <!-- Technology Stack --> | ||||
|           <div class="card bg-base-100 shadow-lg"> | ||||
|             <div class="card-body"> | ||||
|               <h3 class="card-title text-lg">Tech Stack</h3> | ||||
|               <div class="space-y-3"> | ||||
|                 <div class="flex items-center gap-3"> | ||||
|                   <Code class="h-5 w-5 text-primary" /> | ||||
|                   <span class="text-sm">SvelteKit 2.0</span> | ||||
|                 </div> | ||||
|                 <div class="flex items-center gap-3"> | ||||
|                   <Palette class="h-5 w-5 text-secondary" /> | ||||
|                   <span class="text-sm">TailwindCSS 3.4</span> | ||||
|                 </div> | ||||
|                 <div class="flex items-center gap-3"> | ||||
|                   <Zap class="h-5 w-5 text-accent" /> | ||||
|                   <span class="text-sm">DaisyUI 5.1</span> | ||||
|                 </div> | ||||
|               </div> | ||||
|             </div> | ||||
|           </div> | ||||
|            | ||||
|           <!-- Navigation --> | ||||
|           <div class="card bg-base-100 shadow-lg"> | ||||
|             <div class="card-body"> | ||||
|               <h3 class="card-title text-lg">Page Sections</h3> | ||||
|               <nav class="space-y-2"> | ||||
|                 <a href="#principles" class="block text-sm link link-hover">Key Principles</a> | ||||
|                 <a href="#grid" class="block text-sm link link-hover">Grid System</a> | ||||
|                 <a href="#components" class="block text-sm link link-hover">Components</a> | ||||
|                 <a href="#examples" class="block text-sm link link-hover">Examples</a> | ||||
|               </nav> | ||||
|             </div> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|   </div> | ||||
| </section> | ||||
|  | ||||
| <!--  | ||||
|   FEATURES SECTION | ||||
|   - Three-column grid showcasing framework features | ||||
|   - Responsive: 1 column on mobile, 3 on desktop | ||||
| --> | ||||
| <section class="py-16 md:py-24 bg-base-200"> | ||||
|   <div class="container mx-auto px-4"> | ||||
|     <div class="text-center mb-12"> | ||||
|       <h2 class="text-3xl md:text-4xl font-bold mb-4">Why Choose This Framework?</h2> | ||||
|       <p class="text-lg text-base-content/70 max-w-2xl mx-auto"> | ||||
|         Built with developer experience and user performance in mind. | ||||
|       </p> | ||||
|     </div> | ||||
|      | ||||
|     <div class="grid grid-cols-1 md:grid-cols-3 gap-8"> | ||||
|       <div class="card bg-base-100 shadow-lg"> | ||||
|         <div class="card-body text-center"> | ||||
|           <Code class="h-12 w-12 mx-auto mb-4 text-primary" /> | ||||
|           <h3 class="card-title justify-center">Developer Friendly</h3> | ||||
|           <p> | ||||
|             Clean, well-documented code with comprehensive comments explaining  | ||||
|             every pattern and best practice. | ||||
|           </p> | ||||
|         </div> | ||||
|       </div> | ||||
|        | ||||
|       <div class="card bg-base-100 shadow-lg"> | ||||
|         <div class="card-body text-center"> | ||||
|           <Palette class="h-12 w-12 mx-auto mb-4 text-secondary" /> | ||||
|           <h3 class="card-title justify-center">Highly Customizable</h3> | ||||
|           <p> | ||||
|             Built with TailwindCSS and DaisyUI, making it easy to customize  | ||||
|             colors, spacing, and components to match your brand. | ||||
|           </p> | ||||
|         </div> | ||||
|       </div> | ||||
|        | ||||
|       <div class="card bg-base-100 shadow-lg"> | ||||
|         <div class="card-body text-center"> | ||||
|           <Zap class="h-12 w-12 mx-auto mb-4 text-accent" /> | ||||
|           <h3 class="card-title justify-center">Performance Optimized</h3> | ||||
|           <p> | ||||
|             Minimal bundle size, efficient CSS, and optimized for Core Web Vitals  | ||||
|             to ensure fast loading times. | ||||
|           </p> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|   </div> | ||||
| </section> | ||||
							
								
								
									
										283
									
								
								src/routes/contact/+page.svelte
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										283
									
								
								src/routes/contact/+page.svelte
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,283 @@ | ||||
| <!-- | ||||
|   CONTACT PAGE - FORM LAYOUT EXAMPLE | ||||
|    | ||||
|   This page demonstrates form layouts and mixed content patterns. | ||||
|   Shows how to create effective contact/form pages with the grid system. | ||||
| --> | ||||
|  | ||||
| <script lang="ts"> | ||||
|   import { Mail, MessageSquare, Send, Github, Twitter, Linkedin } from 'lucide-svelte'; | ||||
|    | ||||
|   let formData = $state({ | ||||
|     name: '', | ||||
|     email: '', | ||||
|     subject: '', | ||||
|     message: '' | ||||
|   }); | ||||
|    | ||||
|   function handleSubmit(event: Event) { | ||||
|     event.preventDefault(); | ||||
|     // Handle form submission here | ||||
|     console.log('Form submitted:', formData); | ||||
|     // Reset form or show success message | ||||
|   } | ||||
| </script> | ||||
|  | ||||
| <svelte:head> | ||||
|   <title>Contact - Responsive Grid Skeleton</title> | ||||
|   <meta name="description" content="Get in touch about the responsive grid framework" /> | ||||
| </svelte:head> | ||||
|  | ||||
| <!--  | ||||
|   PAGE HEADER | ||||
|   - Centered content with gradient background | ||||
| --> | ||||
| <section class="bg-gradient-to-r from-accent to-info text-accent-content"> | ||||
|   <div class="container mx-auto px-4 py-16"> | ||||
|     <div class="text-center max-w-3xl mx-auto"> | ||||
|       <h1 class="text-4xl md:text-5xl font-bold mb-6">Get In Touch</h1> | ||||
|       <p class="text-xl opacity-90"> | ||||
|         Have questions about the framework? Want to contribute? We'd love to hear from you. | ||||
|       </p> | ||||
|     </div> | ||||
|   </div> | ||||
| </section> | ||||
|  | ||||
| <!--  | ||||
|   MAIN CONTACT SECTION | ||||
|   - Two-column layout: form + contact info | ||||
|   - Responsive: stacks on mobile, side-by-side on desktop | ||||
| --> | ||||
| <section class="py-16 md:py-24"> | ||||
|   <div class="container mx-auto px-4"> | ||||
|      | ||||
|     <!--  | ||||
|       CONTACT GRID | ||||
|       - lg:grid-cols-3: 3-column grid on desktop | ||||
|       - Form spans 2 columns, contact info spans 1 | ||||
|     --> | ||||
|     <div class="grid grid-cols-1 lg:grid-cols-3 gap-12"> | ||||
|        | ||||
|       <!-- Contact Form (spans 2 columns on desktop) --> | ||||
|       <div class="lg:col-span-2"> | ||||
|         <div class="card bg-base-100 shadow-lg"> | ||||
|           <div class="card-body"> | ||||
|             <h2 class="card-title text-2xl mb-6"> | ||||
|               <MessageSquare class="h-6 w-6" /> | ||||
|               Send us a Message | ||||
|             </h2> | ||||
|              | ||||
|             <form onsubmit={handleSubmit} class="space-y-6"> | ||||
|                | ||||
|               <!--  | ||||
|                 FORM GRID | ||||
|                 - Two-column layout for name/email on desktop | ||||
|                 - Single column on mobile | ||||
|               --> | ||||
|               <div class="grid grid-cols-1 md:grid-cols-2 gap-4"> | ||||
|                 <div class="form-control"> | ||||
|                   <label class="label" for="name"> | ||||
|                     <span class="label-text">Name *</span> | ||||
|                   </label> | ||||
|                   <input  | ||||
|                     type="text"  | ||||
|                     id="name" | ||||
|                     bind:value={formData.name} | ||||
|                     placeholder="Your full name"  | ||||
|                     class="input input-bordered w-full"  | ||||
|                     required  | ||||
|                   /> | ||||
|                 </div> | ||||
|                  | ||||
|                 <div class="form-control"> | ||||
|                   <label class="label" for="email"> | ||||
|                     <span class="label-text">Email *</span> | ||||
|                   </label> | ||||
|                   <input  | ||||
|                     type="email"  | ||||
|                     id="email" | ||||
|                     bind:value={formData.email} | ||||
|                     placeholder="your.email@example.com"  | ||||
|                     class="input input-bordered w-full"  | ||||
|                     required  | ||||
|                   /> | ||||
|                 </div> | ||||
|               </div> | ||||
|                | ||||
|               <div class="form-control"> | ||||
|                 <label class="label" for="subject"> | ||||
|                   <span class="label-text">Subject *</span> | ||||
|                 </label> | ||||
|                 <input  | ||||
|                   type="text"  | ||||
|                   id="subject" | ||||
|                   bind:value={formData.subject} | ||||
|                   placeholder="What's this about?"  | ||||
|                   class="input input-bordered w-full"  | ||||
|                   required  | ||||
|                 /> | ||||
|               </div> | ||||
|                | ||||
|               <div class="form-control"> | ||||
|                 <label class="label" for="message"> | ||||
|                   <span class="label-text">Message *</span> | ||||
|                 </label> | ||||
|                 <textarea  | ||||
|                   id="message" | ||||
|                   bind:value={formData.message} | ||||
|                   class="textarea textarea-bordered h-32"  | ||||
|                   placeholder="Tell us more about your question or feedback..." | ||||
|                   required | ||||
|                 ></textarea> | ||||
|               </div> | ||||
|                | ||||
|               <div class="form-control"> | ||||
|                 <button type="submit" class="btn btn-primary btn-lg"> | ||||
|                   <Send class="h-5 w-5" /> | ||||
|                   Send Message | ||||
|                 </button> | ||||
|               </div> | ||||
|             </form> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|        | ||||
|       <!-- Contact Information Sidebar --> | ||||
|       <div class="lg:col-span-1"> | ||||
|         <div class="space-y-6"> | ||||
|            | ||||
|           <!-- Contact Info Card --> | ||||
|           <div class="card bg-base-100 shadow-lg"> | ||||
|             <div class="card-body"> | ||||
|               <h3 class="card-title"> | ||||
|                 <Mail class="h-5 w-5" /> | ||||
|                 Contact Info | ||||
|               </h3> | ||||
|               <div class="space-y-4"> | ||||
|                 <div> | ||||
|                   <h4 class="font-semibold">Email</h4> | ||||
|                   <p class="text-sm text-base-content/70">hello@gridframework.dev</p> | ||||
|                 </div> | ||||
|                 <div> | ||||
|                   <h4 class="font-semibold">Response Time</h4> | ||||
|                   <p class="text-sm text-base-content/70">Usually within 24 hours</p> | ||||
|                 </div> | ||||
|                 <div> | ||||
|                   <h4 class="font-semibold">Best For</h4> | ||||
|                   <p class="text-sm text-base-content/70"> | ||||
|                     Technical questions, bug reports, feature requests, and general feedback. | ||||
|                   </p> | ||||
|                 </div> | ||||
|               </div> | ||||
|             </div> | ||||
|           </div> | ||||
|            | ||||
|           <!-- Social Links Card --> | ||||
|           <div class="card bg-base-100 shadow-lg"> | ||||
|             <div class="card-body"> | ||||
|               <h3 class="card-title">Follow Us</h3> | ||||
|               <div class="flex gap-4"> | ||||
|                 <a href="#" class="btn btn-circle btn-outline btn-sm"> | ||||
|                   <Github class="h-4 w-4" /> | ||||
|                 </a> | ||||
|                 <a href="#" class="btn btn-circle btn-outline btn-sm"> | ||||
|                   <Twitter class="h-4 w-4" /> | ||||
|                 </a> | ||||
|                 <a href="#" class="btn btn-circle btn-outline btn-sm"> | ||||
|                   <Linkedin class="h-4 w-4" /> | ||||
|                 </a> | ||||
|               </div> | ||||
|               <p class="text-sm text-base-content/70 mt-3"> | ||||
|                 Stay updated with the latest framework updates and tips. | ||||
|               </p> | ||||
|             </div> | ||||
|           </div> | ||||
|            | ||||
|           <!-- FAQ Card --> | ||||
|           <div class="card bg-base-100 shadow-lg"> | ||||
|             <div class="card-body"> | ||||
|               <h3 class="card-title">Quick FAQ</h3> | ||||
|               <div class="space-y-3"> | ||||
|                 <div> | ||||
|                   <h4 class="font-semibold text-sm">Is this framework free?</h4> | ||||
|                   <p class="text-xs text-base-content/70">Yes, completely open source and free to use.</p> | ||||
|                 </div> | ||||
|                 <div> | ||||
|                   <h4 class="font-semibold text-sm">Can I contribute?</h4> | ||||
|                   <p class="text-xs text-base-content/70">Absolutely! Check our GitHub for contribution guidelines.</p> | ||||
|                 </div> | ||||
|                 <div> | ||||
|                   <h4 class="font-semibold text-sm">Browser support?</h4> | ||||
|                   <p class="text-xs text-base-content/70">All modern browsers (Chrome, Firefox, Safari, Edge).</p> | ||||
|                 </div> | ||||
|               </div> | ||||
|             </div> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|   </div> | ||||
| </section> | ||||
|  | ||||
| <!--  | ||||
|   ADDITIONAL RESOURCES SECTION | ||||
|   - Three-column grid with helpful resources | ||||
|   - Demonstrates equal-width columns | ||||
| --> | ||||
| <section class="py-16 md:py-24 bg-base-200"> | ||||
|   <div class="container mx-auto px-4"> | ||||
|     <div class="text-center mb-12"> | ||||
|       <h2 class="text-3xl md:text-4xl font-bold mb-4">Other Ways to Connect</h2> | ||||
|       <p class="text-lg text-base-content/70 max-w-2xl mx-auto"> | ||||
|         Multiple channels to get help and stay informed about the framework. | ||||
|       </p> | ||||
|     </div> | ||||
|      | ||||
|     <!--  | ||||
|       RESOURCES GRID | ||||
|       - Equal columns: 1 on mobile, 3 on desktop | ||||
|       - Perfect for showcasing multiple options | ||||
|     --> | ||||
|     <div class="grid grid-cols-1 md:grid-cols-3 gap-8"> | ||||
|        | ||||
|       <div class="card bg-base-100 shadow-lg"> | ||||
|         <div class="card-body text-center"> | ||||
|           <Github class="h-12 w-12 mx-auto mb-4 text-primary" /> | ||||
|           <h3 class="card-title justify-center">GitHub</h3> | ||||
|           <p class="mb-4"> | ||||
|             View source code, report issues, and contribute to the project. | ||||
|           </p> | ||||
|           <div class="card-actions justify-center"> | ||||
|             <button class="btn btn-primary btn-sm">View Repository</button> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|        | ||||
|       <div class="card bg-base-100 shadow-lg"> | ||||
|         <div class="card-body text-center"> | ||||
|           <MessageSquare class="h-12 w-12 mx-auto mb-4 text-secondary" /> | ||||
|           <h3 class="card-title justify-center">Community</h3> | ||||
|           <p class="mb-4"> | ||||
|             Join our Discord community for real-time help and discussions. | ||||
|           </p> | ||||
|           <div class="card-actions justify-center"> | ||||
|             <button class="btn btn-secondary btn-sm">Join Discord</button> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|        | ||||
|       <div class="card bg-base-100 shadow-lg"> | ||||
|         <div class="card-body text-center"> | ||||
|           <Mail class="h-12 w-12 mx-auto mb-4 text-accent" /> | ||||
|           <h3 class="card-title justify-center">Newsletter</h3> | ||||
|           <p class="mb-4"> | ||||
|             Get monthly updates about new features and best practices. | ||||
|           </p> | ||||
|           <div class="card-actions justify-center"> | ||||
|             <button class="btn btn-accent btn-sm">Subscribe</button> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|   </div> | ||||
| </section> | ||||
							
								
								
									
										3
									
								
								static/robots.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								static/robots.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| # allow crawling everything by default | ||||
| User-agent: * | ||||
| Disallow: | ||||
							
								
								
									
										18
									
								
								svelte.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								svelte.config.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| import adapter from '@sveltejs/adapter-auto'; | ||||
| import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; | ||||
|  | ||||
| /** @type {import('@sveltejs/kit').Config} */ | ||||
| const config = { | ||||
| 	// Consult https://svelte.dev/docs/kit/integrations | ||||
| 	// for more information about preprocessors | ||||
| 	preprocess: vitePreprocess(), | ||||
|  | ||||
| 	kit: { | ||||
| 		// adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list. | ||||
| 		// If your environment is not supported, or you settled on a specific environment, switch out the adapter. | ||||
| 		// See https://svelte.dev/docs/kit/adapters for more information about adapters. | ||||
| 		adapter: adapter() | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| export default config; | ||||
							
								
								
									
										27
									
								
								tailwind.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								tailwind.config.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| /** @type {import('tailwindcss').Config} */ | ||||
| export default { | ||||
|   content: ['./src/**/*.{html,js,svelte,ts}'], | ||||
|   theme: { | ||||
|     extend: {}, | ||||
|   }, | ||||
|   plugins: [require('daisyui'), require('@tailwindcss/typography')], | ||||
|   daisyui: { | ||||
|     themes: [ | ||||
|       { | ||||
|         gamestore: { | ||||
|           "primary": "#3b82f6", | ||||
|           "secondary": "#8b5cf6",  | ||||
|           "accent": "#06b6d4", | ||||
|           "neutral": "#1f2937", | ||||
|           "base-100": "#ffffff", | ||||
|           "info": "#0ea5e9", | ||||
|           "success": "#10b981", | ||||
|           "warning": "#f59e0b", | ||||
|           "error": "#ef4444", | ||||
|         }, | ||||
|       }, | ||||
|       "dark", | ||||
|       "light", | ||||
|     ], | ||||
|   }, | ||||
| } | ||||
							
								
								
									
										19
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| { | ||||
| 	"extends": "./.svelte-kit/tsconfig.json", | ||||
| 	"compilerOptions": { | ||||
| 		"allowJs": true, | ||||
| 		"checkJs": true, | ||||
| 		"esModuleInterop": true, | ||||
| 		"forceConsistentCasingInFileNames": true, | ||||
| 		"resolveJsonModule": true, | ||||
| 		"skipLibCheck": true, | ||||
| 		"sourceMap": true, | ||||
| 		"strict": true, | ||||
| 		"moduleResolution": "bundler" | ||||
| 	} | ||||
| 	// Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias | ||||
| 	// except $lib which is handled by https://svelte.dev/docs/kit/configuration#files | ||||
| 	// | ||||
| 	// To make changes to top-level options such as include and exclude, we recommend extending | ||||
| 	// the generated config; see https://svelte.dev/docs/kit/configuration#typescript | ||||
| } | ||||
							
								
								
									
										11
									
								
								vite.config.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								vite.config.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| import { sveltekit } from '@sveltejs/kit/vite'; | ||||
| import { defineConfig } from 'vite'; | ||||
|  | ||||
| export default defineConfig({ | ||||
| 	plugins: [sveltekit()], | ||||
| 	server: { | ||||
| 		host: '0.0.0.0', | ||||
| 		port: 12000, | ||||
| 		allowedHosts: true | ||||
| 	} | ||||
| }); | ||||
		Reference in New Issue
	
	Block a user
	 openhands
					openhands