@vetala/vetala 0.1.0-beta
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.
Potentially problematic release.
This version of @vetala/vetala might be problematic. Click here for more details.
- package/CONTRIBUTING.md +77 -0
- package/LICENSE +184 -0
- package/README.md +136 -0
- package/THIRD_PARTY_LICENSES.md +17 -0
- package/dist/src/agent.d.ts +30 -0
- package/dist/src/agent.js +216 -0
- package/dist/src/agent.js.map +1 -0
- package/dist/src/approvals.d.ts +18 -0
- package/dist/src/approvals.js +81 -0
- package/dist/src/approvals.js.map +1 -0
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +87 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/config.d.ts +12 -0
- package/dist/src/config.js +183 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/context-memory.d.ts +7 -0
- package/dist/src/context-memory.js +96 -0
- package/dist/src/context-memory.js.map +1 -0
- package/dist/src/ink/command-suggestions.d.ts +7 -0
- package/dist/src/ink/command-suggestions.js +179 -0
- package/dist/src/ink/command-suggestions.js.map +1 -0
- package/dist/src/ink/ink-terminal-ui.d.ts +36 -0
- package/dist/src/ink/ink-terminal-ui.js +79 -0
- package/dist/src/ink/ink-terminal-ui.js.map +1 -0
- package/dist/src/ink/repl-app.d.ts +9 -0
- package/dist/src/ink/repl-app.js +789 -0
- package/dist/src/ink/repl-app.js.map +1 -0
- package/dist/src/ink/transcript-cards.d.ts +6 -0
- package/dist/src/ink/transcript-cards.js +24 -0
- package/dist/src/ink/transcript-cards.js.map +1 -0
- package/dist/src/path-policy.d.ts +11 -0
- package/dist/src/path-policy.js +67 -0
- package/dist/src/path-policy.js.map +1 -0
- package/dist/src/process-utils.d.ts +13 -0
- package/dist/src/process-utils.js +52 -0
- package/dist/src/process-utils.js.map +1 -0
- package/dist/src/repl.d.ts +9 -0
- package/dist/src/repl.js +13 -0
- package/dist/src/repl.js.map +1 -0
- package/dist/src/sarvam/client.d.ts +15 -0
- package/dist/src/sarvam/client.js +208 -0
- package/dist/src/sarvam/client.js.map +1 -0
- package/dist/src/sarvam/models.d.ts +2 -0
- package/dist/src/sarvam/models.js +7 -0
- package/dist/src/sarvam/models.js.map +1 -0
- package/dist/src/search-provider.d.ts +6 -0
- package/dist/src/search-provider.js +8 -0
- package/dist/src/search-provider.js.map +1 -0
- package/dist/src/session-store.d.ts +19 -0
- package/dist/src/session-store.js +318 -0
- package/dist/src/session-store.js.map +1 -0
- package/dist/src/skills/runtime.d.ts +26 -0
- package/dist/src/skills/runtime.js +317 -0
- package/dist/src/skills/runtime.js.map +1 -0
- package/dist/src/skills/types.d.ts +25 -0
- package/dist/src/skills/types.js +2 -0
- package/dist/src/skills/types.js.map +1 -0
- package/dist/src/terminal-ui.d.ts +29 -0
- package/dist/src/terminal-ui.js +236 -0
- package/dist/src/terminal-ui.js.map +1 -0
- package/dist/src/tools/filesystem.d.ts +2 -0
- package/dist/src/tools/filesystem.js +622 -0
- package/dist/src/tools/filesystem.js.map +1 -0
- package/dist/src/tools/git.d.ts +2 -0
- package/dist/src/tools/git.js +326 -0
- package/dist/src/tools/git.js.map +1 -0
- package/dist/src/tools/index.d.ts +6 -0
- package/dist/src/tools/index.js +21 -0
- package/dist/src/tools/index.js.map +1 -0
- package/dist/src/tools/registry.d.ts +15 -0
- package/dist/src/tools/registry.js +59 -0
- package/dist/src/tools/registry.js.map +1 -0
- package/dist/src/tools/shell.d.ts +2 -0
- package/dist/src/tools/shell.js +97 -0
- package/dist/src/tools/shell.js.map +1 -0
- package/dist/src/tools/skill.d.ts +3 -0
- package/dist/src/tools/skill.js +130 -0
- package/dist/src/tools/skill.js.map +1 -0
- package/dist/src/tools/web.d.ts +3 -0
- package/dist/src/tools/web.js +144 -0
- package/dist/src/tools/web.js.map +1 -0
- package/dist/src/types.d.ts +236 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/workspace-trust.d.ts +3 -0
- package/dist/src/workspace-trust.js +31 -0
- package/dist/src/workspace-trust.js.map +1 -0
- package/dist/src/xdg.d.ts +9 -0
- package/dist/src/xdg.js +77 -0
- package/dist/src/xdg.js.map +1 -0
- package/package.json +57 -0
- package/skill/agents-md-generator/SKILL.md +75 -0
- package/skill/agents-md-generator/references/agents_md_template.md +160 -0
- package/skill/agents-md-generator/references/loc_measurement.md +67 -0
- package/skill/agents-md-generator/references/monorepo_detection.md +78 -0
- package/skill/agents-md-generator/references/monorepo_strategy.md +60 -0
- package/skill/agents-md-generator/references/read_only_commands.md +151 -0
- package/skill/agents-md-generator/references/update_strategy.md +160 -0
- package/skill/agents-md-generator/references/working_agreements.md +53 -0
- package/skill/biz-opportunity-scout/SKILL.md +53 -0
- package/skill/biz-opportunity-scout/references/competitive_analysis.md +84 -0
- package/skill/biz-opportunity-scout/references/market_sizing.md +68 -0
- package/skill/biz-opportunity-scout/references/pmf_indicators.md +94 -0
- package/skill/biz-opportunity-scout/references/report_template.md +243 -0
- package/skill/biz-opportunity-scout/references/unit_economics.md +97 -0
- package/skill/code-review/SKILL.md +86 -0
- package/skill/code-review/references/change_analysis.md +116 -0
- package/skill/code-review/references/git_operations.md +115 -0
- package/skill/code-review/references/impact_detection.md +149 -0
- package/skill/code-review/references/output_format.md +137 -0
- package/skill/code-review/references/severity_criteria.md +100 -0
- package/skill/code-security-audit/SKILL.md +123 -0
- package/skill/code-security-audit/references/audit_process.md +277 -0
- package/skill/code-security-audit/references/remediation_patterns.md +599 -0
- package/skill/code-security-audit/references/report_format.md +391 -0
- package/skill/code-security-audit/references/security_domains.md +830 -0
- package/skill/code-security-audit/references/vulnerability_patterns.md +813 -0
- package/skill/composition-patterns/SKILL.md +83 -0
- package/skill/composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
- package/skill/composition-patterns/rules/architecture-compound-components.md +112 -0
- package/skill/composition-patterns/rules/patterns-children-over-render-props.md +87 -0
- package/skill/composition-patterns/rules/patterns-explicit-variants.md +100 -0
- package/skill/composition-patterns/rules/react19-no-forwardref.md +42 -0
- package/skill/composition-patterns/rules/state-context-interface.md +191 -0
- package/skill/composition-patterns/rules/state-decouple-implementation.md +113 -0
- package/skill/composition-patterns/rules/state-lift-state.md +125 -0
- package/skill/deploy-to-vercel/SKILL.md +293 -0
- package/skill/deploy-to-vercel/resources/deploy-sandbox.sh +301 -0
- package/skill/deploy-to-vercel/resources/deploy.sh +301 -0
- package/skill/doc/SKILL_GUIDELINES.md +138 -0
- package/skill/git-workflow/SKILL.md +94 -0
- package/skill/git-workflow/references/advanced-git.md +632 -0
- package/skill/git-workflow/references/branching-strategies.md +344 -0
- package/skill/git-workflow/references/ci-cd-integration.md +683 -0
- package/skill/git-workflow/references/code-quality-tools.md +351 -0
- package/skill/git-workflow/references/commit-conventions.md +439 -0
- package/skill/git-workflow/references/github-releases.md +288 -0
- package/skill/git-workflow/references/pull-request-workflow.md +773 -0
- package/skill/git-workflow/scripts/verify-git-workflow.sh +263 -0
- package/skill/jetbrains-vmoptions/SKILL.md +51 -0
- package/skill/jetbrains-vmoptions/references/common-options.md +357 -0
- package/skill/jetbrains-vmoptions/references/gc-options.md +350 -0
- package/skill/jetbrains-vmoptions/references/memory-options.md +339 -0
- package/skill/jetbrains-vmoptions/references/prerequisite-check.md +65 -0
- package/skill/kysely-converter/SKILL.md +62 -0
- package/skill/kysely-converter/references/delete.md +323 -0
- package/skill/kysely-converter/references/insert.md +386 -0
- package/skill/kysely-converter/references/operators.md +331 -0
- package/skill/kysely-converter/references/select.md +1000 -0
- package/skill/kysely-converter/references/update.md +349 -0
- package/skill/kysely-converter/references/window_function.md +537 -0
- package/skill/react-best-practices/SKILL.md +131 -0
- package/skill/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/skill/react-best-practices/rules/advanced-init-once.md +42 -0
- package/skill/react-best-practices/rules/advanced-use-latest.md +39 -0
- package/skill/react-best-practices/rules/async-api-routes.md +38 -0
- package/skill/react-best-practices/rules/async-defer-await.md +80 -0
- package/skill/react-best-practices/rules/async-dependencies.md +51 -0
- package/skill/react-best-practices/rules/async-parallel.md +28 -0
- package/skill/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/skill/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/skill/react-best-practices/rules/bundle-conditional.md +31 -0
- package/skill/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/skill/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/skill/react-best-practices/rules/bundle-preload.md +50 -0
- package/skill/react-best-practices/rules/client-event-listeners.md +74 -0
- package/skill/react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/skill/react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/skill/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/skill/react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/skill/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/skill/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/skill/react-best-practices/rules/js-cache-storage.md +70 -0
- package/skill/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/skill/react-best-practices/rules/js-early-exit.md +50 -0
- package/skill/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/skill/react-best-practices/rules/js-index-maps.md +37 -0
- package/skill/react-best-practices/rules/js-length-check-first.md +49 -0
- package/skill/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/skill/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/skill/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/skill/react-best-practices/rules/rendering-activity.md +26 -0
- package/skill/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/skill/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/skill/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/skill/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/skill/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/skill/react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/skill/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/skill/react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/skill/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/skill/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/skill/react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/skill/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/skill/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/skill/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/skill/react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/skill/react-best-practices/rules/rerender-memo.md +44 -0
- package/skill/react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/skill/react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/skill/react-best-practices/rules/rerender-transitions.md +40 -0
- package/skill/react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/skill/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/skill/react-best-practices/rules/server-auth-actions.md +96 -0
- package/skill/react-best-practices/rules/server-cache-lru.md +41 -0
- package/skill/react-best-practices/rules/server-cache-react.md +76 -0
- package/skill/react-best-practices/rules/server-dedup-props.md +65 -0
- package/skill/react-best-practices/rules/server-hoist-static-io.md +142 -0
- package/skill/react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/skill/react-best-practices/rules/server-serialization.md +38 -0
- package/skill/react-native-skills/SKILL.md +115 -0
- package/skill/react-native-skills/rules/animation-derived-value.md +53 -0
- package/skill/react-native-skills/rules/animation-gesture-detector-press.md +95 -0
- package/skill/react-native-skills/rules/animation-gpu-properties.md +65 -0
- package/skill/react-native-skills/rules/design-system-compound-components.md +66 -0
- package/skill/react-native-skills/rules/fonts-config-plugin.md +71 -0
- package/skill/react-native-skills/rules/imports-design-system-folder.md +68 -0
- package/skill/react-native-skills/rules/js-hoist-intl.md +61 -0
- package/skill/react-native-skills/rules/list-performance-callbacks.md +44 -0
- package/skill/react-native-skills/rules/list-performance-function-references.md +132 -0
- package/skill/react-native-skills/rules/list-performance-images.md +53 -0
- package/skill/react-native-skills/rules/list-performance-inline-objects.md +97 -0
- package/skill/react-native-skills/rules/list-performance-item-expensive.md +94 -0
- package/skill/react-native-skills/rules/list-performance-item-memo.md +82 -0
- package/skill/react-native-skills/rules/list-performance-item-types.md +104 -0
- package/skill/react-native-skills/rules/list-performance-virtualize.md +67 -0
- package/skill/react-native-skills/rules/monorepo-native-deps-in-app.md +46 -0
- package/skill/react-native-skills/rules/monorepo-single-dependency-versions.md +63 -0
- package/skill/react-native-skills/rules/navigation-native-navigators.md +188 -0
- package/skill/react-native-skills/rules/react-compiler-destructure-functions.md +50 -0
- package/skill/react-native-skills/rules/react-compiler-reanimated-shared-values.md +48 -0
- package/skill/react-native-skills/rules/react-state-dispatcher.md +91 -0
- package/skill/react-native-skills/rules/react-state-fallback.md +56 -0
- package/skill/react-native-skills/rules/react-state-minimize.md +65 -0
- package/skill/react-native-skills/rules/rendering-no-falsy-and.md +74 -0
- package/skill/react-native-skills/rules/rendering-text-in-text-component.md +36 -0
- package/skill/react-native-skills/rules/scroll-position-no-state.md +82 -0
- package/skill/react-native-skills/rules/state-ground-truth.md +80 -0
- package/skill/react-native-skills/rules/ui-expo-image.md +66 -0
- package/skill/react-native-skills/rules/ui-image-gallery.md +104 -0
- package/skill/react-native-skills/rules/ui-measure-views.md +78 -0
- package/skill/react-native-skills/rules/ui-menus.md +174 -0
- package/skill/react-native-skills/rules/ui-native-modals.md +77 -0
- package/skill/react-native-skills/rules/ui-pressable.md +61 -0
- package/skill/react-native-skills/rules/ui-safe-area-scroll.md +65 -0
- package/skill/react-native-skills/rules/ui-scrollview-content-inset.md +45 -0
- package/skill/react-native-skills/rules/ui-styling.md +87 -0
- package/skill/react-vite-guide/SKILL.md +101 -0
- package/skill/react-vite-guide/references/composition-patterns.md +709 -0
- package/skill/react-vite-guide/references/performance-optimization.md +1222 -0
- package/skill/react-vite-guide/references/vite-specific.md +385 -0
- package/skill/react-vite-guide/references/web-interface.md +146 -0
- package/skill/skill-maker/SKILL.md +52 -0
- package/skill/skill-maker/references/content_spec.md +67 -0
- package/skill/skill-maker/references/frontmatter_spec.md +96 -0
- package/skill/skill-maker/references/input_validation.md +90 -0
- package/skill/skill-maker/references/skill_structure.md +74 -0
- package/skill/system-prompt-creator/SKILL.md +50 -0
- package/skill/system-prompt-creator/references/data_format_selection.md +135 -0
- package/skill/system-prompt-creator/references/multi_prompt_architecture.md +386 -0
- package/skill/system-prompt-creator/references/prompt_structure.md +140 -0
- package/skill/system-prompt-creator/references/quality_criteria.md +83 -0
- package/skill/typst-creator/SKILL.md +51 -0
- package/skill/typst-creator/references/layout.md +401 -0
- package/skill/typst-creator/references/math.md +297 -0
- package/skill/typst-creator/references/scripting.md +237 -0
- package/skill/typst-creator/references/styling.md +217 -0
- package/skill/typst-creator/references/syntax.md +234 -0
- package/skill/web-design-guidelines/SKILL.md +35 -0
- package/terminal.png +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Use contentInset for Dynamic ScrollView Spacing
|
|
3
|
+
impact: LOW
|
|
4
|
+
impactDescription: smoother updates, no layout recalculation
|
|
5
|
+
tags: scrollview, layout, contentInset, performance
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Use contentInset for Dynamic ScrollView Spacing
|
|
9
|
+
|
|
10
|
+
When adding space to the top or bottom of a ScrollView that may change
|
|
11
|
+
(keyboard, toolbars, dynamic content), use `contentInset` instead of padding.
|
|
12
|
+
Changing `contentInset` doesn't trigger layout recalculation—it adjusts the
|
|
13
|
+
scroll area without re-rendering content.
|
|
14
|
+
|
|
15
|
+
**Incorrect (padding causes layout recalculation):**
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
function Feed({ bottomOffset }: { bottomOffset: number }) {
|
|
19
|
+
return (
|
|
20
|
+
<ScrollView contentContainerStyle={{ paddingBottom: bottomOffset }}>
|
|
21
|
+
{children}
|
|
22
|
+
</ScrollView>
|
|
23
|
+
)
|
|
24
|
+
}
|
|
25
|
+
// Changing bottomOffset triggers full layout recalculation
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**Correct (contentInset for dynamic spacing):**
|
|
29
|
+
|
|
30
|
+
```tsx
|
|
31
|
+
function Feed({ bottomOffset }: { bottomOffset: number }) {
|
|
32
|
+
return (
|
|
33
|
+
<ScrollView
|
|
34
|
+
contentInset={{ bottom: bottomOffset }}
|
|
35
|
+
scrollIndicatorInsets={{ bottom: bottomOffset }}
|
|
36
|
+
>
|
|
37
|
+
{children}
|
|
38
|
+
</ScrollView>
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
// Changing bottomOffset only adjusts scroll bounds
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Use `scrollIndicatorInsets` alongside `contentInset` to keep the scroll
|
|
45
|
+
indicator aligned. For static spacing that never changes, padding is fine.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Modern React Native Styling Patterns
|
|
3
|
+
impact: MEDIUM
|
|
4
|
+
impactDescription: consistent design, smoother borders, cleaner layouts
|
|
5
|
+
tags: styling, css, layout, shadows, gradients
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Modern React Native Styling Patterns
|
|
9
|
+
|
|
10
|
+
Follow these styling patterns for cleaner, more consistent React Native code.
|
|
11
|
+
|
|
12
|
+
**Always use `borderCurve: 'continuous'` with `borderRadius`:**
|
|
13
|
+
|
|
14
|
+
```tsx
|
|
15
|
+
// Incorrect
|
|
16
|
+
{ borderRadius: 12 }
|
|
17
|
+
|
|
18
|
+
// Correct – smoother iOS-style corners
|
|
19
|
+
{ borderRadius: 12, borderCurve: 'continuous' }
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**Use `gap` instead of margin for spacing between elements:**
|
|
23
|
+
|
|
24
|
+
```tsx
|
|
25
|
+
// Incorrect – margin on children
|
|
26
|
+
<View>
|
|
27
|
+
<Text style={{ marginBottom: 8 }}>Title</Text>
|
|
28
|
+
<Text style={{ marginBottom: 8 }}>Subtitle</Text>
|
|
29
|
+
</View>
|
|
30
|
+
|
|
31
|
+
// Correct – gap on parent
|
|
32
|
+
<View style={{ gap: 8 }}>
|
|
33
|
+
<Text>Title</Text>
|
|
34
|
+
<Text>Subtitle</Text>
|
|
35
|
+
</View>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Use `padding` for space within, `gap` for space between:**
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
<View style={{ padding: 16, gap: 12 }}>
|
|
42
|
+
<Text>First</Text>
|
|
43
|
+
<Text>Second</Text>
|
|
44
|
+
</View>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Use `experimental_backgroundImage` for linear gradients:**
|
|
48
|
+
|
|
49
|
+
```tsx
|
|
50
|
+
// Incorrect – third-party gradient library
|
|
51
|
+
<LinearGradient colors={['#000', '#fff']} />
|
|
52
|
+
|
|
53
|
+
// Correct – native CSS gradient syntax
|
|
54
|
+
<View
|
|
55
|
+
style={{
|
|
56
|
+
experimental_backgroundImage: 'linear-gradient(to bottom, #000, #fff)',
|
|
57
|
+
}}
|
|
58
|
+
/>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Use CSS `boxShadow` string syntax for shadows:**
|
|
62
|
+
|
|
63
|
+
```tsx
|
|
64
|
+
// Incorrect – legacy shadow objects or elevation
|
|
65
|
+
{ shadowColor: '#000', shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.1 }
|
|
66
|
+
{ elevation: 4 }
|
|
67
|
+
|
|
68
|
+
// Correct – CSS box-shadow syntax
|
|
69
|
+
{ boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)' }
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Avoid multiple font sizes – use weight and color for emphasis:**
|
|
73
|
+
|
|
74
|
+
```tsx
|
|
75
|
+
// Incorrect – varying font sizes for hierarchy
|
|
76
|
+
<Text style={{ fontSize: 18 }}>Title</Text>
|
|
77
|
+
<Text style={{ fontSize: 14 }}>Subtitle</Text>
|
|
78
|
+
<Text style={{ fontSize: 12 }}>Caption</Text>
|
|
79
|
+
|
|
80
|
+
// Correct – consistent size, vary weight and color
|
|
81
|
+
<Text style={{ fontWeight: '600' }}>Title</Text>
|
|
82
|
+
<Text style={{ color: '#666' }}>Subtitle</Text>
|
|
83
|
+
<Text style={{ color: '#999' }}>Caption</Text>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Limiting font sizes creates visual consistency. Use `fontWeight` (bold/semibold)
|
|
87
|
+
and grayscale colors for hierarchy instead.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: react-vite-guide
|
|
3
|
+
description:
|
|
4
|
+
React 19 + Vite SPA development guidelines. Composition patterns, performance
|
|
5
|
+
optimization, and web interface best practices. Use when writing, reviewing, or
|
|
6
|
+
refactoring React components in Vite-based projects. Covers compound components,
|
|
7
|
+
state management, bundle optimization, re-render prevention, accessibility, and
|
|
8
|
+
UI patterns. Triggers on React component work, performance issues, code review,
|
|
9
|
+
or new feature development.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# React 19 + Vite Guide
|
|
13
|
+
|
|
14
|
+
Comprehensive guidelines for building React 19 SPA applications with Vite. Combines composition patterns, performance optimization, and web interface best practices into a single reference optimized for AI agent workflows.
|
|
15
|
+
|
|
16
|
+
## Tech Stack
|
|
17
|
+
|
|
18
|
+
- **React 19** — `use()`, ref as prop, React Compiler support
|
|
19
|
+
- **Vite** — `React.lazy()` + dynamic `import()`, env variables, HMR
|
|
20
|
+
- **TypeScript** — strict mode recommended
|
|
21
|
+
- **Pure SPA (CSR)** — no SSR, no hydration concerns
|
|
22
|
+
|
|
23
|
+
## Capability Index
|
|
24
|
+
|
|
25
|
+
### 1. Composition Patterns (references/composition-patterns.md)
|
|
26
|
+
|
|
27
|
+
Component architecture and state management patterns for scalable React apps.
|
|
28
|
+
|
|
29
|
+
| Priority | Category | Impact |
|
|
30
|
+
|----------|----------|--------|
|
|
31
|
+
| 1 | Component Architecture | HIGH |
|
|
32
|
+
| 2 | State Management | MEDIUM |
|
|
33
|
+
| 3 | Implementation Patterns | MEDIUM |
|
|
34
|
+
| 4 | React 19 APIs | MEDIUM |
|
|
35
|
+
|
|
36
|
+
Key topics:
|
|
37
|
+
- Boolean prop proliferation vs composition alternatives
|
|
38
|
+
- Compound components with shared context
|
|
39
|
+
- State management decoupled from UI via providers
|
|
40
|
+
- Generic context interfaces (state/actions/meta)
|
|
41
|
+
- State lifted into providers for sibling access
|
|
42
|
+
- Explicit component variants vs boolean modes
|
|
43
|
+
- Children vs render props
|
|
44
|
+
- React 19: `use()` replaces `useContext()`, ref as regular prop
|
|
45
|
+
|
|
46
|
+
### 2. Performance Optimization (references/performance-optimization.md)
|
|
47
|
+
|
|
48
|
+
Performance optimization patterns adapted for Vite + React 19 SPA. Next.js-specific patterns removed; Vite equivalents provided.
|
|
49
|
+
|
|
50
|
+
| Priority | Category | Impact |
|
|
51
|
+
|----------|----------|--------|
|
|
52
|
+
| 1 | Async Optimization | CRITICAL |
|
|
53
|
+
| 2 | Bundle Size | CRITICAL |
|
|
54
|
+
| 3 | Client-Side Data Fetching | MEDIUM-HIGH |
|
|
55
|
+
| 4 | Re-render Optimization | MEDIUM |
|
|
56
|
+
| 5 | Rendering Performance | MEDIUM |
|
|
57
|
+
| 6 | JavaScript Performance | LOW-MEDIUM |
|
|
58
|
+
| 7 | Advanced Patterns | LOW |
|
|
59
|
+
|
|
60
|
+
Key topics:
|
|
61
|
+
- `Promise.all()` and dependency-based parallelization
|
|
62
|
+
- `React.lazy()` + `Suspense` for code splitting (Vite)
|
|
63
|
+
- Barrel file import cost and direct imports
|
|
64
|
+
- Hover/focus preloading for perceived speed
|
|
65
|
+
- SWR for client-side data deduplication
|
|
66
|
+
- Functional `setState`, lazy state initialization
|
|
67
|
+
- `useTransition` for non-urgent updates
|
|
68
|
+
- `content-visibility: auto` for long lists
|
|
69
|
+
- `useRef` for transient values
|
|
70
|
+
- Module-level caching patterns
|
|
71
|
+
|
|
72
|
+
### 3. Web Interface (references/web-interface.md)
|
|
73
|
+
|
|
74
|
+
UI/UX patterns for accessibility, forms, animation, performance, and content quality.
|
|
75
|
+
|
|
76
|
+
| Category | Focus |
|
|
77
|
+
|----------|-------|
|
|
78
|
+
| Accessibility | ARIA, semantic HTML, keyboard handlers |
|
|
79
|
+
| Focus States | `focus-visible`, no bare `outline-none` |
|
|
80
|
+
| Forms | `autocomplete`, correct `type`, paste allowed |
|
|
81
|
+
| Animation | `prefers-reduced-motion`, compositor-only props |
|
|
82
|
+
| Typography | Ellipsis, curly quotes, `tabular-nums` |
|
|
83
|
+
| Content Handling | Truncation, empty states, long content |
|
|
84
|
+
| Images | Explicit dimensions, lazy loading |
|
|
85
|
+
| Performance | Virtualization, no layout reads in render |
|
|
86
|
+
| Navigation & State | URL reflects state, deep-linkable UI |
|
|
87
|
+
| Touch & Interaction | `touch-action`, `overscroll-behavior` |
|
|
88
|
+
| Dark Mode | `color-scheme`, `theme-color` meta |
|
|
89
|
+
| Locale & i18n | `Intl.DateTimeFormat`, `Intl.NumberFormat` |
|
|
90
|
+
|
|
91
|
+
### 4. Vite-Specific Patterns (references/vite-specific.md)
|
|
92
|
+
|
|
93
|
+
Vite-specific configuration, conventions, and optimization patterns.
|
|
94
|
+
|
|
95
|
+
Key topics:
|
|
96
|
+
- Dynamic imports and code splitting with Vite
|
|
97
|
+
- Environment variables (`import.meta.env`)
|
|
98
|
+
- Vite plugin ecosystem (React SWC/Babel)
|
|
99
|
+
- Build optimization (`manualChunks`, `rollupOptions`)
|
|
100
|
+
- Alias and path resolution
|
|
101
|
+
- CSS Modules / Tailwind CSS integration
|