Skip to content

Commit 851ff2e

Browse files
Merge branch 'main' into add-new-skill-clean
2 parents 2ee692a + b492cfe commit 851ff2e

8 files changed

Lines changed: 328 additions & 11 deletions

File tree

.codespellrc

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
[codespell]
2+
# Ignore intentional misspellings used as examples and technical terms
3+
# numer - intentional example typo in add-educational-comments.prompt.md
4+
# wit - proper technical term/name (sardonic wit, Gilfoyle character trait)
5+
# aks - Azure Kubernetes Service (AKS) abbreviation
6+
# edn - Extensible Data Notation (Clojure data format)
7+
# ser - serialization abbreviation
8+
# ois - ObjectInputStream abbreviation in Java
9+
# gir - valid abbreviation/technical term
10+
# rouge - Rouge is a syntax highlighter (not "rogue")
11+
# categor - TypeScript template literal in website/src/scripts/pages/skills.ts:70 (categor${...length > 1 ? "ies" : "y"})
12+
# aline - proper name (Aline Ávila, contributor)
13+
# ative - part of "Declarative Agents" in TypeSpec M365 Copilot documentation (collections/typespec-m365-copilot.collection.md)
14+
ignore-words-list = numer,wit,aks,edn,ser,ois,gir,rouge,categor,aline,ative,afterall,deques
15+
# Skip certain files and directories
16+
skip = .git,node_modules,package-lock.json,*.lock,website/build,website/.docusaurus

.github/copilot-instructions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ The following instructions are only to be applied when performing a code review.
2525
- [ ] The instruction has a `description` field.
2626
- [ ] The `description` field is not empty.
2727
- [ ] The file name is lower case, with words separated by hyphens.
28-
- [ ] The instruction has an `applyTo` field that specifies the file or files to which the instructions apply. If they wish to specify multiple file paths they should formated like `'**.js, **.ts'`.
28+
- [ ] The instruction has an `applyTo` field that specifies the file or files to which the instructions apply. If they wish to specify multiple file paths they should formatted like `'**.js, **.ts'`.
2929

3030
## Agent file guide
3131

.github/workflows/codespell.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Check Spelling
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
codespell:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- name: Check spelling with codespell
19+
uses: codespell-project/actions-codespell@v2
20+
with:
21+
check_filenames: true
22+
check_hidden: false

docs/README.instructions.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ Team and project-specific instructions to enhance GitHub Copilot's behavior for
165165
| [Svelte 5 and SvelteKit Development Instructions](../instructions/svelte.instructions.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fsvelte.instructions.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fsvelte.instructions.md) | Svelte 5 and SvelteKit development standards and best practices for component-based user interfaces and full-stack applications |
166166
| [Swift MCP Server Development Guidelines](../instructions/swift-mcp-server.instructions.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fswift-mcp-server.instructions.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fswift-mcp-server.instructions.md) | Best practices and patterns for building Model Context Protocol (MCP) servers in Swift using the official MCP Swift SDK package. |
167167
| [Symfony Development Instructions](../instructions/php-symfony.instructions.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fphp-symfony.instructions.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fphp-symfony.instructions.md) | Symfony development standards aligned with official Symfony Best Practices |
168+
| [Tailwind CSS v4+ Installation with Vite](../instructions/tailwind-v4-vite.instructions.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftailwind-v4-vite.instructions.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftailwind-v4-vite.instructions.md) | Tailwind CSS v4+ installation and configuration for Vite projects using the official @tailwindcss/vite plugin |
168169
| [Taming Copilot](../instructions/taming-copilot.instructions.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftaming-copilot.instructions.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftaming-copilot.instructions.md) | Prevent Copilot from wreaking havoc across your codebase, keeping it under control. |
169170
| [TanStack Start with Shadcn/ui Development Guide](../instructions/tanstack-start-shadcn-tailwind.instructions.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftanstack-start-shadcn-tailwind.instructions.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftanstack-start-shadcn-tailwind.instructions.md) | Guidelines for building TanStack Start applications |
170171
| [Task Plan Implementation Instructions](../instructions/task-implementation.instructions.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftask-implementation.instructions.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftask-implementation.instructions.md) | Instructions for implementing task plans with progressive tracking and change record - Brought to you by microsoft/edge-ai |

eng/generate-website-data.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,7 @@ function generateSearchIndex(
579579
id: skill.id,
580580
title: skill.title,
581581
description: skill.description,
582-
path: skill.path,
582+
path: skill.skillFile,
583583
searchText: `${skill.title} ${skill.description}`.toLowerCase(),
584584
});
585585
}
Lines changed: 243 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,243 @@
1+
---
2+
description: 'Tailwind CSS v4+ installation and configuration for Vite projects using the official @tailwindcss/vite plugin'
3+
applyTo: 'vite.config.ts, vite.config.js, **/*.css, **/*.tsx, **/*.ts, **/*.jsx, **/*.js'
4+
---
5+
6+
# Tailwind CSS v4+ Installation with Vite
7+
8+
Instructions for installing and configuring Tailwind CSS version 4 and above using the official Vite plugin. Tailwind CSS v4 introduces a simplified setup that eliminates the need for PostCSS configuration and tailwind.config.js in most cases.
9+
10+
## Key Changes in Tailwind CSS v4
11+
12+
- **No PostCSS configuration required** when using the Vite plugin
13+
- **No tailwind.config.js required** - configuration is done via CSS
14+
- **New @tailwindcss/vite plugin** replaces the PostCSS-based approach
15+
- **CSS-first configuration** using `@theme` directive
16+
- **Automatic content detection** - no need to specify content paths
17+
18+
## Installation Steps
19+
20+
### Step 1: Install Dependencies
21+
22+
Install `tailwindcss` and the `@tailwindcss/vite` plugin:
23+
24+
```bash
25+
npm install tailwindcss @tailwindcss/vite
26+
```
27+
28+
### Step 2: Configure Vite Plugin
29+
30+
Add the `@tailwindcss/vite` plugin to your Vite configuration file:
31+
32+
```typescript
33+
// vite.config.ts
34+
import { defineConfig } from 'vite'
35+
import tailwindcss from '@tailwindcss/vite'
36+
37+
export default defineConfig({
38+
plugins: [
39+
tailwindcss(),
40+
],
41+
})
42+
```
43+
44+
For React projects with Vite:
45+
46+
```typescript
47+
// vite.config.ts
48+
import { defineConfig } from 'vite'
49+
import react from '@vitejs/plugin-react'
50+
import tailwindcss from '@tailwindcss/vite'
51+
52+
export default defineConfig({
53+
plugins: [
54+
react(),
55+
tailwindcss(),
56+
],
57+
})
58+
```
59+
60+
### Step 3: Import Tailwind CSS
61+
62+
Add the Tailwind CSS import to your main CSS file (e.g., `src/index.css` or `src/App.css`):
63+
64+
```css
65+
@import "tailwindcss";
66+
```
67+
68+
### Step 4: Verify CSS Import in Entry Point
69+
70+
Ensure your main CSS file is imported in your application entry point:
71+
72+
```typescript
73+
// src/main.tsx or src/main.ts
74+
import './index.css'
75+
```
76+
77+
### Step 5: Start Development Server
78+
79+
Run the development server to verify installation:
80+
81+
```bash
82+
npm run dev
83+
```
84+
85+
## What NOT to Do in Tailwind v4
86+
87+
### Do NOT Create tailwind.config.js
88+
89+
Tailwind v4 uses CSS-first configuration. Do not create a `tailwind.config.js` file unless you have specific legacy requirements.
90+
91+
```javascript
92+
// ❌ NOT NEEDED in Tailwind v4
93+
module.exports = {
94+
content: ['./src/**/*.{js,ts,jsx,tsx}'],
95+
theme: {
96+
extend: {},
97+
},
98+
plugins: [],
99+
}
100+
```
101+
102+
### Do NOT Create postcss.config.js for Tailwind
103+
104+
When using the `@tailwindcss/vite` plugin, PostCSS configuration for Tailwind is not required.
105+
106+
```javascript
107+
// ❌ NOT NEEDED when using @tailwindcss/vite
108+
module.exports = {
109+
plugins: {
110+
tailwindcss: {},
111+
autoprefixer: {},
112+
},
113+
}
114+
```
115+
116+
### Do NOT Use Old Directives
117+
118+
The old `@tailwind` directives are replaced by a single import:
119+
120+
```css
121+
/* ❌ OLD - Do not use in Tailwind v4 */
122+
@tailwind base;
123+
@tailwind components;
124+
@tailwind utilities;
125+
126+
/* ✅ NEW - Use this in Tailwind v4 */
127+
@import "tailwindcss";
128+
```
129+
130+
## CSS-First Configuration (Tailwind v4)
131+
132+
### Custom Theme Configuration
133+
134+
Use the `@theme` directive in your CSS to customize your design tokens:
135+
136+
```css
137+
@import "tailwindcss";
138+
139+
@theme {
140+
--color-primary: #3b82f6;
141+
--color-secondary: #64748b;
142+
--font-sans: 'Inter', system-ui, sans-serif;
143+
--radius-lg: 0.75rem;
144+
}
145+
```
146+
147+
### Adding Custom Utilities
148+
149+
Define custom utilities directly in CSS:
150+
151+
```css
152+
@import "tailwindcss";
153+
154+
@utility content-auto {
155+
content-visibility: auto;
156+
}
157+
158+
@utility scrollbar-hidden {
159+
scrollbar-width: none;
160+
&::-webkit-scrollbar {
161+
display: none;
162+
}
163+
}
164+
```
165+
166+
### Adding Custom Variants
167+
168+
Define custom variants in CSS:
169+
170+
```css
171+
@import "tailwindcss";
172+
173+
@variant hocus (&:hover, &:focus);
174+
@variant group-hocus (:merge(.group):hover &, :merge(.group):focus &);
175+
```
176+
177+
## Verification Checklist
178+
179+
After installation, verify:
180+
181+
- [ ] `tailwindcss` and `@tailwindcss/vite` are in `package.json` dependencies
182+
- [ ] `vite.config.ts` includes the `tailwindcss()` plugin
183+
- [ ] Main CSS file contains `@import "tailwindcss";`
184+
- [ ] CSS file is imported in the application entry point
185+
- [ ] Development server runs without errors
186+
- [ ] Tailwind utility classes (e.g., `text-blue-500`, `p-4`) render correctly
187+
188+
## Example Usage
189+
190+
Test the installation with a simple component:
191+
192+
```tsx
193+
export function TestComponent() {
194+
return (
195+
<div className="min-h-screen bg-gray-100 flex items-center justify-center">
196+
<h1 className="text-3xl font-bold text-blue-600 underline">
197+
Hello, Tailwind CSS v4!
198+
</h1>
199+
</div>
200+
)
201+
}
202+
```
203+
204+
## Troubleshooting
205+
206+
### Styles Not Applying
207+
208+
1. Verify CSS import statement is `@import "tailwindcss";` (not old directives)
209+
2. Ensure CSS file is imported in your entry point
210+
3. Check Vite config includes the `tailwindcss()` plugin
211+
4. Clear Vite cache: `rm -rf node_modules/.vite && npm run dev`
212+
213+
### Plugin Not Found Error
214+
215+
If you see "Cannot find module '@tailwindcss/vite'":
216+
217+
```bash
218+
npm install @tailwindcss/vite
219+
```
220+
221+
### TypeScript Errors
222+
223+
If TypeScript cannot find types for the Vite plugin, ensure you have the correct import:
224+
225+
```typescript
226+
import tailwindcss from '@tailwindcss/vite'
227+
```
228+
229+
## Migration from Tailwind v3
230+
231+
If migrating from Tailwind v3:
232+
233+
1. Remove `tailwind.config.js` (move customizations to CSS `@theme`)
234+
2. Remove `postcss.config.js` (if only used for Tailwind)
235+
3. Uninstall old packages: `npm uninstall postcss autoprefixer`
236+
4. Install new packages: `npm install tailwindcss @tailwindcss/vite`
237+
5. Replace `@tailwind` directives with `@import "tailwindcss";`
238+
6. Update Vite config to use `@tailwindcss/vite` plugin
239+
240+
## Reference
241+
242+
- Official Documentation: https://tailwindcss.com/docs/installation/using-vite
243+
- Tailwind CSS v4 Upgrade Guide: https://tailwindcss.com/docs/upgrade-guide

website/public/styles/global.css

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -688,6 +688,12 @@ a:hover {
688688
color: var(--color-accent);
689689
}
690690

691+
.site-footer .build-info {
692+
margin-top: 8px;
693+
font-size: 12px;
694+
opacity: 0.7;
695+
}
696+
691697
/* Buttons */
692698
.btn {
693699
display: inline-flex;
@@ -1205,22 +1211,25 @@ a:hover {
12051211
color: var(--color-text-muted);
12061212
}
12071213

1208-
.choices__list--dropdown {
1209-
background-color: var(--color-bg-secondary);
1210-
border-color: var(--color-border);
1214+
.choices__list--dropdown,
1215+
.choices__list[aria-expanded] {
1216+
background-color: var(--color-bg-secondary) !important;
1217+
border-color: var(--color-border) !important;
12111218
border-radius: 0 0 var(--border-radius) var(--border-radius);
12121219
z-index: 100;
12131220
max-height: 300px;
12141221
}
12151222

1216-
.choices__list--dropdown .choices__item {
1217-
color: var(--color-text);
1223+
.choices__list--dropdown .choices__item,
1224+
.choices__list[aria-expanded] .choices__item {
1225+
color: var(--color-text) !important;
12181226
font-size: 14px;
12191227
padding: 10px 14px;
12201228
}
12211229

1222-
.choices__list--dropdown .choices__item--selectable.is-highlighted {
1223-
background-color: var(--color-bg-tertiary);
1230+
.choices__list--dropdown .choices__item--selectable.is-highlighted,
1231+
.choices__list[aria-expanded] .choices__item--selectable.is-highlighted {
1232+
background-color: var(--color-bg-tertiary) !important;
12241233
}
12251234

12261235
.choices__list--multiple .choices__item {
@@ -1254,11 +1263,13 @@ a:hover {
12541263
border-radius: var(--border-radius) var(--border-radius) 0 0;
12551264
}
12561265

1257-
.is-open .choices__list--dropdown {
1266+
.is-open .choices__list--dropdown,
1267+
.is-open .choices__list[aria-expanded] {
12581268
border-color: var(--color-link);
12591269
}
12601270

1261-
.choices__list--dropdown .choices__item--selectable::after {
1271+
.choices__list--dropdown .choices__item--selectable::after,
1272+
.choices__list[aria-expanded] .choices__item--selectable::after {
12621273
display: none;
12631274
}
12641275

0 commit comments

Comments
 (0)