@biggora/claude-plugins 1.1.1 → 1.2.2
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/.claude/settings.local.json +3 -1
- package/README.md +24 -17
- package/package.json +1 -1
- package/registry/registry.json +319 -244
- package/specs/coding.md +24 -0
- package/specs/pod.md +2 -0
- package/src/skills/captcha/README.md +221 -0
- package/src/skills/captcha/SKILL.md +355 -0
- package/src/skills/captcha/references/captcha-types.md +254 -0
- package/src/skills/captcha/references/services.md +172 -0
- package/src/skills/captcha/references/stealth.md +238 -0
- package/src/skills/captcha/scripts/solve_captcha.py +323 -0
- package/src/skills/captcha/scripts/solve_image_grid.py +350 -0
- package/src/skills/codex-cli/SKILL.md +21 -11
- package/src/skills/gemini-cli/SKILL.md +27 -13
- package/src/skills/gemini-cli/references/commands.md +21 -14
- package/src/skills/gemini-cli/references/configuration.md +23 -18
- package/src/skills/gemini-cli/references/headless-and-scripting.md +7 -17
- package/src/skills/gemini-cli/references/mcp-and-extensions.md +12 -6
- package/src/skills/google-merchant-api/SKILL.md +581 -0
- package/src/skills/google-merchant-api/references/accounts.md +247 -0
- package/src/skills/google-merchant-api/references/content-api-legacy.md +216 -0
- package/src/skills/google-merchant-api/references/datasources.md +233 -0
- package/src/skills/google-merchant-api/references/inventories.md +201 -0
- package/src/skills/google-merchant-api/references/migration.md +267 -0
- package/src/skills/google-merchant-api/references/products.md +316 -0
- package/src/skills/google-merchant-api/references/promotions.md +201 -0
- package/src/skills/google-merchant-api/references/reports.md +240 -0
- package/src/skills/lv-aggregators-api/SKILL.md +113 -0
- package/src/skills/lv-aggregators-api/references/integration-guide.md +368 -0
- package/src/skills/lv-aggregators-api/references/kurpirkt.md +103 -0
- package/src/skills/lv-aggregators-api/references/salidzini.md +122 -0
- package/src/skills/notebook-lm/SKILL.md +1 -1
- package/src/skills/screen-recording/SKILL.md +243 -213
- package/src/skills/screen-recording/references/design-patterns.md +4 -2
- package/src/skills/screen-recording/references/ffmpeg-recording.md +473 -0
- package/src/skills/screen-recording/references/{approach1-programmatic.md → programmatic-generation.md} +45 -22
- package/src/skills/screen-recording/references/python-fallback.md +222 -0
- package/src/skills/tailwindcss-best-practices/SKILL.md +180 -0
- package/src/skills/tailwindcss-best-practices/references/best-practices-utility-patterns.md +87 -0
- package/src/skills/tailwindcss-best-practices/references/core-installation.md +109 -0
- package/src/skills/tailwindcss-best-practices/references/core-preflight.md +200 -0
- package/src/skills/tailwindcss-best-practices/references/core-responsive.md +163 -0
- package/src/skills/tailwindcss-best-practices/references/core-source-detection.md +114 -0
- package/src/skills/tailwindcss-best-practices/references/core-theme.md +108 -0
- package/src/skills/tailwindcss-best-practices/references/core-utility-classes.md +59 -0
- package/src/skills/tailwindcss-best-practices/references/core-variants.md +204 -0
- package/src/skills/tailwindcss-best-practices/references/effects-form-controls.md +76 -0
- package/src/skills/tailwindcss-best-practices/references/effects-mask.md +91 -0
- package/src/skills/tailwindcss-best-practices/references/effects-scroll-snap.md +59 -0
- package/src/skills/tailwindcss-best-practices/references/effects-text-shadow.md +78 -0
- package/src/skills/tailwindcss-best-practices/references/effects-transition-animation.md +80 -0
- package/src/skills/tailwindcss-best-practices/references/effects-visibility-interactivity.md +82 -0
- package/src/skills/tailwindcss-best-practices/references/features-content-detection.md +175 -0
- package/src/skills/tailwindcss-best-practices/references/features-custom-styles.md +203 -0
- package/src/skills/tailwindcss-best-practices/references/features-dark-mode.md +137 -0
- package/src/skills/tailwindcss-best-practices/references/features-functions-directives.md +241 -0
- package/src/skills/tailwindcss-best-practices/references/features-upgrade.md +160 -0
- package/src/skills/tailwindcss-best-practices/references/layout-aspect-ratio.md +39 -0
- package/src/skills/tailwindcss-best-practices/references/layout-columns.md +80 -0
- package/src/skills/tailwindcss-best-practices/references/layout-display.md +110 -0
- package/src/skills/tailwindcss-best-practices/references/layout-flexbox.md +112 -0
- package/src/skills/tailwindcss-best-practices/references/layout-grid.md +87 -0
- package/src/skills/tailwindcss-best-practices/references/layout-height.md +97 -0
- package/src/skills/tailwindcss-best-practices/references/layout-inset.md +103 -0
- package/src/skills/tailwindcss-best-practices/references/layout-logical-properties.md +92 -0
- package/src/skills/tailwindcss-best-practices/references/layout-margin.md +126 -0
- package/src/skills/tailwindcss-best-practices/references/layout-min-max-sizing.md +63 -0
- package/src/skills/tailwindcss-best-practices/references/layout-object-fit-position.md +64 -0
- package/src/skills/tailwindcss-best-practices/references/layout-overflow.md +57 -0
- package/src/skills/tailwindcss-best-practices/references/layout-padding.md +77 -0
- package/src/skills/tailwindcss-best-practices/references/layout-position.md +85 -0
- package/src/skills/tailwindcss-best-practices/references/layout-tables.md +67 -0
- package/src/skills/tailwindcss-best-practices/references/layout-width.md +102 -0
- package/src/skills/tailwindcss-best-practices/references/transform-base.md +68 -0
- package/src/skills/tailwindcss-best-practices/references/transform-rotate.md +70 -0
- package/src/skills/tailwindcss-best-practices/references/transform-scale.md +83 -0
- package/src/skills/tailwindcss-best-practices/references/transform-skew.md +62 -0
- package/src/skills/tailwindcss-best-practices/references/transform-translate.md +77 -0
- package/src/skills/tailwindcss-best-practices/references/typography-font-text.md +142 -0
- package/src/skills/tailwindcss-best-practices/references/typography-list-style.md +65 -0
- package/src/skills/tailwindcss-best-practices/references/typography-text-align.md +60 -0
- package/src/skills/tailwindcss-best-practices/references/visual-background.md +76 -0
- package/src/skills/tailwindcss-best-practices/references/visual-border.md +108 -0
- package/src/skills/tailwindcss-best-practices/references/visual-effects.md +111 -0
- package/src/skills/tailwindcss-best-practices/references/visual-svg.md +82 -0
- package/src/skills/test-mobile-app/SKILL.md +11 -6
- package/src/skills/test-mobile-app/scripts/analyze_apk.py +15 -4
- package/src/skills/test-mobile-app/scripts/check_environment.py +5 -5
- package/src/skills/test-mobile-app/scripts/run_tests.py +1 -1
- package/src/skills/test-web-ui/SKILL.md +264 -84
- package/src/skills/test-web-ui/scripts/discover.py +25 -12
- package/src/skills/test-web-ui/scripts/run_tests.py +3 -2
- package/src/skills/tm-search/SKILL.md +242 -106
- package/src/skills/tm-search/references/scraping-fallback.md +60 -95
- package/src/skills/tm-search/scripts/tm_search.py +453 -375
- package/src/skills/vite-best-practices/SKILL.md +115 -0
- package/src/skills/vite-best-practices/references/build-and-ssr.md +255 -0
- package/src/skills/vite-best-practices/references/core-config.md +231 -0
- package/src/skills/vite-best-practices/references/core-features.md +222 -0
- package/src/skills/vite-best-practices/references/core-plugin-api.md +294 -0
- package/src/skills/vite-best-practices/references/environment-api.md +108 -0
- package/src/skills/vite-best-practices/references/rolldown-migration.md +242 -0
- package/src/skills/screen-recording/references/approach2-xvfb.md +0 -232
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: core-variants
|
|
3
|
+
description: Using variants to apply utilities conditionally based on states, pseudo-classes, and media queries
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Variants
|
|
7
|
+
|
|
8
|
+
Variants let you apply utility classes conditionally based on states, pseudo-classes, pseudo-elements, media queries, and more.
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Add a variant prefix to any utility class to apply it conditionally:
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<!-- Apply bg-sky-700 only on hover -->
|
|
16
|
+
<button class="bg-sky-500 hover:bg-sky-700">Save</button>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Variants can be stacked to target specific situations:
|
|
20
|
+
|
|
21
|
+
```html
|
|
22
|
+
<!-- Dark mode, medium breakpoint, on hover -->
|
|
23
|
+
<button class="dark:md:hover:bg-fuchsia-600">Save</button>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Pseudo-Class Variants
|
|
27
|
+
|
|
28
|
+
### Interactive States
|
|
29
|
+
|
|
30
|
+
```html
|
|
31
|
+
<button class="bg-violet-500 hover:bg-violet-600 focus:outline-2 focus:outline-violet-500 active:bg-violet-700">
|
|
32
|
+
Save changes
|
|
33
|
+
</button>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Common interactive variants:
|
|
37
|
+
- `hover:` - `:hover` pseudo-class
|
|
38
|
+
- `focus:` - `:focus` pseudo-class
|
|
39
|
+
- `active:` - `:active` pseudo-class
|
|
40
|
+
- `focus-visible:` - `:focus-visible`
|
|
41
|
+
- `focus-within:` - `:focus-within`
|
|
42
|
+
- `visited:` - `:visited`
|
|
43
|
+
|
|
44
|
+
### Structural Variants
|
|
45
|
+
|
|
46
|
+
```html
|
|
47
|
+
<ul>
|
|
48
|
+
<li class="py-4 first:pt-0 last:pb-0">Item 1</li>
|
|
49
|
+
<li class="py-4 first:pt-0 last:pb-0">Item 2</li>
|
|
50
|
+
<li class="py-4 first:pt-0 last:pb-0">Item 3</li>
|
|
51
|
+
</ul>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Common structural variants:
|
|
55
|
+
- `first:` - `:first-child`
|
|
56
|
+
- `last:` - `:last-child`
|
|
57
|
+
- `odd:` - `:nth-child(odd)`
|
|
58
|
+
- `even:` - `:nth-child(even)`
|
|
59
|
+
- `only:` - `:only-child`
|
|
60
|
+
|
|
61
|
+
### Form States
|
|
62
|
+
|
|
63
|
+
```html
|
|
64
|
+
<input class="border-gray-300 required:border-red-500 invalid:border-red-500" />
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Common form variants:
|
|
68
|
+
- `required:` - `:required`
|
|
69
|
+
- `optional:` - `:optional`
|
|
70
|
+
- `invalid:` - `:invalid`
|
|
71
|
+
- `valid:` - `:valid`
|
|
72
|
+
- `disabled:` - `:disabled`
|
|
73
|
+
- `enabled:` - `:enabled`
|
|
74
|
+
- `checked:` - `:checked`
|
|
75
|
+
- `user-valid:` - `:user-valid` (v4.1) — validation after user interaction
|
|
76
|
+
- `user-invalid:` - `:user-invalid` (v4.1) — invalid after user interaction
|
|
77
|
+
|
|
78
|
+
```html
|
|
79
|
+
<!-- Better UX: only show validation state after user interacts -->
|
|
80
|
+
<input required class="border user-valid:border-green-500 user-invalid:border-red-500" />
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Pseudo-Element Variants
|
|
84
|
+
|
|
85
|
+
```html
|
|
86
|
+
<input class="placeholder:text-gray-400 before:content-['*'] after:content-['required']" />
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Common pseudo-element variants:
|
|
90
|
+
- `before:` - `::before`
|
|
91
|
+
- `after:` - `::after`
|
|
92
|
+
- `placeholder:` - `::placeholder`
|
|
93
|
+
- `selection:` - `::selection`
|
|
94
|
+
- `first-line:` - `::first-line`
|
|
95
|
+
- `first-letter:` - `::first-letter`
|
|
96
|
+
|
|
97
|
+
## Media Query Variants
|
|
98
|
+
|
|
99
|
+
### Responsive Variants
|
|
100
|
+
|
|
101
|
+
```html
|
|
102
|
+
<div class="text-sm md:text-base lg:text-lg">Responsive text</div>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Dark Mode
|
|
106
|
+
|
|
107
|
+
```html
|
|
108
|
+
<div class="bg-white dark:bg-gray-800 text-gray-900 dark:text-white">
|
|
109
|
+
Content
|
|
110
|
+
</div>
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
By default uses `prefers-color-scheme`, but can be customized to use a class or data attribute.
|
|
114
|
+
|
|
115
|
+
### Reduced Motion
|
|
116
|
+
|
|
117
|
+
```html
|
|
118
|
+
<div class="transition-all motion-reduce:transition-none">
|
|
119
|
+
Animated content
|
|
120
|
+
</div>
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Pointer Device Variants (v4.1+)
|
|
124
|
+
|
|
125
|
+
Target specific input devices:
|
|
126
|
+
|
|
127
|
+
```html
|
|
128
|
+
<!-- Larger touch targets on touch devices -->
|
|
129
|
+
<button class="p-2 pointer-coarse:p-4 pointer-coarse:text-lg">
|
|
130
|
+
Touch-friendly button
|
|
131
|
+
</button>
|
|
132
|
+
|
|
133
|
+
<!-- Fine details only on mouse/trackpad -->
|
|
134
|
+
<div class="hidden pointer-fine:block">
|
|
135
|
+
Precise hover details
|
|
136
|
+
</div>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
- `pointer-fine:` — precise pointing device (mouse, trackpad)
|
|
140
|
+
- `pointer-coarse:` — imprecise device (touchscreen)
|
|
141
|
+
- `pointer-none:` — no pointing device
|
|
142
|
+
- `any-pointer-fine:` / `any-pointer-coarse:` — any available device
|
|
143
|
+
|
|
144
|
+
### Other New Variants (v4.1+)
|
|
145
|
+
|
|
146
|
+
```html
|
|
147
|
+
<!-- Style <details> content -->
|
|
148
|
+
<details class="details-content:mt-3 details-content:p-4" open>
|
|
149
|
+
<summary>FAQ Question</summary>
|
|
150
|
+
<div>Answer content</div>
|
|
151
|
+
</details>
|
|
152
|
+
|
|
153
|
+
<!-- Show fallback when JS disabled -->
|
|
154
|
+
<div class="hidden noscript:block">Please enable JavaScript.</div>
|
|
155
|
+
|
|
156
|
+
<!-- Respect inverted colors preference -->
|
|
157
|
+
<img class="inverted-colors:hue-rotate-180" />
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
- `details-content:` — target content inside `<details>`
|
|
161
|
+
- `noscript:` — styles when JavaScript is disabled
|
|
162
|
+
- `inverted-colors:` — when user has inverted colors preference
|
|
163
|
+
|
|
164
|
+
## Attribute Selector Variants
|
|
165
|
+
|
|
166
|
+
```html
|
|
167
|
+
<!-- RTL support -->
|
|
168
|
+
<div class="text-left rtl:text-right">Content</div>
|
|
169
|
+
|
|
170
|
+
<!-- Open state -->
|
|
171
|
+
<details class="[&[open]]:bg-gray-100">Details</details>
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## Arbitrary Variants
|
|
175
|
+
|
|
176
|
+
Use arbitrary variants for custom selectors:
|
|
177
|
+
|
|
178
|
+
```html
|
|
179
|
+
<ul>
|
|
180
|
+
<li class="lg:[&:nth-child(-n+3)]:hover:underline">Item</li>
|
|
181
|
+
</ul>
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Child Selector Variants
|
|
185
|
+
|
|
186
|
+
```html
|
|
187
|
+
<div class="[&>*]:mb-4 [&>*:last-child]:mb-0">
|
|
188
|
+
<p>Paragraph 1</p>
|
|
189
|
+
<p>Paragraph 2</p>
|
|
190
|
+
</div>
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## Key Points
|
|
194
|
+
|
|
195
|
+
- Variants prefix utilities to apply them conditionally
|
|
196
|
+
- Variants can be stacked: `dark:md:hover:bg-blue-600`
|
|
197
|
+
- Use variants for states, pseudo-classes, media queries, and more
|
|
198
|
+
- Arbitrary variants enable custom selector patterns
|
|
199
|
+
- Child selector variants target descendant elements
|
|
200
|
+
|
|
201
|
+
<!--
|
|
202
|
+
Source references:
|
|
203
|
+
- https://tailwindcss.com/docs/hover-focus-and-other-states
|
|
204
|
+
-->
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: effects-form-controls
|
|
3
|
+
description: Form control styling with accent-color, appearance, caret-color, and resize
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Form Controls & Input Styling
|
|
7
|
+
|
|
8
|
+
Utilities for styling form controls: accent color, native appearance, caret color, and resize behavior.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
### Accent color
|
|
13
|
+
|
|
14
|
+
Control the accent color of checkboxes, radio buttons, range inputs, and progress:
|
|
15
|
+
|
|
16
|
+
```html
|
|
17
|
+
<input type="checkbox" class="accent-pink-500" checked />
|
|
18
|
+
<input type="radio" class="accent-rose-500" name="opt" />
|
|
19
|
+
<input type="range" class="accent-indigo-500" />
|
|
20
|
+
|
|
21
|
+
<!-- Opacity modifier -->
|
|
22
|
+
<input type="checkbox" class="accent-purple-500/75" />
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Appearance
|
|
26
|
+
|
|
27
|
+
Remove native form control styling for custom designs:
|
|
28
|
+
|
|
29
|
+
```html
|
|
30
|
+
<!-- Custom select with overlay icon -->
|
|
31
|
+
<div class="grid">
|
|
32
|
+
<select class="col-start-1 row-start-1 appearance-none bg-gray-50 ...">
|
|
33
|
+
<option>Yes</option>
|
|
34
|
+
</select>
|
|
35
|
+
<svg class="pointer-events-none col-start-1 row-start-1 ...">...</svg>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<!-- Restore default in forced-colors mode (accessibility) -->
|
|
39
|
+
<input type="checkbox" class="appearance-none forced-colors:appearance-auto" />
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Caret color
|
|
43
|
+
|
|
44
|
+
Set the text input cursor color:
|
|
45
|
+
|
|
46
|
+
```html
|
|
47
|
+
<textarea class="caret-pink-500">Focus to see caret</textarea>
|
|
48
|
+
<input class="caret-blue-500" />
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Resize
|
|
52
|
+
|
|
53
|
+
Control textarea resize behavior:
|
|
54
|
+
|
|
55
|
+
```html
|
|
56
|
+
<textarea class="resize-y">Vertical only</textarea>
|
|
57
|
+
<textarea class="resize-x">Horizontal only</textarea>
|
|
58
|
+
<textarea class="resize">Both directions</textarea>
|
|
59
|
+
<textarea class="resize-none">No resize handle</textarea>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Key Points
|
|
63
|
+
|
|
64
|
+
- `accent-*` - theme colors for checkboxes, radio, range; use `accent-[#hex]` or `accent-(--var)` for custom
|
|
65
|
+
- `appearance-none` - remove native styling (custom selects, checkboxes)
|
|
66
|
+
- `appearance-auto` - restore default (e.g. for `forced-colors: active`)
|
|
67
|
+
- `caret-*` - theme colors for input cursor; matches text color patterns
|
|
68
|
+
- `resize` - both; `resize-x` - horizontal; `resize-y` - vertical; `resize-none` - no handle
|
|
69
|
+
|
|
70
|
+
<!--
|
|
71
|
+
Source references:
|
|
72
|
+
- https://tailwindcss.com/docs/accent-color
|
|
73
|
+
- https://tailwindcss.com/docs/appearance
|
|
74
|
+
- https://tailwindcss.com/docs/caret-color
|
|
75
|
+
- https://tailwindcss.com/docs/resize
|
|
76
|
+
-->
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: effects-mask
|
|
3
|
+
description: Composable mask utilities added in Tailwind CSS v4.1 — linear gradient masks, radial masks, and positioning
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Mask Utilities (v4.1+)
|
|
7
|
+
|
|
8
|
+
Composable mask system for creating fade, reveal, and shape effects. Added in Tailwind CSS v4.1.
|
|
9
|
+
|
|
10
|
+
## Linear Gradient Masks
|
|
11
|
+
|
|
12
|
+
Fade elements from a direction using gradient masks:
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<!-- Fade from top (visible at top, fades to transparent) -->
|
|
16
|
+
<div class="mask-t-from-50%">Content fades from top</div>
|
|
17
|
+
|
|
18
|
+
<!-- Fade from right -->
|
|
19
|
+
<div class="mask-r-from-30%">Content fades from right</div>
|
|
20
|
+
|
|
21
|
+
<!-- Fade from bottom -->
|
|
22
|
+
<div class="mask-b-from-20%">Content fades from bottom</div>
|
|
23
|
+
|
|
24
|
+
<!-- Fade from left -->
|
|
25
|
+
<div class="mask-l-from-40%">Content fades from left</div>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
The `from-` value sets where the mask starts becoming transparent.
|
|
29
|
+
|
|
30
|
+
## Radial Masks
|
|
31
|
+
|
|
32
|
+
Create circular or elliptical mask effects:
|
|
33
|
+
|
|
34
|
+
```html
|
|
35
|
+
<!-- Radial mask with from/to values -->
|
|
36
|
+
<div class="mask-radial-from-70% mask-radial-to-85%">
|
|
37
|
+
Circular fade from center
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
<!-- Position the radial mask -->
|
|
41
|
+
<div class="mask-radial-from-50% mask-radial-at-top-left">
|
|
42
|
+
Fade from top-left corner
|
|
43
|
+
</div>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Composing Masks
|
|
47
|
+
|
|
48
|
+
Masks can be composed — multiple mask utilities combine:
|
|
49
|
+
|
|
50
|
+
```html
|
|
51
|
+
<!-- Fade from both right and bottom -->
|
|
52
|
+
<div class="mask-r-from-80% mask-b-from-80%">
|
|
53
|
+
Fades from both edges
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
<!-- Radial mask with directional fade -->
|
|
57
|
+
<div class="mask-radial-from-70% mask-radial-to-85% mask-t-from-50%">
|
|
58
|
+
Complex mask composition
|
|
59
|
+
</div>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Common Patterns
|
|
63
|
+
|
|
64
|
+
### Image with fade-out edges
|
|
65
|
+
|
|
66
|
+
```html
|
|
67
|
+
<div class="mask-b-from-70% overflow-hidden">
|
|
68
|
+
<img src="/photo.jpg" class="w-full" />
|
|
69
|
+
</div>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Spotlight / vignette effect
|
|
73
|
+
|
|
74
|
+
```html
|
|
75
|
+
<div class="mask-radial-from-60% mask-radial-to-90%">
|
|
76
|
+
<img src="/hero.jpg" class="w-full" />
|
|
77
|
+
</div>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Key Points
|
|
81
|
+
|
|
82
|
+
- Linear mask directions: `mask-t-*`, `mask-r-*`, `mask-b-*`, `mask-l-*`
|
|
83
|
+
- Radial masks: `mask-radial-from-*`, `mask-radial-to-*`, `mask-radial-at-*`
|
|
84
|
+
- Masks are composable — multiple masks combine together
|
|
85
|
+
- Works with all variants: `hover:mask-b-from-50%`
|
|
86
|
+
- The `from-` percentage controls where the fade begins
|
|
87
|
+
|
|
88
|
+
<!--
|
|
89
|
+
Source references:
|
|
90
|
+
- https://tailwindcss.com/blog/tailwindcss-v4-1
|
|
91
|
+
-->
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: effects-scroll-snap
|
|
3
|
+
description: CSS scroll snap for carousels and scroll containers
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Scroll Snap
|
|
7
|
+
|
|
8
|
+
Utilities for scroll snap behavior in overflow containers. Use for carousels, horizontal galleries, or paged scroll.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
### Container
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<!-- Horizontal snap (carousel) -->
|
|
16
|
+
<div class="snap-x snap-mandatory overflow-x-auto flex gap-4">
|
|
17
|
+
<div class="snap-center shrink-0 w-80">Slide 1</div>
|
|
18
|
+
<div class="snap-center shrink-0 w-80">Slide 2</div>
|
|
19
|
+
<div class="snap-center shrink-0 w-80">Slide 3</div>
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
<!-- Vertical snap -->
|
|
23
|
+
<div class="snap-y snap-mandatory overflow-y-auto h-screen">
|
|
24
|
+
<div class="snap-start h-screen">Section 1</div>
|
|
25
|
+
<div class="snap-start h-screen">Section 2</div>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<!-- Both axes -->
|
|
29
|
+
<div class="snap-both overflow-auto">...</div>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Strictness
|
|
33
|
+
|
|
34
|
+
- `snap-mandatory` - always rest on a snap point
|
|
35
|
+
- `snap-proximity` - snap only when close to a point (default)
|
|
36
|
+
|
|
37
|
+
### Child alignment
|
|
38
|
+
|
|
39
|
+
```html
|
|
40
|
+
<div class="snap-x overflow-x-auto">
|
|
41
|
+
<div class="snap-center">Center snap</div>
|
|
42
|
+
<div class="snap-start">Start snap</div>
|
|
43
|
+
<div class="snap-end">End snap</div>
|
|
44
|
+
<div class="snap-align-none">No snap</div>
|
|
45
|
+
</div>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Key Points
|
|
49
|
+
|
|
50
|
+
- `snap-x` - horizontal; `snap-y` - vertical; `snap-both` - both; `snap-none` - disable
|
|
51
|
+
- `snap-mandatory` / `snap-proximity` - strictness
|
|
52
|
+
- Child: `snap-center`, `snap-start`, `snap-end`, `snap-align-none`
|
|
53
|
+
- Requires overflow (e.g. `overflow-x-auto`) and scroll on container
|
|
54
|
+
|
|
55
|
+
<!--
|
|
56
|
+
Source references:
|
|
57
|
+
- https://tailwindcss.com/docs/scroll-snap-type
|
|
58
|
+
- https://tailwindcss.com/docs/scroll-snap-align
|
|
59
|
+
-->
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: effects-text-shadow
|
|
3
|
+
description: Text shadow utilities added in Tailwind CSS v4.1 — sizes, colors, and opacity modifiers
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Text Shadow (v4.1+)
|
|
7
|
+
|
|
8
|
+
Text shadow utilities for adding shadows to text content. Added in Tailwind CSS v4.1.
|
|
9
|
+
|
|
10
|
+
## Sizes
|
|
11
|
+
|
|
12
|
+
Five default sizes:
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<p class="text-shadow-2xs">Extra extra small shadow</p>
|
|
16
|
+
<p class="text-shadow-xs">Extra small shadow</p>
|
|
17
|
+
<p class="text-shadow-sm">Small shadow</p>
|
|
18
|
+
<p class="text-shadow-md">Medium shadow</p>
|
|
19
|
+
<p class="text-shadow-lg">Large shadow</p>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Remove text shadow:
|
|
23
|
+
|
|
24
|
+
```html
|
|
25
|
+
<p class="text-shadow-none">No shadow</p>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Colors
|
|
29
|
+
|
|
30
|
+
Apply a color to the text shadow:
|
|
31
|
+
|
|
32
|
+
```html
|
|
33
|
+
<p class="text-shadow-lg text-shadow-blue-500">Blue shadow</p>
|
|
34
|
+
<p class="text-shadow-md text-shadow-gray-900">Dark shadow</p>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Opacity Modifiers
|
|
38
|
+
|
|
39
|
+
Control shadow opacity with the slash modifier:
|
|
40
|
+
|
|
41
|
+
```html
|
|
42
|
+
<p class="text-shadow-lg/50">50% opacity shadow</p>
|
|
43
|
+
<p class="text-shadow-md text-shadow-sky-300/25">Sky shadow at 25%</p>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Common Patterns
|
|
47
|
+
|
|
48
|
+
### Readable text over images
|
|
49
|
+
|
|
50
|
+
```html
|
|
51
|
+
<div class="relative">
|
|
52
|
+
<img src="/hero.jpg" class="w-full" />
|
|
53
|
+
<h1 class="absolute text-white text-shadow-lg text-shadow-black/50">
|
|
54
|
+
Hero Title
|
|
55
|
+
</h1>
|
|
56
|
+
</div>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Subtle heading enhancement
|
|
60
|
+
|
|
61
|
+
```html
|
|
62
|
+
<h2 class="text-4xl font-bold text-shadow-sm text-shadow-gray-300">
|
|
63
|
+
Section Title
|
|
64
|
+
</h2>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Key Points
|
|
68
|
+
|
|
69
|
+
- Text shadows are separate from box shadows (`shadow-*`)
|
|
70
|
+
- Size and color are independent utilities that combine
|
|
71
|
+
- Opacity modifier goes on the size: `text-shadow-lg/50`
|
|
72
|
+
- Use `text-shadow-none` to remove shadows
|
|
73
|
+
- Works with all variants: `hover:text-shadow-lg`, `dark:text-shadow-md`
|
|
74
|
+
|
|
75
|
+
<!--
|
|
76
|
+
Source references:
|
|
77
|
+
- https://tailwindcss.com/blog/tailwindcss-v4-1
|
|
78
|
+
-->
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: effects-transition-animation
|
|
3
|
+
description: CSS transitions, animation keyframes, and reduced motion support
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Transition & Animation
|
|
7
|
+
|
|
8
|
+
Utilities for CSS transitions and animations.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
### Transition property
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<button class="transition hover:bg-blue-600">Transitions common properties</button>
|
|
16
|
+
<button class="transition-all hover:scale-110">All properties</button>
|
|
17
|
+
<button class="transition-colors hover:bg-indigo-500">Colors only</button>
|
|
18
|
+
<button class="transition-opacity hover:opacity-75">Opacity only</button>
|
|
19
|
+
<button class="transition-transform hover:translate-y-1">Transform only</button>
|
|
20
|
+
<button class="transition-none">No transition</button>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Transition duration and delay
|
|
24
|
+
|
|
25
|
+
```html
|
|
26
|
+
<button class="transition duration-150">150ms (default)</button>
|
|
27
|
+
<button class="transition duration-300">300ms</button>
|
|
28
|
+
<button class="transition duration-500">500ms</button>
|
|
29
|
+
<button class="transition delay-150">Delay 150ms</button>
|
|
30
|
+
<button class="transition duration-300 delay-100">Both</button>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Transition timing
|
|
34
|
+
|
|
35
|
+
```html
|
|
36
|
+
<button class="transition ease-linear">Linear</button>
|
|
37
|
+
<button class="transition ease-in">Ease in</button>
|
|
38
|
+
<button class="transition ease-out">Ease out</button>
|
|
39
|
+
<button class="transition ease-in-out">Ease in-out (default)</button>
|
|
40
|
+
<button class="transition ease-[cubic-bezier(0.4,0,0.2,1)]">Arbitrary</button>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Animation keyframes
|
|
44
|
+
|
|
45
|
+
```html
|
|
46
|
+
<div class="animate-spin">Spinning</div>
|
|
47
|
+
<div class="animate-ping">Ping effect</div>
|
|
48
|
+
<div class="animate-pulse">Pulse</div>
|
|
49
|
+
<div class="animate-bounce">Bounce</div>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Built-in: `animate-spin`, `animate-ping`, `animate-pulse`, `animate-bounce`. Use `@keyframes` in custom CSS for more.
|
|
53
|
+
|
|
54
|
+
### Reduced motion
|
|
55
|
+
|
|
56
|
+
```html
|
|
57
|
+
<button class="transition hover:-translate-y-1 motion-reduce:transition-none motion-reduce:hover:translate-y-0">
|
|
58
|
+
Respects prefers-reduced-motion
|
|
59
|
+
</button>
|
|
60
|
+
<div class="animate-spin motion-reduce:animate-none">Spinner hidden when reduced motion</div>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Use `motion-reduce:` to disable or simplify animations when user prefers reduced motion.
|
|
64
|
+
|
|
65
|
+
## Key Points
|
|
66
|
+
|
|
67
|
+
- Transition: `transition`, `transition-all`, `transition-colors`, `transition-opacity`, `transition-transform`
|
|
68
|
+
- Duration: `duration-{75,100,150,200,300,500,700,1000}`
|
|
69
|
+
- Delay: `delay-{75,100,150,200,300,500,700,1000}`
|
|
70
|
+
- Timing: `ease-{linear,in,in-out,out}`
|
|
71
|
+
- Animation: `animate-spin`, `animate-ping`, `animate-pulse`, `animate-bounce`
|
|
72
|
+
- Always consider `motion-reduce:` for accessibility
|
|
73
|
+
|
|
74
|
+
<!--
|
|
75
|
+
Source references:
|
|
76
|
+
- https://tailwindcss.com/docs/transition-property
|
|
77
|
+
- https://tailwindcss.com/docs/transition-duration
|
|
78
|
+
- https://tailwindcss.com/docs/transition-timing-function
|
|
79
|
+
- https://tailwindcss.com/docs/animation
|
|
80
|
+
-->
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: effects-visibility-interactivity
|
|
3
|
+
description: Visibility, cursor, pointer-events, user-select, and z-index
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Visibility & Interactivity
|
|
7
|
+
|
|
8
|
+
Utilities for visibility, cursor, pointer-events, user-select, and stacking.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
### Visibility
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<div class="visible">Visible (default)</div>
|
|
16
|
+
<div class="invisible">Hidden but in layout</div>
|
|
17
|
+
<div class="collapse">Table collapse</div>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Use `invisible` when you need to keep layout space; use `hidden` (display:none) to remove from flow.
|
|
21
|
+
|
|
22
|
+
### Cursor
|
|
23
|
+
|
|
24
|
+
```html
|
|
25
|
+
<button class="cursor-pointer">Pointer</button>
|
|
26
|
+
<div class="cursor-not-allowed">Disabled</div>
|
|
27
|
+
<div class="cursor-wait">Loading</div>
|
|
28
|
+
<div class="cursor-move">Draggable</div>
|
|
29
|
+
<div class="cursor-grab">Grab</div>
|
|
30
|
+
<div class="cursor-grabbing">Grabbing</div>
|
|
31
|
+
<div class="cursor-text">Text select</div>
|
|
32
|
+
<div class="cursor-default">Default</div>
|
|
33
|
+
<div class="cursor-none">No cursor</div>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Pointer events
|
|
37
|
+
|
|
38
|
+
```html
|
|
39
|
+
<div class="pointer-events-none">Ignore all pointer events</div>
|
|
40
|
+
<div class="pointer-events-auto">Default behavior</div>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Useful for overlays: make overlay `pointer-events-none` so clicks pass through, or `pointer-events-none` on disabled elements.
|
|
44
|
+
|
|
45
|
+
### User select
|
|
46
|
+
|
|
47
|
+
```html
|
|
48
|
+
<p class="select-none">Cannot select</p>
|
|
49
|
+
<p class="select-text">Select text (default)</p>
|
|
50
|
+
<p class="select-all">Select all on click</p>
|
|
51
|
+
<p class="select-auto">Browser default</p>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Z-index
|
|
55
|
+
|
|
56
|
+
```html
|
|
57
|
+
<div class="z-0">0</div>
|
|
58
|
+
<div class="z-10">10</div>
|
|
59
|
+
<div class="z-20">20</div>
|
|
60
|
+
<div class="z-50">50</div>
|
|
61
|
+
<div class="z-auto">Auto</div>
|
|
62
|
+
<div class="z-[100]">Arbitrary</div>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Common: `z-0` (base), `z-10` (dropdowns), `z-20` (fixed nav), `z-50` (modal), `z-40` (overlay).
|
|
66
|
+
|
|
67
|
+
## Key Points
|
|
68
|
+
|
|
69
|
+
- Visibility: `visible`, `invisible`, `collapse`
|
|
70
|
+
- Cursor: `cursor-{pointer,not-allowed,wait,move,grab,text,default,none}`
|
|
71
|
+
- Pointer events: `pointer-events-none`, `pointer-events-auto`
|
|
72
|
+
- User select: `select-none`, `select-text`, `select-all`
|
|
73
|
+
- Z-index: `z-{0,10,20,30,40,50,auto}`, `z-[n]`
|
|
74
|
+
|
|
75
|
+
<!--
|
|
76
|
+
Source references:
|
|
77
|
+
- https://tailwindcss.com/docs/visibility
|
|
78
|
+
- https://tailwindcss.com/docs/cursor
|
|
79
|
+
- https://tailwindcss.com/docs/pointer-events
|
|
80
|
+
- https://tailwindcss.com/docs/user-select
|
|
81
|
+
- https://tailwindcss.com/docs/z-index
|
|
82
|
+
-->
|