memory-journal-mcp 7.2.0 → 7.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -64
- package/dist/{chunk-GR4T3SRW.js → chunk-5ZA77VUW.js} +688 -121
- package/dist/{chunk-ORV7ZZOE.js → chunk-P5V2VY6N.js} +365 -74
- package/dist/{chunk-IWKLHSPU.js → chunk-WXDEVIFL.js} +6 -6
- package/dist/cli.js +9 -4
- package/dist/github-integration-YODGZH3K.js +1 -0
- package/dist/index.d.ts +17 -2
- package/dist/index.js +3 -3
- package/dist/{tools-CXR2FEB2.js → tools-WZUENKJ6.js} +2 -2
- package/package.json +4 -4
- package/skills/README.md +5 -1
- package/skills/docker/SKILL.md +262 -0
- package/skills/github-actions/SKILL.md +315 -0
- package/skills/package.json +5 -1
- package/skills/python/SKILL.md +257 -0
- package/skills/tailwind-css/SKILL.md +268 -0
- package/dist/github-integration-2TFMXHIJ.js +0 -1
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tailwind-css
|
|
3
|
+
description: |
|
|
4
|
+
Master Tailwind CSS v4 with its CSS-first configuration paradigm. Use when
|
|
5
|
+
writing utility classes, configuring design tokens via @theme, implementing
|
|
6
|
+
dark mode, migrating from v3, or integrating with React/Vue/Svelte. Triggers
|
|
7
|
+
on "Tailwind", "utility CSS", "Tailwind v4", "@theme", "dark mode classes",
|
|
8
|
+
"responsive design", "Tailwind migration".
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Tailwind CSS v4 Engineering Standards
|
|
12
|
+
|
|
13
|
+
This skill codifies Tailwind CSS v4's **CSS-first architecture** — the paradigm shift from JavaScript configuration to native CSS-based theming and customization.
|
|
14
|
+
|
|
15
|
+
## 1. Core Paradigm: CSS-First Configuration
|
|
16
|
+
|
|
17
|
+
### Entry Point
|
|
18
|
+
|
|
19
|
+
Replace all legacy directives with a single import:
|
|
20
|
+
|
|
21
|
+
```css
|
|
22
|
+
/* main.css */
|
|
23
|
+
@import 'tailwindcss';
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
- **NEVER** use `@tailwind base; @tailwind components; @tailwind utilities;` — this is v3 syntax
|
|
27
|
+
- **No `tailwind.config.js` needed** for most projects — CSS is the single source of truth
|
|
28
|
+
- Use `@config "./tailwind.config.js"` only for legacy migration or PostCSS plugin compatibility
|
|
29
|
+
|
|
30
|
+
### The `@theme` Directive
|
|
31
|
+
|
|
32
|
+
All design tokens are defined directly in CSS:
|
|
33
|
+
|
|
34
|
+
```css
|
|
35
|
+
@import 'tailwindcss';
|
|
36
|
+
|
|
37
|
+
@theme {
|
|
38
|
+
/* Colors */
|
|
39
|
+
--color-primary-50: #eff6ff;
|
|
40
|
+
--color-primary-500: #3b82f6;
|
|
41
|
+
--color-primary-900: #1e3a5a;
|
|
42
|
+
|
|
43
|
+
/* Typography */
|
|
44
|
+
--font-display: 'Inter', sans-serif;
|
|
45
|
+
--font-mono: 'JetBrains Mono', monospace;
|
|
46
|
+
|
|
47
|
+
/* Spacing */
|
|
48
|
+
--spacing-container: 1200px;
|
|
49
|
+
|
|
50
|
+
/* Border Radius */
|
|
51
|
+
--radius-card: 0.75rem;
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
- Tailwind **automatically generates utility classes** from `@theme` variables
|
|
56
|
+
- `--color-primary-500` → `bg-primary-500`, `text-primary-500`, `border-primary-500`
|
|
57
|
+
- `--font-display` → `font-display`
|
|
58
|
+
- Tokens are native CSS variables — inspectable in browser DevTools
|
|
59
|
+
|
|
60
|
+
## 2. Dark Mode
|
|
61
|
+
|
|
62
|
+
### Configuration (v4 Pattern)
|
|
63
|
+
|
|
64
|
+
```css
|
|
65
|
+
/* Class-based dark mode (most common) */
|
|
66
|
+
@custom-variant dark (&:where(.dark, .dark *));
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Usage in HTML
|
|
70
|
+
|
|
71
|
+
```html
|
|
72
|
+
<div class="bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100">
|
|
73
|
+
<h1 class="text-primary-500 dark:text-primary-300">Title</h1>
|
|
74
|
+
</div>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### System Preference (Default)
|
|
78
|
+
|
|
79
|
+
By default, Tailwind v4 respects `prefers-color-scheme`. If you want manual class toggle control, use `@custom-variant dark` as shown above.
|
|
80
|
+
|
|
81
|
+
### Toggle Implementation
|
|
82
|
+
|
|
83
|
+
```javascript
|
|
84
|
+
// Toggle dark mode via JavaScript
|
|
85
|
+
document.documentElement.classList.toggle('dark')
|
|
86
|
+
|
|
87
|
+
// Or persist to localStorage
|
|
88
|
+
const isDark = localStorage.getItem('theme') === 'dark'
|
|
89
|
+
document.documentElement.classList.toggle('dark', isDark)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## 3. Responsive Design
|
|
93
|
+
|
|
94
|
+
### Mobile-First Breakpoints
|
|
95
|
+
|
|
96
|
+
Tailwind uses a **mobile-first** approach — unprefixed utilities apply to all screens, prefixed utilities apply at that breakpoint and above.
|
|
97
|
+
|
|
98
|
+
```html
|
|
99
|
+
<!-- Full width on mobile, half on md, third on lg -->
|
|
100
|
+
<div class="w-full md:w-1/2 lg:w-1/3">...</div>
|
|
101
|
+
|
|
102
|
+
<!-- Stack on mobile, row on sm+ -->
|
|
103
|
+
<div class="flex flex-col sm:flex-row gap-4">...</div>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Default Breakpoints
|
|
107
|
+
|
|
108
|
+
| Prefix | Min Width | Target |
|
|
109
|
+
| ------ | --------- | ------------- |
|
|
110
|
+
| `sm` | 640px | Small tablets |
|
|
111
|
+
| `md` | 768px | Tablets |
|
|
112
|
+
| `lg` | 1024px | Laptops |
|
|
113
|
+
| `xl` | 1280px | Desktops |
|
|
114
|
+
| `2xl` | 1536px | Large screens |
|
|
115
|
+
|
|
116
|
+
### Custom Breakpoints
|
|
117
|
+
|
|
118
|
+
```css
|
|
119
|
+
@theme {
|
|
120
|
+
--breakpoint-xs: 475px;
|
|
121
|
+
--breakpoint-3xl: 1920px;
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## 4. Component Patterns
|
|
126
|
+
|
|
127
|
+
### Buttons
|
|
128
|
+
|
|
129
|
+
```html
|
|
130
|
+
<button
|
|
131
|
+
class="
|
|
132
|
+
inline-flex items-center justify-center
|
|
133
|
+
rounded-lg px-4 py-2
|
|
134
|
+
bg-primary-500 text-white font-medium
|
|
135
|
+
hover:bg-primary-600
|
|
136
|
+
focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-500
|
|
137
|
+
active:scale-[0.98]
|
|
138
|
+
disabled:opacity-50 disabled:cursor-not-allowed
|
|
139
|
+
transition-all duration-150
|
|
140
|
+
"
|
|
141
|
+
>
|
|
142
|
+
Click me
|
|
143
|
+
</button>
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Cards
|
|
147
|
+
|
|
148
|
+
```html
|
|
149
|
+
<article
|
|
150
|
+
class="
|
|
151
|
+
rounded-xl border border-gray-200 dark:border-gray-700
|
|
152
|
+
bg-white dark:bg-gray-800
|
|
153
|
+
p-6 shadow-sm
|
|
154
|
+
hover:shadow-md transition-shadow
|
|
155
|
+
"
|
|
156
|
+
>
|
|
157
|
+
<h3 class="text-lg font-semibold text-gray-900 dark:text-white">Title</h3>
|
|
158
|
+
<p class="mt-2 text-gray-600 dark:text-gray-400">Description text.</p>
|
|
159
|
+
</article>
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Custom Component Classes
|
|
163
|
+
|
|
164
|
+
```css
|
|
165
|
+
@layer components {
|
|
166
|
+
.btn-primary {
|
|
167
|
+
@apply inline-flex items-center justify-center rounded-lg px-4 py-2
|
|
168
|
+
bg-primary-500 text-white font-medium
|
|
169
|
+
hover:bg-primary-600 transition-colors;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
- **Use `@layer components`** for reusable component styles
|
|
175
|
+
- **Prefer utility classes inline** for one-off styling
|
|
176
|
+
- **Use `@apply` sparingly** — only for highly-repeated patterns
|
|
177
|
+
|
|
178
|
+
## 5. Animations & Transitions
|
|
179
|
+
|
|
180
|
+
### Built-in Transitions
|
|
181
|
+
|
|
182
|
+
```html
|
|
183
|
+
<!-- Smooth hover effect -->
|
|
184
|
+
<div class="transition-all duration-300 ease-in-out hover:scale-105">
|
|
185
|
+
<!-- Color transitions only -->
|
|
186
|
+
<a class="transition-colors duration-150 text-gray-500 hover:text-primary-500"></a>
|
|
187
|
+
</div>
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Custom Animations
|
|
191
|
+
|
|
192
|
+
```css
|
|
193
|
+
@theme {
|
|
194
|
+
--animate-fade-in: fade-in 0.3s ease-out;
|
|
195
|
+
--animate-slide-up: slide-up 0.4s ease-out;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
@keyframes fade-in {
|
|
199
|
+
from {
|
|
200
|
+
opacity: 0;
|
|
201
|
+
}
|
|
202
|
+
to {
|
|
203
|
+
opacity: 1;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
@keyframes slide-up {
|
|
208
|
+
from {
|
|
209
|
+
opacity: 0;
|
|
210
|
+
transform: translateY(1rem);
|
|
211
|
+
}
|
|
212
|
+
to {
|
|
213
|
+
opacity: 1;
|
|
214
|
+
transform: translateY(0);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Usage: `class="animate-fade-in"` or `class="animate-slide-up"`
|
|
220
|
+
|
|
221
|
+
## 6. Migration from v3 to v4
|
|
222
|
+
|
|
223
|
+
### Step-by-Step
|
|
224
|
+
|
|
225
|
+
1. **Update package**: `pnpm add -D tailwindcss@latest`
|
|
226
|
+
2. **Replace CSS entry point**:
|
|
227
|
+
- Remove: `@tailwind base; @tailwind components; @tailwind utilities;`
|
|
228
|
+
- Add: `@import "tailwindcss";`
|
|
229
|
+
3. **Migrate `tailwind.config.js`** → `@theme` block in CSS
|
|
230
|
+
4. **Update dark mode**: Replace `darkMode: "class"` config with `@custom-variant dark`
|
|
231
|
+
5. **Check defaults**: Some defaults changed (e.g., border colors). Verify visually.
|
|
232
|
+
6. **Remove PostCSS plugins** if no longer needed (v4 has its own engine)
|
|
233
|
+
|
|
234
|
+
### Key Breaking Changes
|
|
235
|
+
|
|
236
|
+
| v3 | v4 |
|
|
237
|
+
| ------------------------------------- | ---------------------------- |
|
|
238
|
+
| `tailwind.config.js` | `@theme` in CSS |
|
|
239
|
+
| `darkMode: "class"` | `@custom-variant dark (...)` |
|
|
240
|
+
| `@tailwind base/components/utilities` | `@import "tailwindcss"` |
|
|
241
|
+
| `theme.extend.colors` | `--color-*` in `@theme` |
|
|
242
|
+
| `theme.extend.fontFamily` | `--font-*` in `@theme` |
|
|
243
|
+
|
|
244
|
+
## 7. Anti-Patterns (Never Do These)
|
|
245
|
+
|
|
246
|
+
| Anti-Pattern | Why It's Wrong | Do This Instead |
|
|
247
|
+
| -------------------------------------------- | ------------------------------------------------- | ---------------------------------------------------------------- |
|
|
248
|
+
| `@apply` everywhere | Defeats utility-first purpose, harder to maintain | Use inline utilities; `@apply` only for highly-repeated patterns |
|
|
249
|
+
| `!important` classes | Specificity wars, unpredictable cascade | Use proper specificity layers |
|
|
250
|
+
| Arbitrary values excessively (`text-[17px]`) | Breaks design system consistency | Define tokens in `@theme` |
|
|
251
|
+
| Inline `style=` alongside utilities | Mixed paradigms, inconsistent | All styling via Tailwind utilities |
|
|
252
|
+
| Using v3 `tailwind.config.js` in v4 | Unnecessary JS dependency | Migrate to `@theme` in CSS |
|
|
253
|
+
| Not using `dark:` variants | Inaccessible for dark-mode users | Always implement dark mode |
|
|
254
|
+
| Ignoring mobile-first | Desktop-only layouts break on phones | Design mobile-first, add breakpoints up |
|
|
255
|
+
|
|
256
|
+
## 8. Accessibility Essentials
|
|
257
|
+
|
|
258
|
+
- **Always use `focus-visible:`** for keyboard focus indicators — never remove focus outlines without replacement
|
|
259
|
+
- **Ensure color contrast** — text must meet WCAG AA (4.5:1 normal, 3:1 large)
|
|
260
|
+
- **Use `sr-only`** class for screen-reader-only text on icon buttons
|
|
261
|
+
- **Never use `hidden`** for content that should be accessible — use `sr-only` instead
|
|
262
|
+
|
|
263
|
+
```html
|
|
264
|
+
<button class="p-2 rounded-lg hover:bg-gray-100 focus-visible:ring-2">
|
|
265
|
+
<svg class="size-5" aria-hidden="true">...</svg>
|
|
266
|
+
<span class="sr-only">Close menu</span>
|
|
267
|
+
</button>
|
|
268
|
+
```
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { GitHubIntegration } from './chunk-IWKLHSPU.js';
|