@palate/cli 0.0.0-stage → 0.0.2
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/LICENSE +20 -0
- package/README.md +153 -2
- package/bin/palate.mjs +894 -0
- package/kb/anatomy/data-table.md +24 -0
- package/kb/anatomy/empty-state.md +16 -0
- package/kb/anatomy/filter-toolbar.md +19 -0
- package/kb/anatomy/meter.md +16 -0
- package/kb/anatomy/product-window.md +18 -0
- package/kb/anatomy/settings-page.md +18 -0
- package/kb/anatomy/status-indicator.md +17 -0
- package/kb/anatomy/toast-undo.md +16 -0
- package/kb/bench/briefs.json +618 -0
- package/kb/craft/SOURCES.md +48 -0
- package/kb/craft/creativity.md +55 -0
- package/kb/craft/details.md +75 -0
- package/kb/craft/landing-demos.md +46 -0
- package/kb/craft/mistakes.md +73 -0
- package/kb/craft/motion.md +53 -0
- package/kb/craft/principles.md +68 -0
- package/kb/index/discovery.json +1 -0
- package/kb/inspiration/index.json +79 -0
- package/kb/moves/animated-comparison-table.md +58 -0
- package/kb/moves/before-after-slider.md +58 -0
- package/kb/moves/bento-live-tiles.md +57 -0
- package/kb/moves/calm-motion-system.md +63 -0
- package/kb/moves/canvas-grain.md +58 -0
- package/kb/moves/changelog-as-magazine.md +56 -0
- package/kb/moves/code-drawn-diagram.md +56 -0
- package/kb/moves/colophon.md +54 -0
- package/kb/moves/command-palette-site-nav.md +58 -0
- package/kb/moves/confetti-free-celebration.md +58 -0
- package/kb/moves/console-easter-egg.md +57 -0
- package/kb/moves/copy-confirmation.md +57 -0
- package/kb/moves/cursor-reactive-light.md +57 -0
- package/kb/moves/dark-band-contrast-section.md +55 -0
- package/kb/moves/designed-dark-mode.md +58 -0
- package/kb/moves/duotone-photography.md +55 -0
- package/kb/moves/editorial-drop-cap.md +58 -0
- package/kb/moves/editorial-grid-pull-quotes.md +55 -0
- package/kb/moves/engraving-colour-lens.md +64 -0
- package/kb/moves/explorable-control.md +57 -0
- package/kb/moves/feature-films-on-painted-stages.md +58 -0
- package/kb/moves/first-win-onboarding.md +59 -0
- package/kb/moves/footer-live-status.md +56 -0
- package/kb/moves/footer-rewards-the-end.md +58 -0
- package/kb/moves/generative-brand-pattern.md +55 -0
- package/kb/moves/gentle-error-nudge.md +59 -0
- package/kb/moves/halftone-dot-imagery.md +55 -0
- package/kb/moves/hand-drawn-annotations.md +55 -0
- package/kb/moves/hero-paints-itself-in.md +65 -0
- package/kb/moves/honest-progress-narration.md +58 -0
- package/kb/moves/honest-testimonial-wall.md +57 -0
- package/kb/moves/inline-sparklines-in-copy.md +57 -0
- package/kb/moves/inspect-our-taste.md +58 -0
- package/kb/moves/interactive-pricing-calculator.md +59 -0
- package/kb/moves/isometric-illustration-system.md +56 -0
- package/kb/moves/kinetic-variable-type.md +57 -0
- package/kb/moves/konami-secret.md +59 -0
- package/kb/moves/layered-paper-depth.md +56 -0
- package/kb/moves/lightweight-3d-object-hero.md +59 -0
- package/kb/moves/line-engraving-from-image.md +63 -0
- package/kb/moves/link-preview-peek.md +57 -0
- package/kb/moves/live-data-ticker.md +61 -0
- package/kb/moves/made-with-proof.md +51 -0
- package/kb/moves/magnetic-buttons.md +55 -0
- package/kb/moves/marquee-done-right.md +58 -0
- package/kb/moves/moves.yaml +450 -0
- package/kb/moves/museum-painting-backdrop.md +59 -0
- package/kb/moves/one-colour-brand-world.md +56 -0
- package/kb/moves/playful-404.md +58 -0
- package/kb/moves/pointer-highlight-word.md +56 -0
- package/kb/moves/product-in-context.md +56 -0
- package/kb/moves/real-world-data.md +58 -0
- package/kb/moves/referral-reward-reveal.md +59 -0
- package/kb/moves/riso-print-texture.md +57 -0
- package/kb/moves/screenshot-detail-crops.md +56 -0
- package/kb/moves/scroll-progress-chapters.md +57 -0
- package/kb/moves/scroll-scrubbed-product-film.md +62 -0
- package/kb/moves/self-playing-product-demo.md +61 -0
- package/kb/moves/shape-continuity-morph.md +58 -0
- package/kb/moves/sliding-nav-indicator.md +58 -0
- package/kb/moves/sticky-scroll-story.md +56 -0
- package/kb/moves/story-led-long-scroll.md +56 -0
- package/kb/moves/tactile-button.md +63 -0
- package/kb/moves/technical-drawing-lines.md +57 -0
- package/kb/moves/time-of-day-theming.md +56 -0
- package/kb/moves/tiny-game-easter-egg.md +60 -0
- package/kb/moves/type-decode-reveal.md +57 -0
- package/kb/moves/typographic-numeral-hero.md +58 -0
- package/kb/moves/view-transitions-between-pages.md +57 -0
- package/kb/moves/waitlist-position-live.md +60 -0
- package/kb/patterns/app-team-members.md +27 -0
- package/kb/patterns/chat-agent-approvals.md +31 -0
- package/kb/patterns/commerce-product-page.md +34 -0
- package/kb/patterns/dashboard-entity-table.md +37 -0
- package/kb/patterns/dashboard-home-today.md +24 -0
- package/kb/patterns/docs-api-reference.md +31 -0
- package/kb/patterns/marketing-product-led-landing.md +30 -0
- package/kb/patterns/mobile-daily-checklist.md +26 -0
- package/kb/references/index.json +1 -0
- package/kb/references/thumbs/004c5e9072.jpg +0 -0
- package/kb/references/thumbs/008915eb21.jpg +0 -0
- package/kb/references/thumbs/0098cf66c2.jpg +0 -0
- package/kb/references/thumbs/012e61b31f.jpg +0 -0
- package/kb/references/thumbs/014d4e46fc.jpg +0 -0
- package/kb/references/thumbs/01e54f394a.jpg +0 -0
- package/kb/references/thumbs/01e99a579c.jpg +0 -0
- package/kb/references/thumbs/01fd014575.jpg +0 -0
- package/kb/references/thumbs/022778ca72.jpg +0 -0
- package/kb/references/thumbs/02717bf1e1.jpg +0 -0
- package/kb/references/thumbs/02a5cfdbe9.jpg +0 -0
- package/kb/references/thumbs/02c9823f8d.jpg +0 -0
- package/kb/references/thumbs/02f3974613.jpg +0 -0
- package/kb/references/thumbs/032427f1ce.jpg +0 -0
- package/kb/references/thumbs/03ba677d07.jpg +0 -0
- package/kb/references/thumbs/04f2476cfe.jpg +0 -0
- package/kb/references/thumbs/0563e7c52e.jpg +0 -0
- package/kb/references/thumbs/05fa6b8eef.jpg +0 -0
- package/kb/references/thumbs/065bce1517.jpg +0 -0
- package/kb/references/thumbs/06c017f113.jpg +0 -0
- package/kb/references/thumbs/0770e2d8d3.jpg +0 -0
- package/kb/references/thumbs/078a26c4cb.jpg +0 -0
- package/kb/references/thumbs/08679b6e84.jpg +0 -0
- package/kb/references/thumbs/088c45a34c.jpg +0 -0
- package/kb/references/thumbs/089e9fd4e4.jpg +0 -0
- package/kb/references/thumbs/08f773231e.jpg +0 -0
- package/kb/references/thumbs/093ca3e2e3.jpg +0 -0
- package/kb/references/thumbs/0963320f74.jpg +0 -0
- package/kb/references/thumbs/09fc1ded85.jpg +0 -0
- package/kb/references/thumbs/0a368f3963.jpg +0 -0
- package/kb/references/thumbs/0a9e0e5201.jpg +0 -0
- package/kb/references/thumbs/0aace67ee7.jpg +0 -0
- package/kb/references/thumbs/0b61ecf793.jpg +0 -0
- package/kb/references/thumbs/0bde18ae09.jpg +0 -0
- package/kb/references/thumbs/0bf7ee8143.jpg +0 -0
- package/kb/references/thumbs/0ca20a13e0.jpg +0 -0
- package/kb/references/thumbs/0cdc0198c4.jpg +0 -0
- package/kb/references/thumbs/0cf9790b28.jpg +0 -0
- package/kb/references/thumbs/0d0202904b.jpg +0 -0
- package/kb/references/thumbs/0d053aba18.jpg +0 -0
- package/kb/references/thumbs/0d0c2c13d2.jpg +0 -0
- package/kb/references/thumbs/0d30be99b0.jpg +0 -0
- package/kb/references/thumbs/0d503da1b7.jpg +0 -0
- package/kb/references/thumbs/0ddad7b740.jpg +0 -0
- package/kb/references/thumbs/0e0a148101.jpg +0 -0
- package/kb/references/thumbs/0e401b6b75.jpg +0 -0
- package/kb/references/thumbs/0e8f32ba0f.jpg +0 -0
- package/kb/references/thumbs/0ef1966a7d.jpg +0 -0
- package/kb/references/thumbs/0efd416d11.jpg +0 -0
- package/kb/references/thumbs/0f3af263ae.jpg +0 -0
- package/kb/references/thumbs/0f9644c3a5.jpg +0 -0
- package/kb/references/thumbs/1020552737.jpg +0 -0
- package/kb/references/thumbs/1037626587.jpg +0 -0
- package/kb/references/thumbs/10512b7e94.jpg +0 -0
- package/kb/references/thumbs/106dc4a7b5.jpg +0 -0
- package/kb/references/thumbs/108943f6f7.jpg +0 -0
- package/kb/references/thumbs/10a5551d51.jpg +0 -0
- package/kb/references/thumbs/10dd01076c.jpg +0 -0
- package/kb/references/thumbs/11b06e39da.jpg +0 -0
- package/kb/references/thumbs/11baa1ec83.jpg +0 -0
- package/kb/references/thumbs/11bbe12167.jpg +0 -0
- package/kb/references/thumbs/11ca37feb8.jpg +0 -0
- package/kb/references/thumbs/11f14d3f12.jpg +0 -0
- package/kb/references/thumbs/124530ceb5.jpg +0 -0
- package/kb/references/thumbs/1276402336.jpg +0 -0
- package/kb/references/thumbs/1280e5c9d6.jpg +0 -0
- package/kb/references/thumbs/12cac0d172.jpg +0 -0
- package/kb/references/thumbs/138be6623a.jpg +0 -0
- package/kb/references/thumbs/13a0c544d1.jpg +0 -0
- package/kb/references/thumbs/13a32cb94c.jpg +0 -0
- package/kb/references/thumbs/144035d641.jpg +0 -0
- package/kb/references/thumbs/1457e41924.jpg +0 -0
- package/kb/references/thumbs/14972e3a86.jpg +0 -0
- package/kb/references/thumbs/15a47f2e4c.jpg +0 -0
- package/kb/references/thumbs/15aa15d22e.jpg +0 -0
- package/kb/references/thumbs/160dcd24b7.jpg +0 -0
- package/kb/references/thumbs/1610978529.jpg +0 -0
- package/kb/references/thumbs/16db30ba37.jpg +0 -0
- package/kb/references/thumbs/16f19ae4f3.jpg +0 -0
- package/kb/references/thumbs/16f758b03f.jpg +0 -0
- package/kb/references/thumbs/1748e5b751.jpg +0 -0
- package/kb/references/thumbs/175d0b0e69.jpg +0 -0
- package/kb/references/thumbs/178f571a36.jpg +0 -0
- package/kb/references/thumbs/17c43dc025.jpg +0 -0
- package/kb/references/thumbs/17c7f05b50.jpg +0 -0
- package/kb/references/thumbs/17f97e61dd.jpg +0 -0
- package/kb/references/thumbs/1804e17365.jpg +0 -0
- package/kb/references/thumbs/195c162ed1.jpg +0 -0
- package/kb/references/thumbs/19e3699c29.jpg +0 -0
- package/kb/references/thumbs/1a48e0a4d5.jpg +0 -0
- package/kb/references/thumbs/1a6cda265e.jpg +0 -0
- package/kb/references/thumbs/1a7e012091.jpg +0 -0
- package/kb/references/thumbs/1a9173a172.jpg +0 -0
- package/kb/references/thumbs/1b34a6b4d2.jpg +0 -0
- package/kb/references/thumbs/1b5284f3b2.jpg +0 -0
- package/kb/references/thumbs/1b93fbd6d3.jpg +0 -0
- package/kb/references/thumbs/1c6728fef6.jpg +0 -0
- package/kb/references/thumbs/1c6f101618.jpg +0 -0
- package/kb/references/thumbs/1cf7011a94.jpg +0 -0
- package/kb/references/thumbs/1d1769e539.jpg +0 -0
- package/kb/references/thumbs/1d1fd23199.jpg +0 -0
- package/kb/references/thumbs/1d7b6602ac.jpg +0 -0
- package/kb/references/thumbs/1dbbc61b9e.jpg +0 -0
- package/kb/references/thumbs/1dbdd6d21d.jpg +0 -0
- package/kb/references/thumbs/1dd873744b.jpg +0 -0
- package/kb/references/thumbs/1df4dd7cf9.jpg +0 -0
- package/kb/references/thumbs/1ece8c35b8.jpg +0 -0
- package/kb/references/thumbs/1f0e5b9aa4.jpg +0 -0
- package/kb/references/thumbs/1f1419651b.jpg +0 -0
- package/kb/references/thumbs/1f2a6da92d.jpg +0 -0
- package/kb/references/thumbs/1f651f33c0.jpg +0 -0
- package/kb/references/thumbs/1f8b697d18.jpg +0 -0
- package/kb/references/thumbs/1fee3824cd.jpg +0 -0
- package/kb/references/thumbs/1ff7757853.jpg +0 -0
- package/kb/references/thumbs/2043182f01.jpg +0 -0
- package/kb/references/thumbs/2059dabcd5.jpg +0 -0
- package/kb/references/thumbs/209d9dbb95.jpg +0 -0
- package/kb/references/thumbs/20d8923554.jpg +0 -0
- package/kb/references/thumbs/210dd3b671.jpg +0 -0
- package/kb/references/thumbs/2120719116.jpg +0 -0
- package/kb/references/thumbs/21a7384429.jpg +0 -0
- package/kb/references/thumbs/225f187391.jpg +0 -0
- package/kb/references/thumbs/230caf7dd2.jpg +0 -0
- package/kb/references/thumbs/235afad355.jpg +0 -0
- package/kb/references/thumbs/2378066687.jpg +0 -0
- package/kb/references/thumbs/241faf68a1.jpg +0 -0
- package/kb/references/thumbs/24d9f1a9b9.jpg +0 -0
- package/kb/references/thumbs/2505c8b9a0.jpg +0 -0
- package/kb/references/thumbs/25593638ca.jpg +0 -0
- package/kb/references/thumbs/25dd454f18.jpg +0 -0
- package/kb/references/thumbs/2602e123e2.jpg +0 -0
- package/kb/references/thumbs/26095c0b11.jpg +0 -0
- package/kb/references/thumbs/26260d6238.jpg +0 -0
- package/kb/references/thumbs/26bba21836.jpg +0 -0
- package/kb/references/thumbs/26bde3520b.jpg +0 -0
- package/kb/references/thumbs/272e22067c.jpg +0 -0
- package/kb/references/thumbs/27421b3226.jpg +0 -0
- package/kb/references/thumbs/2769ebca41.jpg +0 -0
- package/kb/references/thumbs/27e2f6e8b0.jpg +0 -0
- package/kb/references/thumbs/28432ba373.jpg +0 -0
- package/kb/references/thumbs/2846626f19.jpg +0 -0
- package/kb/references/thumbs/28750e821e.jpg +0 -0
- package/kb/references/thumbs/289481230f.jpg +0 -0
- package/kb/references/thumbs/2897967408.jpg +0 -0
- package/kb/references/thumbs/28c0a5fa17.jpg +0 -0
- package/kb/references/thumbs/28c181fba5.jpg +0 -0
- package/kb/references/thumbs/29806f539f.jpg +0 -0
- package/kb/references/thumbs/2997f56ee7.jpg +0 -0
- package/kb/references/thumbs/29b34a10fb.jpg +0 -0
- package/kb/references/thumbs/29bd78cdb4.jpg +0 -0
- package/kb/references/thumbs/29c8c6c22a.jpg +0 -0
- package/kb/references/thumbs/2ac23f7fae.jpg +0 -0
- package/kb/references/thumbs/2b76e13f79.jpg +0 -0
- package/kb/references/thumbs/2b84226479.jpg +0 -0
- package/kb/references/thumbs/2bf2dbf737.jpg +0 -0
- package/kb/references/thumbs/2bf89abbf6.jpg +0 -0
- package/kb/references/thumbs/2c562cd534.jpg +0 -0
- package/kb/references/thumbs/2cfe9d48c4.jpg +0 -0
- package/kb/references/thumbs/2d49f19b27.jpg +0 -0
- package/kb/references/thumbs/2dc8670da7.jpg +0 -0
- package/kb/references/thumbs/2de947c469.jpg +0 -0
- package/kb/references/thumbs/2e075ca79f.jpg +0 -0
- package/kb/references/thumbs/2eb0820e6b.jpg +0 -0
- package/kb/references/thumbs/2ec56a9dc0.jpg +0 -0
- package/kb/references/thumbs/30bb4ad607.jpg +0 -0
- package/kb/references/thumbs/30d19b8444.jpg +0 -0
- package/kb/references/thumbs/3173c71d73.jpg +0 -0
- package/kb/references/thumbs/31e59e4518.jpg +0 -0
- package/kb/references/thumbs/322b8960e8.jpg +0 -0
- package/kb/references/thumbs/325c9be6f4.jpg +0 -0
- package/kb/references/thumbs/3273338982.jpg +0 -0
- package/kb/references/thumbs/32f8387f38.jpg +0 -0
- package/kb/references/thumbs/332f6b74c3.jpg +0 -0
- package/kb/references/thumbs/334b146b6a.jpg +0 -0
- package/kb/references/thumbs/339abd60e4.jpg +0 -0
- package/kb/references/thumbs/33e88ec295.jpg +0 -0
- package/kb/references/thumbs/340931b5d4.jpg +0 -0
- package/kb/references/thumbs/34165a93bd.jpg +0 -0
- package/kb/references/thumbs/34d0575dd7.jpg +0 -0
- package/kb/references/thumbs/3549e75f0a.jpg +0 -0
- package/kb/references/thumbs/35827f1561.jpg +0 -0
- package/kb/references/thumbs/37c50280ec.jpg +0 -0
- package/kb/references/thumbs/37e66ecf11.jpg +0 -0
- package/kb/references/thumbs/3841a04fdc.jpg +0 -0
- package/kb/references/thumbs/38490c088f.jpg +0 -0
- package/kb/references/thumbs/3850319e9f.jpg +0 -0
- package/kb/references/thumbs/3856a64166.jpg +0 -0
- package/kb/references/thumbs/3881f211c2.jpg +0 -0
- package/kb/references/thumbs/38c7dde2f3.jpg +0 -0
- package/kb/references/thumbs/38ce9e486c.jpg +0 -0
- package/kb/references/thumbs/390ea8e01b.jpg +0 -0
- package/kb/references/thumbs/391b7fc27c.jpg +0 -0
- package/kb/references/thumbs/395f7214dc.jpg +0 -0
- package/kb/references/thumbs/39e81a5db2.jpg +0 -0
- package/kb/references/thumbs/3a67c8d655.jpg +0 -0
- package/kb/references/thumbs/3a89c25e3b.jpg +0 -0
- package/kb/references/thumbs/3aa0837542.jpg +0 -0
- package/kb/references/thumbs/3aae18aa8a.jpg +0 -0
- package/kb/references/thumbs/3bdbe767db.jpg +0 -0
- package/kb/references/thumbs/3c0616fc7f.jpg +0 -0
- package/kb/references/thumbs/3c18e9db1d.jpg +0 -0
- package/kb/references/thumbs/3c5a14076c.jpg +0 -0
- package/kb/references/thumbs/3ca9ec15c6.jpg +0 -0
- package/kb/references/thumbs/3d7756fd35.jpg +0 -0
- package/kb/references/thumbs/3dd45bd33d.jpg +0 -0
- package/kb/references/thumbs/3de72d5414.jpg +0 -0
- package/kb/references/thumbs/3dede597af.jpg +0 -0
- package/kb/references/thumbs/3ea948619e.jpg +0 -0
- package/kb/references/thumbs/402c12054c.jpg +0 -0
- package/kb/references/thumbs/403ab4af90.jpg +0 -0
- package/kb/references/thumbs/40773a8c63.jpg +0 -0
- package/kb/references/thumbs/407d9583db.jpg +0 -0
- package/kb/references/thumbs/415dc1d84c.jpg +0 -0
- package/kb/references/thumbs/420b676a4f.jpg +0 -0
- package/kb/references/thumbs/42a1ee85eb.jpg +0 -0
- package/kb/references/thumbs/43059221aa.jpg +0 -0
- package/kb/references/thumbs/432fa0d22c.jpg +0 -0
- package/kb/references/thumbs/43826f20e3.jpg +0 -0
- package/kb/references/thumbs/43ac55c98a.jpg +0 -0
- package/kb/references/thumbs/43d098f3c3.jpg +0 -0
- package/kb/references/thumbs/4449d80c2c.jpg +0 -0
- package/kb/references/thumbs/44625727dc.jpg +0 -0
- package/kb/references/thumbs/4482bb87a1.jpg +0 -0
- package/kb/references/thumbs/44b078acdc.jpg +0 -0
- package/kb/references/thumbs/44d0305850.jpg +0 -0
- package/kb/references/thumbs/456bb6b59e.jpg +0 -0
- package/kb/references/thumbs/45df73ce48.jpg +0 -0
- package/kb/references/thumbs/45edb45d87.jpg +0 -0
- package/kb/references/thumbs/4671d57cd5.jpg +0 -0
- package/kb/references/thumbs/46cc108518.jpg +0 -0
- package/kb/references/thumbs/470022e614.jpg +0 -0
- package/kb/references/thumbs/4719a669ce.jpg +0 -0
- package/kb/references/thumbs/47404f5ad4.jpg +0 -0
- package/kb/references/thumbs/479d3eb977.jpg +0 -0
- package/kb/references/thumbs/479ed92ceb.jpg +0 -0
- package/kb/references/thumbs/47baed50c7.jpg +0 -0
- package/kb/references/thumbs/47fdcfd7b0.jpg +0 -0
- package/kb/references/thumbs/48fd5e94c5.jpg +0 -0
- package/kb/references/thumbs/493807917b.jpg +0 -0
- package/kb/references/thumbs/49a1c67293.jpg +0 -0
- package/kb/references/thumbs/49e2d7fafe.jpg +0 -0
- package/kb/references/thumbs/49f540fcb6.jpg +0 -0
- package/kb/references/thumbs/4a67ec4028.jpg +0 -0
- package/kb/references/thumbs/4a93275b04.jpg +0 -0
- package/kb/references/thumbs/4aae6f52da.jpg +0 -0
- package/kb/references/thumbs/4b1bae66bd.jpg +0 -0
- package/kb/references/thumbs/4b75da15a9.jpg +0 -0
- package/kb/references/thumbs/4b77789b88.jpg +0 -0
- package/kb/references/thumbs/4bc2f3f3a4.jpg +0 -0
- package/kb/references/thumbs/4c48f27b88.jpg +0 -0
- package/kb/references/thumbs/4c52bd8bfb.jpg +0 -0
- package/kb/references/thumbs/4c9b4acc60.jpg +0 -0
- package/kb/references/thumbs/4cbf0752d4.jpg +0 -0
- package/kb/references/thumbs/4cd2672517.jpg +0 -0
- package/kb/references/thumbs/4dd22a8181.jpg +0 -0
- package/kb/references/thumbs/4ee3447314.jpg +0 -0
- package/kb/references/thumbs/4ef29c8144.jpg +0 -0
- package/kb/references/thumbs/4f82fadfd6.jpg +0 -0
- package/kb/references/thumbs/4fc9b643d8.jpg +0 -0
- package/kb/references/thumbs/50549524b0.jpg +0 -0
- package/kb/references/thumbs/509a615883.jpg +0 -0
- package/kb/references/thumbs/50c03ef855.jpg +0 -0
- package/kb/references/thumbs/50cf9acad6.jpg +0 -0
- package/kb/references/thumbs/51131b025c.jpg +0 -0
- package/kb/references/thumbs/51da1124f0.jpg +0 -0
- package/kb/references/thumbs/524d5e7288.jpg +0 -0
- package/kb/references/thumbs/5251247c81.jpg +0 -0
- package/kb/references/thumbs/526b91b7ec.jpg +0 -0
- package/kb/references/thumbs/52f02f6c2e.jpg +0 -0
- package/kb/references/thumbs/530ab530dc.jpg +0 -0
- package/kb/references/thumbs/5335ee4404.jpg +0 -0
- package/kb/references/thumbs/5385b90939.jpg +0 -0
- package/kb/references/thumbs/53c54654cc.jpg +0 -0
- package/kb/references/thumbs/5420794c6c.jpg +0 -0
- package/kb/references/thumbs/542a9dce8b.jpg +0 -0
- package/kb/references/thumbs/5571530a5f.jpg +0 -0
- package/kb/references/thumbs/56cc68d804.jpg +0 -0
- package/kb/references/thumbs/577b7f7c44.jpg +0 -0
- package/kb/references/thumbs/57adf8f1bb.jpg +0 -0
- package/kb/references/thumbs/57c5f5e3a6.jpg +0 -0
- package/kb/references/thumbs/57ffe4e839.jpg +0 -0
- package/kb/references/thumbs/5817dfc7d6.jpg +0 -0
- package/kb/references/thumbs/581a182a7a.jpg +0 -0
- package/kb/references/thumbs/58807679c8.jpg +0 -0
- package/kb/references/thumbs/589a1d9111.jpg +0 -0
- package/kb/references/thumbs/59167391ab.jpg +0 -0
- package/kb/references/thumbs/5a70420166.jpg +0 -0
- package/kb/references/thumbs/5b10df1b8d.jpg +0 -0
- package/kb/references/thumbs/5b7a712fdb.jpg +0 -0
- package/kb/references/thumbs/5bc46b92ad.jpg +0 -0
- package/kb/references/thumbs/5c0546a120.jpg +0 -0
- package/kb/references/thumbs/5c2b6125a8.jpg +0 -0
- package/kb/references/thumbs/5c536b9e42.jpg +0 -0
- package/kb/references/thumbs/5c8e441d30.jpg +0 -0
- package/kb/references/thumbs/5cb6f1baa5.jpg +0 -0
- package/kb/references/thumbs/5ce6c1f21e.jpg +0 -0
- package/kb/references/thumbs/5cef052c0a.jpg +0 -0
- package/kb/references/thumbs/5d08438209.jpg +0 -0
- package/kb/references/thumbs/5d0f9af9b0.jpg +0 -0
- package/kb/references/thumbs/5d300ed332.jpg +0 -0
- package/kb/references/thumbs/5d708a4794.jpg +0 -0
- package/kb/references/thumbs/5de8826a98.jpg +0 -0
- package/kb/references/thumbs/5df7bff22c.jpg +0 -0
- package/kb/references/thumbs/5e087d0f00.jpg +0 -0
- package/kb/references/thumbs/5e44e70ca0.jpg +0 -0
- package/kb/references/thumbs/5eff5d80ce.jpg +0 -0
- package/kb/references/thumbs/5f015c96b1.jpg +0 -0
- package/kb/references/thumbs/5f3289b7c4.jpg +0 -0
- package/kb/references/thumbs/5f830c40eb.jpg +0 -0
- package/kb/references/thumbs/60c4c3527b.jpg +0 -0
- package/kb/references/thumbs/60e9e594dd.jpg +0 -0
- package/kb/references/thumbs/615421d7be.jpg +0 -0
- package/kb/references/thumbs/6176e4004f.jpg +0 -0
- package/kb/references/thumbs/61f0fe5e06.jpg +0 -0
- package/kb/references/thumbs/6213785db4.jpg +0 -0
- package/kb/references/thumbs/62a670ae09.jpg +0 -0
- package/kb/references/thumbs/63cc12981b.jpg +0 -0
- package/kb/references/thumbs/641f15cc71.jpg +0 -0
- package/kb/references/thumbs/642ab2081d.jpg +0 -0
- package/kb/references/thumbs/644a59bf6e.jpg +0 -0
- package/kb/references/thumbs/644da8a8e3.jpg +0 -0
- package/kb/references/thumbs/6458986897.jpg +0 -0
- package/kb/references/thumbs/64cfbd7b93.jpg +0 -0
- package/kb/references/thumbs/661a57686a.jpg +0 -0
- package/kb/references/thumbs/66355a813a.jpg +0 -0
- package/kb/references/thumbs/664396dd44.jpg +0 -0
- package/kb/references/thumbs/66d832d65f.jpg +0 -0
- package/kb/references/thumbs/66de9e9833.jpg +0 -0
- package/kb/references/thumbs/6750964fd9.jpg +0 -0
- package/kb/references/thumbs/67c7164832.jpg +0 -0
- package/kb/references/thumbs/681600b6cd.jpg +0 -0
- package/kb/references/thumbs/682e75afe4.jpg +0 -0
- package/kb/references/thumbs/69274bc952.jpg +0 -0
- package/kb/references/thumbs/696ec08c52.jpg +0 -0
- package/kb/references/thumbs/69760111cc.jpg +0 -0
- package/kb/references/thumbs/697e32664f.jpg +0 -0
- package/kb/references/thumbs/69df92544b.jpg +0 -0
- package/kb/references/thumbs/69e48c5229.jpg +0 -0
- package/kb/references/thumbs/6a5fb75de1.jpg +0 -0
- package/kb/references/thumbs/6a7389e472.jpg +0 -0
- package/kb/references/thumbs/6a9b041e02.jpg +0 -0
- package/kb/references/thumbs/6ab2fa93ee.jpg +0 -0
- package/kb/references/thumbs/6ae3400319.jpg +0 -0
- package/kb/references/thumbs/6b21344bf3.jpg +0 -0
- package/kb/references/thumbs/6bd1b67a8a.jpg +0 -0
- package/kb/references/thumbs/6c99156c4f.jpg +0 -0
- package/kb/references/thumbs/6cc9b65384.jpg +0 -0
- package/kb/references/thumbs/6d15830a73.jpg +0 -0
- package/kb/references/thumbs/6d4c33d180.jpg +0 -0
- package/kb/references/thumbs/6e36815799.jpg +0 -0
- package/kb/references/thumbs/6eddb9cbfc.jpg +0 -0
- package/kb/references/thumbs/6f97968a7c.jpg +0 -0
- package/kb/references/thumbs/6fa0716a7d.jpg +0 -0
- package/kb/references/thumbs/6facd57184.jpg +0 -0
- package/kb/references/thumbs/6fd57b785a.jpg +0 -0
- package/kb/references/thumbs/700b3cb185.jpg +0 -0
- package/kb/references/thumbs/71197443fa.jpg +0 -0
- package/kb/references/thumbs/72082bc9ee.jpg +0 -0
- package/kb/references/thumbs/72453db479.jpg +0 -0
- package/kb/references/thumbs/72cd64d500.jpg +0 -0
- package/kb/references/thumbs/72d1e75283.jpg +0 -0
- package/kb/references/thumbs/72e13f7f5b.jpg +0 -0
- package/kb/references/thumbs/7459f8e644.jpg +0 -0
- package/kb/references/thumbs/7470d55c79.jpg +0 -0
- package/kb/references/thumbs/74c468f02a.jpg +0 -0
- package/kb/references/thumbs/74fed6eb77.jpg +0 -0
- package/kb/references/thumbs/756e05080d.jpg +0 -0
- package/kb/references/thumbs/75df7e5f49.jpg +0 -0
- package/kb/references/thumbs/76226da6ef.jpg +0 -0
- package/kb/references/thumbs/76a34aa056.jpg +0 -0
- package/kb/references/thumbs/76c7076589.jpg +0 -0
- package/kb/references/thumbs/76cccc396c.jpg +0 -0
- package/kb/references/thumbs/774654789f.jpg +0 -0
- package/kb/references/thumbs/7746cc494d.jpg +0 -0
- package/kb/references/thumbs/7766e36aa3.jpg +0 -0
- package/kb/references/thumbs/78049331ef.jpg +0 -0
- package/kb/references/thumbs/78808a0ca5.jpg +0 -0
- package/kb/references/thumbs/7890b0a310.jpg +0 -0
- package/kb/references/thumbs/78911975e6.jpg +0 -0
- package/kb/references/thumbs/78d289d5a0.jpg +0 -0
- package/kb/references/thumbs/794126267e.jpg +0 -0
- package/kb/references/thumbs/7976eb9025.jpg +0 -0
- package/kb/references/thumbs/798519ec7c.jpg +0 -0
- package/kb/references/thumbs/7a6cc5eecc.jpg +0 -0
- package/kb/references/thumbs/7ac8a7cd4a.jpg +0 -0
- package/kb/references/thumbs/7b1341d61d.jpg +0 -0
- package/kb/references/thumbs/7b9c4031e3.jpg +0 -0
- package/kb/references/thumbs/7ba5ad3779.jpg +0 -0
- package/kb/references/thumbs/7be6eb2bd0.jpg +0 -0
- package/kb/references/thumbs/7c30864f5d.jpg +0 -0
- package/kb/references/thumbs/7c379b5e17.jpg +0 -0
- package/kb/references/thumbs/7c4050eb02.jpg +0 -0
- package/kb/references/thumbs/7ca47b3221.jpg +0 -0
- package/kb/references/thumbs/7d43516bd7.jpg +0 -0
- package/kb/references/thumbs/7da9dbb98a.jpg +0 -0
- package/kb/references/thumbs/7ddda8f57c.jpg +0 -0
- package/kb/references/thumbs/7ece6d215c.jpg +0 -0
- package/kb/references/thumbs/7eebf029de.jpg +0 -0
- package/kb/references/thumbs/7f45483c15.jpg +0 -0
- package/kb/references/thumbs/7fde06eaa5.jpg +0 -0
- package/kb/references/thumbs/80407b97e9.jpg +0 -0
- package/kb/references/thumbs/80f0a6cf4b.jpg +0 -0
- package/kb/references/thumbs/8118b451b8.jpg +0 -0
- package/kb/references/thumbs/816baed4a8.jpg +0 -0
- package/kb/references/thumbs/817d2d15d9.jpg +0 -0
- package/kb/references/thumbs/8260cb430d.jpg +0 -0
- package/kb/references/thumbs/827b562899.jpg +0 -0
- package/kb/references/thumbs/8293cf1e92.jpg +0 -0
- package/kb/references/thumbs/8294653169.jpg +0 -0
- package/kb/references/thumbs/83061f871f.jpg +0 -0
- package/kb/references/thumbs/833df778ca.jpg +0 -0
- package/kb/references/thumbs/83d3acaafc.jpg +0 -0
- package/kb/references/thumbs/844c6efeff.jpg +0 -0
- package/kb/references/thumbs/84563d482a.jpg +0 -0
- package/kb/references/thumbs/848082dd94.jpg +0 -0
- package/kb/references/thumbs/8494b1da94.jpg +0 -0
- package/kb/references/thumbs/84b71014be.jpg +0 -0
- package/kb/references/thumbs/84be4a5f3c.jpg +0 -0
- package/kb/references/thumbs/84fd0fd25a.jpg +0 -0
- package/kb/references/thumbs/853e488e22.jpg +0 -0
- package/kb/references/thumbs/858c91585d.jpg +0 -0
- package/kb/references/thumbs/85903e8fe9.jpg +0 -0
- package/kb/references/thumbs/86597d43fd.jpg +0 -0
- package/kb/references/thumbs/866eb99500.jpg +0 -0
- package/kb/references/thumbs/86ac050340.jpg +0 -0
- package/kb/references/thumbs/86afec7b64.jpg +0 -0
- package/kb/references/thumbs/87238127f5.jpg +0 -0
- package/kb/references/thumbs/87321df792.jpg +0 -0
- package/kb/references/thumbs/87460f70cd.jpg +0 -0
- package/kb/references/thumbs/8770dfeaec.jpg +0 -0
- package/kb/references/thumbs/8798451a8c.jpg +0 -0
- package/kb/references/thumbs/87da1f34a3.jpg +0 -0
- package/kb/references/thumbs/882cdf8c05.jpg +0 -0
- package/kb/references/thumbs/8839f4106f.jpg +0 -0
- package/kb/references/thumbs/8844455212.jpg +0 -0
- package/kb/references/thumbs/88abba0497.jpg +0 -0
- package/kb/references/thumbs/88b372435d.jpg +0 -0
- package/kb/references/thumbs/88bd4f35fa.jpg +0 -0
- package/kb/references/thumbs/88c71a075e.jpg +0 -0
- package/kb/references/thumbs/892e5f048e.jpg +0 -0
- package/kb/references/thumbs/893cc8e920.jpg +0 -0
- package/kb/references/thumbs/896c198814.jpg +0 -0
- package/kb/references/thumbs/8a8e22f756.jpg +0 -0
- package/kb/references/thumbs/8a9d8a35cb.jpg +0 -0
- package/kb/references/thumbs/8ab1d67fec.jpg +0 -0
- package/kb/references/thumbs/8ab201fe12.jpg +0 -0
- package/kb/references/thumbs/8ac372c102.jpg +0 -0
- package/kb/references/thumbs/8b15736d62.jpg +0 -0
- package/kb/references/thumbs/8b1d8d6a05.jpg +0 -0
- package/kb/references/thumbs/8bb6050e20.jpg +0 -0
- package/kb/references/thumbs/8c6c9d1577.jpg +0 -0
- package/kb/references/thumbs/8d337851e0.jpg +0 -0
- package/kb/references/thumbs/8d44b33cc5.jpg +0 -0
- package/kb/references/thumbs/8d4536ff3b.jpg +0 -0
- package/kb/references/thumbs/8d9b99454a.jpg +0 -0
- package/kb/references/thumbs/8dda2303ff.jpg +0 -0
- package/kb/references/thumbs/8dec722d62.jpg +0 -0
- package/kb/references/thumbs/8e0ea4ca74.jpg +0 -0
- package/kb/references/thumbs/8ebba84d69.jpg +0 -0
- package/kb/references/thumbs/8ef09140c0.jpg +0 -0
- package/kb/references/thumbs/8f2928a1b0.jpg +0 -0
- package/kb/references/thumbs/8f88f9ddba.jpg +0 -0
- package/kb/references/thumbs/8fa4451009.jpg +0 -0
- package/kb/references/thumbs/90109b0e02.jpg +0 -0
- package/kb/references/thumbs/90e854e5c9.jpg +0 -0
- package/kb/references/thumbs/914e79f893.jpg +0 -0
- package/kb/references/thumbs/9161369197.jpg +0 -0
- package/kb/references/thumbs/9165c87d6f.jpg +0 -0
- package/kb/references/thumbs/9193f6558a.jpg +0 -0
- package/kb/references/thumbs/91ac7df877.jpg +0 -0
- package/kb/references/thumbs/9216bd4931.jpg +0 -0
- package/kb/references/thumbs/922ae8a26a.jpg +0 -0
- package/kb/references/thumbs/92a70e6867.jpg +0 -0
- package/kb/references/thumbs/92c77ece22.jpg +0 -0
- package/kb/references/thumbs/92e5914fbf.jpg +0 -0
- package/kb/references/thumbs/92ee36419a.jpg +0 -0
- package/kb/references/thumbs/94153a60b0.jpg +0 -0
- package/kb/references/thumbs/9449666640.jpg +0 -0
- package/kb/references/thumbs/944be6a646.jpg +0 -0
- package/kb/references/thumbs/945831476e.jpg +0 -0
- package/kb/references/thumbs/94c1af82f4.jpg +0 -0
- package/kb/references/thumbs/9599d6d589.jpg +0 -0
- package/kb/references/thumbs/960710f4cf.jpg +0 -0
- package/kb/references/thumbs/9608f12d64.jpg +0 -0
- package/kb/references/thumbs/962dabfaa0.jpg +0 -0
- package/kb/references/thumbs/965a3a95c6.jpg +0 -0
- package/kb/references/thumbs/9672ed5ae4.jpg +0 -0
- package/kb/references/thumbs/96891ae9c1.jpg +0 -0
- package/kb/references/thumbs/96e1907c99.jpg +0 -0
- package/kb/references/thumbs/96f25b6578.jpg +0 -0
- package/kb/references/thumbs/97211df9ae.jpg +0 -0
- package/kb/references/thumbs/9769d763a5.jpg +0 -0
- package/kb/references/thumbs/9792bd6d05.jpg +0 -0
- package/kb/references/thumbs/97d2837e3e.jpg +0 -0
- package/kb/references/thumbs/97d90d1d85.jpg +0 -0
- package/kb/references/thumbs/97fcd5774a.jpg +0 -0
- package/kb/references/thumbs/980f68564e.jpg +0 -0
- package/kb/references/thumbs/98511fb393.jpg +0 -0
- package/kb/references/thumbs/98f8fa694d.jpg +0 -0
- package/kb/references/thumbs/9a42c6bb97.jpg +0 -0
- package/kb/references/thumbs/9ab3600a06.jpg +0 -0
- package/kb/references/thumbs/9ab48d9130.jpg +0 -0
- package/kb/references/thumbs/9ad519197d.jpg +0 -0
- package/kb/references/thumbs/9b1382c657.jpg +0 -0
- package/kb/references/thumbs/9b6cc1e077.jpg +0 -0
- package/kb/references/thumbs/9beede8480.jpg +0 -0
- package/kb/references/thumbs/9bf8976952.jpg +0 -0
- package/kb/references/thumbs/9cace7b75a.jpg +0 -0
- package/kb/references/thumbs/9cdcc5745e.jpg +0 -0
- package/kb/references/thumbs/9d0b269074.jpg +0 -0
- package/kb/references/thumbs/9d41788b48.jpg +0 -0
- package/kb/references/thumbs/9d475bd6af.jpg +0 -0
- package/kb/references/thumbs/9e6bc543d0.jpg +0 -0
- package/kb/references/thumbs/9ed0e0a206.jpg +0 -0
- package/kb/references/thumbs/9ef538de13.jpg +0 -0
- package/kb/references/thumbs/9efc373ab4.jpg +0 -0
- package/kb/references/thumbs/9f4a939fa5.jpg +0 -0
- package/kb/references/thumbs/9f8d12d7b9.jpg +0 -0
- package/kb/references/thumbs/9fd5e3efa7.jpg +0 -0
- package/kb/references/thumbs/a0a9b9c572.jpg +0 -0
- package/kb/references/thumbs/a29ca9b185.jpg +0 -0
- package/kb/references/thumbs/a2a42884af.jpg +0 -0
- package/kb/references/thumbs/a2f5064e34.jpg +0 -0
- package/kb/references/thumbs/a3112ce672.jpg +0 -0
- package/kb/references/thumbs/a3437736d1.jpg +0 -0
- package/kb/references/thumbs/a372667e76.jpg +0 -0
- package/kb/references/thumbs/a39bae94e9.jpg +0 -0
- package/kb/references/thumbs/a3fc75d94c.jpg +0 -0
- package/kb/references/thumbs/a440487631.jpg +0 -0
- package/kb/references/thumbs/a4993d5fb5.jpg +0 -0
- package/kb/references/thumbs/a500476a86.jpg +0 -0
- package/kb/references/thumbs/a55506bf46.jpg +0 -0
- package/kb/references/thumbs/a59a5f9843.jpg +0 -0
- package/kb/references/thumbs/a5bce0eede.jpg +0 -0
- package/kb/references/thumbs/a5d921e1f0.jpg +0 -0
- package/kb/references/thumbs/a5e19d4637.jpg +0 -0
- package/kb/references/thumbs/a5f92b97d5.jpg +0 -0
- package/kb/references/thumbs/a6562c210a.jpg +0 -0
- package/kb/references/thumbs/a6f61a8d09.jpg +0 -0
- package/kb/references/thumbs/a719fdf663.jpg +0 -0
- package/kb/references/thumbs/a724e5442f.jpg +0 -0
- package/kb/references/thumbs/a852b4319f.jpg +0 -0
- package/kb/references/thumbs/a896c08448.jpg +0 -0
- package/kb/references/thumbs/a8d190a4b8.jpg +0 -0
- package/kb/references/thumbs/a8dcdd57d7.jpg +0 -0
- package/kb/references/thumbs/a951347e18.jpg +0 -0
- package/kb/references/thumbs/a9a1a0bf7d.jpg +0 -0
- package/kb/references/thumbs/a9b72986a8.jpg +0 -0
- package/kb/references/thumbs/aa11555ba8.jpg +0 -0
- package/kb/references/thumbs/aa4aab9093.jpg +0 -0
- package/kb/references/thumbs/aa89b96658.jpg +0 -0
- package/kb/references/thumbs/aaeb3739b6.jpg +0 -0
- package/kb/references/thumbs/ab25a608ec.jpg +0 -0
- package/kb/references/thumbs/ab34b62268.jpg +0 -0
- package/kb/references/thumbs/ab3b0217bb.jpg +0 -0
- package/kb/references/thumbs/ac70c04afb.jpg +0 -0
- package/kb/references/thumbs/ace0879117.jpg +0 -0
- package/kb/references/thumbs/ad0515ae55.jpg +0 -0
- package/kb/references/thumbs/ad66b25b47.jpg +0 -0
- package/kb/references/thumbs/ad68229d2f.jpg +0 -0
- package/kb/references/thumbs/add6480693.jpg +0 -0
- package/kb/references/thumbs/ae5b8c3b8c.jpg +0 -0
- package/kb/references/thumbs/ae81247b47.jpg +0 -0
- package/kb/references/thumbs/af8aa54379.jpg +0 -0
- package/kb/references/thumbs/afa80dedd4.jpg +0 -0
- package/kb/references/thumbs/afe04d730f.jpg +0 -0
- package/kb/references/thumbs/b09a7dc315.jpg +0 -0
- package/kb/references/thumbs/b0c02629f6.jpg +0 -0
- package/kb/references/thumbs/b1cb4f91de.jpg +0 -0
- package/kb/references/thumbs/b1d4c13c92.jpg +0 -0
- package/kb/references/thumbs/b20eef86db.jpg +0 -0
- package/kb/references/thumbs/b3136ccdde.jpg +0 -0
- package/kb/references/thumbs/b3f5e8d7dd.jpg +0 -0
- package/kb/references/thumbs/b44adb81c9.jpg +0 -0
- package/kb/references/thumbs/b457a5894b.jpg +0 -0
- package/kb/references/thumbs/b461281e0f.jpg +0 -0
- package/kb/references/thumbs/b4942644f0.jpg +0 -0
- package/kb/references/thumbs/b49f8eccad.jpg +0 -0
- package/kb/references/thumbs/b56c69be23.jpg +0 -0
- package/kb/references/thumbs/b59786b33c.jpg +0 -0
- package/kb/references/thumbs/b5d368ce5a.jpg +0 -0
- package/kb/references/thumbs/b5eb442406.jpg +0 -0
- package/kb/references/thumbs/b7fdabf4ab.jpg +0 -0
- package/kb/references/thumbs/b88ee8d235.jpg +0 -0
- package/kb/references/thumbs/b8a4e5be8a.jpg +0 -0
- package/kb/references/thumbs/b8c85b661c.jpg +0 -0
- package/kb/references/thumbs/ba1b8e7435.jpg +0 -0
- package/kb/references/thumbs/ba9a593eed.jpg +0 -0
- package/kb/references/thumbs/baa7afc201.jpg +0 -0
- package/kb/references/thumbs/baf74398f7.jpg +0 -0
- package/kb/references/thumbs/bb3e947c10.jpg +0 -0
- package/kb/references/thumbs/bb4c1bb7c1.jpg +0 -0
- package/kb/references/thumbs/bbaa25cc8a.jpg +0 -0
- package/kb/references/thumbs/bc7e7f88cc.jpg +0 -0
- package/kb/references/thumbs/bc9d5b58f5.jpg +0 -0
- package/kb/references/thumbs/bcc99a51f7.jpg +0 -0
- package/kb/references/thumbs/bce13dd1c1.jpg +0 -0
- package/kb/references/thumbs/bd079a6130.jpg +0 -0
- package/kb/references/thumbs/bd2d70dda7.jpg +0 -0
- package/kb/references/thumbs/bd5895c5f2.jpg +0 -0
- package/kb/references/thumbs/bde8e31d62.jpg +0 -0
- package/kb/references/thumbs/be084e78f3.jpg +0 -0
- package/kb/references/thumbs/be94f170c8.jpg +0 -0
- package/kb/references/thumbs/bed33654f7.jpg +0 -0
- package/kb/references/thumbs/beeb9a0c18.jpg +0 -0
- package/kb/references/thumbs/bef42094dc.jpg +0 -0
- package/kb/references/thumbs/bf625496fa.jpg +0 -0
- package/kb/references/thumbs/bf771f1398.jpg +0 -0
- package/kb/references/thumbs/c0ddefa3d9.jpg +0 -0
- package/kb/references/thumbs/c0f01e536e.jpg +0 -0
- package/kb/references/thumbs/c1d592b678.jpg +0 -0
- package/kb/references/thumbs/c1e83e1b3e.jpg +0 -0
- package/kb/references/thumbs/c2168f8096.jpg +0 -0
- package/kb/references/thumbs/c249cd6b17.jpg +0 -0
- package/kb/references/thumbs/c2e3d4feed.jpg +0 -0
- package/kb/references/thumbs/c3cec01df1.jpg +0 -0
- package/kb/references/thumbs/c47bedb42d.jpg +0 -0
- package/kb/references/thumbs/c4b03b4680.jpg +0 -0
- package/kb/references/thumbs/c4e6d18ec3.jpg +0 -0
- package/kb/references/thumbs/c5477e2877.jpg +0 -0
- package/kb/references/thumbs/c566794674.jpg +0 -0
- package/kb/references/thumbs/c5b945afbb.jpg +0 -0
- package/kb/references/thumbs/c5e4659497.jpg +0 -0
- package/kb/references/thumbs/c622786702.jpg +0 -0
- package/kb/references/thumbs/c6250649ca.jpg +0 -0
- package/kb/references/thumbs/c6261a9526.jpg +0 -0
- package/kb/references/thumbs/c62e609076.jpg +0 -0
- package/kb/references/thumbs/c6602d3e85.jpg +0 -0
- package/kb/references/thumbs/c6c1a16e40.jpg +0 -0
- package/kb/references/thumbs/c77f932157.jpg +0 -0
- package/kb/references/thumbs/c79788f01e.jpg +0 -0
- package/kb/references/thumbs/c7a511ad1e.jpg +0 -0
- package/kb/references/thumbs/c7acfbc3c8.jpg +0 -0
- package/kb/references/thumbs/c7bb6d1bb8.jpg +0 -0
- package/kb/references/thumbs/c829eadcb9.jpg +0 -0
- package/kb/references/thumbs/c891fd9d85.jpg +0 -0
- package/kb/references/thumbs/c89f812ee3.jpg +0 -0
- package/kb/references/thumbs/c8a85b9f61.jpg +0 -0
- package/kb/references/thumbs/c8fdf85c9a.jpg +0 -0
- package/kb/references/thumbs/c961ac1031.jpg +0 -0
- package/kb/references/thumbs/c9fd3f88d8.jpg +0 -0
- package/kb/references/thumbs/ca0d6399c3.jpg +0 -0
- package/kb/references/thumbs/ca316c83e4.jpg +0 -0
- package/kb/references/thumbs/ca3b93aa0d.jpg +0 -0
- package/kb/references/thumbs/cb0596a85b.jpg +0 -0
- package/kb/references/thumbs/cb95a5c3ef.jpg +0 -0
- package/kb/references/thumbs/cbe238b656.jpg +0 -0
- package/kb/references/thumbs/cbf530e608.jpg +0 -0
- package/kb/references/thumbs/cc173494ec.jpg +0 -0
- package/kb/references/thumbs/ccb664bddf.jpg +0 -0
- package/kb/references/thumbs/ccf69d36cd.jpg +0 -0
- package/kb/references/thumbs/ccf759db42.jpg +0 -0
- package/kb/references/thumbs/cd2a285807.jpg +0 -0
- package/kb/references/thumbs/cd4a24a8ca.jpg +0 -0
- package/kb/references/thumbs/cdb3fe8938.jpg +0 -0
- package/kb/references/thumbs/cdce1b9bc6.jpg +0 -0
- package/kb/references/thumbs/cde3aa761a.jpg +0 -0
- package/kb/references/thumbs/ce9d5cd9c2.jpg +0 -0
- package/kb/references/thumbs/ceb01f8a34.jpg +0 -0
- package/kb/references/thumbs/cee15c98d0.jpg +0 -0
- package/kb/references/thumbs/cf6944ddae.jpg +0 -0
- package/kb/references/thumbs/d15dd21cd8.jpg +0 -0
- package/kb/references/thumbs/d1633bf2ed.jpg +0 -0
- package/kb/references/thumbs/d16a838000.jpg +0 -0
- package/kb/references/thumbs/d1cf87e9f0.jpg +0 -0
- package/kb/references/thumbs/d32511d913.jpg +0 -0
- package/kb/references/thumbs/d327e9dedd.jpg +0 -0
- package/kb/references/thumbs/d35bf6c85e.jpg +0 -0
- package/kb/references/thumbs/d37afc9d61.jpg +0 -0
- package/kb/references/thumbs/d3b66655c7.jpg +0 -0
- package/kb/references/thumbs/d40b4172b6.jpg +0 -0
- package/kb/references/thumbs/d4c40d1824.jpg +0 -0
- package/kb/references/thumbs/d4cb55a4b6.jpg +0 -0
- package/kb/references/thumbs/d4f0c30f7e.jpg +0 -0
- package/kb/references/thumbs/d51cce3ae5.jpg +0 -0
- package/kb/references/thumbs/d52948f9ba.jpg +0 -0
- package/kb/references/thumbs/d62bd3cba4.jpg +0 -0
- package/kb/references/thumbs/d668a21c92.jpg +0 -0
- package/kb/references/thumbs/d685072c52.jpg +0 -0
- package/kb/references/thumbs/d6d7b96093.jpg +0 -0
- package/kb/references/thumbs/d7cd874b21.jpg +0 -0
- package/kb/references/thumbs/d7e111736a.jpg +0 -0
- package/kb/references/thumbs/d88325f832.jpg +0 -0
- package/kb/references/thumbs/d9272ded76.jpg +0 -0
- package/kb/references/thumbs/d962e7c654.jpg +0 -0
- package/kb/references/thumbs/d97f000ee2.jpg +0 -0
- package/kb/references/thumbs/d9c1ae2543.jpg +0 -0
- package/kb/references/thumbs/d9ccb3cac8.jpg +0 -0
- package/kb/references/thumbs/da99019680.jpg +0 -0
- package/kb/references/thumbs/da9b8bc615.jpg +0 -0
- package/kb/references/thumbs/daafbee2c1.jpg +0 -0
- package/kb/references/thumbs/db0f11f143.jpg +0 -0
- package/kb/references/thumbs/db5dd367f5.jpg +0 -0
- package/kb/references/thumbs/db69677866.jpg +0 -0
- package/kb/references/thumbs/db87c1956e.jpg +0 -0
- package/kb/references/thumbs/dbb86d8bda.jpg +0 -0
- package/kb/references/thumbs/dbd3a8ff2a.jpg +0 -0
- package/kb/references/thumbs/dbdf4b2794.jpg +0 -0
- package/kb/references/thumbs/dd4c19b4b1.jpg +0 -0
- package/kb/references/thumbs/dd98d9f6fa.jpg +0 -0
- package/kb/references/thumbs/ddb00e3b6a.jpg +0 -0
- package/kb/references/thumbs/dde3541a5c.jpg +0 -0
- package/kb/references/thumbs/de2a4da502.jpg +0 -0
- package/kb/references/thumbs/de4c387a66.jpg +0 -0
- package/kb/references/thumbs/de5618fa82.jpg +0 -0
- package/kb/references/thumbs/de6bec2538.jpg +0 -0
- package/kb/references/thumbs/dea13cbb1f.jpg +0 -0
- package/kb/references/thumbs/deff9202aa.jpg +0 -0
- package/kb/references/thumbs/df12835f8d.jpg +0 -0
- package/kb/references/thumbs/df57acbb3d.jpg +0 -0
- package/kb/references/thumbs/df8265009e.jpg +0 -0
- package/kb/references/thumbs/dfc99a1e8e.jpg +0 -0
- package/kb/references/thumbs/dfc9fde460.jpg +0 -0
- package/kb/references/thumbs/e038348eee.jpg +0 -0
- package/kb/references/thumbs/e04c2ae1d5.jpg +0 -0
- package/kb/references/thumbs/e070345c43.jpg +0 -0
- package/kb/references/thumbs/e0a0c84d47.jpg +0 -0
- package/kb/references/thumbs/e0af1e6b9e.jpg +0 -0
- package/kb/references/thumbs/e1025942c4.jpg +0 -0
- package/kb/references/thumbs/e11b6f5b82.jpg +0 -0
- package/kb/references/thumbs/e1553de3fc.jpg +0 -0
- package/kb/references/thumbs/e162ebe7cd.jpg +0 -0
- package/kb/references/thumbs/e1f1e531d8.jpg +0 -0
- package/kb/references/thumbs/e20842e5c9.jpg +0 -0
- package/kb/references/thumbs/e24e7d949b.jpg +0 -0
- package/kb/references/thumbs/e2a3e5d10a.jpg +0 -0
- package/kb/references/thumbs/e2de02615a.jpg +0 -0
- package/kb/references/thumbs/e305dad7dd.jpg +0 -0
- package/kb/references/thumbs/e52e3ef97f.jpg +0 -0
- package/kb/references/thumbs/e570e92d06.jpg +0 -0
- package/kb/references/thumbs/e583932fb9.jpg +0 -0
- package/kb/references/thumbs/e5da3c038f.jpg +0 -0
- package/kb/references/thumbs/e657634af3.jpg +0 -0
- package/kb/references/thumbs/e67946e3e1.jpg +0 -0
- package/kb/references/thumbs/e69e0f3639.jpg +0 -0
- package/kb/references/thumbs/e6ebe66031.jpg +0 -0
- package/kb/references/thumbs/e7db9563c9.jpg +0 -0
- package/kb/references/thumbs/e84a4c3b7b.jpg +0 -0
- package/kb/references/thumbs/e84cf52c27.jpg +0 -0
- package/kb/references/thumbs/e8707cf6e8.jpg +0 -0
- package/kb/references/thumbs/e888890b40.jpg +0 -0
- package/kb/references/thumbs/e8a502b418.jpg +0 -0
- package/kb/references/thumbs/e8ba68371d.jpg +0 -0
- package/kb/references/thumbs/e9098f54cc.jpg +0 -0
- package/kb/references/thumbs/e9144deae9.jpg +0 -0
- package/kb/references/thumbs/e93e98d757.jpg +0 -0
- package/kb/references/thumbs/e9762dd435.jpg +0 -0
- package/kb/references/thumbs/e9db4544c8.jpg +0 -0
- package/kb/references/thumbs/e9ddffeacd.jpg +0 -0
- package/kb/references/thumbs/e9e2cf1d7e.jpg +0 -0
- package/kb/references/thumbs/ea1e23e623.jpg +0 -0
- package/kb/references/thumbs/ea41200f5e.jpg +0 -0
- package/kb/references/thumbs/eaf4916e1a.jpg +0 -0
- package/kb/references/thumbs/eb2c505fc8.jpg +0 -0
- package/kb/references/thumbs/eb47943693.jpg +0 -0
- package/kb/references/thumbs/eb4ffd6625.jpg +0 -0
- package/kb/references/thumbs/eb82ac0a4d.jpg +0 -0
- package/kb/references/thumbs/ebeb345ade.jpg +0 -0
- package/kb/references/thumbs/ec4e2aba0a.jpg +0 -0
- package/kb/references/thumbs/ed683bc9f7.jpg +0 -0
- package/kb/references/thumbs/ed9e236a84.jpg +0 -0
- package/kb/references/thumbs/ee45e1caea.jpg +0 -0
- package/kb/references/thumbs/ee50bbf2e7.jpg +0 -0
- package/kb/references/thumbs/eed6ad3b7b.jpg +0 -0
- package/kb/references/thumbs/eee247fd70.jpg +0 -0
- package/kb/references/thumbs/ef87b6cb99.jpg +0 -0
- package/kb/references/thumbs/ef87dccf04.jpg +0 -0
- package/kb/references/thumbs/ef941bba1e.jpg +0 -0
- package/kb/references/thumbs/effc14fb2c.jpg +0 -0
- package/kb/references/thumbs/f04aa5a191.jpg +0 -0
- package/kb/references/thumbs/f13f12485f.jpg +0 -0
- package/kb/references/thumbs/f16a5c0fd4.jpg +0 -0
- package/kb/references/thumbs/f1ba7a7a8f.jpg +0 -0
- package/kb/references/thumbs/f1bc4c9c19.jpg +0 -0
- package/kb/references/thumbs/f1ee827878.jpg +0 -0
- package/kb/references/thumbs/f21736aeff.jpg +0 -0
- package/kb/references/thumbs/f22bc41213.jpg +0 -0
- package/kb/references/thumbs/f266aaffcc.jpg +0 -0
- package/kb/references/thumbs/f2c0ed0d65.jpg +0 -0
- package/kb/references/thumbs/f32ac710fd.jpg +0 -0
- package/kb/references/thumbs/f32b697ff6.jpg +0 -0
- package/kb/references/thumbs/f39c883904.jpg +0 -0
- package/kb/references/thumbs/f3b9d55e6e.jpg +0 -0
- package/kb/references/thumbs/f3c1763e14.jpg +0 -0
- package/kb/references/thumbs/f40853fd43.jpg +0 -0
- package/kb/references/thumbs/f4fd07dc4d.jpg +0 -0
- package/kb/references/thumbs/f50b756ee5.jpg +0 -0
- package/kb/references/thumbs/f51272e9b3.jpg +0 -0
- package/kb/references/thumbs/f538895eee.jpg +0 -0
- package/kb/references/thumbs/f5d28081b5.jpg +0 -0
- package/kb/references/thumbs/f6046c9501.jpg +0 -0
- package/kb/references/thumbs/f62e4af316.jpg +0 -0
- package/kb/references/thumbs/f6f6bffeb8.jpg +0 -0
- package/kb/references/thumbs/f736e00af6.jpg +0 -0
- package/kb/references/thumbs/f7932da47d.jpg +0 -0
- package/kb/references/thumbs/f879e118ca.jpg +0 -0
- package/kb/references/thumbs/f88257215d.jpg +0 -0
- package/kb/references/thumbs/f88c45a6d7.jpg +0 -0
- package/kb/references/thumbs/f89a7b646e.jpg +0 -0
- package/kb/references/thumbs/f8a1e7a274.jpg +0 -0
- package/kb/references/thumbs/f9183cf2b6.jpg +0 -0
- package/kb/references/thumbs/f995de5ce9.jpg +0 -0
- package/kb/references/thumbs/f9ada2c3e1.jpg +0 -0
- package/kb/references/thumbs/f9d4616f89.jpg +0 -0
- package/kb/references/thumbs/f9f4307bb0.jpg +0 -0
- package/kb/references/thumbs/fa070122c7.jpg +0 -0
- package/kb/references/thumbs/fa29cc1369.jpg +0 -0
- package/kb/references/thumbs/fa791a4dab.jpg +0 -0
- package/kb/references/thumbs/fa8060509e.jpg +0 -0
- package/kb/references/thumbs/fafeed4003.jpg +0 -0
- package/kb/references/thumbs/fb1c024f38.jpg +0 -0
- package/kb/references/thumbs/fb77aa28b3.jpg +0 -0
- package/kb/references/thumbs/fb9f7f1966.jpg +0 -0
- package/kb/references/thumbs/fba8a8c2da.jpg +0 -0
- package/kb/references/thumbs/fce2754c36.jpg +0 -0
- package/kb/references/thumbs/fce2fb83df.jpg +0 -0
- package/kb/references/thumbs/fd4c51bb47.jpg +0 -0
- package/kb/references/thumbs/fd8c269817.jpg +0 -0
- package/kb/references/thumbs/fdb7b250ca.jpg +0 -0
- package/kb/references/thumbs/fe18088de8.jpg +0 -0
- package/kb/references/thumbs/fe4f742ba7.jpg +0 -0
- package/kb/references/thumbs/fe64742ce7.jpg +0 -0
- package/kb/references/thumbs/feb5d62161.jpg +0 -0
- package/kb/references/thumbs/fed21b3e98.jpg +0 -0
- package/kb/references/thumbs/fed2205951.jpg +0 -0
- package/kb/references/thumbs/ffdacf1715.jpg +0 -0
- package/kb/sections/_buttons.md +93 -0
- package/kb/sections/_finish.md +325 -0
- package/kb/sections/about-founder-note.md +85 -0
- package/kb/sections/about-team-roster.md +86 -0
- package/kb/sections/alternating-rows-live-tiles.md +110 -0
- package/kb/sections/annotated-product-shot.md +105 -0
- package/kb/sections/asymmetric-bento-dominant.md +114 -0
- package/kb/sections/before-after-features.md +104 -0
- package/kb/sections/before-after-repair.md +107 -0
- package/kb/sections/bento-lead-tile.md +112 -0
- package/kb/sections/book-a-slot-honest.md +116 -0
- package/kb/sections/capability-prompt-ledger.md +68 -0
- package/kb/sections/case-study-band.md +113 -0
- package/kb/sections/centred-stack-hero.md +107 -0
- package/kb/sections/closing-demo-final-state.md +81 -0
- package/kb/sections/closing-full-bleed-line-and-form.md +86 -0
- package/kb/sections/closing-result-previewed.md +88 -0
- package/kb/sections/closing-three-real-steps.md +87 -0
- package/kb/sections/command-reference-table.md +70 -0
- package/kb/sections/comparison-old-way-bars.md +88 -0
- package/kb/sections/comparison-same-task-two-ways.md +88 -0
- package/kb/sections/day-of-the-place.md +102 -0
- package/kb/sections/docs-reading-rail.md +88 -0
- package/kb/sections/editorial-columns-hero.md +107 -0
- package/kb/sections/editorial-essay-pull-quote.md +112 -0
- package/kb/sections/events-calendar-list.md +107 -0
- package/kb/sections/explorable-control-demo.md +102 -0
- package/kb/sections/faq-open-answers-editorial.md +85 -0
- package/kb/sections/faq-ruled-accordion-aside.md +87 -0
- package/kb/sections/footer-closing-scene.md +84 -0
- package/kb/sections/footer-editorial-sitemap.md +85 -0
- package/kb/sections/footer-minimal-credits.md +80 -0
- package/kb/sections/full-bleed-image-band.md +103 -0
- package/kb/sections/full-bleed-image-hero.md +105 -0
- package/kb/sections/gallery-first-hero.md +109 -0
- package/kb/sections/horizontal-scroll-strip.md +101 -0
- package/kb/sections/how-i-work-own-voice.md +111 -0
- package/kb/sections/how-it-works-in-place.md +109 -0
- package/kb/sections/impact-numbers-sourced.md +109 -0
- package/kb/sections/install-steps-per-agent.md +77 -0
- package/kb/sections/masonry-real-work.md +109 -0
- package/kb/sections/numbered-editorial-columns.md +105 -0
- package/kb/sections/object-first-hero.md +106 -0
- package/kb/sections/object-timeline.md +105 -0
- package/kb/sections/one-huge-number.md +100 -0
- package/kb/sections/one-person-story.md +103 -0
- package/kb/sections/order-ahead-ticket.md +119 -0
- package/kb/sections/press-strip-quoted.md +106 -0
- package/kb/sections/pricing-comparison-table-sticky.md +94 -0
- package/kb/sections/pricing-free-pro-upgrade-moment.md +85 -0
- package/kb/sections/pricing-plan-beside-product.md +88 -0
- package/kb/sections/pricing-plans-ledger.md +94 -0
- package/kb/sections/pricing-usage-calculator.md +93 -0
- package/kb/sections/printed-menu-card.md +110 -0
- package/kb/sections/process-happening.md +102 -0
- package/kb/sections/project-index-ruled.md +106 -0
- package/kb/sections/proof-logo-cloud-with-reasons.md +82 -0
- package/kb/sections/proof-measured-numbers.md +88 -0
- package/kb/sections/proof-output-wall.md +84 -0
- package/kb/sections/proof-single-honest-quote.md +81 -0
- package/kb/sections/resources-searchable-list.md +110 -0
- package/kb/sections/rooms-and-rates.md +107 -0
- package/kb/sections/ruled-facts-table.md +108 -0
- package/kb/sections/ruled-list-pinned-visual.md +107 -0
- package/kb/sections/scroll-scrubbed-product-demo.md +103 -0
- package/kb/sections/self-playing-run-demo.md +104 -0
- package/kb/sections/services-price-ledger.md +106 -0
- package/kb/sections/signup-form-with-next-steps.md +86 -0
- package/kb/sections/signup-waitlist-place-in-line.md +90 -0
- package/kb/sections/spec-sheet-features.md +108 -0
- package/kb/sections/split-hero-live-object.md +108 -0
- package/kb/sections/sticky-feature-narrative.md +104 -0
- package/kb/sections/todays-board-hero.md +112 -0
- package/kb/sections/touchable-tool-hero.md +111 -0
- package/kb/sections/typographic-statement-hero.md +99 -0
- package/kb/sections/visit-hours-map.md +110 -0
- package/kb/sections/ways-to-help-honest.md +115 -0
- package/kb/sources/design-reference.md +991 -0
- package/kb/sources/product-and-docs.md +37 -0
- package/kb/systems/1win/DESIGN.md +463 -0
- package/kb/systems/LICENSE-awesome-design-md +21 -0
- package/kb/systems/README.md +7 -0
- package/kb/systems/airbnb/DESIGN.md +545 -0
- package/kb/systems/airtable/DESIGN.md +554 -0
- package/kb/systems/aljazeera/DESIGN.md +594 -0
- package/kb/systems/apple/DESIGN.md +562 -0
- package/kb/systems/binance/DESIGN.md +634 -0
- package/kb/systems/bmw/DESIGN.md +544 -0
- package/kb/systems/bmw-m/DESIGN.md +503 -0
- package/kb/systems/bugatti/DESIGN.md +454 -0
- package/kb/systems/cal/DESIGN.md +542 -0
- package/kb/systems/categories.json +87 -0
- package/kb/systems/claude/DESIGN.md +589 -0
- package/kb/systems/clay/DESIGN.md +541 -0
- package/kb/systems/clickhouse/DESIGN.md +544 -0
- package/kb/systems/cohere/DESIGN.md +451 -0
- package/kb/systems/coinbase/DESIGN.md +570 -0
- package/kb/systems/composio/DESIGN.md +506 -0
- package/kb/systems/cursor/DESIGN.md +537 -0
- package/kb/systems/dell-1996/DESIGN.md +632 -0
- package/kb/systems/dji/DESIGN.md +882 -0
- package/kb/systems/elevenlabs/DESIGN.md +504 -0
- package/kb/systems/expo/DESIGN.md +526 -0
- package/kb/systems/ferrari/DESIGN.md +531 -0
- package/kb/systems/figma/DESIGN.md +578 -0
- package/kb/systems/framer/DESIGN.md +544 -0
- package/kb/systems/hashicorp/DESIGN.md +575 -0
- package/kb/systems/hp/DESIGN.md +670 -0
- package/kb/systems/ibm/DESIGN.md +550 -0
- package/kb/systems/intercom/DESIGN.md +546 -0
- package/kb/systems/jobright/DESIGN.md +525 -0
- package/kb/systems/kraken/DESIGN.md +125 -0
- package/kb/systems/lamborghini/DESIGN.md +288 -0
- package/kb/systems/linear.app/DESIGN.md +548 -0
- package/kb/systems/lovable/DESIGN.md +298 -0
- package/kb/systems/mastercard/DESIGN.md +365 -0
- package/kb/systems/mercury/DESIGN.md +568 -0
- package/kb/systems/meta/DESIGN.md +683 -0
- package/kb/systems/minimax/DESIGN.md +746 -0
- package/kb/systems/mintlify/DESIGN.md +852 -0
- package/kb/systems/miro/DESIGN.md +825 -0
- package/kb/systems/mistral.ai/DESIGN.md +773 -0
- package/kb/systems/mongodb/DESIGN.md +767 -0
- package/kb/systems/mydealz/DESIGN.md +551 -0
- package/kb/systems/nerdwallet/DESIGN.md +722 -0
- package/kb/systems/nike/DESIGN.md +575 -0
- package/kb/systems/nintendo-2001/DESIGN.md +649 -0
- package/kb/systems/notion/DESIGN.md +821 -0
- package/kb/systems/nvidia/DESIGN.md +640 -0
- package/kb/systems/ollama/DESIGN.md +539 -0
- package/kb/systems/opencode.ai/DESIGN.md +521 -0
- package/kb/systems/oracle/DESIGN.md +778 -0
- package/kb/systems/oura/DESIGN.md +616 -0
- package/kb/systems/pinterest/DESIGN.md +597 -0
- package/kb/systems/playstation/DESIGN.md +661 -0
- package/kb/systems/posthog/DESIGN.md +690 -0
- package/kb/systems/raycast/DESIGN.md +669 -0
- package/kb/systems/renault/DESIGN.md +589 -0
- package/kb/systems/replicate/DESIGN.md +616 -0
- package/kb/systems/resend/DESIGN.md +585 -0
- package/kb/systems/revolut/DESIGN.md +636 -0
- package/kb/systems/runwayml/DESIGN.md +244 -0
- package/kb/systems/sanity/DESIGN.md +357 -0
- package/kb/systems/sap/DESIGN.md +639 -0
- package/kb/systems/sentry/DESIGN.md +551 -0
- package/kb/systems/shopify/DESIGN.md +516 -0
- package/kb/systems/slack/DESIGN.md +482 -0
- package/kb/systems/spacex/DESIGN.md +363 -0
- package/kb/systems/spotify/DESIGN.md +246 -0
- package/kb/systems/starbucks/DESIGN.md +580 -0
- package/kb/systems/stripe/DESIGN.md +487 -0
- package/kb/systems/supabase/DESIGN.md +462 -0
- package/kb/systems/superhuman/DESIGN.md +448 -0
- package/kb/systems/tesla/DESIGN.md +286 -0
- package/kb/systems/theverge/DESIGN.md +339 -0
- package/kb/systems/together.ai/DESIGN.md +633 -0
- package/kb/systems/uber/DESIGN.md +636 -0
- package/kb/systems/vercel/DESIGN.md +736 -0
- package/kb/systems/vodafone/DESIGN.md +538 -0
- package/kb/systems/voltagent/DESIGN.md +521 -0
- package/kb/systems/warp/DESIGN.md +526 -0
- package/kb/systems/webflow/DESIGN.md +588 -0
- package/kb/systems/wired/DESIGN.md +497 -0
- package/kb/systems/wise/DESIGN.md +544 -0
- package/kb/systems/x.ai/DESIGN.md +465 -0
- package/kb/systems/zapier/DESIGN.md +537 -0
- package/kb/taste/garvit-by-job.md +46 -0
- package/kb/taste/garvit-portfolio.md +94 -0
- package/kb/universal/color-roles.md +26 -0
- package/kb/universal/copy.md +16 -0
- package/kb/universal/details.md +31 -0
- package/kb/universal/first-screen.md +30 -0
- package/kb/universal/fit-the-codebase.md +29 -0
- package/kb/universal/layout-width.md +28 -0
- package/kb/universal/motion-feedback.md +23 -0
- package/kb/universal/signature.md +29 -0
- package/kb/universal/states.md +17 -0
- package/kb/universal/type-app.md +33 -0
- package/kb/universal/type-marketing.md +28 -0
- package/package.json +37 -4
- package/scripts/pack-assets.mjs +58 -0
- package/skill/palate/SKILL.md +261 -0
- package/src/auth-recheck.mjs +4 -0
- package/src/auth.mjs +416 -0
- package/src/capture.mjs +182 -0
- package/src/catalog/classify.mjs +96 -0
- package/src/catalog/curated.mjs +128 -0
- package/src/catalog/index-build.mjs +67 -0
- package/src/catalog/literal.mjs +146 -0
- package/src/catalog/store.mjs +40 -0
- package/src/catalog/vibrant.mjs +126 -0
- package/src/check.mjs +93 -0
- package/src/concept.mjs +157 -0
- package/src/context.mjs +226 -0
- package/src/copy.mjs +188 -0
- package/src/devserver.mjs +135 -0
- package/src/fontgenre.mjs +44 -0
- package/src/guard-agents.mjs +213 -0
- package/src/guard.mjs +377 -0
- package/src/kb.mjs +91 -0
- package/src/look.mjs +312 -0
- package/src/loop/ambition.mjs +620 -0
- package/src/loop/animate.mjs +70 -0
- package/src/loop/artdirection.mjs +264 -0
- package/src/loop/bench.mjs +184 -0
- package/src/loop/benchpick.mjs +155 -0
- package/src/loop/blueprint.mjs +620 -0
- package/src/loop/board.html +180 -0
- package/src/loop/build.mjs +393 -0
- package/src/loop/buttons.mjs +413 -0
- package/src/loop/common.mjs +206 -0
- package/src/loop/cost.mjs +63 -0
- package/src/loop/craft.mjs +152 -0
- package/src/loop/craftchecks.mjs +148 -0
- package/src/loop/critique.mjs +393 -0
- package/src/loop/details.mjs +225 -0
- package/src/loop/direction.html +168 -0
- package/src/loop/direction.mjs +256 -0
- package/src/loop/directions.json +8 -0
- package/src/loop/explore.mjs +219 -0
- package/src/loop/fail.mjs +110 -0
- package/src/loop/fix.mjs +194 -0
- package/src/loop/floor.mjs +677 -0
- package/src/loop/forget.mjs +52 -0
- package/src/loop/gate.mjs +1053 -0
- package/src/loop/grid.html +123 -0
- package/src/loop/growth.mjs +118 -0
- package/src/loop/icons.mjs +109 -0
- package/src/loop/imagery.mjs +1280 -0
- package/src/loop/judge-api.mjs +245 -0
- package/src/loop/judge.mjs +167 -0
- package/src/loop/layouts.mjs +492 -0
- package/src/loop/library.mjs +82 -0
- package/src/loop/lookplan.mjs +182 -0
- package/src/loop/lookvec.mjs +645 -0
- package/src/loop/match.mjs +923 -0
- package/src/loop/matched.mjs +26 -0
- package/src/loop/myrefs.mjs +151 -0
- package/src/loop/pick.mjs +213 -0
- package/src/loop/picker.html +118 -0
- package/src/loop/plan.mjs +289 -0
- package/src/loop/polish.mjs +39 -0
- package/src/loop/research-learn.mjs +41 -0
- package/src/loop/research.mjs +1130 -0
- package/src/loop/rulereview.mjs +146 -0
- package/src/loop/rules-board.html +199 -0
- package/src/loop/rules.mjs +939 -0
- package/src/loop/similar.mjs +276 -0
- package/src/loop/states-source.mjs +258 -0
- package/src/loop/states.mjs +1547 -0
- package/src/loop/stats.mjs +78 -0
- package/src/loop/taste.mjs +81 -0
- package/src/loop/timeline.mjs +149 -0
- package/src/loop/variants.mjs +228 -0
- package/src/loop/vary.mjs +249 -0
- package/src/mcp/server.mjs +1246 -0
- package/src/motion.mjs +207 -0
- package/src/moves.mjs +242 -0
- package/src/novelty.mjs +116 -0
- package/src/page-ambition.js +181 -0
- package/src/page-craft.js +724 -0
- package/src/page-details.js +415 -0
- package/src/page-devices.js +365 -0
- package/src/page-fingerprint.js +281 -0
- package/src/page-gate.js +1307 -0
- package/src/page-look.js +698 -0
- package/src/page-metrics.js +78 -0
- package/src/page-principles.js +1167 -0
- package/src/page-rules.js +308 -0
- package/src/page-sections.js +211 -0
- package/src/page-states.js +703 -0
- package/src/paths.mjs +13 -0
- package/src/png.mjs +107 -0
- package/src/point/auto.mjs +224 -0
- package/src/point/locate.mjs +114 -0
- package/src/point/overlay.js +1516 -0
- package/src/point/server.mjs +1122 -0
- package/src/point/trail.mjs +219 -0
- package/src/pool.mjs +80 -0
- package/src/principles.mjs +279 -0
- package/src/refs.mjs +299 -0
- package/src/robots.mjs +145 -0
- package/src/sections.mjs +210 -0
- package/src/shoot.mjs +235 -0
- package/src/systems/apply.mjs +355 -0
- package/src/systems/load.mjs +251 -0
- package/src/systems/pick.mjs +213 -0
- package/templates/vite-react-tw/index.html +12 -0
- package/templates/vite-react-tw/package.json +25 -0
- package/templates/vite-react-tw/src/App.tsx +3 -0
- package/templates/vite-react-tw/src/index.css +1 -0
- package/templates/vite-react-tw/src/main.tsx +10 -0
- package/templates/vite-react-tw/tsconfig.app.json +26 -0
- package/templates/vite-react-tw/tsconfig.json +7 -0
- package/templates/vite-react-tw/tsconfig.node.json +23 -0
- package/templates/vite-react-tw/vite.config.ts +8 -0
|
@@ -0,0 +1,450 @@
|
|
|
1
|
+
# Design moves: the creative layer. A move is one deliberate idea that makes a screen *this product's*
|
|
2
|
+
# screen instead of a template. The design system decides how things look; a move decides what the
|
|
3
|
+
# screen does that others don't. `palate concept` picks a few that fit the request and the applied
|
|
4
|
+
# system, and avoids ones this project (and this machine) used recently.
|
|
5
|
+
#
|
|
6
|
+
# Fields: id · family · kinds (tool, marketing, commerce, docs) · signals (request words that make it
|
|
7
|
+
# relevant) · fits / avoid (system facets) · cost (low, med, high) · do (how to execute it) · test (how
|
|
8
|
+
# to tell it worked).
|
|
9
|
+
#
|
|
10
|
+
# Add moves freely. A good move is specific enough to execute and general enough to fit many domains.
|
|
11
|
+
|
|
12
|
+
moves:
|
|
13
|
+
# ── Composition: marketing ──────────────────────────────────────────────────
|
|
14
|
+
- id: product-is-the-hero
|
|
15
|
+
family: composition
|
|
16
|
+
kinds: [marketing]
|
|
17
|
+
signals: [app, tool, saas, platform, product, software, dashboard, ai]
|
|
18
|
+
cost: high
|
|
19
|
+
do: The first screen is the product, not a headline about it. A real, interactive product window takes most of the fold; the headline sits beneath or beside it at a modest size and reads like a caption for what you are looking at.
|
|
20
|
+
test: Cover the headline. Can someone still tell what the product does from the first screen?
|
|
21
|
+
|
|
22
|
+
- id: off-axis-hero
|
|
23
|
+
family: composition
|
|
24
|
+
kinds: [marketing]
|
|
25
|
+
signals: [launch, product, landing, hero]
|
|
26
|
+
cost: med
|
|
27
|
+
do: Left-aligned headline in a narrow column (8–12 words wide), product or artifact anchored to the right edge and running off it. Nothing centred on the first screen.
|
|
28
|
+
test: Nothing on the first screen is centred, and the crop never cuts the key action.
|
|
29
|
+
|
|
30
|
+
- id: document-index
|
|
31
|
+
family: composition
|
|
32
|
+
kinds: [marketing, docs]
|
|
33
|
+
signals: [api, developer, research, legal, finance, report, editorial, documentation, consulting]
|
|
34
|
+
fits: { palette: [restrained, accented] }
|
|
35
|
+
cost: med
|
|
36
|
+
do: Structure the page like a well-made document. A numbered index (01–06) near the top, sections as numbered entries with a sticky number and title in the left margin, content in a readable measure on the right.
|
|
37
|
+
test: The page could be printed and still make sense; the numbers do real navigation work. If they don't navigate, drop them (decorative 01/02/03 is a template tell), and never pair them with a kicker label on every section.
|
|
38
|
+
|
|
39
|
+
- id: sticky-claim-scrolling-proof
|
|
40
|
+
family: composition
|
|
41
|
+
kinds: [marketing]
|
|
42
|
+
signals: [feature, features, how, works, workflow, steps]
|
|
43
|
+
cost: med
|
|
44
|
+
do: One sticky column holds a single claim per section; the other column scrolls the proof (real UI states, numbers, artifacts). The claim changes as the proof changes.
|
|
45
|
+
test: Each claim has a specific proof next to it, not an illustration.
|
|
46
|
+
|
|
47
|
+
- id: one-dominant-tile
|
|
48
|
+
family: composition
|
|
49
|
+
kinds: [marketing, tool]
|
|
50
|
+
signals: [features, overview, home, dashboard]
|
|
51
|
+
cost: low
|
|
52
|
+
do: Where a grid is needed, one cell is the story (2×2 or full height) and the rest are clearly supporting. Never a grid of equal tiles.
|
|
53
|
+
test: Squint. One area wins; the rest step back.
|
|
54
|
+
|
|
55
|
+
- id: edge-cropped-display
|
|
56
|
+
family: composition
|
|
57
|
+
kinds: [marketing, commerce]
|
|
58
|
+
signals: [brand, bold, launch, fashion, studio, agency, portfolio, event]
|
|
59
|
+
fits: { displayClass: [display, grotesk, geometric-sans, serif] }
|
|
60
|
+
cost: low
|
|
61
|
+
do: One word or number set at viewport scale and deliberately cropped by the edge of the page or its section. It's architecture, not a headline; the real headline stays readable at normal size.
|
|
62
|
+
test: The cropped type still reads as a word and isn't the only place the message lives.
|
|
63
|
+
|
|
64
|
+
- id: manifesto-column
|
|
65
|
+
family: composition
|
|
66
|
+
kinds: [marketing]
|
|
67
|
+
signals: [mission, about, story, manifesto, values, studio, nonprofit, editorial, premium]
|
|
68
|
+
cost: low
|
|
69
|
+
do: An essay section in one narrow column (60–68ch), large body type and generous leading, no cards and no icons. The argument is the design.
|
|
70
|
+
test: It reads well as text alone; nothing decorative was needed.
|
|
71
|
+
|
|
72
|
+
- id: before-after-switch
|
|
73
|
+
family: composition
|
|
74
|
+
kinds: [marketing]
|
|
75
|
+
signals: [replace, migrate, faster, automate, instead, compare, alternative]
|
|
76
|
+
cost: med
|
|
77
|
+
do: One section where the reader flips a switch between "the old way" and "with this product", shown with the same real content both ways (the messy spreadsheet vs the clean view, the 14-step form vs one field).
|
|
78
|
+
test: The difference is visible in under two seconds and uses identical data on both sides.
|
|
79
|
+
|
|
80
|
+
- id: artifact-gallery
|
|
81
|
+
family: composition
|
|
82
|
+
kinds: [marketing, commerce]
|
|
83
|
+
signals: [invoice, report, receipt, recipe, ticket, contract, document, card, menu, label, certificate]
|
|
84
|
+
cost: med
|
|
85
|
+
do: Show the things the product produces (invoices, reports, labels, menus) as beautifully rendered HTML objects laid out like a physical spread, slightly overlapping, at real scale.
|
|
86
|
+
test: Each artifact is legible and specific to this domain, not a grey placeholder.
|
|
87
|
+
|
|
88
|
+
# ── Composition: tools ──────────────────────────────────────────────────────
|
|
89
|
+
- id: lead-with-the-answer
|
|
90
|
+
family: composition
|
|
91
|
+
kinds: [tool]
|
|
92
|
+
signals: [dashboard, overview, home, analytics, report, admin, queue]
|
|
93
|
+
cost: low
|
|
94
|
+
do: The top of the screen is one sentence answering the question people open it for ("3 deals have gone quiet this week, worth $82k"), with the action next to it. Metrics come after, in service of that sentence. No row of four KPI cards.
|
|
95
|
+
test: Someone who opens the screen for five seconds leaves knowing what to do.
|
|
96
|
+
|
|
97
|
+
- id: summary-in-the-table
|
|
98
|
+
family: composition
|
|
99
|
+
kinds: [tool]
|
|
100
|
+
signals: [table, list, records, crm, deals, invoices, orders, companies]
|
|
101
|
+
cost: low
|
|
102
|
+
do: Put the totals and counts where the data is (sticky table footer, segmented-control counts, a header line describing the filtered set) instead of cards above the table.
|
|
103
|
+
test: Changing a filter changes every number on the screen.
|
|
104
|
+
|
|
105
|
+
- id: list-detail-split
|
|
106
|
+
family: composition
|
|
107
|
+
kinds: [tool]
|
|
108
|
+
signals: [inbox, messages, tickets, records, review, queue, approvals, mail]
|
|
109
|
+
cost: med
|
|
110
|
+
do: List on the left, the selected record on the right, moving with the keyboard. Detail opens without a page change, and the list keeps its scroll and selection.
|
|
111
|
+
test: You can triage ten items with only the keyboard.
|
|
112
|
+
|
|
113
|
+
- id: grouped-by-state
|
|
114
|
+
family: composition
|
|
115
|
+
kinds: [tool]
|
|
116
|
+
signals: [tasks, issues, pipeline, deals, orders, members, approvals, status]
|
|
117
|
+
cost: low
|
|
118
|
+
do: Group rows by their state (Needs you · In progress · Done) with collapsible group headers and counts, instead of a status column people must sort.
|
|
119
|
+
test: The most urgent group is first and open; finished work is collapsed.
|
|
120
|
+
|
|
121
|
+
- id: time-as-the-axis
|
|
122
|
+
family: composition
|
|
123
|
+
kinds: [tool, marketing]
|
|
124
|
+
signals: [schedule, timeline, history, activity, events, bookings, calendar, log, deploys, runs]
|
|
125
|
+
cost: high
|
|
126
|
+
do: Lay records along time (a horizontal day/week track, or a vertical log with a time rail) when "when" matters more than "what". Gaps and clusters become visible.
|
|
127
|
+
test: You can see at a glance when things bunch up or go quiet.
|
|
128
|
+
|
|
129
|
+
- id: progressive-row
|
|
130
|
+
family: composition
|
|
131
|
+
kinds: [tool]
|
|
132
|
+
signals: [table, list, members, invoices, runs, logs]
|
|
133
|
+
cost: med
|
|
134
|
+
do: Rows are compact; selecting one expands it in place to show detail and actions, pushing the rest down. No modal, no page change.
|
|
135
|
+
test: The table never loses its place.
|
|
136
|
+
|
|
137
|
+
# ── Type ────────────────────────────────────────────────────────────────────
|
|
138
|
+
- id: numbers-as-display
|
|
139
|
+
family: type
|
|
140
|
+
kinds: [tool, marketing]
|
|
141
|
+
signals: [finance, money, revenue, metrics, analytics, bank, usage, pricing, stats]
|
|
142
|
+
cost: low
|
|
143
|
+
do: The key figure is set in the display role with tabular figures and its unit small and muted beside it; labels in the caption role. One number per view earns this, not four.
|
|
144
|
+
test: The number is the focal point and lines up with its neighbours.
|
|
145
|
+
|
|
146
|
+
- id: machine-values-in-mono
|
|
147
|
+
family: type
|
|
148
|
+
kinds: [tool, docs, marketing]
|
|
149
|
+
signals: [developer, api, logs, ids, deploy, infra, data, technical, terminal, code]
|
|
150
|
+
cost: low
|
|
151
|
+
do: Every value a machine produced (IDs, hashes, timestamps, durations, amounts in logs) is in the mono face at body-sm; everything a person wrote stays in the sans. The split carries meaning.
|
|
152
|
+
test: Mono never appears on prose or labels.
|
|
153
|
+
|
|
154
|
+
- id: editorial-scale-jump
|
|
155
|
+
family: type
|
|
156
|
+
kinds: [marketing, commerce]
|
|
157
|
+
signals: [premium, editorial, luxury, magazine, story, brand, fashion, food]
|
|
158
|
+
cost: low
|
|
159
|
+
do: A big jump between the display role and body (5–7×) with nothing in between on the first screen. The tension between huge and small does the work, not weight.
|
|
160
|
+
test: The first screen uses at most three sizes.
|
|
161
|
+
|
|
162
|
+
- id: numbered-sections
|
|
163
|
+
family: type
|
|
164
|
+
kinds: [marketing, docs]
|
|
165
|
+
signals: [steps, process, how, guide, method, onboarding]
|
|
166
|
+
cost: low
|
|
167
|
+
do: Section numbers in the mono or caption role, aligned to a fixed margin column, used as real wayfinding (they match the index or the steps).
|
|
168
|
+
test: The numbers are consistent and mean something, and appear once per page as a device (not on every section alongside kickers).
|
|
169
|
+
|
|
170
|
+
- id: domain-voice-labels
|
|
171
|
+
family: type
|
|
172
|
+
kinds: [tool, marketing, commerce]
|
|
173
|
+
signals: []
|
|
174
|
+
cost: low
|
|
175
|
+
do: Labels, empty states and buttons use the domain's own words (a kitchen says "86'd", a newsroom says "filed", a lab says "assay"), not generic product words (Items, Records, Manage).
|
|
176
|
+
test: 'Read only the labels: you can tell the domain.'
|
|
177
|
+
|
|
178
|
+
# ── Colour and material ─────────────────────────────────────────────────────
|
|
179
|
+
- id: one-colour-moment
|
|
180
|
+
family: colour
|
|
181
|
+
kinds: [marketing, commerce]
|
|
182
|
+
signals: [brand, launch, product, landing]
|
|
183
|
+
fits: { palette: [restrained, accented] }
|
|
184
|
+
cost: low
|
|
185
|
+
do: The whole page is neutral except one surface in full brand colour (a single section, the final call to action, or one card). It's the only colour moment and it lands where the decision is.
|
|
186
|
+
test: There is exactly one coloured surface, and it sits next to the main action.
|
|
187
|
+
|
|
188
|
+
- id: data-is-the-colour
|
|
189
|
+
family: colour
|
|
190
|
+
kinds: [tool]
|
|
191
|
+
signals: [analytics, dashboard, heatmap, usage, status, monitoring, health]
|
|
192
|
+
cost: low
|
|
193
|
+
do: Colour only encodes data (intensity, status, category), never decoration. The interface itself is neutral, so any colour on screen is information.
|
|
194
|
+
test: Remove the data and the screen is grey.
|
|
195
|
+
|
|
196
|
+
- id: dark-island
|
|
197
|
+
family: colour
|
|
198
|
+
kinds: [marketing]
|
|
199
|
+
signals: [product, app, developer, ai, tool]
|
|
200
|
+
fits: { theme: [light] }
|
|
201
|
+
cost: low
|
|
202
|
+
do: A light page with one dark band holding the product or the most technical proof, like a stage. The transition is a hard edge, not a gradient.
|
|
203
|
+
test: The dark band holds the most important proof, not decoration.
|
|
204
|
+
|
|
205
|
+
- id: domain-material
|
|
206
|
+
family: colour
|
|
207
|
+
kinds: [marketing, commerce]
|
|
208
|
+
signals: [paper, print, craft, food, publishing, architecture, engineering, books, coffee, wine, garden]
|
|
209
|
+
cost: med
|
|
210
|
+
do: One surface borrows a material from the domain at very low contrast (paper grain for print, blueprint grid for engineering, linen for textiles, receipt stock for retail), on one surface only.
|
|
211
|
+
test: You notice it on the second look, not the first.
|
|
212
|
+
|
|
213
|
+
- id: tinted-neutrals
|
|
214
|
+
family: colour
|
|
215
|
+
kinds: [tool, marketing, commerce, docs]
|
|
216
|
+
signals: [warm, calm, brand, friendly]
|
|
217
|
+
cost: low
|
|
218
|
+
do: Pull every neutral (canvas, surfaces, hairlines, muted text) 2–4% toward the brand hue so the greys feel owned. Keep contrast ratios.
|
|
219
|
+
test: Next to pure grey the page feels warmer or cooler, but no one would call it coloured.
|
|
220
|
+
|
|
221
|
+
# ── Data ────────────────────────────────────────────────────────────────────
|
|
222
|
+
- id: trend-in-the-row
|
|
223
|
+
family: data
|
|
224
|
+
kinds: [tool]
|
|
225
|
+
signals: [table, metrics, accounts, companies, revenue, usage, deals, portfolio]
|
|
226
|
+
cost: med
|
|
227
|
+
do: A tiny sparkline or 7-bar strip inside the row, 64–96px wide, neutral, with the last point in the accent only when it matters.
|
|
228
|
+
test: You can spot the row that's turning without opening it.
|
|
229
|
+
|
|
230
|
+
- id: change-in-words
|
|
231
|
+
family: data
|
|
232
|
+
kinds: [tool, marketing]
|
|
233
|
+
signals: [analytics, metrics, dashboard, report, finance]
|
|
234
|
+
cost: low
|
|
235
|
+
do: Write changes as sentences with context ("up 12% since Monday, mostly from Northwind") instead of bare arrows and percentages.
|
|
236
|
+
test: Each delta says compared with what and why.
|
|
237
|
+
|
|
238
|
+
- id: distribution-not-average
|
|
239
|
+
family: data
|
|
240
|
+
kinds: [tool]
|
|
241
|
+
signals: [analytics, latency, performance, scores, survey, grades, prices, response]
|
|
242
|
+
cost: med
|
|
243
|
+
do: Show the spread (a dot strip, a small histogram, p50/p95 marks) instead of one average, so outliers are visible.
|
|
244
|
+
test: The outlier someone would care about is visible.
|
|
245
|
+
|
|
246
|
+
- id: specific-sample-data
|
|
247
|
+
family: data
|
|
248
|
+
kinds: [tool, marketing, commerce, docs]
|
|
249
|
+
signals: []
|
|
250
|
+
cost: low
|
|
251
|
+
do: 'Sample data is specific, plausible and of this domain: real-sounding names from varied cultures, uneven numbers ($18,420 not $10,000), real-looking dates, one awkward long value. Never John Doe, Acme or Lorem.'
|
|
252
|
+
test: A domain expert wouldn't wince at the sample data.
|
|
253
|
+
|
|
254
|
+
- id: stage-as-a-path
|
|
255
|
+
family: data
|
|
256
|
+
kinds: [tool]
|
|
257
|
+
signals: [pipeline, stage, progress, onboarding, steps, order, shipping, deal]
|
|
258
|
+
cost: low
|
|
259
|
+
do: Show position on a path as a short segmented track plus the stage name, so "how far along" reads without parsing words.
|
|
260
|
+
test: You can rank rows by progress at a glance.
|
|
261
|
+
|
|
262
|
+
# ── Interaction ─────────────────────────────────────────────────────────────
|
|
263
|
+
- id: try-it-on-the-page
|
|
264
|
+
family: interaction
|
|
265
|
+
kinds: [marketing]
|
|
266
|
+
signals: [app, tool, ai, product, editor, calculator, generator]
|
|
267
|
+
cost: high
|
|
268
|
+
do: One real interaction on the marketing page (approve a request, type into the editor, drag a slider and watch the price) with an undo. It responds instantly and does one thing well.
|
|
269
|
+
test: A visitor learns something by touching it that the copy couldn't say.
|
|
270
|
+
|
|
271
|
+
- id: keyboard-is-visible
|
|
272
|
+
family: interaction
|
|
273
|
+
kinds: [tool]
|
|
274
|
+
signals: [inbox, editor, developer, power, fast, keyboard, triage]
|
|
275
|
+
cost: low
|
|
276
|
+
do: Shortcuts are shown where the action lives (a Kbd hint in the button, the search field, the row menu), not in a help page.
|
|
277
|
+
test: A new user learns two shortcuts in the first minute.
|
|
278
|
+
|
|
279
|
+
- id: undo-not-confirm
|
|
280
|
+
family: interaction
|
|
281
|
+
kinds: [tool]
|
|
282
|
+
signals: [remove, delete, archive, settings, members, roles]
|
|
283
|
+
cost: low
|
|
284
|
+
do: Reversible actions happen immediately and offer Undo in a toast; only irreversible ones confirm first.
|
|
285
|
+
test: There are no "Are you sure?" dialogs for things that can be undone.
|
|
286
|
+
|
|
287
|
+
- id: inline-edit
|
|
288
|
+
family: interaction
|
|
289
|
+
kinds: [tool]
|
|
290
|
+
signals: [settings, table, records, profile, members, crm]
|
|
291
|
+
cost: med
|
|
292
|
+
do: Values are edited where they're shown (click, edit, Enter to save, Esc to cancel), with a quiet saved state. No edit page.
|
|
293
|
+
test: Changing one value takes one click and one keystroke.
|
|
294
|
+
|
|
295
|
+
- id: peek-on-hover
|
|
296
|
+
family: interaction
|
|
297
|
+
kinds: [tool]
|
|
298
|
+
signals: [table, list, links, references, records, people]
|
|
299
|
+
cost: med
|
|
300
|
+
do: Hovering or focusing a reference (a person, a company, a linked issue) shows a small card with the three facts people check most, after a short delay.
|
|
301
|
+
test: People stop opening records just to check one thing.
|
|
302
|
+
|
|
303
|
+
# ── Motion ──────────────────────────────────────────────────────────────────
|
|
304
|
+
- id: motion-means-change
|
|
305
|
+
family: motion
|
|
306
|
+
kinds: [tool, marketing]
|
|
307
|
+
signals: []
|
|
308
|
+
cost: low
|
|
309
|
+
do: Motion only where something actually changed (a number rolls, a row settles into its new place, a stage advances). Nothing animates on scroll for its own sake.
|
|
310
|
+
test: Every animation answers "what just changed?".
|
|
311
|
+
|
|
312
|
+
- id: scroll-drives-the-product
|
|
313
|
+
family: motion
|
|
314
|
+
kinds: [marketing]
|
|
315
|
+
signals: [how, works, workflow, steps, features, story]
|
|
316
|
+
cost: high
|
|
317
|
+
do: One sticky product window whose state advances as the reader scrolls through the steps, so the same UI tells the whole story. Respects reduced motion with stepped states.
|
|
318
|
+
test: Scrolling back reverses the state cleanly, and it works with motion off.
|
|
319
|
+
|
|
320
|
+
# ── Content and voice ───────────────────────────────────────────────────────
|
|
321
|
+
- id: concrete-headline
|
|
322
|
+
family: content
|
|
323
|
+
kinds: [marketing, commerce]
|
|
324
|
+
signals: []
|
|
325
|
+
cost: low
|
|
326
|
+
do: The headline names a concrete outcome in the reader's words, with a noun from their world or a number ("Close the month in two days", "Forty hours of burn, one pour"), never a slogan about the future.
|
|
327
|
+
test: The headline couldn't be moved to a competitor's page.
|
|
328
|
+
|
|
329
|
+
- id: show-the-work
|
|
330
|
+
family: content
|
|
331
|
+
kinds: [marketing]
|
|
332
|
+
signals: [agency, studio, consulting, ai, automation, service]
|
|
333
|
+
cost: med
|
|
334
|
+
do: Instead of benefits, show the work itself (the actual output, an unedited before and after, a real log of what the product did overnight).
|
|
335
|
+
test: There's at least one thing on the page a competitor couldn't fake.
|
|
336
|
+
|
|
337
|
+
- id: answer-the-objection
|
|
338
|
+
family: content
|
|
339
|
+
kinds: [marketing]
|
|
340
|
+
signals: [security, enterprise, pricing, migrate, switch, trust, privacy, bank]
|
|
341
|
+
cost: low
|
|
342
|
+
do: A section that names the reader's main doubt in their words and answers it directly with specifics (what data leaves, how migration works, what it costs at their size).
|
|
343
|
+
test: The doubt is stated as plainly as a sceptic would say it.
|
|
344
|
+
|
|
345
|
+
- id: changelog-as-proof
|
|
346
|
+
family: content
|
|
347
|
+
kinds: [marketing]
|
|
348
|
+
signals: [developer, startup, tool, saas, product]
|
|
349
|
+
cost: low
|
|
350
|
+
do: Recent shipped improvements with dates, as proof the product is alive, instead of a grey logo strip.
|
|
351
|
+
test: Dates are recent and entries are specific.
|
|
352
|
+
|
|
353
|
+
- id: one-long-voice
|
|
354
|
+
family: content
|
|
355
|
+
kinds: [marketing, commerce]
|
|
356
|
+
signals: [customer, testimonial, review, case, story]
|
|
357
|
+
cost: low
|
|
358
|
+
do: One customer's longer account with context (who, what changed, a number), set editorially, instead of a carousel or a grid of three short quotes.
|
|
359
|
+
test: The quote contains a specific detail and a number.
|
|
360
|
+
|
|
361
|
+
# ── Commerce ────────────────────────────────────────────────────────────────
|
|
362
|
+
- id: sensory-spec-sheet
|
|
363
|
+
family: content
|
|
364
|
+
kinds: [commerce]
|
|
365
|
+
signals: [candle, coffee, wine, perfume, tea, food, skincare, fashion, fabric, furniture]
|
|
366
|
+
cost: low
|
|
367
|
+
do: Specs in the domain's own vocabulary as a structured, typographic list (notes, burn time, origin, weave, finish), set like a label or a menu.
|
|
368
|
+
test: A connoisseur would recognise the vocabulary.
|
|
369
|
+
|
|
370
|
+
- id: material-close-up
|
|
371
|
+
family: composition
|
|
372
|
+
kinds: [commerce]
|
|
373
|
+
signals: [candle, fashion, furniture, jewellery, ceramics, coffee, craft, handmade]
|
|
374
|
+
cost: med
|
|
375
|
+
do: Pair every product image with a close-up of its material or making (wax surface, weave, glaze) at the same size, so texture carries the quality.
|
|
376
|
+
test: The close-up shows something the product shot couldn't.
|
|
377
|
+
|
|
378
|
+
- id: consistent-object-light
|
|
379
|
+
family: composition
|
|
380
|
+
kinds: [commerce]
|
|
381
|
+
signals: [shop, store, collection, products, catalogue]
|
|
382
|
+
cost: med
|
|
383
|
+
do: All product images on one surface, one light direction, one angle and one crop, so the collection reads as a set. Image slots have fixed aspect ratios.
|
|
384
|
+
test: The grid looks like one photo shoot.
|
|
385
|
+
|
|
386
|
+
# ── Docs ────────────────────────────────────────────────────────────────────
|
|
387
|
+
- id: runnable-first
|
|
388
|
+
family: content
|
|
389
|
+
kinds: [docs]
|
|
390
|
+
signals: [api, sdk, quickstart, reference, developer]
|
|
391
|
+
cost: med
|
|
392
|
+
do: The first thing on each page is the smallest working example with a copy button and the exact output it produces; explanation follows.
|
|
393
|
+
test: Copying the first block and running it works.
|
|
394
|
+
|
|
395
|
+
- id: path-picker
|
|
396
|
+
family: interaction
|
|
397
|
+
kinds: [docs]
|
|
398
|
+
signals: [sdk, language, framework, install, setup]
|
|
399
|
+
cost: med
|
|
400
|
+
do: A persistent choice of language or framework at the top that rewrites every snippet on every page, remembered between visits.
|
|
401
|
+
test: Changing it once changes every example.
|
|
402
|
+
|
|
403
|
+
# The AI defaults. These appear on almost every generated page, so they make a screen look generated.
|
|
404
|
+
# Use one only when the job really needs it, and then give it a twist the concept justifies.
|
|
405
|
+
cliches:
|
|
406
|
+
- id: centred-hero-glow
|
|
407
|
+
kinds: [marketing]
|
|
408
|
+
what: Centred headline + subhead + two buttons over a gradient glow or blurred blob.
|
|
409
|
+
- id: eyebrow-pill
|
|
410
|
+
kinds: [marketing]
|
|
411
|
+
what: A pill or eyebrow label above the headline ("✨ New", "Introducing …").
|
|
412
|
+
- id: eyebrow-label
|
|
413
|
+
kinds: [marketing]
|
|
414
|
+
what: A small uppercase, letter-spaced label above every section heading ("THE PIPELINE", "PRICING").
|
|
415
|
+
- id: icon-feature-trio
|
|
416
|
+
kinds: [marketing]
|
|
417
|
+
what: Three or four equal cards, each with an icon in a tinted square, a title and two lines of text.
|
|
418
|
+
- id: logo-strip
|
|
419
|
+
kinds: [marketing]
|
|
420
|
+
what: '"Trusted by" row of grey logos directly under the hero.'
|
|
421
|
+
- id: stat-row
|
|
422
|
+
kinds: [marketing, tool]
|
|
423
|
+
what: A row of 3–4 big numbers with small labels (10×, 99.9%, 24/7), or four KPI cards with ▲% deltas on a dashboard.
|
|
424
|
+
- id: quote-grid
|
|
425
|
+
kinds: [marketing]
|
|
426
|
+
what: Testimonial carousel or a grid of three short quotes with avatars and star ratings.
|
|
427
|
+
- id: three-tier-pricing
|
|
428
|
+
kinds: [marketing]
|
|
429
|
+
what: Three pricing cards with the middle one raised and badged "Most popular".
|
|
430
|
+
- id: gradient-cta-band
|
|
431
|
+
kinds: [marketing]
|
|
432
|
+
what: FAQ accordion then a full-width gradient band saying "Ready to get started?".
|
|
433
|
+
- id: equal-bento
|
|
434
|
+
kinds: [marketing]
|
|
435
|
+
what: A bento grid of near-equal tiles, often glassy, each with a mini illustration.
|
|
436
|
+
- id: purple-blue-gradient
|
|
437
|
+
kinds: [marketing, tool]
|
|
438
|
+
what: Purple-to-blue or neon gradients, glows and noise as decoration.
|
|
439
|
+
- id: serif-italic-accent
|
|
440
|
+
kinds: [marketing]
|
|
441
|
+
what: One italic serif word inside a sans headline (the 2025–26 default).
|
|
442
|
+
- id: icon-sidebar
|
|
443
|
+
kinds: [tool]
|
|
444
|
+
what: Sidebar of ten icon+label items with a user avatar block at the bottom, regardless of how many destinations the product has.
|
|
445
|
+
- id: pill-rainbow
|
|
446
|
+
kinds: [tool]
|
|
447
|
+
what: Filled coloured status pills in every row so the table looks like confetti.
|
|
448
|
+
- id: generic-sample
|
|
449
|
+
kinds: [tool, marketing, commerce, docs]
|
|
450
|
+
what: John Doe, Jane Smith, Acme Inc., round numbers, Lorem ipsum, emoji used as icons.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: museum-painting-backdrop
|
|
3
|
+
name: CC0 museum paintings as backdrops
|
|
4
|
+
kind: imagery
|
|
5
|
+
fits: [calm, crafted, heritage, nature, artsy, premium, editorial, cultural, quiet]
|
|
6
|
+
avoid: [playful-kids, gaming, data-dense-tool, finance-trust-first, low-bandwidth]
|
|
7
|
+
signature: true
|
|
8
|
+
effort: s
|
|
9
|
+
perf: "resized copies (1600–2400 px, ~150–350 KB WebP/JPEG), next/image or srcset with honest sizes; priority only for the hero"
|
|
10
|
+
a11y: "decorative (alt=\"\"), credit as visible text; a wash only where text sits on the painting, with contrast checked"
|
|
11
|
+
pairs_with: [canvas-grain, feature-films-on-painted-stages, engraving-colour-lens, hero-paints-itself-in]
|
|
12
|
+
deps: none
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## What it is
|
|
16
|
+
|
|
17
|
+
Public-domain paintings, from museums that release their photographs as CC0, used as the stage behind a hero, feature windows or a footer, each credited in small type (artist, title, year, museum). Instead of gradients, blobs or stock 3D, the page's colour and atmosphere come from real art.
|
|
18
|
+
|
|
19
|
+
## Why it works
|
|
20
|
+
|
|
21
|
+
- A painting carries depth, light and a mood that no gradient can, and it is instantly *not* the AI default (glow blobs, mesh gradients, dotted grids).
|
|
22
|
+
- Landscapes give calm space for UI to sit on: a sky behind a headline, a field behind a window.
|
|
23
|
+
- Crediting them is honest and reads as taste: it says someone chose this picture.
|
|
24
|
+
- CC0 photos are free for any use, so there is no licensing risk when the source is the museum's own open-access release.
|
|
25
|
+
|
|
26
|
+
## When to use / when not
|
|
27
|
+
|
|
28
|
+
Use for calm, crafted, editorial or heritage brands, or any product that wants warmth and authorship without illustration budget. Choose landscapes and calm scenes with low-detail areas (sky, water, fields) where UI and text will sit. Use a handful across a page, one per section at most.
|
|
29
|
+
|
|
30
|
+
Not for: playful or kids' brands, gaming, dense tools, or a brand whose palette fights every painting (pick paintings whose colours agree with the brand: palate's emerald sits well in green landscapes). Never use a painting whose photo isn't CC0 or public domain, and never a living artist's work.
|
|
31
|
+
|
|
32
|
+
## Recipe
|
|
33
|
+
|
|
34
|
+
1. **Source.** Only museum open-access programmes that mark images CC0 (e.g. National Gallery of Art, Washington; the Met's Open Access; Art Institute of Chicago; Cleveland Museum of Art). Confirm the CC0 / public-domain mark on the object's page; save the object URL with the file.
|
|
35
|
+
2. **Choose.** Calm composition, a low-detail area where content goes, colours that agree with the brand. Prefer landscapes; avoid faces as backdrops (eyes compete with text).
|
|
36
|
+
3. **Prepare.** Resize to 1600 px (2400 for a full-width hero), export WebP/JPEG at quality ~80. Keep a typed registry: `{ src, w, h, artist, title, year, museum, at? }` where `at` is the `object-position` that keeps the interesting part in frame. One `credit(a)` helper formats `Artist, Title, Year · Museum`.
|
|
37
|
+
4. **Backdrop.** A container with `position: relative; isolation: isolate; overflow: hidden; border-radius` holding the image (`fill` + `object-cover` + `object-position` from `at`, `-z-10`), the canvas grain, then the content.
|
|
38
|
+
5. **Readability.** Only where text sits on the painting: a soft top-down dark wash (e.g. `linear-gradient(180deg, rgba(6,24,18,.42), rgba(6,24,18,.22) 45%, rgba(6,24,18,.08) 75%, transparent)`) and a faint text-shadow. No glows anywhere else.
|
|
39
|
+
6. **Credit** in 12 px type: under a framed stage as a `<figcaption>`, or in a corner of a full-bleed hero (hide it on phones if it collides, but keep it in the footer or an about page).
|
|
40
|
+
7. **Responsive.** Check the crop at 390 px: set `at` so the subject stays in frame; the phone crop is usually the sky and centre.
|
|
41
|
+
8. React/Tailwind: `next/image` with `fill`, `sizes` that match the layout (`(min-width: 768px) 58vw, 100vw`), `priority` only for the hero.
|
|
42
|
+
|
|
43
|
+
## Pitfalls
|
|
44
|
+
|
|
45
|
+
- A painting behind dense UI: the window must be a solid white surface with a shadow; never put small text straight on paint.
|
|
46
|
+
- Too many paintings with different palettes: pick a family (greens and golds, or blues), and never two adjacent sections in different moods.
|
|
47
|
+
- Missing credit, or a credit that is wrong: keep the registry as the single source.
|
|
48
|
+
- Heavy dark overlays that kill the painting: wash only where text is.
|
|
49
|
+
- Assuming "old" means free: the *photograph* must be released CC0 by the institution.
|
|
50
|
+
|
|
51
|
+
## How to verify
|
|
52
|
+
|
|
53
|
+
- `palate shoot` at 1440 and 390: subject in frame at both widths; text on paint passes WCAG AA contrast; every painting has a visible credit.
|
|
54
|
+
- `palate details`: image weights within budget; only the hero image is priority.
|
|
55
|
+
- Swap test: replace the paintings with grey; if the page loses its identity, the move is doing its job.
|
|
56
|
+
|
|
57
|
+
## Examples
|
|
58
|
+
|
|
59
|
+
- palate's own site: the hero (Constable, "Wivenhoe Park, Essex"), every feature stage (Monet's "Water Lilies" and "The Japanese Footbridge", Inness's "The Lackawanna Valley", van Gogh's "Wheat Field with Cypresses", Church's "The Heart of the Andes") and the footer (Church's "Twilight in the Wilderness"), each credited (`art.ts`).
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: one-colour-brand-world
|
|
3
|
+
name: One-colour brand world
|
|
4
|
+
kind: texture
|
|
5
|
+
fits: [calm, crafted, minimal, premium, editorial, trustworthy, saas, quiet]
|
|
6
|
+
avoid: [playful-kids, energetic, gaming]
|
|
7
|
+
signature: false
|
|
8
|
+
effort: s
|
|
9
|
+
perf: "tokens only; nothing to load"
|
|
10
|
+
a11y: "the brand colour is checked at 4.5:1 for text and 3:1 for controls on both its surfaces; state is never colour alone"
|
|
11
|
+
pairs_with: [dark-band-contrast-section, tactile-button, museum-painting-backdrop, designed-dark-mode]
|
|
12
|
+
deps: none
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## What it is
|
|
16
|
+
|
|
17
|
+
The whole page uses one brand hue and neutrals, nothing else. Buttons, links, selection, focus, the picked state, the dark band and every illustration are tints and shades of that one colour. Other colour only enters through content (a photo, a painting, a real brand logo).
|
|
18
|
+
|
|
19
|
+
## Why it works
|
|
20
|
+
|
|
21
|
+
- A single owned colour is the fastest brand memory there is; spread across six accents it means nothing.
|
|
22
|
+
- It is a constraint that forces hierarchy through value and size instead of hue, which reads calmer and more expensive.
|
|
23
|
+
- When every interactive thing is the one colour, users learn "that colour means I can act" in seconds.
|
|
24
|
+
|
|
25
|
+
## When to use / when not
|
|
26
|
+
|
|
27
|
+
Use for most product and SaaS sites, studios and calm premium brands. It suits pages where a picture or the product UI should be the colourful thing.
|
|
28
|
+
|
|
29
|
+
Not for: kids' and gaming brands that live on energy and many colours; data visualisation with categorical series (charts need their own palette, keep it separate from brand).
|
|
30
|
+
|
|
31
|
+
## Recipe
|
|
32
|
+
|
|
33
|
+
1. **Pick the hue and a ramp.** One brand colour (e.g. emerald `#0B6E4F`), then a ramp in OKLCH at fixed hue: 50 (wash, e.g. `#f2f7f4`), 100, 200, 500 (brand), 600 (hover), 900 (deep, e.g. `#062A20`). Neutrals slightly tinted toward the hue (chroma ≤ 0.01).
|
|
34
|
+
2. **Assign jobs.** Brand 500: primary actions, links, focus ring option, picked state. 600: hover. 50–100: washes and selected rows. 900: the dark band and headings on washes. Text body stays neutral grey, never brand (it would read as links).
|
|
35
|
+
3. **Tokens.** `:root { --brand; --brand-hover; --brand-deep; --brand-wash }` and in Tailwind `@theme inline { --color-brand: var(--brand) ... }`. Ban raw hex in components (lint or `palate check`).
|
|
36
|
+
4. **Selection and focus too.** `::selection { background: var(--brand-100) }`, caret colour brand, checkbox `accent-color: var(--brand)`.
|
|
37
|
+
5. **Illustrations and icons** in the ramp only. Logos of other brands stay in their official colours; they are content.
|
|
38
|
+
6. **Dark band.** One section on `--brand-deep` with white type (see `dark-band-contrast-section`).
|
|
39
|
+
7. **No JS, no motion involved.** Works everywhere; check forced-colors mode keeps borders on buttons (`border: 1px solid transparent`).
|
|
40
|
+
|
|
41
|
+
## Pitfalls
|
|
42
|
+
|
|
43
|
+
- A second "accent" creeping in for badges or charts: decide where it's allowed (data only) and keep it out of the brand surface.
|
|
44
|
+
- Brand-coloured body text: reads as links.
|
|
45
|
+
- Pure black UI accents next to the brand: they compete. Use the deep shade.
|
|
46
|
+
- Ramp made by opacity: tints over different backgrounds drift; use solid ramp values.
|
|
47
|
+
|
|
48
|
+
## How to verify
|
|
49
|
+
|
|
50
|
+
- `palate shoot` + colour sampling: every saturated colour on the page is on the brand ramp, except content (paintings, logos, product screenshots).
|
|
51
|
+
- Contrast: brand on white and white on brand pass 4.5:1 for button text.
|
|
52
|
+
- `palate check`: no raw hex outside the tokens file.
|
|
53
|
+
|
|
54
|
+
## Examples
|
|
55
|
+
|
|
56
|
+
- palate's own site: a white page where all colour comes from one emerald (buttons, links, the picked state, the selection) and from public-domain paintings; its taste rules forbid cream backgrounds and black accents.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: playful-404
|
|
3
|
+
name: A 404 that keeps the site's voice
|
|
4
|
+
kind: easter-egg
|
|
5
|
+
fits: [calm, crafted, friendly, saas, developer, playful, honest, minimal]
|
|
6
|
+
avoid: [crisis, clinical]
|
|
7
|
+
signature: false
|
|
8
|
+
effort: s
|
|
9
|
+
perf: "static page, no extra assets; reuses the site's own components and CSS animation"
|
|
10
|
+
a11y: "real h1 that says what happened; the missed address is text; two clear links back; the reused animation is static under reduced motion"
|
|
11
|
+
pairs_with: [pointer-highlight-word, tactile-button, tiny-game-easter-egg]
|
|
12
|
+
deps: none
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## What it is
|
|
16
|
+
|
|
17
|
+
The not-found page as a small, finished screen in the site's own voice: the normal header, one clear line ("This page doesn't exist."), the address that missed shown back to the visitor, and two obvious ways on. The one touch of play comes from the site's own signature, reused, so it feels like the same place rather than a joke page.
|
|
18
|
+
|
|
19
|
+
## Why it works
|
|
20
|
+
|
|
21
|
+
- A 404 is a moment of mild failure; a calm, specific page that shows *what* missed ("Nothing lives at /pricng") and offers the way back rescues the visit.
|
|
22
|
+
- Reusing the site's signature (here, the hero's highlight drawn around one word) says "you're still on our site" and adds a wink without a cartoon.
|
|
23
|
+
- Most 404s are default or overdone; a finished one is a small proof of care.
|
|
24
|
+
|
|
25
|
+
## When to use / when not
|
|
26
|
+
|
|
27
|
+
Every site needs one. Go more playful (a tiny game, an illustration) for playful brands; stay plain and helpful for crisis, health or clinical services, where a joke reads badly.
|
|
28
|
+
|
|
29
|
+
Not for: jokes that blame the user, or pages that hide the way back behind an animation.
|
|
30
|
+
|
|
31
|
+
## Recipe
|
|
32
|
+
|
|
33
|
+
1. **Keep the frame.** The normal header with the logo (link home) and the primary action, and a minimal footer. Visitors should feel they're still on the site.
|
|
34
|
+
2. **One line, one word marked.** An `h1` like "This page doesn't exist." with the site's signature applied to one word: palate draws its pointer-highlight box around "exist" with the cursor arriving, the same component as the hero (`pointer-highlight-word`).
|
|
35
|
+
3. **Show the missed address.** A client component reads the pathname and shows it in a small mono chip, decoded (`decodeURI` in try/catch), truncated at ~240 px with the full value in `title`. Before JS (server render) it reads "this address": "Nothing lives at /pricng. The link may be old, or the address has a typo."
|
|
36
|
+
4. **Two ways on.** The primary button back home ("Back to palate", brand colour, tactile) and a secondary to the most useful page ("See it work"). If the site has search or a sitemap, offer it as the third.
|
|
37
|
+
5. **Metadata.** `title: "Page not found · Brand"`, a description, and a real 404 status (Next's `not-found.tsx` does this).
|
|
38
|
+
6. **Optional:** a likely match ("Did you mean /pricing?") from a small list of known routes by edit distance, only when confident.
|
|
39
|
+
7. **Reduced motion:** the highlight box and cursor are simply there; no-JS shows the same page with "this address".
|
|
40
|
+
8. **Mobile:** headline scales from 60 to 40 px, buttons wrap and stay ≥ 44 px tall.
|
|
41
|
+
|
|
42
|
+
## Pitfalls
|
|
43
|
+
|
|
44
|
+
- Returning 200 for missing pages (bad for SEO and monitoring).
|
|
45
|
+
- A different visual language from the rest of the site.
|
|
46
|
+
- Jokes at the visitor's expense ("You broke it!").
|
|
47
|
+
- Echoing the raw path unescaped (XSS); render it as text.
|
|
48
|
+
- Auto-redirecting home after a few seconds.
|
|
49
|
+
|
|
50
|
+
## How to verify
|
|
51
|
+
|
|
52
|
+
- Request a missing route: status 404, title set.
|
|
53
|
+
- `palate shoot /does-not-exist` at both widths: header, the line with its highlight, the missed path chip, two buttons; JS off reads "this address".
|
|
54
|
+
- A very long or encoded path truncates without overflow.
|
|
55
|
+
|
|
56
|
+
## Examples
|
|
57
|
+
|
|
58
|
+
- palate's own site (`not-found.tsx`, `MissedPath.tsx`): the site header, "This page doesn't exist." with the hero's pointer-highlight around "exist", the missed address in a mono chip, and two ways back: "Back to palate" and "See it work".
|