@stacksjs/defaults 0.70.206 → 0.70.208
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/TODO.md +21 -0
- package/ai/AGENTS.md +79 -0
- package/ai/README.md +45 -0
- package/ai/claude/launch.json +12 -0
- package/ai/skills/stacks-actions/SKILL.md +128 -0
- package/ai/skills/stacks-ai/SKILL.md +276 -0
- package/ai/skills/stacks-alias/SKILL.md +94 -0
- package/ai/skills/stacks-analytics/SKILL.md +91 -0
- package/ai/skills/stacks-api/SKILL.md +738 -0
- package/ai/skills/stacks-arrays/SKILL.md +277 -0
- package/ai/skills/stacks-auth/SKILL.md +422 -0
- package/ai/skills/stacks-auto-imports/SKILL.md +138 -0
- package/ai/skills/stacks-brandkit/SKILL.md +811 -0
- package/ai/skills/stacks-browse/SKILL.md +127 -0
- package/ai/skills/stacks-browse/scripts/browse.ts +492 -0
- package/ai/skills/stacks-browser/SKILL.md +145 -0
- package/ai/skills/stacks-buddy/SKILL.md +676 -0
- package/ai/skills/stacks-build/SKILL.md +163 -0
- package/ai/skills/stacks-cache/SKILL.md +125 -0
- package/ai/skills/stacks-calendar/SKILL.md +113 -0
- package/ai/skills/stacks-chat/SKILL.md +371 -0
- package/ai/skills/stacks-cli/SKILL.md +112 -0
- package/ai/skills/stacks-cloud/SKILL.md +192 -0
- package/ai/skills/stacks-cms/SKILL.md +217 -0
- package/ai/skills/stacks-collections/SKILL.md +82 -0
- package/ai/skills/stacks-commerce/SKILL.md +114 -0
- package/ai/skills/stacks-composables/SKILL.md +161 -0
- package/ai/skills/stacks-config/SKILL.md +144 -0
- package/ai/skills/stacks-configuration/SKILL.md +154 -0
- package/ai/skills/stacks-cron/SKILL.md +123 -0
- package/ai/skills/stacks-crosswind/SKILL.md +190 -0
- package/ai/skills/stacks-dashboard/SKILL.md +173 -0
- package/ai/skills/stacks-database/SKILL.md +286 -0
- package/ai/skills/stacks-datetime/SKILL.md +269 -0
- package/ai/skills/stacks-dependencies/SKILL.md +111 -0
- package/ai/skills/stacks-deploy/SKILL.md +102 -0
- package/ai/skills/stacks-design-brutalist/SKILL.md +110 -0
- package/ai/skills/stacks-design-minimalist/SKILL.md +115 -0
- package/ai/skills/stacks-design-output/SKILL.md +55 -0
- package/ai/skills/stacks-design-soft/SKILL.md +156 -0
- package/ai/skills/stacks-design-taste/SKILL.md +1012 -0
- package/ai/skills/stacks-design-taste-codex/SKILL.md +294 -0
- package/ai/skills/stacks-desktop/SKILL.md +78 -0
- package/ai/skills/stacks-development/SKILL.md +298 -0
- package/ai/skills/stacks-dns/SKILL.md +149 -0
- package/ai/skills/stacks-docs/SKILL.md +109 -0
- package/ai/skills/stacks-email/SKILL.md +236 -0
- package/ai/skills/stacks-enums/SKILL.md +100 -0
- package/ai/skills/stacks-env/SKILL.md +181 -0
- package/ai/skills/stacks-error-handling/SKILL.md +137 -0
- package/ai/skills/stacks-events/SKILL.md +228 -0
- package/ai/skills/stacks-faker/SKILL.md +158 -0
- package/ai/skills/stacks-git/SKILL.md +158 -0
- package/ai/skills/stacks-guard/SKILL.md +98 -0
- package/ai/skills/stacks-health/SKILL.md +75 -0
- package/ai/skills/stacks-http/SKILL.md +316 -0
- package/ai/skills/stacks-i18n/SKILL.md +198 -0
- package/ai/skills/stacks-image-to-code/SKILL.md +629 -0
- package/ai/skills/stacks-imagegen-mobile/SKILL.md +1474 -0
- package/ai/skills/stacks-imagegen-web/SKILL.md +998 -0
- package/ai/skills/stacks-investigate/SKILL.md +119 -0
- package/ai/skills/stacks-jobs/SKILL.md +136 -0
- package/ai/skills/stacks-lint/SKILL.md +184 -0
- package/ai/skills/stacks-listeners/SKILL.md +99 -0
- package/ai/skills/stacks-logging/SKILL.md +78 -0
- package/ai/skills/stacks-mail/SKILL.md +120 -0
- package/ai/skills/stacks-middleware/SKILL.md +249 -0
- package/ai/skills/stacks-migrations/SKILL.md +105 -0
- package/ai/skills/stacks-models/SKILL.md +267 -0
- package/ai/skills/stacks-new-feature/SKILL.md +206 -0
- package/ai/skills/stacks-notifications/SKILL.md +210 -0
- package/ai/skills/stacks-objects/SKILL.md +205 -0
- package/ai/skills/stacks-office-hours/SKILL.md +134 -0
- package/ai/skills/stacks-orm/SKILL.md +342 -0
- package/ai/skills/stacks-path/SKILL.md +118 -0
- package/ai/skills/stacks-payments/SKILL.md +373 -0
- package/ai/skills/stacks-plan-review/SKILL.md +152 -0
- package/ai/skills/stacks-plugins/SKILL.md +149 -0
- package/ai/skills/stacks-push/SKILL.md +376 -0
- package/ai/skills/stacks-query-builder/SKILL.md +128 -0
- package/ai/skills/stacks-queue/SKILL.md +559 -0
- package/ai/skills/stacks-realtime/SKILL.md +442 -0
- package/ai/skills/stacks-redesign/SKILL.md +182 -0
- package/ai/skills/stacks-registry/SKILL.md +58 -0
- package/ai/skills/stacks-repl/SKILL.md +80 -0
- package/ai/skills/stacks-retro/SKILL.md +122 -0
- package/ai/skills/stacks-review/SKILL.md +135 -0
- package/ai/skills/stacks-router/SKILL.md +231 -0
- package/ai/skills/stacks-routes/SKILL.md +105 -0
- package/ai/skills/stacks-scaffolding/SKILL.md +162 -0
- package/ai/skills/stacks-scheduler/SKILL.md +363 -0
- package/ai/skills/stacks-search-engine/SKILL.md +112 -0
- package/ai/skills/stacks-security/SKILL.md +129 -0
- package/ai/skills/stacks-security-audit/SKILL.md +128 -0
- package/ai/skills/stacks-server/SKILL.md +458 -0
- package/ai/skills/stacks-shell/SKILL.md +62 -0
- package/ai/skills/stacks-slug/SKILL.md +87 -0
- package/ai/skills/stacks-sms/SKILL.md +385 -0
- package/ai/skills/stacks-socials/SKILL.md +303 -0
- package/ai/skills/stacks-storage/SKILL.md +576 -0
- package/ai/skills/stacks-strings/SKILL.md +416 -0
- package/ai/skills/stacks-stx/SKILL.md +176 -0
- package/ai/skills/stacks-technical-diagrams/LICENSE +22 -0
- package/ai/skills/stacks-technical-diagrams/SKILL.md +290 -0
- package/ai/skills/stacks-technical-diagrams/agents/openai.yaml +4 -0
- package/ai/skills/stacks-technical-diagrams/assets/template.html +1252 -0
- package/ai/skills/stacks-technical-diagrams/bin/technical-diagrams.mjs +289 -0
- package/ai/skills/stacks-technical-diagrams/bunfig.toml +1 -0
- package/ai/skills/stacks-technical-diagrams/examples/agent-run.lifecycle.json +64 -0
- package/ai/skills/stacks-technical-diagrams/examples/agent-tool-call.workflow.json +88 -0
- package/ai/skills/stacks-technical-diagrams/examples/cache-miss-request.sequence.json +75 -0
- package/ai/skills/stacks-technical-diagrams/examples/product-analytics.dataflow.json +70 -0
- package/ai/skills/stacks-technical-diagrams/examples/web-app.architecture.json +41 -0
- package/ai/skills/stacks-technical-diagrams/renderers/architecture/grid.mjs +62 -0
- package/ai/skills/stacks-technical-diagrams/renderers/architecture/render-architecture.mjs +371 -0
- package/ai/skills/stacks-technical-diagrams/renderers/dataflow/README.md +82 -0
- package/ai/skills/stacks-technical-diagrams/renderers/dataflow/render-dataflow.mjs +295 -0
- package/ai/skills/stacks-technical-diagrams/renderers/lifecycle/README.md +91 -0
- package/ai/skills/stacks-technical-diagrams/renderers/lifecycle/render-lifecycle.mjs +384 -0
- package/ai/skills/stacks-technical-diagrams/renderers/sequence/README.md +84 -0
- package/ai/skills/stacks-technical-diagrams/renderers/sequence/render-sequence.mjs +257 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/cli.mjs +42 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/generated-validators.mjs +13 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/geometry.mjs +230 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/layout-report.mjs +40 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/utils.mjs +88 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/validator.mjs +40 -0
- package/ai/skills/stacks-technical-diagrams/renderers/workflow/README.md +103 -0
- package/ai/skills/stacks-technical-diagrams/renderers/workflow/render-workflow.mjs +481 -0
- package/ai/skills/stacks-technical-diagrams/schemas/README.md +68 -0
- package/ai/skills/stacks-technical-diagrams/schemas/architecture.schema.json +121 -0
- package/ai/skills/stacks-technical-diagrams/schemas/common.schema.json +43 -0
- package/ai/skills/stacks-technical-diagrams/schemas/dataflow.schema.json +221 -0
- package/ai/skills/stacks-technical-diagrams/schemas/lifecycle.schema.json +241 -0
- package/ai/skills/stacks-technical-diagrams/schemas/sequence.schema.json +186 -0
- package/ai/skills/stacks-technical-diagrams/schemas/workflow.schema.json +332 -0
- package/ai/skills/stacks-technical-diagrams/scripts/check-render-output.mjs +297 -0
- package/ai/skills/stacks-technical-diagrams/scripts/render-examples.mjs +28 -0
- package/ai/skills/stacks-testing/SKILL.md +129 -0
- package/ai/skills/stacks-tunnel/SKILL.md +125 -0
- package/ai/skills/stacks-types/SKILL.md +178 -0
- package/ai/skills/stacks-ui/SKILL.md +246 -0
- package/ai/skills/stacks-utils/SKILL.md +444 -0
- package/ai/skills/stacks-validation/SKILL.md +371 -0
- package/ai/skills/stacks-whois/SKILL.md +315 -0
- package/assets/world-map-data.ts +121 -0
- package/bootstrap.ts +114 -0
- package/docs/api-examples.md +46 -0
- package/docs/index.md +24 -0
- package/docs/markdown-examples.md +87 -0
- package/functions/analytics.ts +97 -0
- package/functions/api.ts +143 -0
- package/functions/auth.ts +208 -0
- package/functions/billing/payments.ts +149 -0
- package/functions/blog.ts +120 -0
- package/functions/cms/categorizables.ts +107 -0
- package/functions/cms/pages.ts +108 -0
- package/functions/cms/posts.ts +100 -0
- package/functions/cms/taggables.ts +102 -0
- package/functions/commerce/coupons.ts +128 -0
- package/functions/commerce/customers.ts +128 -0
- package/functions/commerce/gift-cards.ts +119 -0
- package/functions/commerce/orders.ts +112 -0
- package/functions/commerce/payments.ts +119 -0
- package/functions/commerce/products/categories.ts +123 -0
- package/functions/commerce/products/manufacturers.ts +123 -0
- package/functions/commerce/products/products.ts +123 -0
- package/functions/commerce/products/reviews.ts +123 -0
- package/functions/commerce/products/units.ts +123 -0
- package/functions/commerce/products/variants.ts +123 -0
- package/functions/commerce/shippings/delivery-routes.ts +123 -0
- package/functions/commerce/shippings/digital-deliveries.ts +119 -0
- package/functions/commerce/shippings/drivers.ts +123 -0
- package/functions/commerce/shippings/license-keys.ts +123 -0
- package/functions/commerce/shippings/shipping-methods.ts +123 -0
- package/functions/commerce/shippings/shipping-rates.ts +119 -0
- package/functions/commerce/shippings/shipping-zones.ts +119 -0
- package/functions/commerce/taxes.ts +119 -0
- package/functions/commerce/waitlist/products.ts +123 -0
- package/functions/commerce/waitlist/restaurants.ts +123 -0
- package/functions/craft.ts +107 -0
- package/functions/dashboard.ts +153 -0
- package/functions/inbox.ts +95 -0
- package/functions/jobs.ts +86 -0
- package/functions/monitoring/errors.ts +295 -0
- package/functions/queue.ts +111 -0
- package/functions/realtime/websockets.ts +96 -0
- package/functions/realtime.ts +52 -0
- package/functions/releases.ts +49 -0
- package/functions/search.ts +126 -0
- package/functions/toasts.ts +95 -0
- package/functions/uploads.ts +216 -0
- package/ide/.gitignore +4 -0
- package/ide/cursor/rules/auto-imports.mdc +574 -0
- package/ide/cursor/rules/code-style.mdc +12 -0
- package/ide/cursor/rules/documentation.mdc +9 -0
- package/ide/cursor/rules/error-handling-validation.mdc +11 -0
- package/ide/cursor/rules/key-conventions.mdc +11 -0
- package/ide/cursor/rules/project-structure.mdc +169 -0
- package/ide/cursor/rules/readme.mdc +318 -0
- package/ide/cursor/rules/syntax-formatting.mdc +9 -0
- package/ide/cursor/rules/testing.mdc +10 -0
- package/ide/cursor/rules/typescript.mdc +9 -0
- package/ide/cursor/rules/ui-styling.mdc +0 -0
- package/ide/dictionary.txt +397 -0
- package/ide/jetbrains/.fleet/settings.json +4 -0
- package/ide/jetbrains/.idea/.gitignore +5 -0
- package/ide/jetbrains/.idea/.name +1 -0
- package/ide/jetbrains/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/ide/jetbrains/.idea/jsLinters/eslint.xml +7 -0
- package/ide/jetbrains/.idea/modules.xml +8 -0
- package/ide/jetbrains/.idea/stacks.iml +22 -0
- package/ide/jetbrains/.idea/vcs.xml +6 -0
- package/ide/jetbrains/.idea/webResources.xml +14 -0
- package/ide/jetbrains/IntelliJ IDEA Global Settings +0 -0
- package/ide/jetbrains/installed.txt +4 -0
- package/ide/jetbrains/options/github-copilot.xml +5 -0
- package/ide/jetbrains/options/nodejs.xml +7 -0
- package/ide/jetbrains/options/templates.xml +124 -0
- package/ide/jetbrains/templates/JavaScript.xml +6 -0
- package/ide/jetbrains/templates/Stacks.xml +8 -0
- package/ide/vscode/.vscode/README.md +23 -0
- package/ide/vscode/.vscode/extensions.json +5 -0
- package/ide/vscode/.vscode/settings.json +176 -0
- package/ide/vscode/.vscode/stacks.code-snippets +181 -0
- package/ide/vscode/LICENSE.md +21 -0
- package/ide/vscode/README.md +36 -0
- package/ide/vscode/logo.png +0 -0
- package/ide/vscode/package.json +79 -0
- package/ide/zed/.zed/settings.json +139 -0
- package/lang/README.md +28 -0
- package/lang/de.yml +14 -0
- package/lang/en.yml +15 -0
- package/package.json +19 -3
- package/project/bootstrap +161 -0
- package/project/buddy +175 -0
- package/project/storage/framework/tsconfig.app.json +50 -0
- package/project/storage/framework/tsconfig.base.json +58 -0
- package/routes/core.ts +78 -0
- package/routes/dashboard-api.ts +233 -0
- package/routes/dashboard.ts +739 -0
- package/routes/email.ts +129 -0
- package/stores/[name].stx +16 -0
- package/stores/git.ts +71 -0
- package/stores/payment.ts +474 -0
- package/stores/queue.ts +43 -0
- package/stores/user.ts +29 -0
- package/stx-components-plugin.ts +25 -0
- package/styles/design-tokens.css +597 -0
- package/types/dashboard.ts +70 -0
- package/types/defaults.ts +438 -0
- package/vcs/github/CODE_OF_CONDUCT.md +83 -0
- package/vcs/github/CONTRIBUTING.md +187 -0
- package/vcs/github/EXPLANATIONS.md +41 -0
- package/vcs/github/FUNDING.yml +1 -0
- package/vcs/github/ISSUE_TEMPLATE/bug_report.yml +49 -0
- package/vcs/github/ISSUE_TEMPLATE/config.yml +10 -0
- package/vcs/github/ISSUE_TEMPLATE/feature_request.yml +44 -0
- package/vcs/github/SECURITY.md +70 -0
- package/vcs/github/renovate.json +5 -0
- package/vcs/github/stale.yml +14 -0
- package/vcs/github/workflows/README.md +16 -0
- package/vcs/github/workflows/ci.yml +114 -0
- package/vcs/github/workflows/export-size.yml +25 -0
- package/vcs/github/workflows/labeler.yml +13 -0
- package/vcs/github/workflows/release.yml +219 -0
- package/views/[...all].stx +8 -0
- package/views/about.md +3 -0
- package/views/auth/login.stx +1 -0
- package/views/auth/signup.stx +85 -0
- package/views/dashboard/.discovered-models.json +542 -0
- package/views/dashboard/AUDIT.md +904 -0
- package/views/dashboard/[...all].stx +89 -0
- package/views/dashboard/access-tokens/index.stx +177 -0
- package/views/dashboard/actions/index.stx +129 -0
- package/views/dashboard/analytics/blog/index.stx +356 -0
- package/views/dashboard/analytics/browsers/index.stx +263 -0
- package/views/dashboard/analytics/commerce/sales/index.stx +329 -0
- package/views/dashboard/analytics/commerce/web/index.stx +379 -0
- package/views/dashboard/analytics/countries/index.stx +289 -0
- package/views/dashboard/analytics/devices/index.stx +305 -0
- package/views/dashboard/analytics/events/index.stx +536 -0
- package/views/dashboard/analytics/index.stx +88 -0
- package/views/dashboard/analytics/marketing/index.stx +315 -0
- package/views/dashboard/analytics/pages/index.stx +271 -0
- package/views/dashboard/analytics/referrers/index.stx +319 -0
- package/views/dashboard/analytics/web/index.stx +356 -0
- package/views/dashboard/buddy/index.stx +198 -0
- package/views/dashboard/ci/index.stx +462 -0
- package/views/dashboard/cloud/index.stx +452 -0
- package/views/dashboard/commands/index.stx +295 -0
- package/views/dashboard/commerce/categories/index.stx +406 -0
- package/views/dashboard/commerce/coupons/index.stx +485 -0
- package/views/dashboard/commerce/customers/index.stx +410 -0
- package/views/dashboard/commerce/dashboard/index.stx +287 -0
- package/views/dashboard/commerce/delivery/delivery-routes.stx +305 -0
- package/views/dashboard/commerce/delivery/digital-delivery.stx +332 -0
- package/views/dashboard/commerce/delivery/drivers.stx +397 -0
- package/views/dashboard/commerce/delivery/index.stx +18 -0
- package/views/dashboard/commerce/delivery/license-keys.stx +380 -0
- package/views/dashboard/commerce/delivery/shipping-methods.stx +346 -0
- package/views/dashboard/commerce/delivery/shipping-rates.stx +338 -0
- package/views/dashboard/commerce/delivery/shipping-zones.stx +302 -0
- package/views/dashboard/commerce/delivery/tabs.ts +25 -0
- package/views/dashboard/commerce/gift-cards/index.stx +561 -0
- package/views/dashboard/commerce/manufacturers/index.stx +308 -0
- package/views/dashboard/commerce/orders/index.stx +247 -0
- package/views/dashboard/commerce/payments/index.stx +535 -0
- package/views/dashboard/commerce/pos/index.stx +653 -0
- package/views/dashboard/commerce/printers/devices/index.stx +273 -0
- package/views/dashboard/commerce/printers/receipts/index.stx +308 -0
- package/views/dashboard/commerce/products/detail.stx +563 -0
- package/views/dashboard/commerce/products/index.stx +370 -0
- package/views/dashboard/commerce/reviews/index.stx +656 -0
- package/views/dashboard/commerce/reviews/index.ts +0 -0
- package/views/dashboard/commerce/taxes/index.stx +377 -0
- package/views/dashboard/commerce/units/index.stx +317 -0
- package/views/dashboard/commerce/variants/index.stx +319 -0
- package/views/dashboard/commerce/waitlist/products.stx +942 -0
- package/views/dashboard/commerce/waitlist/restaurant.stx +1024 -0
- package/views/dashboard/components/index.stx +330 -0
- package/views/dashboard/composables/index.ts +19 -0
- package/views/dashboard/composables/useChart.ts +77 -0
- package/views/dashboard/composables/useNavigation.ts +99 -0
- package/views/dashboard/composables/useRole.ts +58 -0
- package/views/dashboard/composables/useTheme.ts +74 -0
- package/views/dashboard/content/authors/index.stx +171 -0
- package/views/dashboard/content/blog/index.stx +493 -0
- package/views/dashboard/content/categories/index.stx +169 -0
- package/views/dashboard/content/comments/index.stx +189 -0
- package/views/dashboard/content/dashboard.stx +383 -0
- package/views/dashboard/content/files/index.stx +706 -0
- package/views/dashboard/content/pages/index.stx +174 -0
- package/views/dashboard/content/posts/index.stx +269 -0
- package/views/dashboard/content/seo/index.stx +240 -0
- package/views/dashboard/content/tags/index.stx +167 -0
- package/views/dashboard/data/activity/index.stx +261 -0
- package/views/dashboard/data/dashboard/index.stx +116 -0
- package/views/dashboard/data/subscribers.stx +270 -0
- package/views/dashboard/data/teams.stx +275 -0
- package/views/dashboard/data/users.stx +279 -0
- package/views/dashboard/dependencies/index.stx +178 -0
- package/views/dashboard/deployments/[id].stx +234 -0
- package/views/dashboard/deployments/index.stx +9 -0
- package/views/dashboard/dns/index.stx +163 -0
- package/views/dashboard/environment/index.stx +283 -0
- package/views/dashboard/errors/index.stx +274 -0
- package/views/dashboard/forgot-password.stx +57 -0
- package/views/dashboard/functions/index.stx +159 -0
- package/views/dashboard/health/index.stx +248 -0
- package/views/dashboard/inbox/activity.stx +350 -0
- package/views/dashboard/inbox/index.stx +452 -0
- package/views/dashboard/inbox/settings.stx +290 -0
- package/views/dashboard/index.stx +252 -0
- package/views/dashboard/insights/index.stx +529 -0
- package/views/dashboard/jobs/[id].stx +430 -0
- package/views/dashboard/jobs/history.stx +222 -0
- package/views/dashboard/jobs/index.stx +214 -0
- package/views/dashboard/kanban/[id].stx +899 -0
- package/views/dashboard/kanban/index.stx +260 -0
- package/views/dashboard/layouts/default.stx +565 -0
- package/views/dashboard/layouts/guest.stx +10 -0
- package/views/dashboard/login.stx +48 -0
- package/views/dashboard/logs/index.stx +540 -0
- package/views/dashboard/mailboxes/index.stx +149 -0
- package/views/dashboard/management/permissions/index.stx +490 -0
- package/views/dashboard/marketing/campaigns/index.stx +604 -0
- package/views/dashboard/marketing/lists/index.stx +514 -0
- package/views/dashboard/marketing/reviews/index.stx +475 -0
- package/views/dashboard/marketing/social-posts/index.stx +560 -0
- package/views/dashboard/models/[model].stx +195 -0
- package/views/dashboard/models/index.stx +159 -0
- package/views/dashboard/monitoring/errors/index.stx +415 -0
- package/views/dashboard/notifications/dashboard.stx +383 -0
- package/views/dashboard/notifications/email.stx +336 -0
- package/views/dashboard/notifications/history.stx +373 -0
- package/views/dashboard/notifications/sms.stx +332 -0
- package/views/dashboard/packages/index.stx +195 -0
- package/views/dashboard/queries/[id].stx +381 -0
- package/views/dashboard/queries/history.stx +227 -0
- package/views/dashboard/queries/index.stx +335 -0
- package/views/dashboard/queries/slow.stx +318 -0
- package/views/dashboard/queue/index.stx +427 -0
- package/views/dashboard/realtime/index.stx +429 -0
- package/views/dashboard/register.stx +46 -0
- package/views/dashboard/releases/index.stx +389 -0
- package/views/dashboard/requests/index.stx +462 -0
- package/views/dashboard/serverless/index.stx +475 -0
- package/views/dashboard/servers/[id].stx +299 -0
- package/views/dashboard/servers/index.stx +483 -0
- package/views/dashboard/settings/billing.stx +50 -0
- package/views/dashboard/settings/index.stx +256 -0
- package/views/dashboard/settings/mail.stx +252 -0
- package/views/dashboard/stores/auth.ts +123 -0
- package/views/dashboard/stores/ci.ts +342 -0
- package/views/dashboard/stores/index.ts +129 -0
- package/views/dashboard/stores/kanban.ts +723 -0
- package/views/dashboard/stores/rbac.ts +350 -0
- package/views/dashboard/stx.config.ts +34 -0
- package/views/dashboard/teams/[id].stx +170 -0
- package/views/forum/category.stx +92 -0
- package/views/forum/index.stx +209 -0
- package/views/forum/new-topic.stx +113 -0
- package/views/forum/profile.stx +1 -0
- package/views/forum/topic.stx +143 -0
- package/views/hello-world/[name].stx +47 -0
- package/views/index.stx +21 -0
- package/views/system-tray/index.stx +147 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: stacks-design-minimalist
|
|
3
|
+
description: Use when a Stacks UI should feel editorial and minimalist (Notion/Linear vibe) - designing a docs site, dashboard, landing page, or content surface that needs restrained warm monochrome, typographic contrast, flat bento grids, muted pastel accents, and no gradients or heavy shadows. Composes with stacks-design-taste as an aesthetic preset built on stx + Crosswind + composables.
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Bun >= 1.3.0, TypeScript
|
|
6
|
+
allowed-tools: Read Edit Write Bash Grep Glob
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Editorial / Minimalist UI (Stacks)
|
|
10
|
+
|
|
11
|
+
**Related skills:** refines [`stacks-design-taste`](../stacks-design-taste/SKILL.md) (the flagship anti-slop skill) with a restrained editorial preset. Build with [`stacks-stx`](../stacks-stx/SKILL.md) (templating, signals), [`stacks-crosswind`](../stacks-crosswind/SKILL.md) (utilities, dark mode, custom rules), and [`stacks-ui`](../stacks-ui/SKILL.md) (Craft + headless components). Full composable reference: [`stacks-composables`](../stacks-composables/SKILL.md).
|
|
12
|
+
|
|
13
|
+
## 1. Protocol Overview
|
|
14
|
+
Premium utilitarian minimalism and editorial UI. A frontend engineering directive for generating highly refined, ultra-minimalist, "document-style" web interfaces analogous to top-tier workspace platforms, built with stx + Crosswind. This protocol strictly enforces a high-contrast warm monochrome palette, bespoke typographic hierarchies, meticulous structural macro-whitespace, bento-grid layouts, and an ultra-flat component architecture with deliberate muted pastel accents. It actively rejects standard generic SaaS design trends.
|
|
15
|
+
|
|
16
|
+
## 2. Absolute Negative Constraints (Banned Elements)
|
|
17
|
+
Strictly avoid these generic web development defaults:
|
|
18
|
+
- DO NOT use the "Inter", "Roboto", or "Open Sans" typefaces. (These are font *choices*; load your chosen fonts via the `fonts` config plus `@font-face` / `<link>` with `font-display: swap`, never `next/font`.)
|
|
19
|
+
- DO NOT use generic thin-line icon libraries like "Lucide", "Feather", or standard "Heroicons". Use Iconify `i-*` classes instead, and NEVER hand-roll SVG icon paths or `npm install` an icon package.
|
|
20
|
+
- DO NOT use Crosswind's default heavy drop shadows (for example `shadow-md`, `shadow-lg`, `shadow-xl`). Shadows must be practically non-existent or heavily customized to be ultra-diffuse and low opacity (< 0.05).
|
|
21
|
+
- DO NOT use primary colored backgrounds for large elements or sections (no bright blue, green, or red hero sections).
|
|
22
|
+
- DO NOT use gradients, neon colors, or 3D glassmorphism (beyond subtle navbar blurs).
|
|
23
|
+
- DO NOT use `rounded-full` (pill shapes) for large containers, cards, or primary buttons.
|
|
24
|
+
- DO NOT use emojis anywhere in code, markup, text content, headings, or alt text. Replace with proper Iconify icons or clean SVG primitives.
|
|
25
|
+
- DO NOT use generic placeholder names like "John Doe", "Acme Corp", or "Lorem Ipsum". Use realistic, contextual content.
|
|
26
|
+
- DO NOT use AI copywriting cliches: "Elevate", "Seamless", "Unleash", "Next-Gen", "Game-changer", "Delve". Write plain, specific language.
|
|
27
|
+
|
|
28
|
+
## 3. Typographic Architecture
|
|
29
|
+
The interface must rely on extreme typographic contrast and premium font selection for an editorial feel. Register these in the `fonts` config; load with `@font-face` + `font-display: swap`.
|
|
30
|
+
- Primary Sans-Serif (Body, UI, Buttons): clean, geometric, or system-native fonts with character. Target: `font-family: 'SF Pro Display', 'Geist Sans', 'Helvetica Neue', 'Switzer', sans-serif`.
|
|
31
|
+
- Editorial Serif (Hero Headings & Quotes): Target: `font-family: 'Lyon Text', 'Newsreader', 'Playfair Display', 'Instrument Serif', serif`. Apply tight tracking (`letter-spacing: -0.02em` to `-0.04em`) and tight line-height (`1.1`).
|
|
32
|
+
- Monospace (Code, Keystrokes, Meta-data): Target: `font-family: 'Geist Mono', 'SF Mono', 'JetBrains Mono', monospace`.
|
|
33
|
+
- Text Colors: Body text must never be absolute black (`#000000`). Use off-black/charcoal (`#111111` or `#2F3437`) with a generous `line-height` of `1.6` for legibility. Secondary text should be muted gray (`#787774`).
|
|
34
|
+
|
|
35
|
+
## 4. Color Palette (Warm Monochrome + Spot Pastels)
|
|
36
|
+
Color is a scarce resource, used only for semantic meaning or subtle accents.
|
|
37
|
+
- Canvas / Background: Pure White `#FFFFFF` or Warm Bone/Off-White `#F7F6F3` / `#FBFBFA`.
|
|
38
|
+
- Primary Surface (Cards): `#FFFFFF` or `#F9F9F8`.
|
|
39
|
+
- Structural Borders / Dividers: Ultra-light gray `#EAEAEA` or `rgba(0,0,0,0.06)`.
|
|
40
|
+
- Accent Colors: Exclusively use highly desaturated, washed-out pastels for tags, inline code backgrounds, or subtle icon backgrounds.
|
|
41
|
+
- Pale Red: `#FDEBEC` (Text: `#9F2F2D`)
|
|
42
|
+
- Pale Blue: `#E1F3FE` (Text: `#1F6C9F`)
|
|
43
|
+
- Pale Green: `#EDF3EC` (Text: `#346538`)
|
|
44
|
+
- Pale Yellow: `#FBF3DB` (Text: `#956400`)
|
|
45
|
+
|
|
46
|
+
Expose these as Crosswind theme tokens or CSS custom properties in `config/ui.ts` so dark mode (`dark:` + `useColorMode()` / `useDark()`) stays consistent.
|
|
47
|
+
|
|
48
|
+
## 5. Component Specifications
|
|
49
|
+
- Bento Box Feature Grids:
|
|
50
|
+
- Use asymmetrical CSS Grid layouts (`grid grid-cols-1 md:grid-cols-6` with mixed `col-span`).
|
|
51
|
+
- Cards must have exactly `border: 1px solid #EAEAEA` (`border border-[#EAEAEA]`).
|
|
52
|
+
- Border-radius must be crisp: `8px` or `12px` maximum (`rounded-lg` / `rounded-xl`).
|
|
53
|
+
- Internal padding must be generous (`p-6` to `p-10`).
|
|
54
|
+
- Primary Call-To-Action (Buttons):
|
|
55
|
+
- Solid background `#111111`, text `#FFFFFF`.
|
|
56
|
+
- Slight border-radius (`rounded` to `rounded-md`). No box-shadow.
|
|
57
|
+
- Hover state is a subtle color shift to `#333333` or a micro `active:scale-[0.98]`.
|
|
58
|
+
- Tags & Status Badges:
|
|
59
|
+
- Pill-shaped (`rounded-full`), very small typography (`text-xs`), uppercase with wide tracking (`tracking-[0.05em]`).
|
|
60
|
+
- Background uses the defined muted pastels. (Pills are allowed on small badges, never on large containers.)
|
|
61
|
+
- Accordions (FAQ):
|
|
62
|
+
- Strip all container boxes. Separate items only with `border-b border-[#EAEAEA]`.
|
|
63
|
+
- Use a clean, sharp `+` and `-` toggle. Reach for the headless `Disclosure` component in [`stacks-ui`](../stacks-ui/SKILL.md) and toggle state with a signal.
|
|
64
|
+
- Keystroke Micro-UIs:
|
|
65
|
+
- Render shortcuts as physical keys using `<kbd>`: `border border-[#EAEAEA] rounded bg-[#F7F6F3]` in the monospace font.
|
|
66
|
+
- Faux-OS Window Chrome:
|
|
67
|
+
- When mocking software, wrap it in a minimalist container with a white top bar containing three small, light gray circles (macOS window controls).
|
|
68
|
+
|
|
69
|
+
```html
|
|
70
|
+
<!-- resources/components/BentoCard.stx -->
|
|
71
|
+
<article class="p-8 bg-white dark:bg-neutral-900 border border-[#EAEAEA] rounded-xl">
|
|
72
|
+
<span class="inline-block px-2 py-0.5 text-[#1F6C9F] text-xs tracking-[0.05em] uppercase bg-[#E1F3FE] rounded-full">Docs</span>
|
|
73
|
+
<h3 class="mt-4 text-[#111111] text-2xl dark:text-neutral-100">Structured writing</h3>
|
|
74
|
+
<p class="mt-2 leading-[1.6] text-[#787774]"><slot /></p>
|
|
75
|
+
</article>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## 6. Iconography & Imagery Directives
|
|
79
|
+
- System Icons: Use Iconify `i-*` classes with a technical, slightly thicker-stroke aesthetic (for example `i-ph-*` bold/fill weights, or `i-radix-icons-*`). Standardize stroke width across all icons; keep one collection per project. NEVER hand-roll SVG icon paths.
|
|
80
|
+
- Illustrations: Monochromatic, rough continuous-line ink sketches on white, featuring a single offset geometric shape filled with a muted pastel color.
|
|
81
|
+
- Photography: High-quality, desaturated, warm-toned images. Apply subtle overlays (`opacity: 0.04` warm grain) to blend photos into the monochrome palette. Never use oversaturated stock photos. Use `<img>` with explicit `width`/`height` (reserve space to avoid CLS) and the stx asset pipeline; heavy assets go through `@stacksjs/storage`. Placeholder: `https://picsum.photos/seed/{context}/1200/800`.
|
|
82
|
+
- Hero & Section Backgrounds: Sections should not feel empty and flat. Use subtle full-width background imagery at very low opacity, soft radial light spots (`radial-gradient` with warm tones at `opacity: 0.03`), or minimal geometric line patterns to add depth without breaking the clean aesthetic.
|
|
83
|
+
|
|
84
|
+
## 7. Subtle Motion & Micro-Animations
|
|
85
|
+
Motion should feel invisible: present but never distracting. Quiet sophistication, not spectacle. Stacks ships no animation library; build motion with Crosswind transitions, CSS keyframes in the `.stx` `<style>` block, and the allowed composables. Do NOT import `motion`, `gsap`, or `framer-motion`.
|
|
86
|
+
- Scroll Entry: Elements fade in gently as they enter the viewport. Use `translateY(12px)` + `opacity: 0` resolving over `600ms` with `cubic-bezier(0.16, 1, 0.3, 1)`. Toggle the class with `useIntersectionObserver(target, cb)` or `useElementVisibility(target)`; NEVER `window.addEventListener('scroll', ...)`.
|
|
87
|
+
- Hover States: Cards lift with an ultra-subtle shadow shift (`box-shadow` from `0 0 0` to `0 2px 8px rgba(0,0,0,0.04)` over `200ms`). Buttons respond with `active:scale-[0.98]`.
|
|
88
|
+
- Staggered Reveals: List and grid items enter with a cascade delay (`animation-delay: calc(var(--index) * 80ms)`). Never mount everything at once.
|
|
89
|
+
- Background Ambient Motion: Optional. A single very slow radial gradient blob (`animation-duration: 20s+`, `opacity: 0.02-0.04`) drifting behind hero sections, applied to a `position: fixed; pointer-events: none` layer. Never on scrolling containers.
|
|
90
|
+
- Performance: Animate exclusively via `transform` and `opacity`. No layout-triggering properties (`top`, `left`, `width`, `height`). Use `will-change: transform` sparingly and only on actively animating elements.
|
|
91
|
+
- Reduced motion: gate with CSS `@media (prefers-reduced-motion: reduce)` and/or `useMediaQuery('(prefers-reduced-motion: reduce)')`.
|
|
92
|
+
|
|
93
|
+
```html
|
|
94
|
+
<script client>
|
|
95
|
+
const block = useRef('block')
|
|
96
|
+
const shown = state(false)
|
|
97
|
+
useIntersectionObserver(block, (e) => { if (e[0].isIntersecting) shown.set(true) }, { threshold: 0.2 })
|
|
98
|
+
</script>
|
|
99
|
+
|
|
100
|
+
<section ref="block"
|
|
101
|
+
:class="shown() ? 'translate-y-0 opacity-100' : 'translate-y-3 opacity-0'"
|
|
102
|
+
class="duration-[600ms] ease-[cubic-bezier(0.16,1,0.3,1)] transition-all">
|
|
103
|
+
<slot />
|
|
104
|
+
</section>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## 8. Execution Protocol
|
|
108
|
+
When writing stx / Crosswind or designing a layout:
|
|
109
|
+
1. Establish macro-whitespace first. Use massive vertical padding between sections (`py-24` or `py-32`).
|
|
110
|
+
2. Constrain main typography content width to `max-w-4xl` or `max-w-5xl`.
|
|
111
|
+
3. Apply the custom typographic hierarchy and monochromatic color tokens immediately.
|
|
112
|
+
4. Ensure every card, divider, and border adheres strictly to the `1px solid #EAEAEA` rule.
|
|
113
|
+
5. Add scroll-entry animations to all major content blocks via `useIntersectionObserver`.
|
|
114
|
+
6. Ensure sections have visual depth through imagery, ambient gradients, or subtle textures; no empty flat backgrounds.
|
|
115
|
+
7. Deliver complete stx that reflects this high-end, uncluttered, editorial aesthetic natively without requiring manual adjustments. Ship the full file, never a skeleton or placeholder comment.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: stacks-design-output
|
|
3
|
+
description: Use when generating stx components or design deliverables in a Stacks app and completeness matters - banning placeholder comments and truncation so you ship whole, runnable stx files instead of skeletons. Composes with stacks-design-taste and the aesthetic-preset skills as a full-output enforcement layer.
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Bun >= 1.3.0, TypeScript
|
|
6
|
+
allowed-tools: Read Edit Write Bash Grep Glob
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Full-Output Enforcement (Stacks)
|
|
10
|
+
|
|
11
|
+
**Related skills:** the completeness enforcement layer for [`stacks-design-taste`](../stacks-design-taste/SKILL.md) (the flagship anti-slop skill) and the aesthetic presets [`stacks-design-soft`](../stacks-design-soft/SKILL.md), [`stacks-design-minimalist`](../stacks-design-minimalist/SKILL.md), [`stacks-design-brutalist`](../stacks-design-brutalist/SKILL.md), and [`stacks-redesign`](../stacks-redesign/SKILL.md). Deliverables are stx built with [`stacks-crosswind`](../stacks-crosswind/SKILL.md) and [`stacks-composables`](../stacks-composables/SKILL.md); see [`stacks-stx`](../stacks-stx/SKILL.md) for templating rules.
|
|
12
|
+
|
|
13
|
+
## Baseline
|
|
14
|
+
|
|
15
|
+
Treat every task as production-critical. A partial output is a broken output. Do not optimize for brevity; optimize for completeness. If the user asks for a full `.stx` file, deliver the full file. If the user asks for 5 components, deliver 5 components. No exceptions.
|
|
16
|
+
|
|
17
|
+
## Banned Output Patterns
|
|
18
|
+
|
|
19
|
+
The following patterns are hard failures. Never produce them:
|
|
20
|
+
|
|
21
|
+
**In code blocks:** `// ...`, `// rest of code`, `// implement here`, `// TODO`, `/* ... */`, `// similar to above`, `// continue pattern`, `// add more as needed`, `{{-- ... --}}` or `<!-- rest of template -->` standing in for omitted markup, bare `...` standing in for omitted code, `@foreach` bodies replaced with a comment, or `<slot />` used to paper over content you were asked to write.
|
|
22
|
+
|
|
23
|
+
**In prose:** "Let me know if you want me to continue", "I can provide more details if needed", "for brevity", "the rest follows the same pattern", "similarly for the remaining", "and so on" (when replacing actual content), "I'll leave that as an exercise".
|
|
24
|
+
|
|
25
|
+
**Structural shortcuts:** Outputting a skeleton `.stx` when the request was for a full implementation. Showing the `<script>` and `<style>` blocks while skipping the `<template>` markup (or vice versa). Replacing repeated components with one example and a description. Describing what an stx component should do instead of writing it. Emitting one card and saying "repeat for the others".
|
|
26
|
+
|
|
27
|
+
## Execution Process
|
|
28
|
+
|
|
29
|
+
1. **Scope** - Read the full request. Count how many distinct deliverables are expected (`.stx` files, components, sections, views, layouts). Lock that number.
|
|
30
|
+
2. **Build** - Generate every deliverable completely: every `<script>` / `<template>` / `<style>` block, every directive body (`@if`, `@foreach`, `@section`), every branch and every list item. No partial drafts, no "you can extend this later".
|
|
31
|
+
3. **Cross-check** - Before output, re-read the original request. Compare your deliverable count against the scope count. If anything is missing, add it before responding.
|
|
32
|
+
|
|
33
|
+
## Handling Long Outputs
|
|
34
|
+
|
|
35
|
+
When a response approaches the token limit:
|
|
36
|
+
- Do not compress remaining sections to squeeze them in.
|
|
37
|
+
- Do not skip ahead to a conclusion.
|
|
38
|
+
- Write at full quality up to a clean breakpoint (end of a component, end of an `.stx` file, end of a section).
|
|
39
|
+
- End with:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
[PAUSED - X of Y complete. Send "continue" to resume from: next section name]
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
On "continue", pick up exactly where you stopped. No recap, no repetition.
|
|
46
|
+
|
|
47
|
+
## Quick Check
|
|
48
|
+
|
|
49
|
+
Before finalizing any response, verify:
|
|
50
|
+
- No banned patterns from the list above appear anywhere in the output
|
|
51
|
+
- Every item the user requested is present and finished
|
|
52
|
+
- Every `.stx` block that was asked for is complete: `<script>`, `<template>`/markup, and `<style>` as applicable
|
|
53
|
+
- Code blocks contain actual runnable stx + Crosswind, not descriptions of what the component would do
|
|
54
|
+
- No stx hard-ban leaked in while rushing: no `var`, no `document.*`, no `window.*` in `<script>` blocks; icons are Iconify `i-*` classes, never hand-rolled SVG
|
|
55
|
+
- Nothing was shortened to save space
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: stacks-design-soft
|
|
3
|
+
description: Use when a Stacks UI should feel high-end, "expensive", soft, and premium - designing a landing page, hero, marketing section, pricing, or portfolio that needs generous whitespace, premium fonts, soft diffused shadows, and spring-like motion. Composes with stacks-design-taste as an aesthetic preset built on stx + Crosswind + composables.
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Bun >= 1.3.0, TypeScript
|
|
6
|
+
allowed-tools: Read Edit Write Bash Grep Glob
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Soft / High-End Visual Design (Stacks)
|
|
10
|
+
|
|
11
|
+
**Related skills:** refines [`stacks-design-taste`](../stacks-design-taste/SKILL.md) (the flagship anti-slop skill) with a premium/soft aesthetic preset. Build with [`stacks-stx`](../stacks-stx/SKILL.md) (templating, signals), [`stacks-crosswind`](../stacks-crosswind/SKILL.md) (utilities, dark mode), and [`stacks-ui`](../stacks-ui/SKILL.md) (Craft + headless components). Full composable reference: [`stacks-composables`](../stacks-composables/SKILL.md).
|
|
12
|
+
|
|
13
|
+
## 1. Core Directive
|
|
14
|
+
- **Persona:** Principal UI/UX architect and motion choreographer, Awwwards-tier.
|
|
15
|
+
- **Objective:** You engineer $150k+ agency-level digital experiences in a Stacks app, not just websites. Output must exude haptic depth, cinematic spatial rhythm, obsessive micro-interactions, and flawless fluid motion, all built with stx + Crosswind + composables.
|
|
16
|
+
- **The Variance Mandate:** NEVER generate the exact same layout or aesthetic twice in a row. Dynamically combine different premium layout archetypes and texture profiles while strictly adhering to the elite "Apple-esque / Linear-tier" design language.
|
|
17
|
+
|
|
18
|
+
## 2. THE "ABSOLUTE ZERO" DIRECTIVE (STRICT ANTI-PATTERNS)
|
|
19
|
+
If your generated stx includes ANY of the following, the design instantly fails:
|
|
20
|
+
- **Banned Fonts:** Inter, Roboto, Arial, Open Sans, Helvetica. Use premium fonts (`Geist`, `Clash Display`, `PP Editorial New`, `Plus Jakarta Sans`). These are font *choices*; load them via the `fonts` config plus `@font-face` / `<link>` with `font-display: swap` in the layout `.stx` head (never `next/font`).
|
|
21
|
+
- **Banned Icons:** Standard thick-stroked Lucide, FontAwesome, or Material Icons. Use only ultra-light precise lines via Iconify `i-*` classes (for example `i-ph-arrow-up-right` from Phosphor Light, or the hugeicons default). NEVER hand-roll SVG icon paths and NEVER `npm install` an icon library.
|
|
22
|
+
- **Banned Borders & Shadows:** Generic 1px solid gray borders. Harsh dark drop shadows (`shadow-md`, `rgba(0,0,0,0.3)`).
|
|
23
|
+
- **Banned Layouts:** Edge-to-edge sticky navbars glued to the top. Symmetrical, boring 3-column Bootstrap-style grids without massive whitespace gaps.
|
|
24
|
+
- **Banned Motion:** Standard `linear` or `ease-in-out` transitions. Instant state changes without interpolation.
|
|
25
|
+
|
|
26
|
+
## 3. THE CREATIVE VARIANCE ENGINE
|
|
27
|
+
Before writing stx, silently "roll the dice" and select ONE combination from the archetypes below based on the prompt's context so output is uniquely tailored but always premium.
|
|
28
|
+
|
|
29
|
+
### A. Vibe & Texture Archetypes (Pick 1)
|
|
30
|
+
1. **Ethereal Glass (SaaS / AI / Tech):** Deepest OLED black (`#050505`), radial mesh gradients (subtle glowing purple/emerald orbs) in the background. Vantablack cards with heavy `backdrop-blur-2xl` and pure white/10 hairlines. Wide geometric Grotesk typography.
|
|
31
|
+
2. **Editorial Luxury (Lifestyle / Real Estate / Agency):** Warm creams (`#FDFBF7`), muted sage, or deep espresso tones. High-contrast variable serif fonts for massive headings. Subtle CSS noise/film-grain overlay (`opacity-[0.03]`) for a physical paper feel.
|
|
32
|
+
3. **Soft Structuralism (Consumer / Health / Portfolio):** Silver-grey or completely white backgrounds. Massive bold Grotesk typography. Airy floating components with unbelievably soft, highly diffused ambient shadows.
|
|
33
|
+
|
|
34
|
+
### B. Layout Archetypes (Pick 1)
|
|
35
|
+
1. **The Asymmetrical Bento:** A masonry-like CSS Grid of varying card sizes (for example `col-span-8 row-span-2` next to stacked `col-span-4` cards) to break visual monotony.
|
|
36
|
+
- **Mobile Collapse:** Falls back to a single-column stack (`grid-cols-1`) with generous vertical gaps (`gap-6`). All `col-span` overrides reset to `col-span-1`.
|
|
37
|
+
2. **The Z-Axis Cascade:** Elements stacked like physical cards, slightly overlapping with varying depths of field, some with a subtle `-2deg` or `3deg` rotation to break the digital grid.
|
|
38
|
+
- **Mobile Collapse:** Remove all rotations and negative-margin overlaps below `768px`. Stack vertically with standard spacing. Overlapping elements cause touch-target conflicts on mobile.
|
|
39
|
+
3. **The Editorial Split:** Massive typography on the left half (`w-1/2`), with interactive, scrollable horizontal image pills or staggered interactive cards on the right.
|
|
40
|
+
- **Mobile Collapse:** Converts to a full-width vertical stack (`w-full`). Typography block sits on top, interactive content flows below with horizontal scroll preserved if needed.
|
|
41
|
+
|
|
42
|
+
**Mobile Override (Universal):** Any asymmetric layout above `md:` MUST aggressively fall back to `w-full`, `px-4`, `py-8` on viewports below `768px`. Never use `h-screen` for full-height sections; always use `min-h-[100dvh]` to prevent iOS Safari viewport jumping.
|
|
43
|
+
|
|
44
|
+
## 4. HAPTIC MICRO-AESTHETICS (COMPONENT MASTERY)
|
|
45
|
+
|
|
46
|
+
### A. The "Double-Bezel" (Doppelrand / Nested Architecture)
|
|
47
|
+
Never place a premium card, image, or container flatly on the background. It must look like machined hardware (a glass plate sitting in an aluminum tray) using nested enclosures.
|
|
48
|
+
- **Outer Shell:** A wrapper `div` with a subtle background (`bg-black/5` or `bg-white/5`), a hairline outer border (`ring-1 ring-black/5` or `border border-white/10`), specific padding (`p-1.5` or `p-2`), and a large outer radius (`rounded-[2rem]`).
|
|
49
|
+
- **Inner Core:** The actual content container inside the shell. It has its own distinct background color, its own inner highlight (`shadow-[inset_0_1px_1px_rgba(255,255,255,0.15)]`), and a mathematically calculated smaller radius (`rounded-[calc(2rem-0.375rem)]`) for concentric curves.
|
|
50
|
+
|
|
51
|
+
```html
|
|
52
|
+
<!-- resources/components/BezelCard.stx -->
|
|
53
|
+
<div class="p-2 bg-white/5 ring-1 ring-black/5 rounded-[2rem] dark:border dark:border-white/10">
|
|
54
|
+
<div class="p-8 bg-white dark:bg-neutral-900 rounded-[calc(2rem-0.5rem)] shadow-[inset_0_1px_1px_rgba(255,255,255,0.15)]">
|
|
55
|
+
<slot />
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### B. Nested CTA & "Island" Button Architecture
|
|
61
|
+
- **Structure:** Primary interactive buttons must be fully rounded pills (`rounded-full`) with generous padding (`px-6 py-3`).
|
|
62
|
+
- **The "Button-in-Button" Trailing Icon:** If a button has an arrow, it NEVER sits naked next to the text. It nests inside its own distinct circular wrapper (`w-8 h-8 rounded-full bg-black/5 dark:bg-white/10 flex items-center justify-center`) placed flush with the main button's right inner padding.
|
|
63
|
+
|
|
64
|
+
```html
|
|
65
|
+
<button class="inline-flex gap-3 items-center px-6 py-3 text-white bg-neutral-900 rounded-full duration-700 ease-[cubic-bezier(0.32,0.72,0,1)] transition-all active:scale-[0.98] group">
|
|
66
|
+
<span>Get started</span>
|
|
67
|
+
<span class="flex items-center justify-center h-8 w-8 bg-white/10 rounded-full duration-700 ease-[cubic-bezier(0.32,0.72,0,1)] transition-transform group-hover:scale-105 group-hover:translate-x-1 group-hover:-translate-y-px">
|
|
68
|
+
<i class="h-4 w-4 i-ph-arrow-up-right"></i>
|
|
69
|
+
</span>
|
|
70
|
+
</button>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### C. Spatial Rhythm & Tension
|
|
74
|
+
- **Macro-Whitespace:** Double your standard padding. Use `py-24` to `py-40` for sections. Let the design breathe heavily.
|
|
75
|
+
- **Eyebrow Tags:** Precede major H1/H2s with a microscopic pill badge (`rounded-full px-3 py-1 text-[10px] uppercase tracking-[0.2em] font-medium`). Use at most one eyebrow per section.
|
|
76
|
+
|
|
77
|
+
## 5. MOTION CHOREOGRAPHY (FLUID DYNAMICS)
|
|
78
|
+
Stacks ships no animation library. Do NOT import `motion/react`, `gsap`, or `framer-motion`. All motion is built with Crosswind transitions, CSS keyframes, and the allowed composables. Never use default transitions. All motion must simulate real-world mass and spring physics via custom cubic-beziers (`transition-all duration-700 ease-[cubic-bezier(0.32,0.72,0,1)]`).
|
|
79
|
+
|
|
80
|
+
### A. The "Fluid Island" Nav & Hamburger Reveal
|
|
81
|
+
- **Closed State:** The navbar is a floating glass pill detached from the top (`mt-6`, `mx-auto`, `w-max`, `rounded-full`).
|
|
82
|
+
- **The Hamburger Morph:** On click, the hamburger lines fluidly rotate and translate to form a perfect 'X' (`rotate-45` and `-rotate-45` with absolute positioning), not just disappear. Drive the open state with a signal via `useToggle()`.
|
|
83
|
+
- **The Modal Expansion:** The menu opens as a massive, screen-filling overlay with a heavy glass effect (`backdrop-blur-3xl bg-black/80` or `bg-white/80`). Reach for the `Transition` component in [`stacks-ui`](../stacks-ui/SKILL.md) for enter/leave.
|
|
84
|
+
- **Staggered Mask Reveal:** Nav links do not just appear. They fade in and slide up from an invisible box (`translate-y-12 opacity-0` to `translate-y-0 opacity-100`) with a staggered delay (`delay-100`, `delay-150`, `delay-200` per item).
|
|
85
|
+
|
|
86
|
+
```html
|
|
87
|
+
<!-- resources/components/FluidNav.stx -->
|
|
88
|
+
<script client>
|
|
89
|
+
const [open, toggle] = useToggle(false)
|
|
90
|
+
</script>
|
|
91
|
+
|
|
92
|
+
<nav class="mt-6 mx-auto px-4 py-2 w-max bg-white/70 dark:bg-black/60 ring-1 ring-black/5 rounded-full backdrop-blur-2xl">
|
|
93
|
+
<button @click="toggle()" class="relative h-6 w-6" aria-label="Menu">
|
|
94
|
+
<span :class="open() ? 'rotate-45 translate-y-0' : '-translate-y-1'"
|
|
95
|
+
class="absolute inset-x-0 h-px bg-current duration-500 ease-[cubic-bezier(0.32,0.72,0,1)] transition-transform"></span>
|
|
96
|
+
<span :class="open() ? '-rotate-45 translate-y-0' : 'translate-y-1'"
|
|
97
|
+
class="absolute inset-x-0 h-px bg-current duration-500 ease-[cubic-bezier(0.32,0.72,0,1)] transition-transform"></span>
|
|
98
|
+
</button>
|
|
99
|
+
</nav>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### B. Magnetic Button Hover Physics
|
|
103
|
+
- Use the `group` utility. On hover, do not just change the background color.
|
|
104
|
+
- Scale the entire button down slightly (`active:scale-[0.98]`) to simulate a physical press.
|
|
105
|
+
- The nested inner icon circle translates diagonally (`group-hover:translate-x-1 group-hover:-translate-y-px`) and scales up slightly (`scale-105`), creating internal kinetic tension.
|
|
106
|
+
- For true pointer-magnetic tracking, use `useMouse()` inside a `<script client>` and drive a CSS custom property from an `effect` (`el.style.setProperty('--mx', ...)`); never React state, never a `requestAnimationFrame` loop that writes signal state every frame.
|
|
107
|
+
|
|
108
|
+
### C. Scroll Interpolation (Entry Animations)
|
|
109
|
+
- Elements never appear statically on load. As they enter the viewport, they execute a gentle heavy fade-up (`translate-y-16 blur-md opacity-0` resolving to `translate-y-0 blur-0 opacity-100` over 800ms+).
|
|
110
|
+
- Use `useIntersectionObserver(target, cb)` or `useElementVisibility(target)` to toggle a Crosswind class when visible. This replaces Motion's `whileInView`. NEVER use `window.addEventListener('scroll', ...)`; it causes continuous reflows and kills mobile performance.
|
|
111
|
+
|
|
112
|
+
```html
|
|
113
|
+
<script client>
|
|
114
|
+
const card = useRef('reveal')
|
|
115
|
+
const shown = state(false)
|
|
116
|
+
useIntersectionObserver(card, (entries) => {
|
|
117
|
+
if (entries[0].isIntersecting) shown.set(true)
|
|
118
|
+
}, { threshold: 0.2 })
|
|
119
|
+
</script>
|
|
120
|
+
|
|
121
|
+
<div ref="reveal"
|
|
122
|
+
:class="shown() ? 'translate-y-0 blur-0 opacity-100' : 'translate-y-16 blur-md opacity-0'"
|
|
123
|
+
class="duration-[800ms] ease-[cubic-bezier(0.32,0.72,0,1)] transition-all">
|
|
124
|
+
<slot />
|
|
125
|
+
</div>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## 6. PERFORMANCE GUARDRAILS
|
|
129
|
+
- **GPU-Safe Animation:** Never animate `top`, `left`, `width`, or `height`. Animate exclusively via `transform` and `opacity`. Use `will-change: transform` sparingly and only on actively animating elements.
|
|
130
|
+
- **Blur Constraints:** Apply `backdrop-blur` only to fixed or sticky elements (navbars, overlays). Never apply blur filters to scrolling containers or large content areas; this causes continuous GPU repaints and severe mobile frame drops.
|
|
131
|
+
- **Grain/Noise Overlays:** Apply noise textures exclusively to fixed, `pointer-events-none` pseudo-elements (`position: fixed; inset: 0; z-index: 50`). Never attach them to scrolling containers.
|
|
132
|
+
- **Z-Index Discipline:** Do not use arbitrary `z-50` or `z-[9999]`. Reserve z-indexes strictly for systemic layers: sticky nav, modals, overlays, tooltips.
|
|
133
|
+
- **Reduced motion:** Above high motion intensity, gate everything with CSS `@media (prefers-reduced-motion: reduce)` and/or `useMediaQuery('(prefers-reduced-motion: reduce)')`.
|
|
134
|
+
|
|
135
|
+
## 7. EXECUTION PROTOCOL
|
|
136
|
+
When generating stx UI, follow this exact sequence:
|
|
137
|
+
1. **[SILENT THOUGHT]** Roll the Variance Engine (Section 3). Choose Vibe and Layout Archetypes based on context to ensure a unique output.
|
|
138
|
+
2. **[SCAFFOLD]** Establish background texture, macro-whitespace scale, and massive typography sizes.
|
|
139
|
+
3. **[ARCHITECT]** Build the DOM strictly using the "Double-Bezel" technique for all major cards, inputs, and feature grids. Use exaggerated squircle radii (`rounded-[2rem]`).
|
|
140
|
+
4. **[CHOREOGRAPH]** Inject custom `cubic-bezier` transitions, staggered nav reveals, and button-in-button hover physics, all in Crosswind + CSS + composables.
|
|
141
|
+
5. **[OUTPUT]** Deliver flawless, complete stx + Crosswind. Ship the full file, never a skeleton or placeholder comment.
|
|
142
|
+
|
|
143
|
+
## 8. PRE-OUTPUT CHECKLIST
|
|
144
|
+
Evaluate your stx against this matrix before delivering. This is the last filter.
|
|
145
|
+
- [ ] No banned fonts, icons, borders, shadows, layouts, or motion patterns from Section 2 are present
|
|
146
|
+
- [ ] A Vibe Archetype and Layout Archetype from Section 3 were consciously selected and applied
|
|
147
|
+
- [ ] All major cards and containers use the Double-Bezel nested architecture (outer shell + inner core)
|
|
148
|
+
- [ ] CTA buttons use the Button-in-Button trailing icon pattern where applicable
|
|
149
|
+
- [ ] Section padding is at minimum `py-24`; the layout breathes heavily
|
|
150
|
+
- [ ] All transitions use custom cubic-bezier curves; no `linear` or `ease-in-out`
|
|
151
|
+
- [ ] Scroll entry animations are present via `useIntersectionObserver` / `useElementVisibility`; no element appears statically
|
|
152
|
+
- [ ] Layout collapses gracefully below `768px` to single-column with `w-full` and `px-4`
|
|
153
|
+
- [ ] All animations use only `transform` and `opacity`; no layout-triggering properties
|
|
154
|
+
- [ ] `backdrop-blur` is only applied to fixed/sticky elements, never to scrolling content
|
|
155
|
+
- [ ] No `motion`/`gsap`/`framer-motion` import, no `var`/`document.*`/`window.*` in stx scripts, no hand-rolled SVG icons
|
|
156
|
+
- [ ] The overall impression reads as "$150k agency build", not "template with nice fonts"
|