Premium, video-centric football club website built with SvelteKit, TypeScript, and Tailwind CSS.
Emirates Sport Club is a premium football club website built with modern web technologies. It stands out with its video-centric design, smooth animations, and user-friendly interface.
The website consists of the following main sections:
Clone the repository:
git clone <repository-url>
cd emirates-sport-club
Install dependencies:
npm install
Start the development server:
npm run dev
Open http://localhost:5173 in your browser.
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
# Run TypeScript check
npm run check
# Run TypeScript check in watch mode
npm run check:watch
The development server runs on http://localhost:5173 by default. You can modify the port settings in the vite.config.ts file.
To create a production build:
npm run build
The build output will be saved to the build/ folder. To test the build locally:
npm run preview
emirates-sport-club/
āāā src/
ā āāā lib/
ā ā āāā components/ # Reusable Svelte components
ā ā ā āāā AcademyForm.svelte
ā ā ā āāā CustomCursor.svelte
ā ā ā āāā Footer.svelte
ā ā ā āāā Header.svelte
ā ā ā āāā Navbar.svelte
ā ā ā āāā PageTransition.svelte
ā ā ā āāā Preloader.svelte
ā ā ā āāā VideoCard.svelte
ā ā āāā stores/ # Svelte stores
ā ā ā āāā preloader.ts
ā ā āāā types/ # TypeScript type definitions
ā ā ā āāā index.ts
ā ā āāā utils/ # Utility functions
ā ā ā āāā gsap.ts # GSAP configuration
ā ā ā āāā lenis.ts # Lenis configuration
ā ā ā āāā index.ts
ā ā āāā assets/ # Static assets
ā ā āāā favicon.svg
ā āāā routes/ # SvelteKit routes
ā ā āāā +layout.svelte # Main layout
ā ā āāā +page.svelte # Home page
ā ā āāā academy/ # Academy page
ā ā āāā news/ # News page
ā ā ā āāā [slug]/ # Dynamic news detail page
ā ā āāā squad/ # Squad page
ā ā ā āāā [id]/ # Dynamic player detail page
ā ā āāā store/ # Store page
ā āāā app.css # Global CSS
āāā static/ # Static files
ā āāā *.mp4 # Video files
ā āāā favicon.svg
ā āāā manifest.json
ā āāā robots.txt
āāā package.json
āāā svelte.config.js # SvelteKit configuration
āāā vite.config.ts # Vite configuration
āāā tailwind.config.js # Tailwind CSS configuration
āāā tsconfig.json # TypeScript configuration
#D4AF37 - Main brand color#0A0A0A - Background and accent#FFFFFF - Text and contrastHeadlines: Oswald (Google Fonts)
Body Text: Inter (Google Fonts)
The project uses Tailwind CSS's utility-first approach. The standard spacing scale (4px, 8px, 16px, 24px, etc.) is used.
Full-screen video backgrounds are used for each section on the home page. Stacked pinning effect is applied with GSAP ScrollTrigger.
Smooth scrolling is provided across the entire site using the Lenis library.
Custom animations are used for page transitions. Managed with the PageTransition.svelte component.
Custom cursor effect is enabled in desktop view (CustomCursor.svelte).
To import GSAP and ScrollTrigger:
import { gsap, ScrollTrigger } from '$lib/utils/gsap';
To initialize smooth scrolling:
import { initLenis, getLenis } from '$lib/utils/lenis';
// Initialize
initLenis();
// Get instance
const lenis = getLenis();
To use Lucide Svelte icons:
<script>
import { Menu, X, Instagram } from 'lucide-svelte';
</script>
<Menu class="w-6 h-6" />
To check preloader state:
import { isPreloaderLoaded } from '$lib/stores/preloader';
const unsubscribe = isPreloaderLoaded.subscribe((loaded) => {
if (loaded) {
// Preloader completed
}
});
static/ folder and may be large in sizeWe welcome contributions! Please see our Contributing Guide for details.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)This project is licensed under the MIT License - see the LICENSE file for details.
For questions or suggestions, please open an issue or contact us.
Emirates Sport Club Ā© 2025 - Beyond The Game