Use when writing, editing, creating, planning, fixing, or refactoring any UI code in this project. Covers components, pages, routes, forms, tables, modals, buttons, queries, hooks, styles, layouts, loaders, and actions. Use when adding a feature, building a page, fixing a bug, styling UI, creating a modal, adding a table, writing a query, updating a route, or any work touching packages/app-builder or packages/ui-design-system.
Deep reference guide for complex React patterns in the Marble monorepo. For basic conventions (imports, styling, routes, i18n), see .claude/rules/.
// Plain function declarations - NOT React.FC or FunctionComponent
// Named exports only - NO default exports
// Props via interface (or type)
interface CaseCardProps {
caseData: Case;
onSelect?: (id: string) => void;
className?: string;
}
export function CaseCard({ caseData, onSelect, className }: CaseCardProps) {
return (
<div className={cn('rounded-lg border border-grey-border p-md', className)}>
<Typo variant="subtitle1">{caseData.name}</Typo>
<Button onClick={() => onSelect?.(caseData.id)}>Select</Button>
</div>
);
}
// /queries/continuous-screening/configuration.ts
import { getContinuousScreeningConfigurationFn } from '@app-builder/server-fns/continuous-screening';
import { useQuery } from '@tanstack/react-query';
import { useServerFn } from '@tanstack/react-start';
export const useContinuousScreeningConfigurationQuery = (stableId: string) => {
const getContinuousScreeningConfiguration = useServerFn(getContinuousScreeningConfigurationFn);
return useQuery({
queryKey: ['continuous-screening', 'configuration', stableId],
queryFn: async () => {
const result = await getContinuousScreeningConfiguration({ data: { stableId } });
return result.config;
},
});
};
Read these when working on specific areas:
| Topic | Resource | When to read | |-------|----------|-------------| | Component patterns | component-patterns.md | Writing/editing components | | Data fetching | data-fetching.md | Queries, mutations, loaders, server functions | | Routing | routing-guide.md | TanStack Router routes, breadcrumbs, navigation | | Styling | styling-guide.md | Color tokens, surface tokens, dark mode | | Tables & selects | tables-and-selects.md | Virtual tables, MenuCommand dropdowns | | Forms & modals | forms-and-modals.md | TanStack Form, Modal, Panel | | Common patterns | common-patterns.md | ts-pattern, remeda, icons, toasts, dates | | File organization | file-organization.md | Architecture layers, naming | | TypeScript | typescript-standards.md | Types, Zod v4, model adapters |
npx skills add checkmarble/frontend-dev-guidelines下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer