Starter template structure with Nuxt 4 + Vue 3 + TypeScript
nuxt4-template-swiss-style — Nuxt Starter Template
By manuelhintermayr
A Nuxt 4 starter template with Swiss International Typographic Style, integrating Nuxt UI, i18n, and a mouse follower effect.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Preview provided in the project README.
One original preview is available. Open the full image to inspect the design.
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Nuxt UI components and Tailwind CSS styling system
Swiss-style grid layout and typographic hierarchy
@nuxtjs/i18n internationalization, with English and German by default
GSAP and Mouse Follower for scroll animations and custom cursor
Template Details
This is a Nuxt 4 starter template that visually adopts the Swiss Style (International Typographic Style), emphasizing grid layout, clarity, and typographic hierarchy. The UI layer uses Nuxt UI (built on Tailwind CSS and Headless UI), with icons from Heroicons and @nuxt/icon. The template includes @nuxtjs/i18n, providing English (en) and German (de) by default, with translation files lazy-loaded on demand; the language switcher saves the user's choice to localStorage and restores it on reload. For interactions, it integrates GSAP, ScrollTrigger, and Cuberto's Mouse Follower for scroll animations and custom cursor states (pointer, text, hidden, inverted, etc.). The project uses TypeScript and provides several maintenance scripts: checking for unused variables, analyzing i18n string usage, and cleaning up unused translation strings. The repository is released under the MIT license, with the free scope covering this version's code; demo images, fonts, icons, and other third-party assets must be checked against their respective licenses.
Is it right for your project?
Use Cases
- Building multilingual landing pages with Swiss-style typography
- Developing front-end interfaces based on the Nuxt UI component library
- Adding custom mouse cursor and scroll animation effects to a project
- Demonstrating i18n language switching and persistence in a Nuxt project
Suitable For
- Front-end developers familiar with Nuxt and Vue
- Showcase website projects requiring multilingual support
- Interface designs favoring grid-based, restrained typography
- Those who want to start secondary development from MIT-licensed code
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
After cloning the repository, install dependencies using npm, pnpm, yarn, or bun
- 2
Run npm run dev to start the development server at localhost:3000
- 3
To add a language, add a JSON file in i18n/locales and update the locales configuration in nuxt.config.ts
- 4
Scripts in the scripts directory can be used to check for unused variables and clean up i18n strings
- 5
Third-party assets and external services require separate license and cost verification
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in a public repository; the free scope is limited to this version's code and does not imply that external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version's code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as-is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- The template integrates the third-party library Cuberto Mouse Follower, which is released under its own license; its terms must be followed when used.
- The template uses the GSAP animation library, which has its own license terms (including commercial use conditions) that must be checked separately.
- UI components are implemented based on Nuxt UI, which may have its own license or commercial terms that must be checked separately.
- The template includes only English and German by default; other languages require adding translation files and configuration.
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domain, hosting, database, payment, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
**Mouse Follower** by Cuberto, providing smooth and professional cursor effects
Original README
**[GSAP](https://greensock.com/gsap/)** - Professional-grade animation library
Original README
**All UI components implemented based on [Nuxt UI Documentation](https://ui.nuxt.com/components/app)**
Original README
https://github.com/manuelhintermayr/nuxt4-template-swiss-style/blob/main/LICENSEhttps://github.com/manuelhintermayr/nuxt4-template-swiss-style/blob/main/README.md**Support for:** English (en) and German (de) out of the box
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-03. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 77 / 100
- Technologies
- Nuxt · Vue
- Website type
- Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2025-09-17
- Screenshot last checked
- 2026-10-03
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Nuxt as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: 2229617085d9e4c9a60defdc9d81145c7ef921ebd31a5ac3a901f96bcbe0cc3e
2026-10-03T02:04:01.885Z
Source file / repository# Nuxt 4 Template – Swiss Style
A Nuxt 4 template with nuxt/ui (including Tailwind CSS) and i18n support in the Swiss Style (International Typographic Style). Modern, production-ready starter for web applications with a focus on clarity, grid, and internationalization.

**🌐 Live Demo:** [http://projects.manuelhintermayr.com/nuxt4-template-swiss-style](http://projects.manuelhintermayr.com/nuxt4-template-swiss-style)
**Developed by:** [Manuel Hintermayr](https://github.com/manuelhintermayr)
**Repository:** [https://github.com/manuelhintermayr/nuxt4-template-swiss-style](https://github.com/manuelhintermayr/nuxt4-template-swiss-style)
_Based on [nuxt4-template](https://github.com/manuelhintermayr/nuxt4-template)_
## 🚀 Features
- ⚡️ **Nuxt 4** - Latest version with improved performance and new features
- 🎨 **Nuxt UI** - Modern UI components based on Tailwind CSS and Headless UI
- 🖼️ **Swiss Style** - Layout and design inspired by the International Typographic Style (Swiss Style)
- 🌍 **Internationalization** - Full i18n support with @nuxtjs/i18n
- 🌙 **Dark Mode** - Built-in dark/light mode toggle
- 📱 **Responsive Design** - Mobile-first approach
- 🔧 **TypeScript** - Full TypeScript support with type safety
- 🎯 **Component Architecture** - Modular, reusable Vue components
- 🎭 **Heroicons** - Beautiful SVG icons from the Heroicons library
- 🐭 **Mouse Follower** - Smooth mouse cursor effects with GSAP animations
- 🏗️ **Developer Experience** - Hot module replacement and fast refresh
- 🔍 **Code Quality Tools** - Automated unused variable detection and i18n management
- ⚙️ **VS Code Integration** - Pre-configured settings for optimal development experience

## 🛠️ Technology Stack
### Core Frameworks
- **[Nuxt 4](https://nuxt.com/)** - The Intuitive Vue Framework
- **[Vue 3](https://vuejs.org/)** - Progressive JavaScript Framework
### UI & Styling
- **[Nuxt UI](https://ui.nuxt.com/)** - Fully styled and customizable components
- **[Tailwind CSS](https://tailwindcss.com/)** - Utility-first CSS framework
- **Swiss Style Principles** - Grid-based layouts, clarity, and typographic hierarchy following the International Typographic Style
- **All UI components implemented based on [Nuxt UI Documentation](https://ui.nuxt.com/components/app)**
### Animation & Effects
- **[GSAP](https://greensock.com/gsap/)** - Professional-grade animation library
- **[ScrollTrigger](https://greensock.com/scrolltrigger/)** - Scroll-based animation trigger
- **[Mouse Follower](https://github.com/Cuberto/mouse-follower)** - Smooth mouse cursor effects
### Internationalization
- **[@nuxtjs/i18n](https://i18n.nuxtjs.org/)** - Internationalization module
- **Support for:** English (en) and German (de) out of the box
- **Lazy loading** - Translation files loaded on demand
### Icons & Assets
- **[@iconify-json/heroicons](https://iconify.design/)** - Heroicons icon collection
- **[@nuxt/icon](https://github.com/nuxt/icon)** - Icon component with 200k+ icons
### Development Tools
- **TypeScript** - Full type safety and IntelliSense
- **VS Code Integration** - Automatic code cleanup and unused import removal
- **Utility Scripts** - i18n management and code quality checks
## 📦 Installation
```bash
# Clone the repository
git clone https://github.com/manuelhintermayr/nuxt4-template-swiss-style.git
cd nuxt4-template-swiss-style
# Install dependencies
npm install
# or
pnpm install
# or
yarn install
# or
bun install
```
## 🚦 Development
Start the development server on `http://localhost:3000`:
```bash
npm run dev
# or
pnpm dev
# or
yarn dev
# or
bun run dev
```
### Additional Development Commands
```bash
# Code Quality Checks
npm run check:unused-vars # Check for unused variables
npm run check:unused-vars-enhanced # Enhanced unused variable analysis
npm run lint:check # Run all code quality checks
# i18n Management
npm run analyze:i18n # Analyze i18n string usage
npm run cleanup:i18n # Remove unused i18n strings
# Production Build
npm run build # Build for production
npm run preview # Preview production build
```
## 🏗️ Project Structure
```
nuxt4-template-swiss-style/
├── app/
│ ├── app.config.ts # App configuration
│ ├── app.vue # Root application component
│ ├── assets/
│ │ └── css/ # Global styles and CSS files
│ ├── components/ # Reusable Vue components for showcase (including a language switcher)
│ ├── layouts/
│ │ └── default.vue # Default layout template
│ ├── pages/
│ │ └── index.vue # Main landing page
│ └── plugins/
│ ├── mouse-follower.client.ts # Mouse cursor effects initialization
│ └── gsap-animations.client.ts # GSAP animations and scroll effects
├── i18n/
│ ├── i18n.config.ts # i18n configuration
│ └── locales/ # Translation files
│ ├── en.json # English translations
│ └── de.json # German translations
├── scripts/ # Utility scripts for development and maintenance
│ ├── analyze-i18n-strings.js # Analyze i18n string usage across codebase
│ ├── cleanup-i18n-strings.js # Remove unused i18n strings automatically
│ ├── check-unused-vars.js # Check for unused variables in all files
│ ├── check-unused-vars-enhanced.js # Enhanced unused variable analysis
│ └── README.md # Documentation for utility scripts
├── public/ # Static assets
├── nuxt.config.ts # Nuxt configuration
├── package.json # Dependencies and scripts
├── package-lock.json # Lock file for dependencies
└── tsconfig.json # TypeScript configuration
```
## 🎨 Component Architecture
### Modular Design
All UI elements are extracted into reusable components following Vue.js best practices:
- **Props-based components** - `FeatureCard.vue` accepts title, description, icon, and color props
- **Composable integration** - Uses Nuxt's auto-imported composables like `useI18n`
- **TypeScript interfaces** - Fully typed props and component APIs
- **Scoped styling** - Component-specific styles when needed
### Available Components
#### Layout Components
- `AppHeader` - Navigation header with logo, title, language switcher, and dark mode toggle
- `WelcomeSection` - Hero section with internationalized welcome message
## 🐭 Mouse Follower Integration
This template includes **Mouse Follower** by Cuberto, providing smooth and professional cursor effects.
### Features:
- **Pointer Detection** - Automatic cursor changes on interactive elements (buttons, links)
- **State Detection** - Custom cursor states for different element types
- **GSAP Integration** - Smooth animations powered by GreenSock
- **Performance Optimized** - Efficient animation loops and event handling
### Usage:
Add data attributes to elements for custom cursor behavior:
```html
<!-- Pointer cursor -->
<button data-cursor-pointer>Click me</button>
<!-- Text cursor -->
<p data-cursor-text>Selectable text</p>
<!-- Hidden cursor -->
<div data-cursor="-hidden">No cursor here</div>
<!-- Inverse cursor -->
<div data-cursor="-inverse">Inverted cursor</div>
```
The cursor automatically detects:
- `a, button` elements → pointer cursor
- Form inputs → text cursor
- Custom data attributes → specific states
## 🎭 GSAP Animations
This template includes a comprehensive **GSAP (GreenSock Animation Platform)** integration with advanced scroll-based animations and interactive effects.
## 🌍 Internationalization
### Supported Languages
- **English (en)** - Default language
- **German (de)** - Secondary language
### Language Persistence
The `LanguageSwitcher` component includes advanced locale management:
- **Default Behavior**: Always defaults to English on first visit
- **Persistence**: User's language choice is saved to localStorage
- **Restoration**: Automatically restores saved language preference on page reload
- **Type Safety**: Only accepts valid locale codes ('en', 'de')
- **Props Support**: Accepts `isBlack` prop for styling variations
### Translation Structure
```json
{
"header": {
"title": "Page title"
},
"welcome": {
"title": "Welcome message",
"subtitle": "Description"
},
"features": {
"nuxt4": {
"title": "Feature title",
"description": "Feature description"
}
}
}
```
### Adding New Languages
1. Create a new JSON file in `i18n/locales/` (e.g., `fr.json`)
2. Add the locale configuration in `nuxt.config.ts`:
```typescript
locales: [
{ code: 'en', name: 'English', file: 'en.json' },
{ code: 'de', name: 'Deutsch', file: 'de.json' },
{ code: 'fr', name: 'Français', file: 'fr.json' }
]
```
### Maintenance Scripts
The template includes utility scripts for development and maintenance:
#### i18n Management:
- **`scripts/analyze-i18n-strings.js`** - Analyze string usage and identify unused translations
- **`scripts/cleanup-i18n-strings.js`** - Automatically remove unused strings from translation files
#### Code Quality:
- **`scripts/check-unused-vars.js`** - Check for unused variables across all TypeScript/Vue files
- **`scripts/check-unused-vars-enhanced.js`** - Enhanced analysis with import checking
See [`scripts/README.md`](scripts/README.md) for detailed usage instructions.
## 🏭 Production
Build the application for production:
```bash
npm run build
# or
pnpm build
# or
yarn build
# or
bun run build
```
Preview the production build locally:
```bash
npm run preview
# or
pnpm preview
# or
yarn preview
# or
bun run preview
```
## 📚 Documentation
- **[Nuxt 4 Documentation](https://nuxt.com/docs/getting-started/introduction)** - Learn about Nuxt features
- **[Nuxt UI Documentation](https://ui.nuxt.com/)** - UI component library
- **[Vue 3 Documentation](https://vuejs.org/guide/)** - Vue.js framework guide
- **[Tailwind CSS Documentation](https://tailwindcss.com/docs)** - Utility-first CSS
- **[GSAP Documentation](https://greensock.com/docs/)** - Animation library guide
- **[ScrollTrigger Documentation](https://greensock.com/docs/v3/Plugins/ScrollTrigger)** - Scroll animations
- **[Nuxt i18n Documentation](https://i18n.nuxtjs.org/)** - Internationalization guide
- **[TypeScript Documentation](https://www.typescriptlang.org/docs/)** - TypeScript handbook
- **[Mouse Follower Documentation](https://github.com/Cuberto/mouse-follower/blob/dev/README.MD)** - Smooth cursor effects library
## 🤝 Contributing
This template is designed to be a starting point for Nuxt 4 projects. Feel free to:
- Fork the repository
- Customize components and styling
- Add new features and integrations
- Submit pull requests for improvements
- Report issues and suggestions
## 📄 License
This project is open source and available under the [MIT License](LICENSE).
## 💝 Acknowledgments
- **Nuxt Team** for the amazing framework
- **Tailwind Labs** for Tailwind CSS and Headless UI
- **Heroicons** for the beautiful icon set
- **Vue.js Team** for the progressive framework
- **GreenSock** for the incredible [GSAP](https://greensock.com/) animation library
- **Cuberto** for the incredible [Mouse Follower](https://github.com/Cuberto/mouse-follower) library
---
**Happy coding!** 🚀
Built with ❤️ by [Manuel Hintermayr](https://github.com/manuelhintermayr)
Explore similar templates
Compare previews and descriptions within the same stack and category.

laravel-nuxt
A Laravel + Nuxt decoupled starter kit with built-in login, registration, email verification, password reset, and Socialite third-party login (GitHub example), switchable between SPA and SSR.
Nuxt · Starter

canvas
Canvas is a Nuxt-based portfolio template that uses Nuxt Content for content management and Nuxt UI with Tailwind CSS for pages.
Nuxt · Portfolio

nuxt3-starter
A Nuxt 3 starter template generated by nuxi, preconfigured with UnoCSS, unplugin-icons, Pinia, and VueUse. It suits developers who need a quick Nuxt 3 project skeleton with atomic CSS and auto-import workflows, and is available under the MIT license.
Nuxt · Starter

starter
The official Nuxt starter template for Nuxt UI, based on Nuxt and Vue. It provides a runnable project skeleton, an online demo, and Nuxt UI installation documentation, with README commands for creating, installing, developing, building, and previewing.
Nuxt · Starter

bloggrify
Bloggrify is a Nuxt layer that turns Markdown files into a blog site, built on Nuxt Content with preconfigured analytics, newsletter, comments, SEO, RSS, and content components.
Nuxt · Blog

vitify-nuxt
Vitify Nuxt is an admin dashboard starter template built on Nuxt and Vuetify, featuring a drawer layout, automatic navigation and breadcrumbs, notification state, ECharts charts, theming and dark mode, and authentication via nuxt-auth-utils.
Nuxt · Admin dashboard
