├── .gitignore ├── .npmrc ├── .vscode ├── settings.json └── tailwind.json ├── LICENSE ├── README-en.md ├── README.md ├── components.json ├── eslint.config.js ├── next-env.d.ts ├── next.config.ts ├── package.json ├── pnpm-lock.yaml ├── postcss.config.mjs ├── public └── img │ ├── favicon.svg │ ├── next.svg │ └── vercel.svg ├── src ├── app │ ├── [lang] │ │ ├── [[...mdxPath]] │ │ │ └── page.tsx │ │ ├── _components │ │ │ └── ThemeProvider.tsx │ │ ├── layout.tsx │ │ ├── not-found.ts │ │ └── styles │ │ │ ├── index.css │ │ │ └── overrides.css │ └── _dictionaries │ │ └── get-dictionary.ts ├── assets │ └── images │ │ ├── hero-tile-dark.svg │ │ └── hero-tile-light.svg ├── components │ ├── CustomFooter │ │ └── index.tsx │ ├── HomepageHero │ │ ├── Section.tsx │ │ ├── Setup.tsx │ │ ├── SetupHero.module.css │ │ └── index.tsx │ ├── MotionWrapper │ │ ├── FadeIn.tsx │ │ ├── Flash.tsx │ │ └── index.ts │ ├── PanelParticles │ │ └── index.tsx │ ├── ThemeSwitcher │ │ └── index.tsx │ ├── TitleBadge │ │ └── index.tsx │ └── ui │ │ ├── accordion.tsx │ │ ├── alert.tsx │ │ ├── button.tsx │ │ ├── card-hover-effect.tsx │ │ ├── flip-words.tsx │ │ ├── hover-card.tsx │ │ ├── link-preview.tsx │ │ ├── separator.tsx │ │ └── toggle.tsx ├── content │ ├── en │ │ ├── _meta.tsx │ │ ├── docs │ │ │ ├── _meta.tsx │ │ │ ├── examples │ │ │ │ ├── test-tailwind.mdx │ │ │ │ └── theme-update.mdx │ │ │ ├── i18n.mdx │ │ │ └── index.mdx │ │ ├── index.mdx │ │ ├── introduction.mdx │ │ └── upgrade.mdx │ └── zh │ │ ├── _meta.tsx │ │ ├── docs │ │ ├── _meta.tsx │ │ ├── examples │ │ │ ├── test-tailwind.mdx │ │ │ └── theme-update.mdx │ │ ├── i18n.mdx │ │ └── index.mdx │ │ ├── index.mdx │ │ ├── introduction.mdx │ │ └── upgrade.mdx ├── favicon.ico ├── hooks │ ├── index.ts │ ├── useBreakpoint.ts │ ├── useLocale.ts │ └── useServerLocale.ts ├── i18n │ ├── en.ts │ ├── index.ts │ └── zh.ts ├── lib │ └── utils.ts ├── mdx-components.ts ├── middleware.ts └── widgets │ ├── locale-toggle.tsx │ └── theme-toggle.tsx └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | _pagefind/ 19 | 20 | # misc 21 | .DS_Store 22 | *.pem 23 | 24 | # debug 25 | npm-debug.log* 26 | yarn-debug.log* 27 | yarn-error.log* 28 | 29 | # local env files 30 | .env*.local 31 | 32 | # vercel 33 | .vercel 34 | 35 | # typescript 36 | *.tsbuildinfo 37 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | enable-pre-post-scripts=true 2 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "css.customData": [".vscode/tailwind.json"], 3 | "editor.formatOnSave": false, 4 | "editor.codeActionsOnSave": { 5 | "source.fixAll.eslint": "explicit", 6 | "source.fixAll.stylelint": "explicit" 7 | }, 8 | "javascript.preferences.importModuleSpecifier": "project-relative", 9 | "typescript.suggest.jsdoc.generateReturns": false, 10 | "typescript.tsserver.experimental.enableProjectDiagnostics": true, 11 | "typescript.tsdk": "node_modules/typescript/lib" 12 | } 13 | -------------------------------------------------------------------------------- /.vscode/tailwind.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1.1, 3 | "atDirectives": [ 4 | { 5 | "name": "@tailwind", 6 | "description": "Use the `@tailwind` directive to insert Tailwind's `base`, `components`, `utilities` and `screens` styles into your CSS.", 7 | "references": [ 8 | { 9 | "name": "Tailwind Documentation", 10 | "url": "https://tailwindcss.com/docs/functions-and-directives#tailwind" 11 | } 12 | ] 13 | }, 14 | { 15 | "name": "@apply", 16 | "description": "Use the `@apply` directive to inline any existing utility classes into your own custom CSS. This is useful when you find a common utility pattern in your HTML that you’d like to extract to a new component.", 17 | "references": [ 18 | { 19 | "name": "Tailwind Documentation", 20 | "url": "https://tailwindcss.com/docs/functions-and-directives#apply" 21 | } 22 | ] 23 | }, 24 | { 25 | "name": "@responsive", 26 | "description": "You can generate responsive variants of your own classes by wrapping their definitions in the `@responsive` directive:\n```css\n@responsive {\n .alert {\n background-color: #E53E3E;\n }\n}\n```\n", 27 | "references": [ 28 | { 29 | "name": "Tailwind Documentation", 30 | "url": "https://tailwindcss.com/docs/functions-and-directives#responsive" 31 | } 32 | ] 33 | }, 34 | { 35 | "name": "@screen", 36 | "description": "The `@screen` directive allows you to create media queries that reference your breakpoints by **name** instead of duplicating their values in your own CSS:\n```css\n@screen sm {\n /* ... */\n}\n```\n…gets transformed into this:\n```css\n@media (min-width: 640px) {\n /* ... */\n}\n```\n", 37 | "references": [ 38 | { 39 | "name": "Tailwind Documentation", 40 | "url": "https://tailwindcss.com/docs/functions-and-directives#screen" 41 | } 42 | ] 43 | }, 44 | { 45 | "name": "@variants", 46 | "description": "Generate `hover`, `focus`, `active` and other **variants** of your own utilities by wrapping their definitions in the `@variants` directive:\n```css\n@variants hover, focus {\n .btn-brand {\n background-color: #3182CE;\n }\n}\n```\n", 47 | "references": [ 48 | { 49 | "name": "Tailwind Documentation", 50 | "url": "https://tailwindcss.com/docs/functions-and-directives#variants" 51 | } 52 | ] 53 | }, 54 | { 55 | "name": "@reference", 56 | "description": "If you want to use @apply or @variant in the