cuelo 0.10.83 → 0.10.85
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/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +31 -29
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.js +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +14 -0
- package/.next/server/app/_global-error/page.js +3 -3
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/agent/[id]/account/route.js +1 -1
- package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
- package/.next/server/app/api/agent/[id]/events/route.js +2 -2
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/running/route.js +1 -1
- package/.next/server/app/api/attachment-settings/route.js +1 -1
- package/.next/server/app/api/attachments/[id]/transcription/route.js +2 -2
- package/.next/server/app/api/attachments/draft/route.js +1 -1
- package/.next/server/app/api/attachments/route.js +2 -2
- package/.next/server/app/api/auth/all-providers/route.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/providers/route.js +1 -1
- package/.next/server/app/api/character-mode/route.js +2 -0
- package/.next/server/app/api/character-mode/route.js.nft.json +1 -0
- package/.next/server/app/api/character-mode/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cwd/browse/route.js +1 -1
- package/.next/server/app/api/cwd/validate/route.js +1 -1
- package/.next/server/app/api/default-cwd/route.js +1 -1
- package/.next/server/app/api/display-settings/route.js +1 -1
- package/.next/server/app/api/document-text/route.js +2 -2
- package/.next/server/app/api/experiments/route.js +1 -1
- package/.next/server/app/api/file-index/route.js +1 -1
- package/.next/server/app/api/files/[...path]/route.js +1 -1
- package/.next/server/app/api/git/diff/route.js +2 -2
- package/.next/server/app/api/git/status/route.js +2 -2
- package/.next/server/app/api/github/projects/route.js +1 -1
- package/.next/server/app/api/gpt6/handles/route.js +1 -1
- package/.next/server/app/api/gpt6/reply/route.js +1 -1
- package/.next/server/app/api/gpt6/token/route.js +1 -1
- package/.next/server/app/api/gpt6/web6-session/route.js +1 -1
- package/.next/server/app/api/home/route.js +1 -1
- package/.next/server/app/api/live/call/[callId]/route.js +1 -1
- package/.next/server/app/api/live/call/[callId]/route.js.nft.json +1 -1
- package/.next/server/app/api/live/events/route.js +2 -2
- package/.next/server/app/api/live/events/route.js.nft.json +1 -1
- package/.next/server/app/api/live/interpret/cloud/events/route.js +2 -2
- package/.next/server/app/api/live/interpret/cloud/events/route.js.nft.json +1 -1
- package/.next/server/app/api/live/interpret/cloud/input/route.js +1 -1
- package/.next/server/app/api/live/interpret/cloud/input/route.js.nft.json +1 -1
- package/.next/server/app/api/live/interpret/cloud/route.js +1 -1
- package/.next/server/app/api/live/interpret/cloud/route.js.nft.json +1 -1
- package/.next/server/app/api/live/interpret/route.js +1 -1
- package/.next/server/app/api/live/interpret/route.js.nft.json +1 -1
- package/.next/server/app/api/live/offer/route.js +1 -1
- package/.next/server/app/api/live/offer/route.js.nft.json +1 -1
- package/.next/server/app/api/live/voices/route.js +1 -1
- package/.next/server/app/api/live/voices/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/route.js +2 -2
- package/.next/server/app/api/model-roles/route.js +1 -1
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models-config/catalog/route.js +1 -1
- package/.next/server/app/api/models-config/discover/route.js +1 -1
- package/.next/server/app/api/models-config/route.js +2 -2
- package/.next/server/app/api/models-config/test/route.js +1 -1
- package/.next/server/app/api/office-characters/[...path]/route.js +2 -0
- package/.next/server/app/api/office-characters/[...path]/route.js.nft.json +1 -0
- package/.next/server/app/api/office-characters/[...path]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/plugins/route.js +1 -1
- package/.next/server/app/api/project-docs/route.js +1 -1
- package/.next/server/app/api/project-trust/route.js +1 -1
- package/.next/server/app/api/projects/route.js +1 -1
- package/.next/server/app/api/runs/[runId]/prelude/route.js +1 -1
- package/.next/server/app/api/runs/[runId]/route.js +1 -1
- package/.next/server/app/api/runs/[runId]/turns/route.js +1 -1
- package/.next/server/app/api/runs/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/search/route.js +1 -1
- package/.next/server/app/api/settings/route.js +1 -1
- package/.next/server/app/api/sidecars/[service]/[...path]/route.js +1 -1
- package/.next/server/app/api/skills/check/route.js +1 -1
- package/.next/server/app/api/skills/install/route.js +2 -2
- package/.next/server/app/api/skills/route.js +2 -2
- package/.next/server/app/api/skills/search/route.js +1 -1
- package/.next/server/app/api/skills/update/route.js +1 -1
- package/.next/server/app/api/subagents/eta/route.js +1 -1
- package/.next/server/app/api/theme/route.js +1 -1
- package/.next/server/app/api/tool-image/route.js +1 -1
- package/.next/server/app/api/update-maintenance/route.js +2 -2
- package/.next/server/app/api/updates/route.js +1 -1
- package/.next/server/app/api/web-access/recovery/route.js +1 -1
- package/.next/server/app/api/web-access/route.js +1 -1
- package/.next/server/app/api/web6/consults/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/favicon.ico/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/manifest.webmanifest/route.js +2 -2
- package/.next/server/app/page.js +21 -21
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/recover/page.js +2 -2
- package/.next/server/app/recover/page_client-reference-manifest.js +1 -1
- package/.next/server/app/recover.html +1 -1
- package/.next/server/app/recover.rsc +2 -2
- package/.next/server/app/recover.segments/_full.segment.rsc +2 -2
- package/.next/server/app/recover.segments/_head.segment.rsc +1 -1
- package/.next/server/app/recover.segments/_index.segment.rsc +2 -2
- package/.next/server/app/recover.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/recover.segments/recover/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/recover.segments/recover.segment.rsc +1 -1
- package/.next/server/app-paths-manifest.json +31 -29
- package/.next/server/chunks/{6775.js → 205.js} +2 -2
- package/.next/server/chunks/3379.js +1 -1
- package/.next/server/chunks/7738.js +1 -0
- package/.next/server/functions-config-manifest.json +2 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/app/_global-error/page-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/account/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/events/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/agent/running/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/attachment-settings/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/attachments/[id]/transcription/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/attachments/draft/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/attachments/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/auth/all-providers/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/character-mode/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/cwd/browse/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/cwd/validate/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/display-settings/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/document-text/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/experiments/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/file-index/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/github/projects/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/gpt6/handles/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/gpt6/reply/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/gpt6/token/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/gpt6/web6-session/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/home/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/live/call/[callId]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/live/events/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/live/interpret/cloud/events/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/live/interpret/cloud/input/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/live/interpret/cloud/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/live/interpret/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/live/offer/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/live/voices/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/mcp/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/model-roles/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/models/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/models-config/catalog/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/models-config/discover/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/office-characters/[...path]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/project-docs/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/project-trust/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/projects/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/runs/[runId]/prelude/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/runs/[runId]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/runs/[runId]/turns/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/runs/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/export/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/state/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sessions/search/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/settings/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sidecars/[service]/[...path]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/skills/check/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/skills/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/skills/update/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/subagents/eta/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/theme/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/tool-image/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/update-maintenance/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/updates/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/web-access/recovery/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/web-access/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/web6/consults/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/{layout-4e22adaca20b3c57.js → layout-9732ddae4dc9638c.js} +1 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/page-8e9c8449e2f53ae8.js +75 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-436da0332762a8e3.js +1 -0
- package/.next/static/y4k_8nU4FYWcP7nTP4oCU/_buildManifest.js +1 -0
- package/.next/trace +108 -108
- package/.next/trace-build +1 -1
- package/.next/types/app/api/character-mode/route.ts +351 -0
- package/.next/types/app/api/office-characters/[...path]/route.ts +351 -0
- package/.next/types/routes.d.ts +3 -1
- package/.next/types/validator.ts +18 -0
- package/README.md +1 -1
- package/Tools/CUELO_Setup/files/native-runtime-patch.js +1 -1
- package/Tools/OMP_Global_Config/agent/extensions/character-voice.ts +217 -22
- package/Tools/OMP_Global_Config/agent/extensions/slop-gate/review.ts +1 -1
- package/Tools/OMP_Global_Config/agent/rules/harness-policy.json +2 -1
- package/Tools/OMP_Global_Config/agent/skills/humanizer/LICENSE.txt +21 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/SKILL.md +357 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/UPSTREAM.json +37 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/examples/after-1.md +17 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/examples/after-2.md +27 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/examples/after-3.md +60 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/examples/after-4.md +50 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/examples/before-1.md +15 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/examples/before-2.md +27 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/examples/before-3.md +29 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/examples/before-4.md +23 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/references/pos-patterns.md +132 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/references/punctuation-patterns.md +353 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/references/spacing-patterns.md +132 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/references/structure-patterns.md +186 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/references/translation-ese-patterns.md +641 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/references/vocabulary-patterns.md +511 -0
- package/Tools/OMP_Global_Config/agent/skills/kill-ai-slop/LICENSE +202 -0
- package/Tools/OMP_Global_Config/agent/skills/kill-ai-slop/README.md +113 -0
- package/Tools/OMP_Global_Config/agent/skills/kill-ai-slop/SKILL.md +121 -0
- package/Tools/OMP_Global_Config/agent/skills/kill-ai-slop/references/detection.md +411 -0
- package/Tools/OMP_Global_Config/agent/skills/kill-ai-slop/references/fixes.md +368 -0
- package/Tools/OMP_Global_Config/agent/skills/kill-ai-slop/references/taxonomy.md +343 -0
- package/Tools/OMP_Global_Config/agent/skills/kill-ai-slop/scripts/rules.ru.mjs +23 -0
- package/Tools/OMP_Global_Config/agent/skills/kill-ai-slop/scripts/scan.mjs +508 -0
- package/Tools/OMP_Global_Config/agent/skills/stop-slop/LICENSE +21 -0
- package/Tools/OMP_Global_Config/agent/skills/stop-slop/README.md +62 -0
- package/Tools/OMP_Global_Config/agent/skills/stop-slop/SKILL.md +68 -0
- package/Tools/OMP_Global_Config/agent/skills/stop-slop/references/examples.md +59 -0
- package/Tools/OMP_Global_Config/agent/skills/stop-slop/references/phrases.md +128 -0
- package/Tools/OMP_Global_Config/agent/skills/stop-slop/references/structures.md +134 -0
- package/package.json +4 -1
- package/.next/static/chunks/app/_global-error/page-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/account/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/events/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/agent/new/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/agent/running/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/attachment-settings/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/attachments/[id]/transcription/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/attachments/draft/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/attachments/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/auth/all-providers/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/auth/login/[provider]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/auth/providers/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/cwd/browse/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/cwd/validate/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/default-cwd/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/display-settings/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/document-text/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/experiments/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/file-index/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/files/[...path]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/git/diff/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/git/status/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/github/projects/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/gpt6/handles/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/gpt6/reply/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/gpt6/token/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/gpt6/web6-session/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/home/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/live/call/[callId]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/live/events/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/live/interpret/cloud/events/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/live/interpret/cloud/input/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/live/interpret/cloud/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/live/interpret/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/live/offer/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/live/voices/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/mcp/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/model-roles/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/models/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/models-config/catalog/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/models-config/discover/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/models-config/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/models-config/test/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/plugins/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/project-docs/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/project-trust/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/projects/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/runs/[runId]/prelude/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/runs/[runId]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/runs/[runId]/turns/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/runs/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/context/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/export/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/state/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sessions/search/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/settings/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sidecars/[service]/[...path]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/skills/check/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/skills/install/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/skills/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/skills/search/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/skills/update/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/subagents/eta/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/theme/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/tool-image/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/update-maintenance/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/updates/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/web-access/recovery/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/web-access/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/web6/consults/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/page-b61cdb3a88126c55.js +0 -75
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-60d4ba1619c3b27a.js +0 -1
- package/.next/static/vdQU0PJ0EqoAWyaBUHRpd/_buildManifest.js +0 -1
- /package/.next/static/{vdQU0PJ0EqoAWyaBUHRpd → y4k_8nU4FYWcP7nTP4oCU}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
# Fix patterns
|
|
2
|
+
|
|
3
|
+
Before→after for each tell. These are *directions*, not find-and-replace rules —
|
|
4
|
+
adapt to the project's tokens and framework. Prefer changing a shared token or
|
|
5
|
+
component once over editing every call site.
|
|
6
|
+
|
|
7
|
+
General order of operations:
|
|
8
|
+
1. Fix the design tokens / theme first (colors, radius, fonts). Many hits
|
|
9
|
+
disappear at once.
|
|
10
|
+
2. Then components, then one-off call sites.
|
|
11
|
+
3. Then copy.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
### 01 Indigo→violet gradient
|
|
16
|
+
```diff
|
|
17
|
+
- class="bg-gradient-to-r from-indigo-500 to-purple-500 shadow-lg shadow-purple-500/50"
|
|
18
|
+
+ class="bg-[--accent]" /* one solid, chosen accent */
|
|
19
|
+
```
|
|
20
|
+
If a gradient is truly wanted, make it subtle and directional (a single hue,
|
|
21
|
+
low contrast) and justify it. Drop the colored glow shadow.
|
|
22
|
+
|
|
23
|
+
### 02 Gradient headline text
|
|
24
|
+
```diff
|
|
25
|
+
- <h1 class="bg-gradient-to-r from-indigo-500 to-pink-500 bg-clip-text text-transparent">
|
|
26
|
+
+ <h1 class="text-[--ink]"> /* solid; go bigger/heavier for impact */
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 03 Warm "cozy" palette
|
|
30
|
+
Replace the amber/stone wash with a near-neutral base and keep one warm accent:
|
|
31
|
+
```diff
|
|
32
|
+
- bg-[#fdf6ec] text-amber-900 border-amber-200
|
|
33
|
+
+ bg-[--paper] text-[--ink] border-[--rule] /* accent stays for one element */
|
|
34
|
+
```
|
|
35
|
+
Propose the neutral values; let the user confirm before applying globally.
|
|
36
|
+
|
|
37
|
+
### 04 Default semantic palette
|
|
38
|
+
Replace the framework rainbow with a coherent set derived from your palette:
|
|
39
|
+
neutrals plus at most one or two intentional semantic colours.
|
|
40
|
+
```diff
|
|
41
|
+
- <span class="bg-blue-50 text-blue-700">Info</span>
|
|
42
|
+
- <span class="bg-green-50 text-green-700">Success</span>
|
|
43
|
+
- <span class="bg-amber-50 text-amber-700">Warning</span>
|
|
44
|
+
- <span class="bg-red-50 text-red-700">Error</span>
|
|
45
|
+
+ <span class="chip">Info</span> <span class="chip">Warning</span>
|
|
46
|
+
+ <span class="chip chip--ok">Success</span> /* one chosen green */
|
|
47
|
+
+ <span class="chip chip--danger">Error</span> /* the brand accent */
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 05 One-hue status box
|
|
51
|
+
Carry the state in a word first; drop the border/text/tint all being one hue.
|
|
52
|
+
```diff
|
|
53
|
+
- <div class="border border-red-500 bg-red-500/10 text-red-500 rounded p-3">
|
|
54
|
+
- Something went wrong.
|
|
55
|
+
- </div>
|
|
56
|
+
+ <div class="border border-[--rule] bg-[--surface] text-[--ink] rounded p-3">
|
|
57
|
+
+ <b>Error</b> — something went wrong. /* one muted accent, on a neutral surface */
|
|
58
|
+
+ </div>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 06 Gradients as atmosphere
|
|
62
|
+
Hold one flat background; build surface depth with a hairline, not a gradient.
|
|
63
|
+
```diff
|
|
64
|
+
- <body class="bg-[radial-gradient(circle_at_top,#1e293b,#020617)]">
|
|
65
|
+
- <div class="rounded-2xl bg-gradient-to-b from-white/10 to-white/0 …">
|
|
66
|
+
- <div class="rounded-2xl bg-gradient-to-br from-emerald-400/15 to-transparent …">
|
|
67
|
+
+ <body class="bg-[--bg]"> /* one flat colour, held */
|
|
68
|
+
+ <div class="rounded-[--radius] bg-[--card] border border-[--rule]">
|
|
69
|
+
+ <div class="rounded-[--radius] bg-[--card] border border-[--rule]">
|
|
70
|
+
```
|
|
71
|
+
If a glow must exist, let it point at one element instead of filling the void.
|
|
72
|
+
|
|
73
|
+
### 07 Serif-italic on one word
|
|
74
|
+
```diff
|
|
75
|
+
- The editor that <em class="font-serif italic text-indigo-600">actually</em> ships.
|
|
76
|
+
+ The editor that <b>ships</b>. /* emphasise by weight/position, one voice */
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 08 Serif where sans belongs
|
|
80
|
+
Swap the display serif for the project's UI sans in the font tokens; keep serif
|
|
81
|
+
only if the product's voice is genuinely editorial (and then use a *text* serif).
|
|
82
|
+
```diff
|
|
83
|
+
- font-family: "Playfair Display", serif;
|
|
84
|
+
+ font-family: var(--font-sans);
|
|
85
|
+
```
|
|
86
|
+
For the oversized italic-serif hero: set it roman, or move to a non-serif
|
|
87
|
+
display face — the italic-serif hero is the AI-startup landing page uniform.
|
|
88
|
+
|
|
89
|
+
### 09 Decorative strikes & highlights
|
|
90
|
+
Remove the strike/underline/highlight used for emphasis; let structure carry it.
|
|
91
|
+
```diff
|
|
92
|
+
- <h1>The <s>old</s> <mark>new</mark> way to <u>ship</u>.</h1>
|
|
93
|
+
+ <h1>A faster way to ship.</h1>
|
|
94
|
+
```
|
|
95
|
+
Keep strike-through for a real edit, underline for a link, highlight for a real
|
|
96
|
+
annotation — each only when it does that job.
|
|
97
|
+
|
|
98
|
+
### 10 The kicker above every heading
|
|
99
|
+
Delete kickers that restate their heading; keep one only where it adds a real
|
|
100
|
+
dimension (a category, a date, a genuine sequence number).
|
|
101
|
+
```diff
|
|
102
|
+
- <p class="text-xs uppercase tracking-widest text-indigo-500">Features</p>
|
|
103
|
+
- <h2>What it does</h2>
|
|
104
|
+
+ <h2>What it does</h2> /* scale and space introduce the section */
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### 11 Full-sentence display headline
|
|
108
|
+
Compress the point into a few words at display size; move the rest to a
|
|
109
|
+
normal-size subline.
|
|
110
|
+
```diff
|
|
111
|
+
- <h1 class="text-7xl font-extrabold tracking-tight">
|
|
112
|
+
- We help modern teams resolve incidents faster than ever before
|
|
113
|
+
- </h1>
|
|
114
|
+
+ <h1 class="text-5xl font-semibold">Pages the right engineer</h1>
|
|
115
|
+
+ <p class="text-lg text-[--ink-2]">It maps alerts to code owners and routes
|
|
116
|
+
+ each incident to whoever shipped the change.</p>
|
|
117
|
+
```
|
|
118
|
+
After shortening, re-check any `max-width` that was sized for the old headline —
|
|
119
|
+
a stale narrow measure (say `20ch`) will re-wrap your few words onto two lines
|
|
120
|
+
and undo the fix. Verify the rendered result, not just the copy.
|
|
121
|
+
|
|
122
|
+
### 12 Flat type hierarchy
|
|
123
|
+
Give the scale real steps; let the most important thing be unmistakably bigger.
|
|
124
|
+
```diff
|
|
125
|
+
- <p class="text-[15px] font-semibold">Usage this month</p>
|
|
126
|
+
- <p class="text-sm text-gray-500">API calls: 48,210 (+12% vs May)</p>
|
|
127
|
+
+ <p class="text-xs text-[--ink-2]">API calls this month</p>
|
|
128
|
+
+ <p class="text-4xl font-semibold tabular-nums">48,210</p>
|
|
129
|
+
+ <p class="text-xs text-[--ink-3]">+12% vs May</p>
|
|
130
|
+
```
|
|
131
|
+
Merge sizes that are within a pixel or two; aim for ≥1.25× between steps.
|
|
132
|
+
|
|
133
|
+
### 13 Highlighted keywords
|
|
134
|
+
```diff
|
|
135
|
+
- Our <span class="text-indigo-600 font-semibold">revolutionary</span> platform helps
|
|
136
|
+
- <span class="text-pink-600 font-semibold">ambitious</span> teams move faster.
|
|
137
|
+
+ A project tracker for engineering teams. It updates issues from your commits.
|
|
138
|
+
```
|
|
139
|
+
Let structure carry emphasis; at most one accented phrase.
|
|
140
|
+
|
|
141
|
+
### 14 AI copywriting voice
|
|
142
|
+
Rewrite for specifics. Delete triads, em-dash drama, and "X theater" framing.
|
|
143
|
+
```diff
|
|
144
|
+
- It's not just an editor — it's a movement. Say goodbye to friction.
|
|
145
|
+
+ A code editor. Opens in under a second, ~half the memory of Electron editors.
|
|
146
|
+
- We killed the standup theater.
|
|
147
|
+
+ It replaces the daily standup with a three-line summary of yesterday's PRs.
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### 15 Emoji everywhere
|
|
151
|
+
Remove emoji from headings, buttons, and bullets; keep one only where it carries
|
|
152
|
+
real information (a status).
|
|
153
|
+
```diff
|
|
154
|
+
- <h2>🚀 Why you'll love it</h2>
|
|
155
|
+
+ <h2>Why teams pick it</h2>
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### 16 Glowing status dot
|
|
159
|
+
Drop the halo, the pulse, and the glow shadow; a flat dot plus a word is enough.
|
|
160
|
+
```diff
|
|
161
|
+
- <span class="relative flex h-3 w-3">
|
|
162
|
+
- <span class="animate-ping absolute h-full w-full rounded-full bg-green-400 opacity-75"></span>
|
|
163
|
+
- <span class="relative rounded-full h-3 w-3 bg-green-500 shadow-lg shadow-green-500/50"></span>
|
|
164
|
+
- </span> Ready
|
|
165
|
+
+ <span class="inline-block h-2 w-2 rounded-full bg-[--ok]"></span> Ready
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### 17 Rounded card, colored left border
|
|
169
|
+
Collapse stacked callouts to body text; keep at most one real aside.
|
|
170
|
+
```diff
|
|
171
|
+
- <div class="border-l-4 border-indigo-500 rounded-lg bg-indigo-50 p-4">Note …</div>
|
|
172
|
+
- <div class="border-l-4 border-amber-500 rounded-lg bg-amber-50 p-4">Tip …</div>
|
|
173
|
+
+ <p>… the note, inline as normal prose …</p>
|
|
174
|
+
+ <aside class="note">Beta: exports may change format before 1.0.</aside>
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### 18 Rounded-square icon tiles
|
|
178
|
+
Drop decorative tiles; use a labelled list with real specifics.
|
|
179
|
+
```diff
|
|
180
|
+
- <div class="rounded-xl bg-indigo-100 p-2"><Icon/></div><h3>Fast</h3><p>Very fast.</p>
|
|
181
|
+
+ <li><b>Fast</b> — cold start in 180 ms, measured on a 2020 laptop.</li>
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### 19 Max radius + glassmorphism
|
|
185
|
+
Pick one small radius token; replace blur panes with solid surfaces.
|
|
186
|
+
```diff
|
|
187
|
+
- class="rounded-full backdrop-blur bg-white/10 border border-white/20"
|
|
188
|
+
+ class="rounded-[--radius] bg-[--card] border border-[--rule]"
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### 20 Oversized drop shadow
|
|
192
|
+
Shrink the shadow to a real elevation: tight blur, small offset, low opacity,
|
|
193
|
+
never bigger than the element. Often a hairline replaces it outright.
|
|
194
|
+
```diff
|
|
195
|
+
- box-shadow: 0 16px 80px 10px rgba(0,0,0,0.36); /* a room-sized fog */
|
|
196
|
+
+ border: 1px solid var(--rule);
|
|
197
|
+
+ box-shadow: 0 1px 2px rgba(0,0,0,0.06), 0 4px 10px -6px rgba(0,0,0,0.1);
|
|
198
|
+
```
|
|
199
|
+
Keep it colorless; a tinted glow is not depth. (See tell 01 for the purple
|
|
200
|
+
glow-shadow, tell 16 for the status-dot halo.) Ghost-card variant: if a card
|
|
201
|
+
has both a hairline border and a wide soft shadow, keep one — usually the
|
|
202
|
+
hairline.
|
|
203
|
+
|
|
204
|
+
### 21 Corners that don't nest
|
|
205
|
+
Compute the inner radius from the outer minus the padding, or don't round the
|
|
206
|
+
inner element at all.
|
|
207
|
+
```diff
|
|
208
|
+
- <div class="rounded-2xl p-3"><div class="rounded-2xl">…</div></div> /* both 16px */
|
|
209
|
+
+ <div class="rounded-2xl p-3"><div class="rounded-lg">…</div></div> /* 16 − 12 ≈ 8 */
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### 22 Border that dies at the corner
|
|
213
|
+
Put the radius and the border on the same box; never let a clip eat a stroke.
|
|
214
|
+
```diff
|
|
215
|
+
- <div class="rounded-xl overflow-hidden"> /* wrapper owns the radius… */
|
|
216
|
+
- <table class="border divide-y">…</table> /* …child owns the stroke — erased at every corner */
|
|
217
|
+
- </div>
|
|
218
|
+
+ <div class="rounded-xl overflow-hidden border border-[--rule]"> /* same box: the stroke wraps the arc */
|
|
219
|
+
+ <table class="divide-y">…</table>
|
|
220
|
+
+ </div>
|
|
221
|
+
```
|
|
222
|
+
Or keep the hairlines as dividers: run them straight, edge to edge, and drop
|
|
223
|
+
the radius from the fill — square-cornered regions need no arc.
|
|
224
|
+
|
|
225
|
+
### 23 Badge & pill spam
|
|
226
|
+
Delete decorative pills; keep at most a real status tag.
|
|
227
|
+
```diff
|
|
228
|
+
- <h1>Dashboard</h1><Pill>✨ New</Pill><Pill>🔥 Popular</Pill><Pill>β Beta</Pill>
|
|
229
|
+
+ <h1>Dashboard</h1><span class="ver">v2.1</span>
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### 24 AI-drawn SVG icons
|
|
233
|
+
Get a real, high-quality icon: commission a designer, or generate one with the
|
|
234
|
+
best image model and refine it until it's crisp and on-brand.
|
|
235
|
+
```diff
|
|
236
|
+
- <svg viewBox="0 0 48 48"><circle cx="24" cy="24" r="20"/><circle cx="18" cy="20" r="2"/>…</svg>
|
|
237
|
+
+ <img src="/icon.svg" alt="" /> /* a real icon: a designer, or a strong image model, refined */
|
|
238
|
+
```
|
|
239
|
+
Don't ship the crude blob the model sketched, and don't fall back to a bare
|
|
240
|
+
letter; a crude generated icon is worse than no picture at all.
|
|
241
|
+
|
|
242
|
+
### 25 Icon in a tint of itself
|
|
243
|
+
Let the icon inherit the text color with no container; if it truly needs one,
|
|
244
|
+
give it a deliberate opaque surface.
|
|
245
|
+
```diff
|
|
246
|
+
- <div class="rounded-lg bg-blue-500/10 p-2"><Icon class="text-blue-500"/></div>
|
|
247
|
+
+ <Icon class="text-[--ink]"/> /* just an icon; no tinted tile */
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### 26 The springy hover
|
|
251
|
+
Transition only the properties that carry the state change, at 120–200ms with a
|
|
252
|
+
standard ease; hover feedback is a surface shift, not growth.
|
|
253
|
+
```diff
|
|
254
|
+
- class="transition-all duration-500 hover:scale-105 hover:-translate-y-2 hover:shadow-2xl"
|
|
255
|
+
+ class="transition-colors duration-150 hover:bg-[--surface-2] hover:border-[--rule-strong]"
|
|
256
|
+
```
|
|
257
|
+
Never animate layout properties (width/height/margin/padding); save spring
|
|
258
|
+
easing for things that genuinely move through space.
|
|
259
|
+
|
|
260
|
+
### 27 The wobbling spinner
|
|
261
|
+
Give the rotation a fixed centre; never put centering and spinning in the same
|
|
262
|
+
`transform` — a keyframe replaces the whole property.
|
|
263
|
+
```diff
|
|
264
|
+
- .spinner { position: absolute; top: 50%; left: 50%;
|
|
265
|
+
- transform: translate(-50%, -50%); animation: spin 1s linear infinite; }
|
|
266
|
+
- @keyframes spin { to { transform: rotate(360deg); } } /* clobbers the translate */
|
|
267
|
+
+ .spinner-box { position: absolute; inset: 0; display: grid; place-items: center; }
|
|
268
|
+
+ .spinner { animation: spin 1s linear infinite; } /* rotates in place */
|
|
269
|
+
```
|
|
270
|
+
Centre the artwork too: the SVG arc centred on its viewBox, `transform-origin`
|
|
271
|
+
left at center (or use the standalone `rotate` property, which composes with
|
|
272
|
+
`translate` instead of replacing it). Then watch one full revolution before
|
|
273
|
+
moving on.
|
|
274
|
+
|
|
275
|
+
### 28 The all-caps card grid
|
|
276
|
+
Replace the grid of equal-weight cards with the single most important point,
|
|
277
|
+
told fully; drop the ALL-CAPS micro-labels.
|
|
278
|
+
```diff
|
|
279
|
+
- <div class="grid grid-cols-3 gap-8"> …6 icon+CAPS-label+one-liner cards… </div>
|
|
280
|
+
+ <p class="lead">It replaces your standups.</p>
|
|
281
|
+
+ <p>Every morning it reads yesterday's commits and PRs and writes the team a
|
|
282
|
+
+ three-line summary.</p>
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
### 29 The invented stat row
|
|
286
|
+
Keep only measured, sourced numbers; delete the set dressing.
|
|
287
|
+
```diff
|
|
288
|
+
- <div class="stats"><b>10k+</b> Developers <b>99.9%</b> Uptime <b>24/7</b> Support</div>
|
|
289
|
+
+ <p><b>1,847</b> CI runs yesterday, median 3m 12s — from the public status page.</p>
|
|
290
|
+
```
|
|
291
|
+
One real, checkable figure beats three round ones. No numbers yet? Say what the
|
|
292
|
+
product does instead.
|
|
293
|
+
|
|
294
|
+
### 30 The 01 / 02 / 03 section markers
|
|
295
|
+
Delete ornamental ordinals on unordered sections; number only real sequences.
|
|
296
|
+
```diff
|
|
297
|
+
- <span class="text-8xl font-extrabold text-gray-100">01</span><h2>Collaborate</h2>
|
|
298
|
+
- <span class="text-8xl font-extrabold text-gray-100">02</span><h2>Innovate</h2>
|
|
299
|
+
+ <h2>Collaborate</h2> /* sections distinguished by scale and space */
|
|
300
|
+
```
|
|
301
|
+
Install steps, changelogs, and catalogues have earned their numbers; keep those.
|
|
302
|
+
|
|
303
|
+
### 31 Cards inside cards
|
|
304
|
+
One surface per region; group inside it with spacing and hairlines.
|
|
305
|
+
```diff
|
|
306
|
+
- <div class="card"><div class="card"><div class="card">Pro — $8/mo</div></div></div>
|
|
307
|
+
+ <div class="card">
|
|
308
|
+
+ <h3>Billing</h3>
|
|
309
|
+
+ <div class="row">Plan <b>Pro — $8/mo</b></div> /* rows split by hairlines */
|
|
310
|
+
+ <div class="row">Renews <b>May 3</b></div>
|
|
311
|
+
+ </div>
|
|
312
|
+
```
|
|
313
|
+
A child keeps its own surface only when it's genuinely a separate object (a
|
|
314
|
+
preview, an embed).
|
|
315
|
+
|
|
316
|
+
### 32 One gap everywhere
|
|
317
|
+
Space by relationship: pull a heading toward its own rows, push groups apart.
|
|
318
|
+
```diff
|
|
319
|
+
- <div class="space-y-4">
|
|
320
|
+
- <h3>Profile</h3><p>Name</p><p>Email</p>
|
|
321
|
+
- <h3>Danger zone</h3><p>Delete workspace</p>
|
|
322
|
+
- </div>
|
|
323
|
+
+ <section class="mb-8">
|
|
324
|
+
+ <h3 class="mb-1.5">Profile</h3><p>Name</p><p>Email</p>
|
|
325
|
+
+ </section>
|
|
326
|
+
+ <section>
|
|
327
|
+
+ <h3 class="mb-1.5">Danger zone</h3><p>Delete workspace</p>
|
|
328
|
+
+ </section>
|
|
329
|
+
```
|
|
330
|
+
Use a small scale with real jumps (4/8/16/32/64), unevenly on purpose.
|
|
331
|
+
|
|
332
|
+
### 33 Inter everywhere
|
|
333
|
+
Choose a face like you'd choose a logo: try a few, set your own copy in each,
|
|
334
|
+
and be able to say why this one.
|
|
335
|
+
```diff
|
|
336
|
+
- font-family: "Space Grotesk", sans-serif; /* display */
|
|
337
|
+
- font-family: "Inter", sans-serif; /* body — the stock pairing */
|
|
338
|
+
+ font-family: var(--font-sans); /* one face, compared and chosen — with the
|
|
339
|
+
+ reason recorded in the tokens file */
|
|
340
|
+
```
|
|
341
|
+
Landing back on Inter after comparing is a choice; starting there isn't. A
|
|
342
|
+
system stack picked for a reason is a choice too. Propose candidates; let the
|
|
343
|
+
user pick — never swap a brand font silently.
|
|
344
|
+
|
|
345
|
+
### 34 The tasteful terminal
|
|
346
|
+
Move monospace back to code; use terminal metaphors only where they serve the
|
|
347
|
+
product.
|
|
348
|
+
```diff
|
|
349
|
+
- <body class="font-mono bg-[#0a0a0a] text-amber-400">
|
|
350
|
+
- <pre> ╔══════════════╗
|
|
351
|
+
- ║ WELCOME ║
|
|
352
|
+
- ╚══════════════╝</pre>
|
|
353
|
+
+ <body class="font-sans bg-[--bg] text-[--ink]">
|
|
354
|
+
+ <h1>Welcome</h1> /* mono stays in <code>/<pre> for actual code */
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
### 35 The editorial dashboard
|
|
358
|
+
Type follows the job: sans + tabular lining numerals for scanned surfaces;
|
|
359
|
+
serif display only where the surface is genuinely editorial.
|
|
360
|
+
```diff
|
|
361
|
+
- <h1 class="font-serif text-5xl text-emerald-950">Good evening, Mara.</h1>
|
|
362
|
+
- <p class="italic font-serif text-emerald-800/70">The quiet rhythm of your services.</p>
|
|
363
|
+
- <div class="stat font-serif text-4xl">3</div>
|
|
364
|
+
+ <header class="flex items-baseline justify-between">
|
|
365
|
+
+ <h1 class="text-sm font-semibold">On-call — payments</h1><time>22:41 UTC</time>
|
|
366
|
+
+ </header>
|
|
367
|
+
+ <div class="stat text-3xl font-bold tabular-nums">3</div>
|
|
368
|
+
```
|