opencode-skills-collection 4.0.68 → 4.0.70
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/bundled-skills/.antigravity-install-manifest.json +304 -1
- package/bundled-skills/access-review/SKILL.md +394 -0
- package/bundled-skills/access-review/references/details.md +121 -0
- package/bundled-skills/agent-evals/SKILL.md +420 -0
- package/bundled-skills/agent-observability/SKILL.md +346 -0
- package/bundled-skills/agent-observability/references/details.md +786 -0
- package/bundled-skills/ai-agent-security/SKILL.md +393 -0
- package/bundled-skills/ai-agent-security/references/details.md +912 -0
- package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
- package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
- package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
- package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
- package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
- package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
- package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
- package/bundled-skills/alerting-oncall/SKILL.md +458 -0
- package/bundled-skills/alerting-oncall/references/details.md +84 -0
- package/bundled-skills/api-integration-architect/SKILL.md +241 -0
- package/bundled-skills/apify-generate-output-schema/SKILL.md +438 -0
- package/bundled-skills/apify-integration-development/SKILL.md +168 -0
- package/bundled-skills/apify-integration-development/references/ai-framework-package.md +158 -0
- package/bundled-skills/apify-integration-development/references/ai-harness-plugin.md +192 -0
- package/bundled-skills/apify-integration-development/references/sdk-integration.md +236 -0
- package/bundled-skills/apify-integration-development/references/workflow-automation.md +163 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
- package/bundled-skills/architecture-review/README.md +42 -0
- package/bundled-skills/architecture-review/SKILL.md +77 -0
- package/bundled-skills/architecture-review/examples.md +11 -0
- package/bundled-skills/architecture-review/reference/best-practices.md +7 -0
- package/bundled-skills/architecture-review/reference/capabilities.md +20 -0
- package/bundled-skills/architecture-review/reference/fallbacks.md +11 -0
- package/bundled-skills/architecture-review/reference/graph.md +15 -0
- package/bundled-skills/architecture-review/reference/mcp.md +14 -0
- package/bundled-skills/architecture-review/reference/workflow.md +15 -0
- package/bundled-skills/architecture-review/templates/architecture-review.md +21 -0
- package/bundled-skills/argocd-gitops/SKILL.md +469 -0
- package/bundled-skills/arm-templates/SKILL.md +438 -0
- package/bundled-skills/arm-templates/references/details.md +64 -0
- package/bundled-skills/asset-inventory/SKILL.md +412 -0
- package/bundled-skills/asset-inventory/references/details.md +127 -0
- package/bundled-skills/audit-logging/SKILL.md +476 -0
- package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
- package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
- package/bundled-skills/aws-ec2/SKILL.md +426 -0
- package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
- package/bundled-skills/aws-iam/SKILL.md +463 -0
- package/bundled-skills/aws-lambda/SKILL.md +428 -0
- package/bundled-skills/aws-rds/SKILL.md +380 -0
- package/bundled-skills/aws-s3/SKILL.md +434 -0
- package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
- package/bundled-skills/aws-vpc/SKILL.md +436 -0
- package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
- package/bundled-skills/azure-aks/SKILL.md +423 -0
- package/bundled-skills/azure-devops/SKILL.md +457 -0
- package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
- package/bundled-skills/azure-keyvault/SKILL.md +455 -0
- package/bundled-skills/azure-keyvault/references/details.md +83 -0
- package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
- package/bundled-skills/azure-networking/SKILL.md +448 -0
- package/bundled-skills/azure-networking/references/details.md +135 -0
- package/bundled-skills/azure-sql/SKILL.md +413 -0
- package/bundled-skills/azure-sql/references/details.md +113 -0
- package/bundled-skills/azure-vms/SKILL.md +402 -0
- package/bundled-skills/azure-vms/references/details.md +134 -0
- package/bundled-skills/backup-recovery/SKILL.md +388 -0
- package/bundled-skills/bb-methodology/SKILL.md +451 -0
- package/bundled-skills/bb-methodology/references/details.md +120 -0
- package/bundled-skills/block-storage/SKILL.md +371 -0
- package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
- package/bundled-skills/blue-green-deploy/references/details.md +90 -0
- package/bundled-skills/bug-bounty/SKILL.md +447 -0
- package/bundled-skills/bug-bounty/references/details.md +1316 -0
- package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
- package/bundled-skills/business-continuity/SKILL.md +463 -0
- package/bundled-skills/career-ops/SKILL.md +186 -0
- package/bundled-skills/cdn-setup/SKILL.md +374 -0
- package/bundled-skills/change-management/SKILL.md +438 -0
- package/bundled-skills/change-management/references/details.md +105 -0
- package/bundled-skills/circleci/SKILL.md +475 -0
- package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
- package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
- package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
- package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
- package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
- package/bundled-skills/cloudformation/SKILL.md +461 -0
- package/bundled-skills/code-review-sensei/SKILL.md +177 -0
- package/bundled-skills/codebase-onboarding/README.md +42 -0
- package/bundled-skills/codebase-onboarding/SKILL.md +77 -0
- package/bundled-skills/codebase-onboarding/examples.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/best-practices.md +7 -0
- package/bundled-skills/codebase-onboarding/reference/capabilities.md +20 -0
- package/bundled-skills/codebase-onboarding/reference/fallbacks.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/graph.md +15 -0
- package/bundled-skills/codebase-onboarding/reference/mcp.md +14 -0
- package/bundled-skills/codebase-onboarding/reference/workflow.md +15 -0
- package/bundled-skills/codebase-onboarding/templates/repository-onboarding.md +21 -0
- package/bundled-skills/connection-auth-rules/SKILL.md +199 -0
- package/bundled-skills/connection-auth-rules/fetch_schema.py +320 -0
- package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
- package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
- package/bundled-skills/container-hardening/SKILL.md +126 -0
- package/bundled-skills/container-registries/SKILL.md +435 -0
- package/bundled-skills/container-scanning/SKILL.md +416 -0
- package/bundled-skills/convex-backend/SKILL.md +338 -0
- package/bundled-skills/dast-scanning/SKILL.md +437 -0
- package/bundled-skills/database-backups/SKILL.md +425 -0
- package/bundled-skills/datadog/SKILL.md +487 -0
- package/bundled-skills/dependency-analysis/README.md +42 -0
- package/bundled-skills/dependency-analysis/SKILL.md +76 -0
- package/bundled-skills/dependency-analysis/examples.md +11 -0
- package/bundled-skills/dependency-analysis/reference/best-practices.md +7 -0
- package/bundled-skills/dependency-analysis/reference/capabilities.md +20 -0
- package/bundled-skills/dependency-analysis/reference/fallbacks.md +11 -0
- package/bundled-skills/dependency-analysis/reference/graph.md +15 -0
- package/bundled-skills/dependency-analysis/reference/mcp.md +14 -0
- package/bundled-skills/dependency-analysis/reference/workflow.md +15 -0
- package/bundled-skills/dependency-analysis/templates/dependency-review.md +21 -0
- package/bundled-skills/dependency-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
- package/bundled-skills/devops-pipeline-builder/SKILL.md +200 -0
- package/bundled-skills/disaster-recovery/SKILL.md +374 -0
- package/bundled-skills/disaster-recovery/references/details.md +219 -0
- package/bundled-skills/dns-management/SKILL.md +375 -0
- package/bundled-skills/docker-compose/SKILL.md +482 -0
- package/bundled-skills/docker-management/SKILL.md +426 -0
- package/bundled-skills/eas-app-stores/SKILL.md +197 -0
- package/bundled-skills/eas-app-stores/agents/openai.yaml +4 -0
- package/bundled-skills/eas-app-stores/references/app-store-metadata.md +497 -0
- package/bundled-skills/eas-app-stores/references/ios-app-store.md +376 -0
- package/bundled-skills/eas-app-stores/references/native-ios.md +167 -0
- package/bundled-skills/eas-app-stores/references/play-store.md +244 -0
- package/bundled-skills/eas-app-stores/references/testflight.md +62 -0
- package/bundled-skills/eas-app-stores/references/workflows.md +120 -0
- package/bundled-skills/eas-hosting/SKILL.md +448 -0
- package/bundled-skills/eas-hosting/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/SKILL.md +75 -0
- package/bundled-skills/eas-observe/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/references/metrics.md +98 -0
- package/bundled-skills/eas-observe/references/queries.md +403 -0
- package/bundled-skills/eas-observe/references/setup.md +476 -0
- package/bundled-skills/eas-observe/references/third-party.md +136 -0
- package/bundled-skills/eas-simulator/SKILL.md +251 -0
- package/bundled-skills/eas-simulator/agents/openai.yaml +4 -0
- package/bundled-skills/eas-simulator/references/controllers.md +135 -0
- package/bundled-skills/eas-simulator/references/run-your-app.md +240 -0
- package/bundled-skills/eas-simulator/references/troubleshooting.md +47 -0
- package/bundled-skills/eas-workflows/SKILL.md +119 -0
- package/bundled-skills/eas-workflows/agents/openai.yaml +4 -0
- package/bundled-skills/eas-workflows/scripts/fetch.js +109 -0
- package/bundled-skills/ebpf-observability/SKILL.md +436 -0
- package/bundled-skills/ebpf-observability/references/details.md +542 -0
- package/bundled-skills/elk-stack/SKILL.md +487 -0
- package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
- package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
- package/bundled-skills/expo-animation/LICENSE +21 -0
- package/bundled-skills/expo-animation/RECIPES.md +385 -0
- package/bundled-skills/expo-animation/SKILL.md +295 -0
- package/bundled-skills/expo-animation/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/SKILL.md +178 -0
- package/bundled-skills/fact-check-x-unified/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/references/acceptance-criteria.md +44 -0
- package/bundled-skills/fact-check-x-unified/references/contracts.md +39 -0
- package/bundled-skills/fact-check-x-unified/scripts/common.py +31 -0
- package/bundled-skills/fact-check-x-unified/scripts/fact_check_x.py +1832 -0
- package/bundled-skills/fact-check-x-unified/scripts/trusted_search_config.py +324 -0
- package/bundled-skills/fact-check-x-unified/tests/anchor_downgrade_test.py +90 -0
- package/bundled-skills/fact-check-x-unified/tests/multi_platform_test.py +369 -0
- package/bundled-skills/fact-check-x-unified/tests/smoke_test.py +740 -0
- package/bundled-skills/fact-check-x-unified/tests/stage_checkpoint_test.py +103 -0
- package/bundled-skills/fact-check-x-unified/tests/trusted_search_config_test.py +156 -0
- package/bundled-skills/feature-flags/SKILL.md +426 -0
- package/bundled-skills/feature-flags/references/details.md +86 -0
- package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
- package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
- package/bundled-skills/firewall-config/SKILL.md +479 -0
- package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
- package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
- package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
- package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
- package/bundled-skills/gcp-compute/SKILL.md +319 -0
- package/bundled-skills/gcp-gke/SKILL.md +307 -0
- package/bundled-skills/gcp-networking/SKILL.md +293 -0
- package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
- package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
- package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
- package/bundled-skills/gdpr-compliance/references/details.md +145 -0
- package/bundled-skills/geo-audit/SKILL.md +368 -0
- package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
- package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
- package/bundled-skills/geo-citability/SKILL.md +350 -0
- package/bundled-skills/geo-compare/SKILL.md +340 -0
- package/bundled-skills/geo-content/SKILL.md +383 -0
- package/bundled-skills/geo-crawlers/SKILL.md +408 -0
- package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
- package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
- package/bundled-skills/geo-proposal/SKILL.md +378 -0
- package/bundled-skills/geo-prospect/SKILL.md +225 -0
- package/bundled-skills/geo-report/SKILL.md +436 -0
- package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
- package/bundled-skills/geo-schema/SKILL.md +408 -0
- package/bundled-skills/geo-technical/SKILL.md +78 -0
- package/bundled-skills/geo-technical/references/details.md +543 -0
- package/bundled-skills/git-workflow/SKILL.md +460 -0
- package/bundled-skills/github-actions/SKILL.md +368 -0
- package/bundled-skills/gitlab-ci/SKILL.md +340 -0
- package/bundled-skills/gpt-taste/SKILL.md +8 -1
- package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
- package/bundled-skills/gpu-server-management/SKILL.md +236 -0
- package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
- package/bundled-skills/helm-charts/SKILL.md +469 -0
- package/bundled-skills/hf-cli/SKILL.md +263 -0
- package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
- package/bundled-skills/huggingface-community-evals/SKILL.md +228 -0
- package/bundled-skills/huggingface-community-evals/examples/.env.example +3 -0
- package/bundled-skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
- package/bundled-skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
- package/bundled-skills/huggingface-datasets/SKILL.md +130 -0
- package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
- package/bundled-skills/hunt-ato/SKILL.md +184 -0
- package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
- package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
- package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
- package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
- package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
- package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
- package/bundled-skills/hunt-cicd/SKILL.md +311 -0
- package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
- package/bundled-skills/hunt-cors/SKILL.md +335 -0
- package/bundled-skills/hunt-dom/SKILL.md +323 -0
- package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
- package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
- package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
- package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
- package/bundled-skills/hunt-grpc/SKILL.md +317 -0
- package/bundled-skills/hunt-host-header/SKILL.md +309 -0
- package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
- package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
- package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
- package/bundled-skills/hunt-idor/SKILL.md +434 -0
- package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
- package/bundled-skills/hunt-k8s/SKILL.md +337 -0
- package/bundled-skills/hunt-laravel/SKILL.md +255 -0
- package/bundled-skills/hunt-ldap/SKILL.md +351 -0
- package/bundled-skills/hunt-lfi/SKILL.md +311 -0
- package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
- package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
- package/bundled-skills/hunt-misc/SKILL.md +378 -0
- package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
- package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
- package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
- package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
- package/bundled-skills/hunt-oauth/SKILL.md +459 -0
- package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
- package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
- package/bundled-skills/hunt-race-condition/references/details.md +159 -0
- package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
- package/bundled-skills/hunt-rce/SKILL.md +444 -0
- package/bundled-skills/hunt-rce/references/details.md +110 -0
- package/bundled-skills/hunt-saml/SKILL.md +156 -0
- package/bundled-skills/hunt-session/SKILL.md +342 -0
- package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
- package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
- package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
- package/bundled-skills/hunt-springboot/SKILL.md +285 -0
- package/bundled-skills/hunt-sqli/SKILL.md +466 -0
- package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
- package/bundled-skills/hunt-ssrf/references/details.md +179 -0
- package/bundled-skills/hunt-ssti/SKILL.md +163 -0
- package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
- package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
- package/bundled-skills/hunt-xxe/SKILL.md +466 -0
- package/bundled-skills/i-have-adhd/SKILL.md +170 -0
- package/bundled-skills/identity-access-management/SKILL.md +382 -0
- package/bundled-skills/identity-access-management/references/details.md +524 -0
- package/bundled-skills/incident-management/SKILL.md +484 -0
- package/bundled-skills/incident-response/SKILL.md +448 -0
- package/bundled-skills/incident-response/references/details.md +113 -0
- package/bundled-skills/interview-me/SKILL.md +248 -0
- package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
- package/bundled-skills/jenkins/SKILL.md +462 -0
- package/bundled-skills/jev-social/SKILL.md +182 -0
- package/bundled-skills/jev-use/SKILL.md +158 -0
- package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
- package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
- package/bundled-skills/kubernetes-ops/references/details.md +108 -0
- package/bundled-skills/kustomize/SKILL.md +478 -0
- package/bundled-skills/linux-administration/SKILL.md +367 -0
- package/bundled-skills/linux-hardening/SKILL.md +154 -0
- package/bundled-skills/llm-app-security/SKILL.md +389 -0
- package/bundled-skills/llm-app-security/references/details.md +674 -0
- package/bundled-skills/llm-caching/SKILL.md +334 -0
- package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
- package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
- package/bundled-skills/llm-gateway/SKILL.md +282 -0
- package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
- package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
- package/bundled-skills/load-balancing/SKILL.md +403 -0
- package/bundled-skills/loki-logging/SKILL.md +479 -0
- package/bundled-skills/longbridge-derivatives/SKILL.md +117 -0
- package/bundled-skills/longbridge-derivatives/references/option.md +36 -0
- package/bundled-skills/longbridge-derivatives/references/options-advanced.md +101 -0
- package/bundled-skills/longbridge-derivatives/references/options-pnl.md +74 -0
- package/bundled-skills/longbridge-derivatives/references/options-strategy.md +82 -0
- package/bundled-skills/longbridge-derivatives/references/options-volatility.md +70 -0
- package/bundled-skills/longbridge-derivatives/references/warrant.md +12 -0
- package/bundled-skills/longbridge-quant/SKILL.md +151 -0
- package/bundled-skills/longbridge-quant/references/correlation.md +51 -0
- package/bundled-skills/longbridge-quant/references/execution-model.md +68 -0
- package/bundled-skills/longbridge-quant/references/factor-research.md +95 -0
- package/bundled-skills/longbridge-quant/references/factor-screen.md +101 -0
- package/bundled-skills/longbridge-quant/references/hedging.md +136 -0
- package/bundled-skills/longbridge-quant/references/ml-strategy.md +77 -0
- package/bundled-skills/longbridge-quant/references/multifactor.md +68 -0
- package/bundled-skills/longbridge-quant/references/pairs-trading.md +61 -0
- package/bundled-skills/longbridge-quant/references/quant-cli.md +133 -0
- package/bundled-skills/longbridge-quant/references/quant-stats.md +150 -0
- package/bundled-skills/longbridge-quant/references/seasonality.md +50 -0
- package/bundled-skills/longbridge-quant/references/strategy-optimizer.md +68 -0
- package/bundled-skills/longbridge-quant/references/volatility-strategy.md +52 -0
- package/bundled-skills/longbridge-research/SKILL.md +187 -0
- package/bundled-skills/longbridge-research/references/company-profile.md +96 -0
- package/bundled-skills/longbridge-research/references/company-tearsheet.md +82 -0
- package/bundled-skills/longbridge-research/references/competitive-analysis.md +81 -0
- package/bundled-skills/longbridge-research/references/consensus.md +92 -0
- package/bundled-skills/longbridge-research/references/coverage-initiation.md +76 -0
- package/bundled-skills/longbridge-research/references/defi-yield.md +60 -0
- package/bundled-skills/longbridge-research/references/finance-calendar.md +165 -0
- package/bundled-skills/longbridge-research/references/financial-planning.md +77 -0
- package/bundled-skills/longbridge-research/references/forecast-eps.md +39 -0
- package/bundled-skills/longbridge-research/references/fund-holder.md +44 -0
- package/bundled-skills/longbridge-research/references/hkipo-analysis.md +101 -0
- package/bundled-skills/longbridge-research/references/industry-peers.md +46 -0
- package/bundled-skills/longbridge-research/references/industry-rank.md +62 -0
- package/bundled-skills/longbridge-research/references/insider-trades.md +48 -0
- package/bundled-skills/longbridge-research/references/institution-rating.md +62 -0
- package/bundled-skills/longbridge-research/references/investment-ideas.md +69 -0
- package/bundled-skills/longbridge-research/references/investment-proposal.md +95 -0
- package/bundled-skills/longbridge-research/references/investors.md +87 -0
- package/bundled-skills/longbridge-research/references/onchain.md +70 -0
- package/bundled-skills/longbridge-research/references/post-investment.md +76 -0
- package/bundled-skills/longbridge-research/references/shareholder.md +72 -0
- package/bundled-skills/longbridge-research/references/short-positions.md +50 -0
- package/bundled-skills/longbridge-research/references/short-trades.md +50 -0
- package/bundled-skills/longbridge-research/references/stock-research.md +61 -0
- package/bundled-skills/longbridge-research/references/thesis-tracker.md +64 -0
- package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
- package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
- package/bundled-skills/makepad-2-0-animation/SKILL.md +318 -0
- package/bundled-skills/makepad-2-0-animation/references/animator-reference.md +433 -0
- package/bundled-skills/makepad-2-0-dsl/SKILL.md +492 -0
- package/bundled-skills/makepad-2-0-dsl/references/dsl-syntax-reference.md +511 -0
- package/bundled-skills/makepad-2-0-dsl/references/extended-guide.md +56 -0
- package/bundled-skills/makepad-2-0-dsl/references/property-system.md +757 -0
- package/bundled-skills/makepad-2-0-events/SKILL.md +497 -0
- package/bundled-skills/makepad-2-0-events/references/event-patterns.md +802 -0
- package/bundled-skills/makepad-2-0-events/references/extended-guide.md +590 -0
- package/bundled-skills/makepad-2-0-layout/SKILL.md +499 -0
- package/bundled-skills/makepad-2-0-layout/references/extended-guide.md +243 -0
- package/bundled-skills/makepad-2-0-layout/references/layout-patterns.md +881 -0
- package/bundled-skills/makepad-2-0-widgets/SKILL.md +261 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-advanced.md +648 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-catalog.md +547 -0
- package/bundled-skills/mcp-server-security/SKILL.md +356 -0
- package/bundled-skills/mcp-server-security/references/details.md +745 -0
- package/bundled-skills/mdm-device-management/SKILL.md +404 -0
- package/bundled-skills/mdm-device-management/references/details.md +410 -0
- package/bundled-skills/meeting-distiller-pro/SKILL.md +120 -0
- package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
- package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
- package/bundled-skills/model-registry-governance/SKILL.md +452 -0
- package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
- package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
- package/bundled-skills/mongodb/SKILL.md +436 -0
- package/bundled-skills/monte-carlo-analyze-root-cause/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-asset-health/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-context-detection/SKILL.md +170 -0
- package/bundled-skills/monte-carlo-context-detection/references/signal-definitions.md +46 -0
- package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
- package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
- package/bundled-skills/mysql/SKILL.md +390 -0
- package/bundled-skills/new-relic/SKILL.md +472 -0
- package/bundled-skills/nfs-storage/SKILL.md +356 -0
- package/bundled-skills/object-storage/SKILL.md +378 -0
- package/bundled-skills/offensive-osint/SKILL.md +443 -0
- package/bundled-skills/okta-attack/SKILL.md +436 -0
- package/bundled-skills/ollama-stack/SKILL.md +379 -0
- package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
- package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
- package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
- package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
- package/bundled-skills/openshift/SKILL.md +485 -0
- package/bundled-skills/opentelemetry/SKILL.md +438 -0
- package/bundled-skills/opentelemetry/references/details.md +78 -0
- package/bundled-skills/opentofu-migration/SKILL.md +349 -0
- package/bundled-skills/osint-methodology/SKILL.md +460 -0
- package/bundled-skills/osint-methodology/references/details.md +1350 -0
- package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
- package/bundled-skills/penetration-testing/SKILL.md +152 -0
- package/bundled-skills/performance-tuning/SKILL.md +381 -0
- package/bundled-skills/planetscale/SKILL.md +297 -0
- package/bundled-skills/platform-engineering/SKILL.md +348 -0
- package/bundled-skills/platform-engineering/references/details.md +944 -0
- package/bundled-skills/podman/SKILL.md +405 -0
- package/bundled-skills/policy-as-code/SKILL.md +434 -0
- package/bundled-skills/policy-as-code/references/details.md +204 -0
- package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
- package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
- package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
- package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
- package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
- package/bundled-skills/rag-observability-evals/references/details.md +92 -0
- package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
- package/bundled-skills/redis/SKILL.md +421 -0
- package/bundled-skills/redteam-report-template/SKILL.md +370 -0
- package/bundled-skills/remotion-captions/SKILL.md +57 -0
- package/bundled-skills/remotion-captions/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-captions/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-captions/display-captions.md +190 -0
- package/bundled-skills/remotion-captions/import-srt-captions.md +73 -0
- package/bundled-skills/remotion-captions/transcribe-captions.md +70 -0
- package/bundled-skills/remotion-create/SKILL.md +106 -0
- package/bundled-skills/remotion-create/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-create/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-create/tailwind.md +11 -0
- package/bundled-skills/remotion-create/video-layout.md +9 -0
- package/bundled-skills/remotion-docs/SKILL.md +67 -0
- package/bundled-skills/remotion-docs/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-docs/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-interactivity/SKILL.md +270 -0
- package/bundled-skills/remotion-interactivity/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-interactivity/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/SKILL.md +48 -0
- package/bundled-skills/remotion-render/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-render/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/transparent-videos.md +106 -0
- package/bundled-skills/report-writing/SKILL.md +426 -0
- package/bundled-skills/report-writing/references/details.md +187 -0
- package/bundled-skills/reverse-proxy/SKILL.md +420 -0
- package/bundled-skills/runbook-creation/SKILL.md +438 -0
- package/bundled-skills/runbook-creation/references/details.md +71 -0
- package/bundled-skills/saas-pricing-strategist/SKILL.md +169 -0
- package/bundled-skills/saas-security-posture/SKILL.md +415 -0
- package/bundled-skills/sast-scanning/SKILL.md +444 -0
- package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
- package/bundled-skills/score-eval/SKILL.md +35 -0
- package/bundled-skills/security-arsenal/SKILL.md +446 -0
- package/bundled-skills/security-arsenal/references/details.md +540 -0
- package/bundled-skills/security-automation/SKILL.md +146 -0
- package/bundled-skills/semantic-versioning/SKILL.md +434 -0
- package/bundled-skills/semantic-versioning/references/details.md +83 -0
- package/bundled-skills/service-mesh/SKILL.md +422 -0
- package/bundled-skills/soc2-compliance/SKILL.md +409 -0
- package/bundled-skills/sops-encryption/SKILL.md +124 -0
- package/bundled-skills/sre-dashboards/SKILL.md +143 -0
- package/bundled-skills/ssh-configuration/SKILL.md +324 -0
- package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
- package/bundled-skills/ssl-tls-management/references/details.md +99 -0
- package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
- package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
- package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
- package/bundled-skills/systemd-services/SKILL.md +379 -0
- package/bundled-skills/terraform-aws/SKILL.md +125 -0
- package/bundled-skills/terraform-azure/SKILL.md +415 -0
- package/bundled-skills/terraform-azure/references/details.md +231 -0
- package/bundled-skills/terraform-gcp/SKILL.md +369 -0
- package/bundled-skills/threat-modeling/SKILL.md +487 -0
- package/bundled-skills/user-management/SKILL.md +383 -0
- package/bundled-skills/using-agent-skills/SKILL.md +220 -0
- package/bundled-skills/vector-database-ops/SKILL.md +300 -0
- package/bundled-skills/vendor-management/SKILL.md +439 -0
- package/bundled-skills/vendor-management/references/details.md +109 -0
- package/bundled-skills/vercel-deployments/SKILL.md +296 -0
- package/bundled-skills/vllm-server/SKILL.md +236 -0
- package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
- package/bundled-skills/vpn-setup/SKILL.md +452 -0
- package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
- package/bundled-skills/waf-setup/SKILL.md +354 -0
- package/bundled-skills/waf-setup/references/details.md +211 -0
- package/bundled-skills/web2-recon/SKILL.md +440 -0
- package/bundled-skills/web2-recon/references/details.md +319 -0
- package/bundled-skills/web3-audit/SKILL.md +445 -0
- package/bundled-skills/web3-audit/references/details.md +224 -0
- package/bundled-skills/windows-hardening/SKILL.md +454 -0
- package/bundled-skills/windows-hardening/references/details.md +204 -0
- package/bundled-skills/windows-server/SKILL.md +318 -0
- package/bundled-skills/writing-guidelines/SKILL.md +60 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +7874 -277
|
@@ -0,0 +1,757 @@
|
|
|
1
|
+
# Makepad 2.0 Property System Reference
|
|
2
|
+
|
|
3
|
+
## Property Categories
|
|
4
|
+
|
|
5
|
+
Makepad properties fall into four main categories:
|
|
6
|
+
|
|
7
|
+
1. **Walk Properties** -- Sizing and positioning
|
|
8
|
+
2. **Layout Properties** -- Child arrangement and spacing
|
|
9
|
+
3. **Draw Properties** -- Visual rendering (shaders, colors, backgrounds)
|
|
10
|
+
4. **Shader Variable Types** -- Instance, Uniform, Texture, Varying
|
|
11
|
+
|
|
12
|
+
## Walk Properties
|
|
13
|
+
|
|
14
|
+
Walk properties control the size and margin of a widget.
|
|
15
|
+
|
|
16
|
+
| Property | Type | Default | Description |
|
|
17
|
+
|----------|------|---------|-------------|
|
|
18
|
+
| `width` | Size | `Fill` | Widget width |
|
|
19
|
+
| `height` | Size | `Fill` | Widget height |
|
|
20
|
+
| `margin` | Inset | `0.` | Outer spacing around widget |
|
|
21
|
+
|
|
22
|
+
### Size Values
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
Fill // fill available space (default for width AND height)
|
|
26
|
+
Fit // shrink-wrap to content
|
|
27
|
+
200 // fixed 200px (bare number = Fixed)
|
|
28
|
+
Fill{min: 100 max: 500} // constrained fill
|
|
29
|
+
Fit{max: Abs(300)} // constrained fit
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Margin Values
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
margin: 0. // uniform zero
|
|
36
|
+
margin: 10 // uniform 10px
|
|
37
|
+
margin: Inset{top: 5 bottom: 5 left: 10 right: 10} // per-side
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**CRITICAL**: Default `height` is `Fill`. Containers inside a `Fit` parent MUST set `height: Fit` or they will be invisible (0 height due to circular dependency).
|
|
41
|
+
|
|
42
|
+
## Layout Properties
|
|
43
|
+
|
|
44
|
+
Layout properties control how a container arranges its children.
|
|
45
|
+
|
|
46
|
+
| Property | Type | Default | Description |
|
|
47
|
+
|----------|------|---------|-------------|
|
|
48
|
+
| `flow` | Flow | `Right` | Direction children are laid out |
|
|
49
|
+
| `spacing` | f64 | `0` | Gap between children |
|
|
50
|
+
| `padding` | Inset | `0.` | Inner spacing inside container |
|
|
51
|
+
| `align` | Align | `TopLeft` | Child alignment within container |
|
|
52
|
+
| `clip_x` | bool | `true` | Clip horizontal overflow |
|
|
53
|
+
| `clip_y` | bool | `true` | Clip vertical overflow |
|
|
54
|
+
|
|
55
|
+
### Flow Values
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
flow: Right // left-to-right (default), no wrap
|
|
59
|
+
flow: Down // top-to-bottom
|
|
60
|
+
flow: Overlay // stacked on top of each other
|
|
61
|
+
flow: Flow.Right{wrap: true} // wrapping horizontal (like CSS flexbox wrap)
|
|
62
|
+
flow: Flow.Down{wrap: true} // wrapping vertical
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Spacing and Padding
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
spacing: 10 // gap between children
|
|
69
|
+
padding: 15 // uniform inner padding
|
|
70
|
+
padding: Inset{top: 5 bottom: 5 left: 10 right: 10} // per-side padding
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Alignment Values
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
align: Center // Align{x: 0.5 y: 0.5} - center both axes
|
|
77
|
+
align: HCenter // Align{x: 0.5 y: 0.0} - horizontal center, top
|
|
78
|
+
align: VCenter // Align{x: 0.0 y: 0.5} - left, vertical center
|
|
79
|
+
align: TopLeft // Align{x: 0.0 y: 0.0} - top-left (default)
|
|
80
|
+
align: Align{x: 1.0 y: 0.0} // top-right
|
|
81
|
+
align: Align{x: 0.0 y: 1.0} // bottom-left
|
|
82
|
+
align: Align{x: 1.0 y: 1.0} // bottom-right
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Draw Properties
|
|
86
|
+
|
|
87
|
+
Draw properties control visual rendering. The main draw properties are:
|
|
88
|
+
|
|
89
|
+
| Property | Type | Description |
|
|
90
|
+
|----------|------|-------------|
|
|
91
|
+
| `draw_bg` | DrawQuad | Background drawing (shape, color, shader) |
|
|
92
|
+
| `draw_text` | DrawText | Text rendering (color, font, style) |
|
|
93
|
+
| `draw_icon` | DrawSvg | SVG icon rendering |
|
|
94
|
+
| `show_bg` | bool | Enable background drawing (default: false for View) |
|
|
95
|
+
| `cursor` | MouseCursor | Mouse cursor on hover |
|
|
96
|
+
| `visible` | bool | Widget visibility |
|
|
97
|
+
| `new_batch` | bool | Start new GPU draw batch (for correct layering) |
|
|
98
|
+
| `grab_key_focus` | bool | Capture keyboard focus on click |
|
|
99
|
+
|
|
100
|
+
### draw_bg Properties (Background)
|
|
101
|
+
|
|
102
|
+
Common properties available on SolidView, RoundedView, and other view variants:
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
draw_bg +: {
|
|
106
|
+
// Fill color
|
|
107
|
+
color: instance(#334) // per-instance fill color
|
|
108
|
+
|
|
109
|
+
// Gradient
|
|
110
|
+
color_2: instance(vec4(-1)) // gradient end color (-1 = disabled)
|
|
111
|
+
gradient_fill_horizontal: uniform(0.0) // 0 = vertical gradient, 1 = horizontal
|
|
112
|
+
|
|
113
|
+
// Border
|
|
114
|
+
border_size: uniform(1.0) // border width in pixels
|
|
115
|
+
border_radius: uniform(5.0) // corner radius (RoundedView only)
|
|
116
|
+
border_color: instance(#888) // border color
|
|
117
|
+
border_inset: uniform(vec4(0)) // border inset
|
|
118
|
+
|
|
119
|
+
// Shadow (shadow view variants only)
|
|
120
|
+
shadow_color: instance(#0007) // shadow color with alpha
|
|
121
|
+
shadow_radius: uniform(10.0) // shadow blur radius
|
|
122
|
+
shadow_offset: uniform(vec2(0 0)) // shadow offset (x, y)
|
|
123
|
+
|
|
124
|
+
// Animator-driven state (per-instance floats)
|
|
125
|
+
hover: instance(0.0) // hover animation state
|
|
126
|
+
down: instance(0.0) // press animation state
|
|
127
|
+
focus: instance(0.0) // focus animation state
|
|
128
|
+
disabled: instance(0.0) // disabled animation state
|
|
129
|
+
|
|
130
|
+
// Pixel shader
|
|
131
|
+
pixel: fn() {
|
|
132
|
+
let sdf = Sdf2d.viewport(self.pos * self.rect_size)
|
|
133
|
+
sdf.box(0. 0. self.rect_size.x self.rect_size.y self.border_radius)
|
|
134
|
+
sdf.fill(self.color)
|
|
135
|
+
return sdf.result
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Button draw_bg Extended Properties
|
|
141
|
+
|
|
142
|
+
Buttons add state-variant color uniforms:
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
draw_bg +: {
|
|
146
|
+
// Base colors (each has _hover, _down, _focus, _disabled variants)
|
|
147
|
+
color: uniform(#334)
|
|
148
|
+
color_hover: uniform(#449)
|
|
149
|
+
color_down: uniform(#225)
|
|
150
|
+
color_focus: uniform(#336)
|
|
151
|
+
color_disabled: uniform(#222)
|
|
152
|
+
|
|
153
|
+
// Secondary gradient colors
|
|
154
|
+
color_2: uniform(vec4(-1))
|
|
155
|
+
color_2_hover: uniform(vec4(-1))
|
|
156
|
+
|
|
157
|
+
// Border colors (also with state variants)
|
|
158
|
+
border_color: uniform(#555)
|
|
159
|
+
border_color_hover: uniform(#777)
|
|
160
|
+
|
|
161
|
+
// Shape
|
|
162
|
+
border_size: uniform(1.0)
|
|
163
|
+
border_radius: uniform(4.0)
|
|
164
|
+
|
|
165
|
+
// Gradient control
|
|
166
|
+
color_dither: uniform(1.0)
|
|
167
|
+
gradient_fill_horizontal: uniform(0.0)
|
|
168
|
+
gradient_border_horizontal: uniform(0.0)
|
|
169
|
+
|
|
170
|
+
// Instance state (driven by animator)
|
|
171
|
+
hover: instance(0.0)
|
|
172
|
+
down: instance(0.0)
|
|
173
|
+
focus: instance(0.0)
|
|
174
|
+
disabled: instance(0.0)
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### draw_text Properties (Text Rendering)
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
draw_text +: {
|
|
182
|
+
color: #fff // text color
|
|
183
|
+
color_2: uniform(vec4(-1)) // gradient end (-1 = disabled)
|
|
184
|
+
color_dither: uniform(1.0) // dithering amount
|
|
185
|
+
gradient_fill_horizontal: uniform(0.0) // 0 = vertical, 1 = horizontal
|
|
186
|
+
|
|
187
|
+
// Text style
|
|
188
|
+
text_style: theme.font_regular{ // base font with overrides
|
|
189
|
+
font_size: 11
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// Animator-driven
|
|
193
|
+
hover: instance(0.0)
|
|
194
|
+
down: instance(0.0)
|
|
195
|
+
focus: instance(0.0)
|
|
196
|
+
disabled: instance(0.0)
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### draw_icon Properties (SVG Icons)
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
draw_icon +: {
|
|
204
|
+
color: #fff // icon tint color
|
|
205
|
+
svg: crate_resource("self://resources/icons/x.svg") // SVG file path
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
icon_walk: Walk{width: 16 height: 16} // icon sizing
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### CheckBox/Toggle draw_bg Properties
|
|
212
|
+
|
|
213
|
+
```
|
|
214
|
+
draw_bg +: {
|
|
215
|
+
// Instance state (driven by animator)
|
|
216
|
+
hover: instance(0.0)
|
|
217
|
+
down: instance(0.0)
|
|
218
|
+
focus: instance(0.0)
|
|
219
|
+
active: instance(0.0) // checked/on state
|
|
220
|
+
disabled: instance(0.0)
|
|
221
|
+
|
|
222
|
+
// Shape
|
|
223
|
+
size: uniform(10.0)
|
|
224
|
+
border_size: uniform(1.0)
|
|
225
|
+
border_radius: uniform(3.0)
|
|
226
|
+
|
|
227
|
+
// Colors (each with _hover, _down, _active, _focus, _disabled variants)
|
|
228
|
+
color: uniform(#334)
|
|
229
|
+
color_active: uniform(#07f)
|
|
230
|
+
border_color: uniform(#555)
|
|
231
|
+
mark_color: uniform(#fff)
|
|
232
|
+
mark_color_active: uniform(#fff)
|
|
233
|
+
mark_size: uniform(6.0)
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
## Shader Variable Types
|
|
238
|
+
|
|
239
|
+
### instance(value) -- Per-Draw-Call Variable
|
|
240
|
+
|
|
241
|
+
Each widget instance has its own value. Animatable by the Animator system.
|
|
242
|
+
|
|
243
|
+
```
|
|
244
|
+
hover: instance(0.0) // float, varies per widget
|
|
245
|
+
color: instance(#334) // vec4, per-instance color
|
|
246
|
+
down: instance(0.0) // float, press state
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
**Use for**: State that varies per widget (hover, down, focus, active, disabled), per-widget colors, scale/pan values. Driven by the Animator system.
|
|
250
|
+
|
|
251
|
+
### uniform(value) -- Shared Variable
|
|
252
|
+
|
|
253
|
+
Shared across all instances using the same shader variant. NOT animatable.
|
|
254
|
+
|
|
255
|
+
```
|
|
256
|
+
border_radius: uniform(5.0) // float, same for all instances
|
|
257
|
+
color: uniform(#fff) // vec4, shared base color
|
|
258
|
+
border_size: uniform(1.0) // float, shared border width
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
**Use for**: Theme constants, border sizes, radii, and other values shared by all instances. Cannot be animated.
|
|
262
|
+
|
|
263
|
+
### texture_2d(type) -- Texture Sampler
|
|
264
|
+
|
|
265
|
+
Declares a GPU texture sampler:
|
|
266
|
+
|
|
267
|
+
```
|
|
268
|
+
my_tex: texture_2d(float) // standard 2D texture
|
|
269
|
+
image_texture: texture_2d(float)
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
Sampling in pixel shader:
|
|
273
|
+
```
|
|
274
|
+
pixel: fn() {
|
|
275
|
+
let color = self.my_tex.sample(self.pos)
|
|
276
|
+
return Pal.premul(color)
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
Alternative sampling:
|
|
281
|
+
```
|
|
282
|
+
sample2d(self.my_tex, uv) // free-function form
|
|
283
|
+
sample2d_rt(self.image, uv) // render-target texture (handles Y-flip)
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### varying(value) -- Vertex-to-Pixel Interpolated
|
|
287
|
+
|
|
288
|
+
Set in vertex shader, interpolated to pixel shader:
|
|
289
|
+
|
|
290
|
+
```
|
|
291
|
+
my_scale: varying(vec2(0)) // vertex->pixel interpolated
|
|
292
|
+
|
|
293
|
+
vertex: fn() {
|
|
294
|
+
let dpi = self.dpi_factor
|
|
295
|
+
let ceil_size = ceil(self.rect_size * dpi) / dpi
|
|
296
|
+
self.my_scale = self.rect_size / ceil_size
|
|
297
|
+
return self.clip_and_transform_vertex(self.rect_pos self.rect_size)
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
pixel: fn() {
|
|
301
|
+
// my_scale available here, interpolated from vertex shader
|
|
302
|
+
return Pal.premul(self.color)
|
|
303
|
+
}
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
## Theme Access
|
|
307
|
+
|
|
308
|
+
All theme values use the `theme.` prefix:
|
|
309
|
+
|
|
310
|
+
### Colors
|
|
311
|
+
|
|
312
|
+
```
|
|
313
|
+
theme.color_bg_app // app background
|
|
314
|
+
theme.color_fg_app // app foreground
|
|
315
|
+
theme.color_bg_container // container background
|
|
316
|
+
theme.color_bg_even // even row background
|
|
317
|
+
theme.color_bg_odd // odd row background
|
|
318
|
+
theme.color_text // default text color
|
|
319
|
+
theme.color_text_hl // highlighted text
|
|
320
|
+
theme.color_text_disabled // disabled text
|
|
321
|
+
theme.color_shadow // shadow color
|
|
322
|
+
theme.color_highlight // highlight color
|
|
323
|
+
theme.color_makepad // Makepad brand (#FF5C39)
|
|
324
|
+
theme.color_white // white
|
|
325
|
+
theme.color_black // black
|
|
326
|
+
theme.color_error // error indicator
|
|
327
|
+
theme.color_warning // warning indicator
|
|
328
|
+
theme.color_panic // panic indicator
|
|
329
|
+
|
|
330
|
+
// Label colors (with state variants: _hover, _down, _focus, _active, _disabled)
|
|
331
|
+
theme.color_label_inner
|
|
332
|
+
theme.color_label_outer
|
|
333
|
+
theme.color_label_inner_hover
|
|
334
|
+
theme.color_label_outer_hover
|
|
335
|
+
// etc.
|
|
336
|
+
|
|
337
|
+
// Inset/outset/bevel colors (with state variants)
|
|
338
|
+
theme.color_inset
|
|
339
|
+
theme.color_outset
|
|
340
|
+
theme.color_bevel
|
|
341
|
+
|
|
342
|
+
// Scale colors
|
|
343
|
+
theme.color_u_1 .. theme.color_u_6 // light scale
|
|
344
|
+
theme.color_d_1 .. theme.color_d_5 // dark scale
|
|
345
|
+
theme.color_u_hidden // transparent light
|
|
346
|
+
theme.color_d_hidden // transparent dark
|
|
347
|
+
|
|
348
|
+
// Selection and cursor
|
|
349
|
+
theme.color_selection_focus
|
|
350
|
+
theme.color_cursor
|
|
351
|
+
|
|
352
|
+
// Slider colors (with _hover, _focus, _drag, _disabled variants)
|
|
353
|
+
theme.color_val
|
|
354
|
+
theme.color_handle
|
|
355
|
+
|
|
356
|
+
// Check/radio marks (with state variants)
|
|
357
|
+
theme.color_mark_off
|
|
358
|
+
theme.color_mark_active
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
### Typography
|
|
362
|
+
|
|
363
|
+
```
|
|
364
|
+
// Font sizes
|
|
365
|
+
theme.font_size_1 // heading 1 size
|
|
366
|
+
theme.font_size_2 // heading 2 size
|
|
367
|
+
theme.font_size_3 // heading 3 size
|
|
368
|
+
theme.font_size_4 // heading 4 size
|
|
369
|
+
theme.font_size_p // paragraph size
|
|
370
|
+
theme.font_size_code // code size
|
|
371
|
+
theme.font_size_base // base font size
|
|
372
|
+
|
|
373
|
+
// Font families
|
|
374
|
+
theme.font_regular // regular weight
|
|
375
|
+
theme.font_bold // bold weight
|
|
376
|
+
theme.font_italic // italic style
|
|
377
|
+
theme.font_bold_italic // bold + italic
|
|
378
|
+
theme.font_code // monospace
|
|
379
|
+
theme.font_icons // icon font
|
|
380
|
+
|
|
381
|
+
// Line spacing
|
|
382
|
+
theme.font_wdgt_line_spacing // widget line spacing
|
|
383
|
+
theme.font_longform_line_spacing // long-form text line spacing
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
### Spacing
|
|
387
|
+
|
|
388
|
+
```
|
|
389
|
+
theme.space_1 // small spacing
|
|
390
|
+
theme.space_2 // medium spacing
|
|
391
|
+
theme.space_3 // large spacing
|
|
392
|
+
|
|
393
|
+
// Inset presets (padding/margin)
|
|
394
|
+
theme.mspace_1 // uniform small
|
|
395
|
+
theme.mspace_2 // uniform medium
|
|
396
|
+
theme.mspace_3 // uniform large
|
|
397
|
+
theme.mspace_h_1 // horizontal small
|
|
398
|
+
theme.mspace_h_2 // horizontal medium
|
|
399
|
+
theme.mspace_h_3 // horizontal large
|
|
400
|
+
theme.mspace_v_1 // vertical small
|
|
401
|
+
theme.mspace_v_2 // vertical medium
|
|
402
|
+
theme.mspace_v_3 // vertical large
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
### Dimensions
|
|
406
|
+
|
|
407
|
+
```
|
|
408
|
+
theme.corner_radius // standard corner radius
|
|
409
|
+
theme.beveling // bevel amount
|
|
410
|
+
theme.tab_height // tab bar height
|
|
411
|
+
theme.splitter_size // splitter handle size
|
|
412
|
+
theme.container_corner_radius // container corner radius
|
|
413
|
+
theme.dock_border_size // dock border size
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
## Built-in Shader Variables
|
|
417
|
+
|
|
418
|
+
Available in pixel and vertex shaders via `self.*`:
|
|
419
|
+
|
|
420
|
+
```
|
|
421
|
+
self.pos // vec2: normalized position [0,1] within widget
|
|
422
|
+
self.rect_size // vec2: pixel size of the drawn rect
|
|
423
|
+
self.rect_pos // vec2: pixel position of the drawn rect
|
|
424
|
+
self.dpi_factor // float: display DPI factor
|
|
425
|
+
self.draw_pass.time // float: elapsed time in seconds (for continuous animation)
|
|
426
|
+
self.draw_pass.dpi_dilate // float: DPI dilation factor
|
|
427
|
+
self.draw_depth // float: base depth for z-ordering
|
|
428
|
+
self.draw_zbias // float: z-bias offset
|
|
429
|
+
self.geom_pos // vec2: raw geometry position [0,1] before clipping
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
## SDF Rendering System
|
|
433
|
+
|
|
434
|
+
### SDF Primitives
|
|
435
|
+
|
|
436
|
+
```
|
|
437
|
+
sdf.circle(cx cy radius)
|
|
438
|
+
sdf.rect(x y w h)
|
|
439
|
+
sdf.box(x y w h border_radius)
|
|
440
|
+
sdf.box_all(x y w h r_lt r_rt r_rb r_lb) // per-corner radius
|
|
441
|
+
sdf.box_x(x y w h r_left r_right)
|
|
442
|
+
sdf.box_y(x y w h r_top r_bottom)
|
|
443
|
+
sdf.hexagon(cx cy radius)
|
|
444
|
+
sdf.hline(y half_height)
|
|
445
|
+
sdf.arc_round_caps(cx cy radius start end thickness)
|
|
446
|
+
sdf.arc_flat_caps(cx cy radius start end thickness)
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
### SDF Path Operations
|
|
450
|
+
|
|
451
|
+
```
|
|
452
|
+
sdf.move_to(x y)
|
|
453
|
+
sdf.line_to(x y)
|
|
454
|
+
sdf.close_path()
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
### SDF Combinators
|
|
458
|
+
|
|
459
|
+
```
|
|
460
|
+
sdf.union() // merge shapes (min distance)
|
|
461
|
+
sdf.intersect() // keep overlap only (max distance)
|
|
462
|
+
sdf.subtract() // cut current from previous
|
|
463
|
+
sdf.gloop(k) // smooth union with rounding factor k
|
|
464
|
+
sdf.blend(k) // linear blend: 0.0 = previous, 1.0 = current
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
### SDF Drawing Operations
|
|
468
|
+
|
|
469
|
+
```
|
|
470
|
+
sdf.fill(color) // fill and reset shape
|
|
471
|
+
sdf.fill_keep(color) // fill, keep shape for stroke
|
|
472
|
+
sdf.fill_premul(color) // fill with premultiplied color, reset
|
|
473
|
+
sdf.fill_keep_premul(color)// fill premul, keep shape
|
|
474
|
+
sdf.stroke(color width) // stroke and reset
|
|
475
|
+
sdf.stroke_keep(color w) // stroke, keep shape
|
|
476
|
+
sdf.glow(color width) // additive glow, reset
|
|
477
|
+
sdf.glow_keep(color w) // additive glow, keep
|
|
478
|
+
sdf.clear(color) // clear result buffer
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
### SDF Transforms
|
|
482
|
+
|
|
483
|
+
```
|
|
484
|
+
sdf.translate(x y)
|
|
485
|
+
sdf.rotate(angle cx cy)
|
|
486
|
+
sdf.scale(factor cx cy)
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
### Color Operations
|
|
490
|
+
|
|
491
|
+
```
|
|
492
|
+
mix(color1 color2 factor) // linear interpolation
|
|
493
|
+
color1.mix(color2 factor) // method chaining form (preferred)
|
|
494
|
+
Pal.premul(color) // premultiply alpha (REQUIRED for pixel() returns)
|
|
495
|
+
Pal.hsv2rgb(vec4(h s v 1.0)) // HSV to RGB
|
|
496
|
+
Pal.rgb2hsv(color) // RGB to HSV
|
|
497
|
+
Pal.iq(t a b c d) // cosine color palette
|
|
498
|
+
Pal.iq0(t) .. Pal.iq7(t) // pre-built cosine palettes
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
**CRITICAL**: Always wrap final color in `Pal.premul()` when returning from `pixel: fn()`, UNLESS returning `sdf.result` (which is already premultiplied).
|
|
502
|
+
|
|
503
|
+
### Shadow Rendering
|
|
504
|
+
|
|
505
|
+
```
|
|
506
|
+
GaussShadow.box_shadow(lower upper point sigma)
|
|
507
|
+
GaussShadow.rounded_box_shadow(lower upper point sigma corner)
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
### Math Utilities
|
|
511
|
+
|
|
512
|
+
```
|
|
513
|
+
// Makepad-specific
|
|
514
|
+
Math.random_2d(vec2) // pseudo-random 0-1 from vec2 seed
|
|
515
|
+
Math.rotate_2d(v angle) // 2D rotation
|
|
516
|
+
|
|
517
|
+
// Constants
|
|
518
|
+
PI E TORAD GOLDEN
|
|
519
|
+
|
|
520
|
+
// Standard GLSL math
|
|
521
|
+
sin cos tan asin acos atan
|
|
522
|
+
pow sqrt exp exp2 log log2
|
|
523
|
+
abs sign floor ceil fract modf
|
|
524
|
+
min max clamp step smoothstep
|
|
525
|
+
length distance dot cross normalize
|
|
526
|
+
dFdx dFdy // fragment-only partial derivatives
|
|
527
|
+
```
|
|
528
|
+
|
|
529
|
+
**NOTE**: Use `modf(a, b)` for float modulo, NOT `mod(a, b)`. Use `atan2(y, x)` for two-argument arctangent.
|
|
530
|
+
|
|
531
|
+
## Widget-Specific Properties
|
|
532
|
+
|
|
533
|
+
### View / Container Properties
|
|
534
|
+
|
|
535
|
+
```
|
|
536
|
+
width: Fill // Size
|
|
537
|
+
height: Fit // Size (ALWAYS set Fit on containers!)
|
|
538
|
+
flow: Down // Flow direction
|
|
539
|
+
spacing: 10 // gap between children
|
|
540
|
+
padding: 15 // Inset or bare number
|
|
541
|
+
margin: 0. // Inset or bare number
|
|
542
|
+
align: Center // Align preset or Align{x: y:}
|
|
543
|
+
show_bg: true // enable background (false by default for View)
|
|
544
|
+
visible: true // visibility
|
|
545
|
+
new_batch: true // new GPU draw batch for correct layering
|
|
546
|
+
cursor: MouseCursor.Hand // mouse cursor
|
|
547
|
+
grab_key_focus: true // capture keyboard on click
|
|
548
|
+
block_signal_event: false
|
|
549
|
+
capture_overload: false
|
|
550
|
+
clip_x: true // horizontal clipping
|
|
551
|
+
clip_y: true // vertical clipping
|
|
552
|
+
scroll_bars: ScrollBar{} // for scroll variants
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
### Label Properties
|
|
556
|
+
|
|
557
|
+
```
|
|
558
|
+
text: "Hello"
|
|
559
|
+
draw_text.color: #fff
|
|
560
|
+
draw_text.text_style: theme.font_regular
|
|
561
|
+
draw_text.text_style.font_size: 12
|
|
562
|
+
align: Center
|
|
563
|
+
flow: Down
|
|
564
|
+
padding: Inset{left: 5}
|
|
565
|
+
hover_actions_enabled: true
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
**NOTE**: Label does NOT support `animator` or `cursor`. Wrap in a View for hover effects.
|
|
569
|
+
|
|
570
|
+
### Button Properties
|
|
571
|
+
|
|
572
|
+
```
|
|
573
|
+
text: "Click"
|
|
574
|
+
draw_bg +: { ... } // background shader
|
|
575
|
+
draw_text +: { ... } // text shader
|
|
576
|
+
draw_icon +: { ... } // icon shader
|
|
577
|
+
icon_walk: Walk{width: 16 height: 16}
|
|
578
|
+
label_walk: Walk{...}
|
|
579
|
+
grab_key_focus: true
|
|
580
|
+
animator: Animator{ ... }
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
### TextInput Properties
|
|
584
|
+
|
|
585
|
+
```
|
|
586
|
+
width: Fill height: Fit
|
|
587
|
+
empty_text: "Placeholder"
|
|
588
|
+
is_password: true
|
|
589
|
+
is_read_only: true
|
|
590
|
+
is_numeric_only: true
|
|
591
|
+
draw_bg +: { ... }
|
|
592
|
+
draw_text +: { ... }
|
|
593
|
+
draw_selection +: { ... }
|
|
594
|
+
draw_cursor +: { ... }
|
|
595
|
+
label_align: Align{...}
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
### Image Properties
|
|
599
|
+
|
|
600
|
+
```
|
|
601
|
+
width: 200 height: 150
|
|
602
|
+
fit: ImageFit.Stretch // Stretch | Horizontal | Vertical | Smallest | Biggest | Size
|
|
603
|
+
min_width: 100
|
|
604
|
+
min_height: 100
|
|
605
|
+
width_scale: 1.0
|
|
606
|
+
animation: ImageAnimation.Loop // Stop | Once | Loop | Bounce | OnceFps(60) | LoopFps(25)
|
|
607
|
+
draw_bg +: {
|
|
608
|
+
opacity: 1.0
|
|
609
|
+
image_scale: vec2(1.0 1.0)
|
|
610
|
+
image_pan: vec2(0.0 0.0)
|
|
611
|
+
image_texture: texture_2d(float)
|
|
612
|
+
}
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
### Slider Properties
|
|
616
|
+
|
|
617
|
+
```
|
|
618
|
+
text: "Volume"
|
|
619
|
+
min: 0.0
|
|
620
|
+
max: 100.0
|
|
621
|
+
step: 1.0
|
|
622
|
+
default: 50.0
|
|
623
|
+
precision: 2
|
|
624
|
+
axis: DragAxis.Horizontal // or Vertical
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
### DropDown Properties
|
|
628
|
+
|
|
629
|
+
```
|
|
630
|
+
labels: ["Option A" "Option B" "Option C"]
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
### PortalList Properties
|
|
634
|
+
|
|
635
|
+
```
|
|
636
|
+
width: Fill height: Fill
|
|
637
|
+
flow: Down
|
|
638
|
+
scroll_bar: ScrollBar{}
|
|
639
|
+
capture_overload: true
|
|
640
|
+
selectable: true
|
|
641
|
+
drag_scrolling: true
|
|
642
|
+
auto_tail: false
|
|
643
|
+
|
|
644
|
+
// Templates (named with :=)
|
|
645
|
+
Item := View{ height: Fit ... }
|
|
646
|
+
Header := View{ ... }
|
|
647
|
+
```
|
|
648
|
+
|
|
649
|
+
### Splitter Properties
|
|
650
|
+
|
|
651
|
+
```
|
|
652
|
+
axis: SplitterAxis.Horizontal // Horizontal | Vertical
|
|
653
|
+
align: SplitterAlign.FromA(250.0) // FromA(px) | FromB(px) | Weighted(0.5)
|
|
654
|
+
a := left_panel
|
|
655
|
+
b := right_panel
|
|
656
|
+
min_horizontal: 100.0
|
|
657
|
+
max_horizontal: 500.0
|
|
658
|
+
min_vertical: 100.0
|
|
659
|
+
max_vertical: 500.0
|
|
660
|
+
```
|
|
661
|
+
|
|
662
|
+
### Modal Properties
|
|
663
|
+
|
|
664
|
+
```
|
|
665
|
+
content +: {
|
|
666
|
+
width: 300 height: Fit
|
|
667
|
+
RoundedView{ ... }
|
|
668
|
+
}
|
|
669
|
+
```
|
|
670
|
+
|
|
671
|
+
### PageFlip Properties
|
|
672
|
+
|
|
673
|
+
```
|
|
674
|
+
active_page := page1
|
|
675
|
+
lazy_init: true
|
|
676
|
+
page1 := View{ ... }
|
|
677
|
+
page2 := View{ ... }
|
|
678
|
+
```
|
|
679
|
+
|
|
680
|
+
### SlidePanel Properties
|
|
681
|
+
|
|
682
|
+
```
|
|
683
|
+
side: SlideSide.Left // Left | Right | Top
|
|
684
|
+
width: 200
|
|
685
|
+
height: Fill
|
|
686
|
+
```
|
|
687
|
+
|
|
688
|
+
## Enum Reference
|
|
689
|
+
|
|
690
|
+
### MouseCursor
|
|
691
|
+
`Default` `Hand` `Arrow` `Text` `Move` `Wait` `Help` `NotAllowed` `Crosshair` `Grab` `Grabbing` `NResize` `EResize` `SResize` `WResize` `NsResize` `EwResize` `ColResize` `RowResize` `Hidden`
|
|
692
|
+
|
|
693
|
+
Usage: `cursor: MouseCursor.Hand`
|
|
694
|
+
|
|
695
|
+
### ImageFit
|
|
696
|
+
`Stretch` `Horizontal` `Vertical` `Smallest` `Biggest` `Size`
|
|
697
|
+
|
|
698
|
+
### SplitterAxis
|
|
699
|
+
`Horizontal` `Vertical`
|
|
700
|
+
|
|
701
|
+
### SplitterAlign
|
|
702
|
+
`FromA(f64)` `FromB(f64)` `Weighted(f64)`
|
|
703
|
+
|
|
704
|
+
### SlideSide
|
|
705
|
+
`Left` `Right` `Top`
|
|
706
|
+
|
|
707
|
+
### Flow
|
|
708
|
+
`Right` `Down` `Overlay` `Flow.Right{wrap: true}` `Flow.Down{wrap: true}`
|
|
709
|
+
|
|
710
|
+
## Draw Batching
|
|
711
|
+
|
|
712
|
+
Set `new_batch: true` on any View that has `show_bg: true` AND contains text children. Without it, text from child Labels may render BEHIND the parent's background due to GPU draw call batching.
|
|
713
|
+
|
|
714
|
+
**CRITICAL for hover effects**: If a View has `show_bg: true` with a hover animator (background goes from transparent to opaque), you MUST set `new_batch: true` or text disappears on hover.
|
|
715
|
+
|
|
716
|
+
```
|
|
717
|
+
View{
|
|
718
|
+
width: Fill height: Fit
|
|
719
|
+
new_batch: true // REQUIRED for correct layering
|
|
720
|
+
show_bg: true
|
|
721
|
+
draw_bg +: {
|
|
722
|
+
color: uniform(#0000)
|
|
723
|
+
color_hover: uniform(#fff2)
|
|
724
|
+
hover: instance(0.0)
|
|
725
|
+
pixel: fn(){
|
|
726
|
+
return Pal.premul(self.color.mix(self.color_hover, self.hover))
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
animator: Animator{ hover: { ... } }
|
|
730
|
+
Label{ text: "This text stays visible on hover" draw_text.color: #fff }
|
|
731
|
+
}
|
|
732
|
+
```
|
|
733
|
+
|
|
734
|
+
## Rust Struct Attributes Reference
|
|
735
|
+
|
|
736
|
+
| Attribute | Purpose |
|
|
737
|
+
|-----------|---------|
|
|
738
|
+
| `#[source] source: ScriptObjectRef` | REQUIRED for Script-derived structs |
|
|
739
|
+
| `#[walk] walk: Walk` | Walk properties (width, height, margin) |
|
|
740
|
+
| `#[layout] layout: Layout` | Layout properties (flow, spacing, padding, align) |
|
|
741
|
+
| `#[live] field: Type` | Script-exposed property |
|
|
742
|
+
| `#[redraw] #[live] draw_bg: DrawQuad` | Draw property that triggers redraw |
|
|
743
|
+
| `#[rust] field: Type` | Runtime-only field, not in script |
|
|
744
|
+
| `#[deref] view: View` | Inherit from base widget |
|
|
745
|
+
| `#[apply_default] animator: Animator` | Animator with defaults |
|
|
746
|
+
|
|
747
|
+
### Derive Macros
|
|
748
|
+
|
|
749
|
+
| Derive | Purpose |
|
|
750
|
+
|--------|---------|
|
|
751
|
+
| `Script` | Script integration |
|
|
752
|
+
| `ScriptHook` | Script lifecycle hooks (on_after_apply, etc.) |
|
|
753
|
+
| `Widget` | Widget trait implementation |
|
|
754
|
+
| `Animator` | Animator support |
|
|
755
|
+
| `Default` | Standard default (use with `#[default]` on None variant) |
|
|
756
|
+
|
|
757
|
+
**Do NOT use `DefaultNone` derive** -- use `#[derive(Default)]` with `#[default]` attribute on the `None` variant.
|