From ab87bc2bd10f71d2ac04fd8a25b7921ea0efd069 Mon Sep 17 00:00:00 2001 From: Hananoshika Yomaru Date: Mon, 18 May 2026 21:06:12 -0700 Subject: [PATCH] Update zola.toml to include site title, description, theme, and additional URLs for navigation --- .agents/skills/frontend-design/LICENSE.txt | 177 +++++++ .agents/skills/frontend-design/SKILL.md | 42 ++ .agents/skills/grill-me/SKILL.md | 10 + .agents/skills/grill-with-docs/ADR-FORMAT.md | 47 ++ .../skills/grill-with-docs/CONTEXT-FORMAT.md | 77 +++ .agents/skills/grill-with-docs/SKILL.md | 88 ++++ .agents/skills/microinteractions/SKILL.md | 239 +++++++++ .../references/case-studies.md | 371 +++++++++++++ .../references/feedback-patterns.md | 287 ++++++++++ .../references/loops-modes.md | 257 +++++++++ .../references/rules-and-state.md | 251 +++++++++ .../references/signature-moments.md | 235 +++++++++ .../references/trigger-design.md | 223 ++++++++ .gitignore | 3 + README.md | 88 ++++ bun.lock | 264 ++++++++++ content/_index.md | 5 + frontend/src/components/marquee.tsx | 25 + frontend/src/components/scroll-reveal.tsx | 35 ++ frontend/src/components/site-header.tsx | 94 ++++ frontend/src/components/theme-toggle.tsx | 30 ++ frontend/src/main.tsx | 59 +++ frontend/src/theme.ts | 32 ++ package.json | 18 + skills-lock.json | 29 ++ spec.md | 7 + static/android-chrome-192x192.png | Bin 0 -> 25297 bytes static/android-chrome-512x512.png | Bin 0 -> 175874 bytes static/apple-touch-icon.png | Bin 0 -> 23238 bytes static/favicon-16x16.png | Bin 0 -> 574 bytes static/favicon-32x32.png | Bin 0 -> 1345 bytes static/favicon.ico | Bin 0 -> 15406 bytes static/site.webmanifest | 19 + themes/openfreebooks/sass/_components.scss | 493 ++++++++++++++++++ themes/openfreebooks/sass/_grain.scss | 23 + themes/openfreebooks/sass/_layout.scss | 67 +++ themes/openfreebooks/sass/_tokens.scss | 46 ++ themes/openfreebooks/sass/main.scss | 4 + themes/openfreebooks/static/404.html | 65 +++ .../static/android-chrome-192x192.png | Bin 0 -> 25297 bytes .../static/android-chrome-512x512.png | Bin 0 -> 175874 bytes .../openfreebooks/static/apple-touch-icon.png | Bin 0 -> 23238 bytes themes/openfreebooks/static/favicon-16x16.png | Bin 0 -> 574 bytes themes/openfreebooks/static/favicon-32x32.png | Bin 0 -> 1345 bytes themes/openfreebooks/static/favicon.ico | Bin 0 -> 15406 bytes themes/openfreebooks/static/index.html | 123 +++++ themes/openfreebooks/static/js/bundle.js | 1 + themes/openfreebooks/static/main.css | 1 + themes/openfreebooks/static/robots.txt | 4 + themes/openfreebooks/static/site.webmanifest | 19 + themes/openfreebooks/static/sitemap.xml | 6 + themes/openfreebooks/templates/404.html | 18 + themes/openfreebooks/templates/base.html | 52 ++ themes/openfreebooks/templates/index.html | 79 +++ themes/openfreebooks/theme.toml | 9 + tsconfig.json | 14 + vite.config.ts | 17 + wrangler.jsonc | 7 + zola.toml | 9 +- 59 files changed, 4068 insertions(+), 1 deletion(-) create mode 100644 .agents/skills/frontend-design/LICENSE.txt create mode 100644 .agents/skills/frontend-design/SKILL.md create mode 100644 .agents/skills/grill-me/SKILL.md create mode 100644 .agents/skills/grill-with-docs/ADR-FORMAT.md create mode 100644 .agents/skills/grill-with-docs/CONTEXT-FORMAT.md create mode 100644 .agents/skills/grill-with-docs/SKILL.md create mode 100644 .agents/skills/microinteractions/SKILL.md create mode 100644 .agents/skills/microinteractions/references/case-studies.md create mode 100644 .agents/skills/microinteractions/references/feedback-patterns.md create mode 100644 .agents/skills/microinteractions/references/loops-modes.md create mode 100644 .agents/skills/microinteractions/references/rules-and-state.md create mode 100644 .agents/skills/microinteractions/references/signature-moments.md create mode 100644 .agents/skills/microinteractions/references/trigger-design.md create mode 100644 .gitignore create mode 100644 README.md create mode 100644 bun.lock create mode 100644 content/_index.md create mode 100644 frontend/src/components/marquee.tsx create mode 100644 frontend/src/components/scroll-reveal.tsx create mode 100644 frontend/src/components/site-header.tsx create mode 100644 frontend/src/components/theme-toggle.tsx create mode 100644 frontend/src/main.tsx create mode 100644 frontend/src/theme.ts create mode 100644 package.json create mode 100644 skills-lock.json create mode 100644 spec.md create mode 100644 static/android-chrome-192x192.png create mode 100644 static/android-chrome-512x512.png create mode 100644 static/apple-touch-icon.png create mode 100644 static/favicon-16x16.png create mode 100644 static/favicon-32x32.png create mode 100644 static/favicon.ico create mode 100644 static/site.webmanifest create mode 100644 themes/openfreebooks/sass/_components.scss create mode 100644 themes/openfreebooks/sass/_grain.scss create mode 100644 themes/openfreebooks/sass/_layout.scss create mode 100644 themes/openfreebooks/sass/_tokens.scss create mode 100644 themes/openfreebooks/sass/main.scss create mode 100644 themes/openfreebooks/static/404.html create mode 100644 themes/openfreebooks/static/android-chrome-192x192.png create mode 100644 themes/openfreebooks/static/android-chrome-512x512.png create mode 100644 themes/openfreebooks/static/apple-touch-icon.png create mode 100644 themes/openfreebooks/static/favicon-16x16.png create mode 100644 themes/openfreebooks/static/favicon-32x32.png create mode 100644 themes/openfreebooks/static/favicon.ico create mode 100644 themes/openfreebooks/static/index.html create mode 100644 themes/openfreebooks/static/js/bundle.js create mode 100644 themes/openfreebooks/static/main.css create mode 100644 themes/openfreebooks/static/robots.txt create mode 100644 themes/openfreebooks/static/site.webmanifest create mode 100644 themes/openfreebooks/static/sitemap.xml create mode 100644 themes/openfreebooks/templates/404.html create mode 100644 themes/openfreebooks/templates/base.html create mode 100644 themes/openfreebooks/templates/index.html create mode 100644 themes/openfreebooks/theme.toml create mode 100644 tsconfig.json create mode 100644 vite.config.ts create mode 100644 wrangler.jsonc diff --git a/.agents/skills/frontend-design/LICENSE.txt b/.agents/skills/frontend-design/LICENSE.txt new file mode 100644 index 0000000..f433b1a --- /dev/null +++ b/.agents/skills/frontend-design/LICENSE.txt @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/.agents/skills/frontend-design/SKILL.md b/.agents/skills/frontend-design/SKILL.md new file mode 100644 index 0000000..5be498e --- /dev/null +++ b/.agents/skills/frontend-design/SKILL.md @@ -0,0 +1,42 @@ +--- +name: frontend-design +description: Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics. +license: Complete terms in LICENSE.txt +--- + +This skill guides creation of distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices. + +The user provides frontend requirements: a component, page, application, or interface to build. They may include context about the purpose, audience, or technical constraints. + +## Design Thinking + +Before coding, understand the context and commit to a BOLD aesthetic direction: +- **Purpose**: What problem does this interface solve? Who uses it? +- **Tone**: Pick an extreme: brutally minimal, maximalist chaos, retro-futuristic, organic/natural, luxury/refined, playful/toy-like, editorial/magazine, brutalist/raw, art deco/geometric, soft/pastel, industrial/utilitarian, etc. There are so many flavors to choose from. Use these for inspiration but design one that is true to the aesthetic direction. +- **Constraints**: Technical requirements (framework, performance, accessibility). +- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember? + +**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work - the key is intentionality, not intensity. + +Then implement working code (HTML/CSS/JS, React, Vue, etc.) that is: +- Production-grade and functional +- Visually striking and memorable +- Cohesive with a clear aesthetic point-of-view +- Meticulously refined in every detail + +## Frontend Aesthetics Guidelines + +Focus on: +- **Typography**: Choose fonts that are beautiful, unique, and interesting. Avoid generic fonts like Arial and Inter; opt instead for distinctive choices that elevate the frontend's aesthetics; unexpected, characterful font choices. Pair a distinctive display font with a refined body font. +- **Color & Theme**: Commit to a cohesive aesthetic. Use CSS variables for consistency. Dominant colors with sharp accents outperform timid, evenly-distributed palettes. +- **Motion**: Use animations for effects and micro-interactions. Prioritize CSS-only solutions for HTML. Use Motion library for React when available. Focus on high-impact moments: one well-orchestrated page load with staggered reveals (animation-delay) creates more delight than scattered micro-interactions. Use scroll-triggering and hover states that surprise. +- **Spatial Composition**: Unexpected layouts. Asymmetry. Overlap. Diagonal flow. Grid-breaking elements. Generous negative space OR controlled density. +- **Backgrounds & Visual Details**: Create atmosphere and depth rather than defaulting to solid colors. Add contextual effects and textures that match the overall aesthetic. Apply creative forms like gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, custom cursors, and grain overlays. + +NEVER use generic AI-generated aesthetics like overused font families (Inter, Roboto, Arial, system fonts), cliched color schemes (particularly purple gradients on white backgrounds), predictable layouts and component patterns, and cookie-cutter design that lacks context-specific character. + +Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices (Space Grotesk, for example) across generations. + +**IMPORTANT**: Match implementation complexity to the aesthetic vision. Maximalist designs need elaborate code with extensive animations and effects. Minimalist or refined designs need restraint, precision, and careful attention to spacing, typography, and subtle details. Elegance comes from executing the vision well. + +Remember: Claude is capable of extraordinary creative work. Don't hold back, show what can truly be created when thinking outside the box and committing fully to a distinctive vision. diff --git a/.agents/skills/grill-me/SKILL.md b/.agents/skills/grill-me/SKILL.md new file mode 100644 index 0000000..bd04394 --- /dev/null +++ b/.agents/skills/grill-me/SKILL.md @@ -0,0 +1,10 @@ +--- +name: grill-me +description: Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me". +--- + +Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer. + +Ask the questions one at a time. + +If a question can be answered by exploring the codebase, explore the codebase instead. diff --git a/.agents/skills/grill-with-docs/ADR-FORMAT.md b/.agents/skills/grill-with-docs/ADR-FORMAT.md new file mode 100644 index 0000000..da7e78e --- /dev/null +++ b/.agents/skills/grill-with-docs/ADR-FORMAT.md @@ -0,0 +1,47 @@ +# ADR Format + +ADRs live in `docs/adr/` and use sequential numbering: `0001-slug.md`, `0002-slug.md`, etc. + +Create the `docs/adr/` directory lazily — only when the first ADR is needed. + +## Template + +```md +# {Short title of the decision} + +{1-3 sentences: what's the context, what did we decide, and why.} +``` + +That's it. An ADR can be a single paragraph. The value is in recording *that* a decision was made and *why* — not in filling out sections. + +## Optional sections + +Only include these when they add genuine value. Most ADRs won't need them. + +- **Status** frontmatter (`proposed | accepted | deprecated | superseded by ADR-NNNN`) — useful when decisions are revisited +- **Considered Options** — only when the rejected alternatives are worth remembering +- **Consequences** — only when non-obvious downstream effects need to be called out + +## Numbering + +Scan `docs/adr/` for the highest existing number and increment by one. + +## When to offer an ADR + +All three of these must be true: + +1. **Hard to reverse** — the cost of changing your mind later is meaningful +2. **Surprising without context** — a future reader will look at the code and wonder "why on earth did they do it this way?" +3. **The result of a real trade-off** — there were genuine alternatives and you picked one for specific reasons + +If a decision is easy to reverse, skip it — you'll just reverse it. If it's not surprising, nobody will wonder why. If there was no real alternative, there's nothing to record beyond "we did the obvious thing." + +### What qualifies + +- **Architectural shape.** "We're using a monorepo." "The write model is event-sourced, the read model is projected into Postgres." +- **Integration patterns between contexts.** "Ordering and Billing communicate via domain events, not synchronous HTTP." +- **Technology choices that carry lock-in.** Database, message bus, auth provider, deployment target. Not every library — just the ones that would take a quarter to swap out. +- **Boundary and scope decisions.** "Customer data is owned by the Customer context; other contexts reference it by ID only." The explicit no-s are as valuable as the yes-s. +- **Deliberate deviations from the obvious path.** "We're using manual SQL instead of an ORM because X." Anything where a reasonable reader would assume the opposite. These stop the next engineer from "fixing" something that was deliberate. +- **Constraints not visible in the code.** "We can't use AWS because of compliance requirements." "Response times must be under 200ms because of the partner API contract." +- **Rejected alternatives when the rejection is non-obvious.** If you considered GraphQL and picked REST for subtle reasons, record it — otherwise someone will suggest GraphQL again in six months. diff --git a/.agents/skills/grill-with-docs/CONTEXT-FORMAT.md b/.agents/skills/grill-with-docs/CONTEXT-FORMAT.md new file mode 100644 index 0000000..ddfa247 --- /dev/null +++ b/.agents/skills/grill-with-docs/CONTEXT-FORMAT.md @@ -0,0 +1,77 @@ +# CONTEXT.md Format + +## Structure + +```md +# {Context Name} + +{One or two sentence description of what this context is and why it exists.} + +## Language + +**Order**: +{A concise description of the term} +_Avoid_: Purchase, transaction + +**Invoice**: +A request for payment sent to a customer after delivery. +_Avoid_: Bill, payment request + +**Customer**: +A person or organization that places orders. +_Avoid_: Client, buyer, account + +## Relationships + +- An **Order** produces one or more **Invoices** +- An **Invoice** belongs to exactly one **Customer** + +## Example dialogue + +> **Dev:** "When a **Customer** places an **Order**, do we create the **Invoice** immediately?" +> **Domain expert:** "No — an **Invoice** is only generated once a **Fulfillment** is confirmed." + +## Flagged ambiguities + +- "account" was used to mean both **Customer** and **User** — resolved: these are distinct concepts. +``` + +## Rules + +- **Be opinionated.** When multiple words exist for the same concept, pick the best one and list the others as aliases to avoid. +- **Flag conflicts explicitly.** If a term is used ambiguously, call it out in "Flagged ambiguities" with a clear resolution. +- **Keep definitions tight.** One sentence max. Define what it IS, not what it does. +- **Show relationships.** Use bold term names and express cardinality where obvious. +- **Only include terms specific to this project's context.** General programming concepts (timeouts, error types, utility patterns) don't belong even if the project uses them extensively. Before adding a term, ask: is this a concept unique to this context, or a general programming concept? Only the former belongs. +- **Group terms under subheadings** when natural clusters emerge. If all terms belong to a single cohesive area, a flat list is fine. +- **Write an example dialogue.** A conversation between a dev and a domain expert that demonstrates how the terms interact naturally and clarifies boundaries between related concepts. + +## Single vs multi-context repos + +**Single context (most repos):** One `CONTEXT.md` at the repo root. + +**Multiple contexts:** A `CONTEXT-MAP.md` at the repo root lists the contexts, where they live, and how they relate to each other: + +```md +# Context Map + +## Contexts + +- [Ordering](./src/ordering/CONTEXT.md) — receives and tracks customer orders +- [Billing](./src/billing/CONTEXT.md) — generates invoices and processes payments +- [Fulfillment](./src/fulfillment/CONTEXT.md) — manages warehouse picking and shipping + +## Relationships + +- **Ordering → Fulfillment**: Ordering emits `OrderPlaced` events; Fulfillment consumes them to start picking +- **Fulfillment → Billing**: Fulfillment emits `ShipmentDispatched` events; Billing consumes them to generate invoices +- **Ordering ↔ Billing**: Shared types for `CustomerId` and `Money` +``` + +The skill infers which structure applies: + +- If `CONTEXT-MAP.md` exists, read it to find contexts +- If only a root `CONTEXT.md` exists, single context +- If neither exists, create a root `CONTEXT.md` lazily when the first term is resolved + +When multiple contexts exist, infer which one the current topic relates to. If unclear, ask. diff --git a/.agents/skills/grill-with-docs/SKILL.md b/.agents/skills/grill-with-docs/SKILL.md new file mode 100644 index 0000000..5ea0aa9 --- /dev/null +++ b/.agents/skills/grill-with-docs/SKILL.md @@ -0,0 +1,88 @@ +--- +name: grill-with-docs +description: Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions. +--- + + + +Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer. + +Ask the questions one at a time, waiting for feedback on each question before continuing. + +If a question can be answered by exploring the codebase, explore the codebase instead. + + + + + +## Domain awareness + +During codebase exploration, also look for existing documentation: + +### File structure + +Most repos have a single context: + +``` +/ +├── CONTEXT.md +├── docs/ +│ └── adr/ +│ ├── 0001-event-sourced-orders.md +│ └── 0002-postgres-for-write-model.md +└── src/ +``` + +If a `CONTEXT-MAP.md` exists at the root, the repo has multiple contexts. The map points to where each one lives: + +``` +/ +├── CONTEXT-MAP.md +├── docs/ +│ └── adr/ ← system-wide decisions +├── src/ +│ ├── ordering/ +│ │ ├── CONTEXT.md +│ │ └── docs/adr/ ← context-specific decisions +│ └── billing/ +│ ├── CONTEXT.md +│ └── docs/adr/ +``` + +Create files lazily — only when you have something to write. If no `CONTEXT.md` exists, create one when the first term is resolved. If no `docs/adr/` exists, create it when the first ADR is needed. + +## During the session + +### Challenge against the glossary + +When the user uses a term that conflicts with the existing language in `CONTEXT.md`, call it out immediately. "Your glossary defines 'cancellation' as X, but you seem to mean Y — which is it?" + +### Sharpen fuzzy language + +When the user uses vague or overloaded terms, propose a precise canonical term. "You're saying 'account' — do you mean the Customer or the User? Those are different things." + +### Discuss concrete scenarios + +When domain relationships are being discussed, stress-test them with specific scenarios. Invent scenarios that probe edge cases and force the user to be precise about the boundaries between concepts. + +### Cross-reference with code + +When the user states how something works, check whether the code agrees. If you find a contradiction, surface it: "Your code cancels entire Orders, but you just said partial cancellation is possible — which is right?" + +### Update CONTEXT.md inline + +When a term is resolved, update `CONTEXT.md` right there. Don't batch these up — capture them as they happen. Use the format in [CONTEXT-FORMAT.md](./CONTEXT-FORMAT.md). + +`CONTEXT.md` should be totally devoid of implementation details. Do not treat `CONTEXT.md` as a spec, a scratch pad, or a repository for implementation decisions. It is a glossary and nothing else. + +### Offer ADRs sparingly + +Only offer to create an ADR when all three are true: + +1. **Hard to reverse** — the cost of changing your mind later is meaningful +2. **Surprising without context** — a future reader will wonder "why did they do it this way?" +3. **The result of a real trade-off** — there were genuine alternatives and you picked one for specific reasons + +If any of the three is missing, skip the ADR. Use the format in [ADR-FORMAT.md](./ADR-FORMAT.md). + + diff --git a/.agents/skills/microinteractions/SKILL.md b/.agents/skills/microinteractions/SKILL.md new file mode 100644 index 0000000..c82ef31 --- /dev/null +++ b/.agents/skills/microinteractions/SKILL.md @@ -0,0 +1,239 @@ +--- +name: microinteractions +description: 'Design the small details -- triggers, rules, feedback, loops and modes -- that separate good products from great ones. Use when the user mentions "microinteraction", "button feedback", "loading state", "toggle design", "animation detail", "interaction polish", "state transitions", or "input feedback". Also trigger when designing form validation responses, progress indicators, confirmation dialogs, or any UI element where the user expects immediate feedback. Covers trigger design, state rules, feedback mechanisms, and progressive loops. For overall UI polish, see refactoring-ui. For affordance design, see design-everyday-things.' +license: MIT +metadata: + author: wondelai + version: "1.1.0" +--- + +# Microinteractions Framework + +A systematic approach to designing the tiny, contained product moments that users interact with every day -- toggles, password fields, loading indicators, pull-to-refresh, like buttons. Based on Dan Saffer's four-part structure (Trigger, Rules, Feedback, Loops & Modes), this framework turns invisible details into the polish that separates forgettable products from beloved ones. + +## Core Principle + +**The difference between a product you tolerate and a product you love is almost always in the microinteractions.** A microinteraction is a contained product moment built around a single use case: changing a setting, syncing data, setting an alarm, picking a password. They are so small that users rarely think about them consciously -- but they feel them. Every microinteraction follows the same four-part structure: a Trigger initiates it, Rules determine what happens, Feedback shows what is happening, and Loops & Modes define its long-term behavior. + +## Scoring + +**Goal: 10/10.** When reviewing or creating microinteractions, rate them 0-10 based on adherence to the principles below. A 10/10 means every interactive moment has a deliberate trigger, clear rules, immediate feedback, and thoughtful loop/mode behavior. Lower scores indicate gaps to address. Always provide the current score and specific improvements needed to reach 10/10. + +## The Microinteraction Structure + +Six areas of focus for designing world-class microinteractions: + +### 1. Triggers + +**Core concept:** The trigger is what initiates a microinteraction. It can be manual (user-initiated -- a tap, click, swipe, voice command) or system-initiated (a condition is met -- time, location, incoming data, error state). The trigger is the front door of every microinteraction. + +**Why it works:** Without a clear trigger, users cannot discover or initiate the interaction. Without a system trigger, the product cannot respond to changing conditions. Well-designed triggers make functionality discoverable and set accurate expectations for what will happen next. + +**Key insights:** +- Manual triggers live inside existing UI controls: buttons, switches, icons, form fields, gestures +- System triggers fire automatically when conditions are met: time elapsed, threshold reached, data received +- A trigger must communicate three things: that it exists, what it does, and what state it is in +- Trigger affordance should match the importance of the action -- high-stakes actions need prominent triggers +- Invisible triggers (gestures, shake, proximity) must be paired with a visible alternative for discoverability +- Trigger states -- default, hover, active, disabled, loading -- must be visually distinct + +**Product applications:** + +| Context | Application | Example | +|---------|-------------|---------| +| **Toggle controls** | Manual trigger with binary state | iOS Wi-Fi switch: tap to toggle, position shows state | +| **Pull-to-refresh** | Hidden gesture trigger with visible affordance | Pulling down past threshold triggers refresh animation | +| **System alerts** | System trigger on condition met | Low battery notification at 20% threshold | +| **Search fields** | Manual trigger with auto-suggest system trigger | Typing initiates search; results appear as system trigger | +| **Hover reveals** | Manual trigger using proximity | Toolbar actions appear on card hover | + +**Ethical boundary:** Never hide critical triggers behind gestures or invisible interactions without a visible fallback. Users should always be able to discover essential functionality. + +See: [references/trigger-design.md](references/trigger-design.md) + +### 2. Rules + +**Core concept:** Rules determine what happens once a microinteraction is triggered. They define the sequence of events, the constraints on what can and cannot happen, the algorithm that processes input, and when the microinteraction ends. Rules are the invisible logic -- users never see them directly, but they feel when rules are wrong. + +**Why it works:** Rules create the mental model users build about how the interaction works. When rules are consistent and match expectations, the interaction feels natural. When rules violate expectations -- a toggle that does not toggle, a slider that jumps in value -- users lose trust. + +**Key insights:** +- Define the goal of the microinteraction first, then derive rules from it +- Rules should feel natural -- match existing mental models and platform conventions +- Constrain inputs to prevent errors: limit character counts, set value ranges, enforce formats +- Handle edge cases explicitly: what happens at zero, at maximum, on repeated triggers, on interruption +- Simple rules produce complex-feeling interactions; complex rules produce confusing interactions +- The best rules are invisible -- users do not think about them, they just work + +**Product applications:** + +| Context | Application | Example | +|---------|-------------|---------| +| **Password strength** | Rules evaluate input in real-time | Meter updates as user types; color shifts from red to green | +| **Character counter** | Rule constrains and displays remaining | Twitter/X: counter decreases, turns red at limit | +| **Volume control** | Rule maps input to output with constraints | Slider snaps to 5% increments; long-press mutes | +| **Shopping cart** | Rules manage quantity and state | Cannot go below 1; shows "max 10" at limit | +| **Undo action** | Rule sets time window for reversal | Gmail "Undo send" available for 30 seconds | + +**Ethical boundary:** Rules should be transparent and predictable. Do not create hidden rules that manipulate user behavior, such as making unsubscribe require more steps than subscribe. + +See: [references/rules-and-state.md](references/rules-and-state.md) + +### 3. Feedback + +**Core concept:** Feedback communicates the rules of the microinteraction to the user. It answers: "What is happening right now?" Feedback can be visual (color, animation, movement), auditory (clicks, chimes), or haptic (vibrations). The key constraint is showing only what matters -- minimal, meaningful, contextual. + +**Why it works:** Without feedback, users cannot tell if their action registered, if the system is working, or if the operation succeeded. Feedback closes the Gulf of Evaluation. Too little feedback creates anxiety; too much creates noise. The right feedback at the right time makes interactions feel responsive, trustworthy, and alive. + +**Key insights:** +- Feedback must be immediate -- under 100ms for direct manipulation +- Use the least noticeable feedback that still communicates: a subtle color change before a modal dialog +- Feedback should map to the significance of the event: small action = small feedback, big result = big feedback +- Visual feedback is primary; audio and haptic are supplementary and should never be the only channel +- Progress indicators reduce perceived wait time even when actual time stays the same +- Feedback should use existing elements when possible -- animate the button, not a separate notification + +**Product applications:** + +| Context | Application | Example | +|---------|-------------|---------| +| **Button press** | Visual state change on click | Button depresses, color shifts, text changes to "Saving..." | +| **Form validation** | Inline feedback as user types | Green checkmark appears next to valid email field | +| **File upload** | Progress indicator with percentage | Progress bar fills; percentage and estimated time shown | +| **Error state** | Contextual error near the source | Red border on field + message "Password must be 8+ characters" | +| **Success confirmation** | Brief, non-blocking affirmation | Checkmark animation replaces submit button for 1.5 seconds | + +**Ethical boundary:** Feedback should be honest. Do not use fake progress bars, manipulative countdown timers, or deceptive completion percentages to create false urgency. + +See: [references/feedback-patterns.md](references/feedback-patterns.md) + +### 4. Loops and Modes + +**Core concept:** Loops determine the meta-rules of a microinteraction -- what happens over time. Does the interaction change after the 100th use? Does it expire? Does it adapt? Modes are forks in the rules -- temporary states where the microinteraction behaves differently (e.g., edit mode vs. view mode). + +**Why it works:** Products that never evolve feel stale. Products that shift behavior unpredictably feel unreliable. Thoughtful loops let microinteractions mature gracefully -- reducing friction for power users while remaining discoverable for new ones. Modes, when used sparingly, let a single control serve multiple purposes without cluttering the interface. + +**Key insights:** +- Open loops continue until explicitly stopped (a repeating alarm); closed loops run once and end (a timer) +- Long loops change the microinteraction over time: first use might show a tooltip; 50th use does not +- Progressive reduction: strip away scaffolding as users demonstrate mastery +- Modes are dangerous -- they violate the principle that the same action should produce the same result +- If you must use modes, make the current mode extremely visible (Caps Lock indicator, edit mode banner) +- Avoid mode errors by minimizing the number of modes and making mode transitions deliberate + +**Product applications:** + +| Context | Application | Example | +|---------|-------------|---------| +| **Onboarding tooltips** | Long loop removes hints after N uses | First 3 sessions show "Swipe to archive"; then stop | +| **Alarm clock** | Open loop repeats daily until disabled | Alarm fires every weekday at 7am until toggled off | +| **Text editing** | Mode: view vs. edit | Banner reads "Editing" with a "Done" button to exit mode | +| **Smart defaults** | Long loop learns preferences | Email app learns you always CC your manager; suggests it | +| **Notification frequency** | Long loop adapts delivery | Reduces notifications if user ignores 5 in a row | + +**Ethical boundary:** Loops should benefit the user, not the business. Do not use adaptive loops to increase notification frequency or make opt-outs progressively harder. + +See: [references/loops-modes.md](references/loops-modes.md) + +### 5. Signature Moments + +**Core concept:** A signature moment is a microinteraction so distinctive that it becomes part of the product's identity. It transforms a functional necessity into a brand-defining detail -- the Facebook Like thumbs-up, the iPhone slide-to-unlock, Slack's loading messages. Not every microinteraction should be a signature moment, but every product should have one or two. + +**Why it works:** Signature moments create emotional memory. They make products feel crafted rather than assembled. When users describe your product to others, signature moments are what they demonstrate first. They turn utility into personality. + +**Key insights:** +- Signature moments work best on frequent, visible actions -- not buried settings +- They must be functional first, delightful second -- never sacrifice usability for novelty +- Animation, sound, and copy are the three most common tools for creating signature moments +- Signature moments should align with brand personality: playful brands get playful moments +- Restraint matters -- if everything is a signature moment, nothing is +- Test whether users would miss the detail if it were removed; if not, it is decoration, not signature + +**Product applications:** + +| Context | Application | Example | +|---------|-------------|---------| +| **Social reaction** | Animated response to engagement | Facebook Like: thumbs-up animates with particles | +| **Loading state** | Branded waiting experience | Slack: rotating quotes during load | +| **Completion** | Celebratory confirmation | Stripe payment: animated checkmark with confetti | +| **Empty state** | Personality in absence of content | Dropbox: illustrated scenes with friendly copy | +| **Error recovery** | Graceful failure with personality | GitHub 404: parallax Octocat illustration | + +**Ethical boundary:** Signature moments should never obscure important information or delay the user to show off an animation. Function always precedes delight. + +See: [references/signature-moments.md](references/signature-moments.md) + +### 6. Reducing and Simplifying + +**Core concept:** The best microinteraction is one the user barely notices because it is so simple and fast. Reduction means doing less -- fewer options, fewer steps, fewer decisions. Simplifying means making what remains feel effortless. The goal is to distill every microinteraction to its absolute essence. + +**Why it works:** Every option, field, and decision adds cognitive load. Users do not want to configure a toggle switch. They want the toggle to work. Reduction fights feature creep at the smallest level. The most elegant microinteractions have zero configuration, one action, and immediate results. + +**Key insights:** +- If a microinteraction needs instructions, it is too complex +- Remove options by choosing smart defaults -- pick the best choice and commit to it +- Collapse multi-step interactions into a single action where possible +- Use progressive disclosure: show simple first, reveal complexity only when requested +- Avoid "settings within settings" -- if a microinteraction has its own preferences, reconsider +- The number of rules should be proportional to the frequency of use: common actions need few rules + +**Product applications:** + +| Context | Application | Example | +|---------|-------------|---------| +| **Smart defaults** | Eliminate configuration | Camera app defaults to photo mode, not settings | +| **Inline editing** | Remove modal, edit in place | Spreadsheet cell: click to edit, Enter to save | +| **Auto-detection** | System handles instead of user | Credit card type detected from first digits | +| **Single action** | One tap replaces multi-step flow | Double-tap to like instead of open menu, select reaction | +| **Anticipatory design** | Predict and pre-fill | Shipping form pre-fills city and state from ZIP code | + +**Ethical boundary:** Simplification should not remove user control over meaningful choices. Do not auto-opt users into features that benefit the business at the user's expense. + +See: [references/trigger-design.md](references/trigger-design.md) for reducing trigger complexity. + +## Common Mistakes + +| Mistake | Why It Fails | Fix | +|---------|-------------|------| +| **No feedback on action** | Users do not know if their tap registered | Add immediate visual state change to every interactive element | +| **Overdesigning simple moments** | Complex animations slow down frequent actions | Reserve rich animation for infrequent, high-impact moments | +| **Ignoring edge cases** | Interaction breaks at zero, at max, or on double-tap | Map every state: empty, loading, partial, full, error, disabled | +| **Invisible triggers** | Users cannot discover functionality | Pair gesture triggers with a visible alternative | +| **Mode errors** | Same action produces different results depending on hidden state | Make current mode visible; minimize number of modes | +| **Ignoring long loops** | Interaction feels the same on day 1 and day 100 | Use progressive reduction to streamline for returning users | +| **Feedback overload** | Every action triggers a toast, sound, or animation | Use the smallest feedback that communicates; reserve big feedback for big events | +| **Fake progress indicators** | Users feel deceived when they discover the bar is fake | Use honest, deterministic progress; show indeterminate spinner when unknown | + +## Quick Diagnostic + +Audit any microinteraction: + +| Question | If No | Action | +|----------|-------|--------| +| Is there a clear, discoverable trigger? | Users cannot initiate the interaction | Add a visible control or affordance | +| Does the trigger show its current state? | Users cannot tell if it is on, off, or loading | Add distinct visual states for every trigger state | +| Are the rules simple and predictable? | Users are confused by what happened | Simplify rules; match platform conventions | +| Is there immediate feedback? | Users question whether their action worked | Add visual response within 100ms | +| Does feedback match the significance of the event? | Small actions feel dramatic or big actions feel trivial | Scale feedback to match event importance | +| Does the interaction evolve over time? | Power users are still seeing beginner hints | Add progressive reduction through long loops | +| Is the interaction free of unnecessary modes? | Users perform wrong action in wrong mode | Remove modes or make current mode highly visible | +| Could a first-time user figure it out without help? | Interaction needs explanation | Simplify or add a one-time hint via long loop | + +## Reference Files + +- [trigger-design.md](references/trigger-design.md): Manual and system triggers, trigger affordances, trigger states, invisible trigger design, placement and visibility +- [rules-and-state.md](references/rules-and-state.md): Defining rules, state management, constraints, error states, edge cases +- [feedback-patterns.md](references/feedback-patterns.md): Visual, audio, and haptic feedback, timing, progressive disclosure, preventing overload +- [loops-modes.md](references/loops-modes.md): Open and closed loops, long loops, modes, mode errors, progressive complexity +- [signature-moments.md](references/signature-moments.md): Brand-defining microinteractions, examples, when to invest, making mundane interactions delightful +- [case-studies.md](references/case-studies.md): Detailed design breakdowns of form submission, toggle/switch, pull-to-refresh, loading states, and notifications + +## Further Reading + +This skill is based on Dan Saffer's definitive guide to designing the details that separate good products from great ones: + +- [*"Microinteractions: Designing with Details"*](https://www.amazon.com/Microinteractions-Full-Color-Designing-Details/dp/1491945923?tag=wondelai00-20) by Dan Saffer + +## About the Author + +**Dan Saffer** is a designer, author, and design leader who has led design teams at Twitter, Jawbone, and Smart Design. He is known for his work on interaction design at the detail level -- the small, contained moments that make up the bulk of user experience. *Microinteractions* codified a framework that design teams at companies worldwide use to audit, design, and improve the small details that make products feel polished and alive. Saffer has also authored *Designing for Interaction* and *Designing Gestural Interfaces*, and he speaks regularly at design conferences on the craft of interaction design. diff --git a/.agents/skills/microinteractions/references/case-studies.md b/.agents/skills/microinteractions/references/case-studies.md new file mode 100644 index 0000000..d6c70b5 --- /dev/null +++ b/.agents/skills/microinteractions/references/case-studies.md @@ -0,0 +1,371 @@ +# Microinteraction Case Studies + +Detailed design breakdowns of common UI patterns, analyzed through the four-part microinteraction structure: Trigger, Rules, Feedback, and Loops & Modes. Each case study documents the interaction from first use through edge cases, providing a practical blueprint for implementation. + +## Table of Contents +1. [Case Study 1: Form Submission](#case-study-1-form-submission) +2. [Case Study 2: Toggle / Switch](#case-study-2-toggle-switch) +3. [Case Study 3: Pull-to-Refresh](#case-study-3-pull-to-refresh) +4. [Case Study 4: Loading States](#case-study-4-loading-states) +5. [Case Study 5: Notifications (Toast / Snackbar)](#case-study-5-notifications-toast-snackbar) +6. [Cross-Cutting Patterns](#cross-cutting-patterns) + +--- + +## Case Study 1: Form Submission + +A form submission microinteraction covers the moment from when the user taps "Submit" to when they receive confirmation of success or details of failure. It is one of the highest-stakes microinteractions because users have invested time and data. + +### The Four Parts + +**Trigger:** +- Manual trigger: "Submit" button (primary action, full-width or prominent) +- Keyboard trigger: Enter key in last field (convention, not always expected) +- System trigger: Auto-save draft after 30 seconds of inactivity (background) + +**Rules:** +1. On trigger, validate all required fields client-side before sending to server +2. If validation fails, prevent submission and highlight first invalid field +3. If validation passes, disable submit button and show loading state +4. Send data to server +5. On server success (200), show success feedback and redirect or reset form +6. On server error (4xx/5xx), show error message and preserve all input +7. On network timeout (>15 seconds), show retry option with preserved input + +**Feedback:** + +| State | Visual | Copy | Duration | +|-------|--------|------|----------| +| **Idle** | Blue "Submit" button, normal state | "Submit" or "Create Account" | Persistent | +| **Validating** | Button briefly disabled | "Checking..." | 0-500ms | +| **Validation error** | Red border on invalid fields, scroll to first error | "Please enter a valid email" inline | Until corrected | +| **Submitting** | Button shows spinner, text changes | "Submitting..." | Server response time | +| **Success** | Green checkmark replaces spinner | "Done! Redirecting..." | 1-2 seconds | +| **Server error** | Red banner at top, button re-enabled | "Something went wrong. Please try again." | Until dismissed | +| **Network error** | Yellow banner, retry button | "Connection lost. Your data is saved locally." | Until retry succeeds | + +**Loops & Modes:** +- Auto-save loop: draft saved to local storage every 30 seconds (open loop) +- Long loop: after 3+ submissions, hide optional tooltips and field hints +- No modes (single-purpose interaction) + +### Edge Cases + +| Edge Case | Handling | +|-----------|---------| +| User double-clicks submit | Disable button on first click; debounce server request | +| User navigates away mid-submission | Show "Unsaved changes" dialog; save draft to local storage | +| Session expires during submission | Queue submission; re-authenticate and retry | +| Very long form (20+ fields) | Show progress indicator; validate sections independently | +| Paste of formatted text | Strip formatting; accept plain text only | +| Autofill conflict | Accept autofill values; re-validate on submit | + +### Implementation Notes + +| Platform | Key Detail | +|----------|-----------| +| **Web** | Use `
` native validation as baseline; enhance with JS. Preserve form data in `sessionStorage`. | +| **iOS** | Use `UITextFieldDelegate` for per-field validation. Keyboard "Return" key should move to next field, not submit. | +| **Android** | `TextInputLayout` with `setError()` for inline validation. Handle back button to save draft. | + +--- + +## Case Study 2: Toggle / Switch + +A toggle is a binary microinteraction: on or off. Despite its apparent simplicity, a well-designed toggle requires careful attention to state communication, animation timing, and accessibility. + +### The Four Parts + +**Trigger:** +- Manual trigger: tap/click anywhere on the toggle (track or thumb) +- Keyboard trigger: Space bar when toggle is focused +- Drag trigger: drag thumb from one position to the other +- System trigger: external state change (admin disables feature remotely) + +**Rules:** +1. On trigger, immediately start transition animation +2. If action requires server confirmation, send request in background +3. Toggling on may trigger additional UI (reveal settings, enable features) +4. Toggling off may trigger confirmation dialog for destructive changes +5. If server rejects the change, revert toggle to previous state with error message +6. Rapid toggling (clicking multiple times fast) should debounce: only the final state is sent + +**Feedback:** + +| State | Thumb Position | Track Color | Label (if used) | Haptic | +|-------|---------------|-------------|-----------------|--------| +| **Off** | Left | Gray (#E5E7EB) | "Off" | None | +| **Transitioning on** | Sliding right | Transitioning to green | -- | None | +| **On** | Right | Green (#22C55E) | "On" | Light tap | +| **Transitioning off** | Sliding left | Transitioning to gray | -- | None | +| **Disabled** | Current position | Faded (40% opacity) | "Unavailable" | None | +| **Loading** | Current position | Faded with inline spinner | "Updating..." | None | +| **Error** | Reverted position | Flash red briefly, return to normal | "Failed to update" | Error pattern | + +**Loops & Modes:** +- No traditional loop (single action) +- Long loop: if toggle controls a feature with settings, first 3 toggles might show a tooltip explaining the feature +- No modes + +### Animation Specification + +| Property | Value | Easing | +|----------|-------|--------| +| Thumb position (left to right) | 150-200ms | ease-in-out | +| Track color transition | 150-200ms | ease-in-out (synchronized with thumb) | +| Thumb shadow on drag | 100ms to enlarge shadow | ease-out | +| Revert on error | 200ms | ease-out with red flash | + +### Accessibility + +| Requirement | Implementation | +|-------------|---------------| +| **ARIA role** | `role="switch"` with `aria-checked="true/false"` | +| **Focus indicator** | 2px blue outline around entire toggle on Tab focus | +| **Keyboard** | Space bar toggles; no Enter (per switch role spec) | +| **Screen reader** | "Wi-Fi, switch, on" -- announces label, role, and state | +| **Reduced motion** | Skip animation; instant state change | +| **Touch target** | Minimum 44x44pt including padding around toggle | + +### Edge Cases + +| Edge Case | Handling | +|-----------|---------| +| Toggle + settings reveal | Settings panel slides open below toggle; accordion animation 200ms | +| Toggle with destructive off | Confirmation dialog: "Disabling will delete all data. Are you sure?" | +| Toggle server failure | Revert toggle; show inline error for 3 seconds | +| Rapid toggling | Debounce 500ms; only send final state to server | +| Toggle with dependent toggles | Child toggles disable when parent turns off | + +--- + +## Case Study 3: Pull-to-Refresh + +Pull-to-refresh is a gesture-triggered microinteraction invented by Loren Brichter for Tweetie (acquired by Twitter). It transforms a natural gesture (pulling down on a list) into a data refresh. It is one of the most widely adopted microinteraction patterns in mobile design. + +### The Four Parts + +**Trigger:** +- Manual trigger: pull down on a scrollable list past a threshold (~60pt) +- The trigger is invisible -- no button exists; the gesture is the trigger +- System fallback: auto-refresh on app foreground after X minutes (system trigger) + +**Rules:** +1. User must be scrolled to the top of the list for pull to activate +2. Pulling down below threshold shows visual hint but does not trigger refresh +3. Pulling past threshold (typically 60-80pt) "locks" the refresh +4. Releasing after passing threshold triggers the refresh request +5. Releasing before threshold snaps back with no refresh +6. While refreshing, spinner remains visible at top; list is still scrollable +7. On data received, new content animates into list; spinner dismisses +8. On failure, spinner dismisses; error message appears briefly +9. Minimum spinner display: 500ms (prevents flash for fast connections) + +**Feedback:** + +| Pull Distance | Visual Feedback | Haptic Feedback | +|--------------|----------------|-----------------| +| **0-20pt** | Slight rubber-band stretch | None | +| **20-60pt** | Spinner icon appears, partially rotated proportional to pull | None | +| **60pt (threshold)** | Spinner completes rotation; visual snap indicating activation | Light tap (selection feedback) | +| **60pt+ (past threshold)** | Spinner remains complete; pull distance continues with resistance | None | +| **Release (past threshold)** | Spinner animates (spinning); list adjusts to accommodate | None | +| **Data received** | Spinner stops; new items slide in from top; spinner area collapses | None | +| **Error** | Spinner stops; brief error text ("Could not refresh"); area collapses | Error pattern | + +**Loops & Modes:** +- Auto-refresh loop: if user has not pulled-to-refresh in 5+ minutes and returns to app, auto-refresh fires (system trigger) +- Long loop: for first 3 uses on a new device, show a subtle "Pull down to refresh" hint text +- Rate limiting rule: ignore pull-to-refresh if last refresh was < 5 seconds ago +- No modes + +### Discoverability Strategy + +Pull-to-refresh has zero visible affordance -- it relies entirely on platform convention. For apps where users might not know the gesture: + +| Strategy | Implementation | When to Remove | +|----------|---------------|----------------| +| **Hint text** | "Pull down to refresh" text above list, visible at scroll top | After 3 successful pull-to-refresh actions | +| **Auto-refresh on first load** | Show the refresh animation automatically on first visit | After first visit only | +| **Visible refresh button** | Small refresh icon in header as fallback | Never (always keep as alternative) | + +### Platform-Specific Implementations + +| Platform | Key Detail | +|----------|-----------| +| **iOS** | `UIRefreshControl` -- native component. Spinner is an `ActivityIndicator`. Threshold is system-defined. | +| **Android** | `SwipeRefreshLayout` -- Material Design. Uses circular progress that fills as user pulls. | +| **Web** | Custom implementation required. Must handle touch events; prevent native browser pull-to-refresh interference. Use `overscroll-behavior: contain` on scroll container. | + +--- + +## Case Study 4: Loading States + +Loading is not a single microinteraction but a family of patterns for communicating "the system is working." The design challenge is keeping users informed and engaged during a period they cannot control. + +### Loading Pattern Selection + +| Scenario | Best Pattern | Why | +|----------|-------------|-----| +| **< 300ms** | No indicator (instant feel) | Any indicator would flash distractingly | +| **300ms - 1s** | Inline spinner | Acknowledges loading without drama | +| **1s - 5s** | Skeleton screen | Shows layout immediately; reduces perceived wait | +| **5s - 30s** | Determinate progress bar | Users need to see actual progress | +| **30s+** | Progress bar + background option | Users should be able to do other things | +| **Unknown duration** | Indeterminate spinner + status text | Transparency: "Processing..." then "Almost done..." | + +### Skeleton Screen Design + +**Trigger:** System trigger -- content request initiated. + +**Rules:** +1. Show skeleton immediately on navigation (within 100ms) +2. Skeleton shapes must match the final layout precisely +3. Use subtle pulse animation on skeleton shapes (opacity 0.3 to 0.6, 1.5s loop) +4. Load content progressively: text first, then images +5. Crossfade from skeleton to real content (200ms) +6. Never show skeleton for content already in cache + +**Skeleton Visual Specification:** + +| Content Type | Skeleton Shape | Color | Animation | +|-------------|---------------|-------|-----------| +| **Text line** | Rounded rectangle, 60-80% width | Gray-200 (#E5E7EB) | Pulse 0.3-0.6 opacity | +| **Heading** | Rounded rectangle, 40-50% width, taller | Gray-200 | Pulse 0.3-0.6 opacity | +| **Avatar** | Circle, matching avatar size | Gray-200 | Pulse 0.3-0.6 opacity | +| **Image** | Rounded rectangle, matching aspect ratio | Gray-200 | Pulse 0.3-0.6 opacity | +| **Button** | Rounded rectangle, matching button size | Gray-200 | Pulse 0.3-0.6 opacity | + +### Progress Bar Design + +**Trigger:** System trigger -- long operation begins. + +**Rules:** +1. Appear within 200ms of operation start +2. Progress must be real (based on actual progress, not fake animation) +3. Never go backward (if real progress reverses, pause at current point) +4. Final 5% should be server confirmation, not client processing +5. On completion, bar fills to 100%, brief pause, then success state + +**Feedback:** + +| Progress State | Visual | Text | +|---------------|--------|------| +| **0%** | Empty bar with subtle background | "Starting upload..." | +| **1-99%** | Bar fills proportionally; color stays blue | "Uploading... 47%" | +| **99%** | Bar nearly full; slight pause | "Finalizing..." | +| **100%** | Bar fills completely; transitions to green | "Complete!" | +| **Error at any point** | Bar turns red; stops at current position | "Upload failed at 47%. Retry?" | +| **Cancelled** | Bar fades out; reset | "Upload cancelled." | + +### Loading State Accessibility + +| Requirement | Implementation | +|-------------|---------------| +| Screen reader | `aria-live="polite"` region announces "Loading content" and "Content loaded" | +| Progress bar | `role="progressbar"` with `aria-valuenow`, `aria-valuemin`, `aria-valuemax` | +| Reduced motion | Replace pulse animation with static gray; replace spinner with "Loading..." text | +| Timeout | If loading exceeds 30 seconds, announce "Still loading. You can continue waiting or try again." | + +--- + +## Case Study 5: Notifications (Toast / Snackbar) + +Notifications are transient microinteractions that communicate system events without requiring full user attention. They appear, convey a message, and disappear -- but the design details determine whether they are helpful or infuriating. + +### The Four Parts + +**Trigger:** +- System trigger: action completes (save, send, delete) +- System trigger: external event occurs (new message, status change) +- System trigger: error detected (network loss, permission denied) +- Manual trigger: user action with reversible outcome (delete triggers "Undo" toast) + +**Rules:** +1. Appear in a consistent position (bottom-center for mobile, bottom-left or top-right for desktop) +2. Stack if multiple appear simultaneously (limit to 3 visible; queue additional) +3. Auto-dismiss after 5-8 seconds for informational; persist for errors until acknowledged +4. Slide in with animation (300ms); slide out on dismiss (200ms) +5. Must not cover critical UI elements (primary actions, navigation) +6. If toast contains an action ("Undo"), the action must be available for the entire display duration +7. Dismissable via swipe (mobile) or close button (desktop) + +**Feedback:** + +| Notification Type | Background Color | Icon | Auto-Dismiss | Action | +|------------------|-----------------|------|-------------|--------| +| **Success** | Green or dark gray | Checkmark | 5 seconds | None or "View" | +| **Info** | Blue or dark gray | Info circle | 5 seconds | Optional link | +| **Warning** | Yellow/amber | Warning triangle | 8 seconds | "Fix" or "Dismiss" | +| **Error** | Red | X circle | No (persist) | "Retry" and "Dismiss" | +| **Undo** | Dark gray | Undo arrow | 8 seconds | "Undo" (primary) | + +**Loops & Modes:** +- Stacking loop: if user triggers 5 actions rapidly, queue toasts; show max 3 at once +- Long loop: if same notification appears 3+ times in a session, batch: "3 items saved" +- Consolidation: "3 files uploaded" instead of three separate "File uploaded" toasts +- No modes + +### Toast Layout Specification + +``` +┌────────────────────────────────────────────────┐ +│ [Icon] Message text here [Action] [X]│ +│ Secondary text (optional) │ +└────────────────────────────────────────────────┘ +``` + +| Element | Specification | +|---------|--------------| +| Width | Min 288px, max 568px (desktop); full-width minus margins (mobile) | +| Height | Min 48px, max 112px (2 lines + action) | +| Padding | 16px horizontal, 12px vertical | +| Border radius | 8px | +| Shadow | Medium elevation (shadow-md) | +| Position | Bottom-center (mobile), bottom-left or top-right (desktop), 16px from edge | +| Z-index | Above all content, below modals and dialogs | + +### Animation Specification + +| Transition | Duration | Easing | Direction | +|-----------|----------|--------|-----------| +| Enter | 300ms | ease-out (deceleration) | Slide up from below (mobile) or slide in from right (desktop) | +| Exit (auto-dismiss) | 200ms | ease-in (acceleration) | Slide down or fade out | +| Exit (swipe dismiss) | 150ms | ease-out | Follow swipe direction | +| Stack push | 200ms | ease-in-out | Existing toasts shift up to accommodate new one | + +### Accessibility + +| Requirement | Implementation | +|-------------|---------------| +| Screen reader | `role="status"` with `aria-live="polite"` (info/success); `role="alert"` with `aria-live="assertive"` (error) | +| Focus management | Do not steal focus from user's current position; action button reachable via Tab | +| Keyboard | Esc key dismisses; Tab reaches action buttons | +| Timeout | For error toasts, no auto-dismiss; for info toasts, pause timer on hover/focus | +| Reduced motion | Replace slide animation with fade (200ms) | + +### Edge Cases + +| Edge Case | Handling | +|-----------|---------| +| 10 toasts triggered at once | Queue: show 3; dismiss oldest first; show queued | +| Toast covers primary action | Reposition toast above the action; or provide alternative placement | +| User clicks Undo at last second | Accept undo if within the timeout window, even if fade-out started | +| Toast during full-screen mode | Overlay on top of full-screen content with higher z-index | +| Long text content | Truncate at 2 lines with "..." and "Show more" link | +| Network loss while showing "Undo" | Queue undo action locally; execute when connection returns | + +--- + +## Cross-Cutting Patterns + +### Patterns That Apply Across All Case Studies + +| Pattern | Application | Example | +|---------|-------------|---------| +| **Debouncing** | Prevent rapid duplicate triggers | Double-click submit, rapid toggle, pull-to-refresh spam | +| **Optimistic UI** | Show result before server confirms | Toggle, like, delete with undo | +| **Progressive disclosure** | Show simple first, details on demand | Error summary first, full details expandable | +| **Graceful degradation** | Work without JavaScript, animation, or haptics | Form submits via native HTML; toggle works without animation | +| **Accessibility baseline** | All patterns must work for all users | ARIA roles, keyboard operation, reduced motion, screen reader | +| **State persistence** | Preserve user work across interruptions | Form drafts, scroll position, toggle state | diff --git a/.agents/skills/microinteractions/references/feedback-patterns.md b/.agents/skills/microinteractions/references/feedback-patterns.md new file mode 100644 index 0000000..a9c4c56 --- /dev/null +++ b/.agents/skills/microinteractions/references/feedback-patterns.md @@ -0,0 +1,287 @@ +# Feedback Patterns for Microinteractions + +Feedback is how a microinteraction communicates its rules to the user. It answers the most fundamental question in any interaction: "What just happened?" Without feedback, users operate in the dark -- unsure if their action registered, if the system is working, or if the result was what they intended. Feedback bridges the Gulf of Evaluation by making the invisible visible. + +## The Feedback Hierarchy + +Not all feedback is equal. The type, intensity, and duration of feedback should match the significance of the event. + +| Event Significance | Feedback Level | Duration | Example | +|-------------------|---------------|----------|---------| +| **Micro** (hover, focus) | Subtle visual change | Instant, continuous | Background lightens on hover | +| **Minor** (tap, toggle) | Clear visual change | 100-300ms | Toggle slides, color shifts | +| **Medium** (save, send) | Visual change + state label | 1-3 seconds | "Saved" text appears briefly | +| **Major** (purchase, delete) | Multi-signal confirmation | 3-5 seconds, user-dismissable | Confirmation banner with undo option | +| **Critical** (error, failure) | Prominent, persistent | Until acknowledged | Red banner with error message and action | + +### The Minimum Feedback Rule + +**Use the least amount of feedback that still communicates the message.** A hover state does not need a sound effect. A successful save does not need a modal dialog. A button press does not need a full-screen animation. Escalate feedback only when the event demands it. + +--- + +## Visual Feedback + +Visual feedback is the primary feedback channel for nearly every microinteraction. It is silent, non-intrusive, and universally accessible (when designed with sufficient contrast). + +### Color Changes + +| Pattern | When to Use | Implementation | Example | +|---------|-------------|---------------|---------| +| **State color shift** | Show current state | Background or border color changes | Toggle track: gray (off) to green (on) | +| **Validation color** | Indicate input validity | Border or icon color changes | Green border = valid, red border = invalid | +| **Progress color** | Show completion level | Fill color changes as progress increases | Upload bar shifts from blue to green at 100% | +| **Attention color** | Draw focus to a change | Brief highlight animation | Row flashes yellow after being updated | +| **Semantic color** | Communicate meaning | Consistent color system | Red = error, green = success, yellow = warning, blue = info | + +### Animations + +| Animation Type | Duration | Easing | When to Use | Example | +|---------------|----------|--------|-------------|---------| +| **Button press** | 50-100ms | ease-out | Every button interaction | Scale down to 0.97, then back | +| **Toggle slide** | 150-250ms | ease-in-out | Binary state change | Thumb slides from left to right | +| **Expand/collapse** | 200-300ms | ease-in-out | Revealing or hiding content | Accordion section opens smoothly | +| **Fade in/out** | 150-300ms | ease-in (in), ease-out (out) | Elements appearing/disappearing | Toast notification fades in | +| **Slide in/out** | 200-400ms | ease-out (in), ease-in (out) | Panels, drawers, sheets | Side panel slides from right edge | +| **Skeleton to content** | 200-400ms | ease-in-out | Content loading | Gray placeholders crossfade to real content | +| **Checkmark draw** | 300-500ms | ease-out | Success confirmation | SVG checkmark animates stroke from left to right | +| **Shake** | 300-500ms | ease-in-out (oscillate) | Invalid input | Field shakes horizontally 2-3 times | +| **Bounce** | 200-400ms | spring | Attention, arrival | New item bounces into list | + +### Animation Principles for Microinteractions + +**1. Purpose over decoration.** Every animation should communicate something: state change, direction, connection, or confirmation. If you cannot articulate what the animation communicates, remove it. + +**2. Interruptible.** If the user acts before an animation completes, the animation should yield to the new action. Never make users wait for an animation to finish. + +**3. Consistent timing.** Use a small set of durations (100ms, 200ms, 300ms, 500ms) and apply them consistently by category. Do not use random durations. + +**4. Physics-based easing.** Use ease-out for elements entering (decelerating arrival), ease-in for elements leaving (accelerating departure), and ease-in-out for elements that stay but change state. + +### Progress Indicators + +| Indicator Type | When to Use | Design Details | +|---------------|-------------|----------------| +| **Determinate progress bar** | Duration is known or estimable | Shows percentage; bar fills left to right; show time remaining if > 10s | +| **Indeterminate spinner** | Duration is unknown, expected < 10s | Rotating circle or dots; use brand-consistent style | +| **Skeleton screen** | Content layout is known, data loading | Gray rectangles matching final layout shape and size | +| **Percentage text** | Long operations where users want precision | "47% complete" text; pair with progress bar | +| **Step indicator** | Multi-step process | "Step 2 of 4" with visual step markers | +| **Inline spinner** | Loading within a specific component | Small spinner inside the button or field that triggered loading | + +### Progress Indicator Selection Guide + +| Load Time | Best Indicator | Why | +|-----------|---------------|-----| +| < 0.3s | None (instant) | Any indicator would flash and distract | +| 0.3-1s | Subtle inline spinner | Acknowledges loading without overdoing it | +| 1-5s | Skeleton screen or spinner | Shows the system is working | +| 5-30s | Determinate progress bar | Users need to see progress | +| 30s+ | Progress bar + percentage + estimated time | Users need reassurance and ability to leave | + +--- + +## Audio Feedback + +Audio feedback provides confirmation through sound. It is powerful when visual attention is elsewhere, but it is easily annoying and must be used sparingly. + +### When Audio Feedback Is Appropriate + +| Appropriate | Inappropriate | +|-------------|---------------| +| Confirmation of important action (payment, send) | Every button click | +| Error that needs immediate attention | Form validation errors | +| Background task completion (download, print) | Hover or focus changes | +| Accessibility (screen reader announcements) | Decorative or branding sounds | +| Physical product interaction (keyboard typing) | Any action that occurs frequently (> 10x/min) | + +### Audio Feedback Design Rules + +**1. Short.** Sounds should be 50-200ms for confirmations, up to 1 second for completions. Never longer. + +**2. Quiet.** Default volume should be unobtrusive. Users should be able to disable all sounds. + +**3. Distinct.** Success and error sounds must be obviously different -- do not rely on subtle pitch changes. + +**4. Non-verbal.** Avoid spoken words in feedback sounds (they do not scale across languages and are slow). Pure tones or abstract sounds work best. + +**5. Consistent.** Use the same sound for the same type of event across the entire product. Success always sounds the same. + +### Audio Feedback Patterns + +| Event | Sound Character | Duration | Example Reference | +|-------|----------------|----------|-------------------| +| **Success** | Rising pitch, major chord | 100-300ms | iOS payment success chime | +| **Error** | Low buzz or discordant tone | 100-200ms | macOS alert sound | +| **Notification** | Gentle chime, mid-range | 200-500ms | Slack notification ding | +| **Completion** | Satisfying click or chime | 100-200ms | Camera shutter sound | +| **Typing** | Soft click per keystroke | 20-50ms | iPhone keyboard clicks | +| **Delete/Trash** | Crumple or whoosh | 200-400ms | macOS trash sound | + +--- + +## Haptic Feedback + +Haptic feedback uses vibration or force feedback to communicate through touch. It is available on mobile devices and some game controllers, laptops, and wearables. + +### Haptic Feedback Patterns + +| Pattern | iOS API | Android API | When to Use | +|---------|---------|-------------|-------------| +| **Light tap** | .light impact | HapticFeedbackConstants.CLOCK_TICK | Toggle, checkbox, minor selection | +| **Medium tap** | .medium impact | HapticFeedbackConstants.CONTEXT_CLICK | Button press, drag snap | +| **Heavy tap** | .heavy impact | HapticFeedbackConstants.LONG_PRESS | Confirmation of significant action | +| **Success** | .success notification | Custom pattern: short-pause-long | Action completed successfully | +| **Warning** | .warning notification | Custom pattern: two short bursts | Approaching limit, caution needed | +| **Error** | .error notification | Custom pattern: three rapid bursts | Action failed, attention needed | +| **Selection tick** | .selection changed | HapticFeedbackConstants.KEYBOARD_TAP | Scrolling through picker values | + +### Haptic Design Rules + +**1. Pair with visual.** Haptic feedback should always accompany visual feedback, never replace it. Some devices have haptics disabled, and users with motor impairments may not feel vibrations. + +**2. Match intensity to significance.** Light tap for toggles. Medium for confirmations. Heavy for warnings. Never heavy for routine actions. + +**3. Use sparingly.** Constant vibration is annoying and drains battery. Reserve haptics for moments where tactile confirmation adds genuine value. + +**4. Respect system settings.** Always check if the user has disabled haptic feedback at the system level. Never override this preference. + +--- + +## Feedback Timing + +When feedback occurs is as important as what feedback occurs. The human perception system has specific thresholds that determine whether feedback feels instant, delayed, or broken. + +### Perception Thresholds + +| Delay | User Perception | Required Feedback | +|-------|----------------|-------------------| +| **0-100ms** | Instantaneous -- feels like direct manipulation | Visual state change (color, position) | +| **100-300ms** | Slight lag but still responsive | Transition animation, inline spinner | +| **300ms-1s** | Noticeable delay | Loading indicator, cursor change | +| **1-5s** | Waiting | Spinner, skeleton screen, "Loading..." | +| **5-10s** | Attention wanders | Progress bar with estimate | +| **10-30s** | Impatient | Progress bar + percentage + "X seconds remaining" | +| **30s+** | Will leave or switch tasks | Progress bar + allow backgrounding + notification on completion | + +### Optimistic UI Pattern + +Show the result immediately and correct later if the action fails. This makes the interface feel instant even when the server takes time. + +| Step | What Happens | Example | +|------|-------------|---------| +| 1. User triggers | Show success state immediately | Heart fills red instantly on like | +| 2. Send request | API call fires in background | POST /like runs asynchronously | +| 3a. Server confirms | Nothing changes (already showing success) | Response 200: no visual change | +| 3b. Server fails | Revert to previous state with error | Heart unfills; toast: "Could not save like" | + +**When to use optimistic UI:** +- Action is very likely to succeed (> 99%) +- Reverting is possible and not confusing +- The action is low-stakes (not a payment or deletion) + +**When NOT to use optimistic UI:** +- Action has a significant failure rate +- Action is irreversible +- Reverting would be confusing (e.g., message appears then disappears) + +--- + +## Progressive Disclosure in Feedback + +Not all feedback needs to appear at once. Progressive disclosure reveals information in layers, starting with the most important. + +### Feedback Layering + +| Layer | What It Shows | When | Example | +|-------|-------------|------|---------| +| **Immediate** | "Your action was received" | 0-100ms | Button changes state | +| **Status** | "Here's what's happening" | 100ms-3s | Spinner, progress bar | +| **Result** | "Here's the outcome" | On completion | Success message, error details | +| **Detail** | "Here's the specifics" | On demand (hover, click) | Tooltip with timestamp, expandable error log | + +### Progressive Error Disclosure + +| Level | What to Show | Example | +|-------|-------------|---------| +| **Summary** | One-line human-readable error | "Upload failed" | +| **Explanation** | Why it happened | "The file is too large (12MB). Maximum size is 10MB." | +| **Resolution** | How to fix it | "Try compressing the image or choosing a smaller file." | +| **Technical detail** | For developers or support | Expandable: "Error 413: Request Entity Too Large. Request ID: abc123" | + +--- + +## Preventing Feedback Overload + +Too much feedback is as bad as too little. When every action triggers a toast notification, animation, and sound, users become desensitized and miss the feedback that actually matters. + +### Signs of Feedback Overload + +| Symptom | Cause | Fix | +|---------|-------|-----| +| Users ignore toast notifications | Too many toasts for minor events | Reserve toasts for actions user may want to undo | +| Interface feels "jittery" | Too many animations on trivial events | Remove animation from hover/focus; keep for state changes | +| Users disable notifications | Every event sends a push notification | Tier notifications; only push for high-priority events | +| Sound becomes annoying | Every click has an audio cue | Remove audio from routine actions; keep for confirmations | +| Screen reader users overwhelmed | Too many aria-live announcements | Announce only meaningful state changes | + +### Feedback Reduction Strategies + +**1. Consolidate.** Instead of four separate toast messages for four file uploads, show one: "4 files uploaded successfully." + +**2. Delay and batch.** Accumulate minor events and present them as a summary: "While you were away: 3 likes, 2 comments, 1 share." + +**3. Tier by priority.** Define three tiers of feedback intensity and assign every event type to a tier: + +| Tier | Intensity | Feedback Type | Events | +|------|-----------|--------------|--------| +| **1 (High)** | Multi-signal, persistent | Banner + sound + haptic | Errors, destructive confirmations, payment success | +| **2 (Medium)** | Single signal, temporary | Toast or inline text | Save success, status change, minor warning | +| **3 (Low)** | Minimal, passive | Visual state change only | Hover, focus, toggle, minor selection | + +**4. Respect context.** Reduce feedback when: +- User is performing rapid sequential actions (bulk editing) +- System is in background/minimized +- User has indicated preference for fewer notifications + +--- + +## Feedback Accessibility + +Feedback must work for all users, including those who cannot see animations, hear sounds, or feel vibrations. + +### Accessibility Requirements + +| User Group | Feedback Adaptation | +|-----------|---------------------| +| **Screen reader users** | Use aria-live regions (polite for status, assertive for errors) to announce state changes | +| **Low vision users** | Ensure color changes have sufficient contrast (3:1 minimum for state changes); do not rely on color alone | +| **Motion-sensitive users** | Respect prefers-reduced-motion; replace animations with instant state changes | +| **Deaf/hard of hearing users** | Never rely on audio as sole feedback channel; always pair with visual | +| **Keyboard-only users** | Focus indicators must be visible on all interactive elements; state changes near focus | + +### Accessibility Feedback Checklist + +- [ ] Can every state change be perceived without color alone (shape, text, or icon accompanies color)? +- [ ] Are error messages announced to screen readers via aria-live="assertive"? +- [ ] Are success messages announced via aria-live="polite"? +- [ ] Do animations respect prefers-reduced-motion media query? +- [ ] Is all audio feedback accompanied by a visual equivalent? +- [ ] Can keyboard users perceive which element has focus? +- [ ] Do loading states have an accessible label ("Loading...", role="status")? +- [ ] Are progress bars accessible (role="progressbar", aria-valuenow, aria-valuemin, aria-valuemax)? + +--- + +## Feedback Design Checklist + +- [ ] Does every interactive element provide immediate visual feedback on activation? +- [ ] Is feedback proportional to event significance (small action = small feedback)? +- [ ] For operations > 300ms, is there a loading indicator? +- [ ] For operations > 10 seconds, is there a progress bar? +- [ ] Do error messages explain what happened and how to fix it? +- [ ] Is success feedback brief and non-blocking (does not require dismissal)? +- [ ] Are animations under 500ms and interruptible? +- [ ] Is audio feedback optional and disabled by default (except essential alerts)? +- [ ] Does haptic feedback match system settings? +- [ ] Are all feedback channels accessible (visual + ARIA + reduced-motion support)? diff --git a/.agents/skills/microinteractions/references/loops-modes.md b/.agents/skills/microinteractions/references/loops-modes.md new file mode 100644 index 0000000..5aae42b --- /dev/null +++ b/.agents/skills/microinteractions/references/loops-modes.md @@ -0,0 +1,257 @@ +# Loops and Modes in Microinteractions + +Loops and modes are the long-term behavior of microinteractions. While triggers, rules, and feedback handle the moment-to-moment experience, loops and modes determine how an interaction evolves over time and how it adapts to different contexts. They are the mechanism for making microinteractions feel alive -- growing with the user, adapting to behavior, and avoiding stagnation. + +## Understanding Loops + +A loop is a cycle that a microinteraction goes through repeatedly. The key question is: what happens when the microinteraction is triggered again? Does it behave the same way? Does it adapt? Does it expire? + +### Open Loops vs. Closed Loops + +| Type | Behavior | Ends When | Example | +|------|----------|-----------|---------| +| **Open loop** | Repeats indefinitely until manually stopped | User or system explicitly stops it | Repeating alarm clock, auto-save every 5 minutes | +| **Closed loop** | Runs a fixed number of times or for a fixed duration | Completion condition is met | Countdown timer (reaches zero), 3-retry limit | + +### Designing Open Loops + +Open loops run continuously and need careful management to avoid becoming annoying or resource-wasteful. + +**Design considerations:** + +| Consideration | Guideline | Example | +|---------------|-----------|---------| +| **Frequency** | Match repetition rate to user need | Auto-save: every 30 seconds, not every second | +| **Visibility** | Show loop status without being intrusive | Small "Last saved: 2 min ago" text in footer | +| **Control** | Let users adjust or stop the loop | Toggle to enable/disable auto-save; frequency setting | +| **Resource impact** | Minimize battery, network, and CPU usage | Poll for updates every 60s, not every second; use WebSockets when available | +| **Failure handling** | Degrade gracefully if a cycle fails | Skip failed auto-save; retry next cycle; show warning after 3 failures | + +### Designing Closed Loops + +Closed loops have a natural endpoint. The design challenge is communicating progress and handling completion. + +**Design considerations:** + +| Consideration | Guideline | Example | +|---------------|-----------|---------| +| **Progress** | Show how far along the loop is | "Attempt 2 of 3" or progress ring | +| **Completion** | Clear signal when loop ends | Timer reaches 00:00 with sound/vibration | +| **Early exit** | Allow cancellation before completion | "Cancel" button on countdown timer | +| **End state** | Define what happens after the last cycle | Timer shows "Done!" with dismiss action | +| **Failure to complete** | Handle cases where loop cannot finish | "Max retries reached. Try again manually." | + +--- + +## Long Loops: Behavior Over Time + +Long loops are the most powerful -- and most neglected -- aspect of microinteraction design. A long loop asks: how should this microinteraction behave differently the 100th time compared to the first time? + +### Progressive Reduction + +Progressive reduction means removing scaffolding as users demonstrate mastery. The microinteraction starts helpful and becomes streamlined. + +| Use Count | Behavior | Rationale | +|-----------|----------|-----------| +| **1-3 uses** | Full labels, tooltips, coaching marks | User is learning | +| **4-10 uses** | Labels remain, tooltips disappear | User recognizes patterns | +| **11-50 uses** | Labels shrink to icons, hints removed | User knows the interface | +| **50+ uses** | Icons only, keyboard shortcuts promoted | User is an expert | + +**Implementation strategies:** + +| Strategy | Mechanism | Example | +|----------|-----------|---------| +| **Use counter** | Track trigger count per user | After 5 uses, hide "swipe to delete" tooltip | +| **Time-based** | Track days since first use | After 7 days, collapse onboarding sidebar | +| **Behavior-based** | Detect user competence from actions | If user uses keyboard shortcut 3 times, hide toolbar button label | +| **Explicit** | Let user dismiss scaffolding | "Got it, don't show again" link on tooltip | + +### Adaptive Long Loops + +Adaptive loops change the microinteraction based on accumulated user behavior patterns. + +| Adaptation | What Changes | Example | +|-----------|-------------|---------| +| **Smart defaults** | Default values shift to match user's typical input | Email compose defaults to the team the user writes to most | +| **Frequency adjustment** | How often the interaction triggers or repeats | Notification frequency decreases if user ignores 5 in a row | +| **Content personalization** | What content appears in the interaction | Search autocomplete prioritizes user's past searches | +| **Complexity scaling** | Simpler version for new users, richer for experts | Photo editor shows basic controls by default, reveals advanced on demand | +| **Suggestion refinement** | Predictions improve with use | Keyboard autocorrect learns from user's vocabulary | + +### Long Loop Design Principles + +**1. Never degrade core functionality.** Progressive reduction should remove scaffolding, not features. The base action must always work. + +**2. Provide a way back.** If a tooltip was hidden after 10 uses, provide a "?" icon or help menu to resurface it. + +**3. Track per-feature, not globally.** A user who is expert at one feature may be a beginner at another. Track usage at the microinteraction level. + +**4. Avoid the uncanny valley.** If the system adapts based on behavior, the changes should either be invisible (smart defaults) or transparent (explicit recommendations). Half-visible adaptation feels creepy. + +**5. Test the 100th use.** Most designers test the first use. Few test the 100th. Run the complete interaction 100 times and evaluate: does it still feel right? Is there unnecessary friction for an expert? + +--- + +## Understanding Modes + +A mode is a temporary state where the same trigger produces a different result. In edit mode, clicking a paragraph selects it for editing. In view mode, clicking the same paragraph does nothing (or follows a link). Modes are powerful but dangerous. + +### Why Modes Are Dangerous + +| Problem | Description | Real-World Example | +|---------|-------------|-------------------| +| **Mode error** | User performs the right action in the wrong mode | Typing when Caps Lock is on; drawing when in eraser mode | +| **Mode confusion** | User does not know which mode they are in | Editing a live document thinking it is a draft | +| **Mode amnesia** | User forgets they entered a mode | Left phone in Do Not Disturb; missed urgent calls | +| **Action inconsistency** | Same trigger does different things | Click selects text in edit mode, follows link in view mode | + +### When Modes Are Justified + +Despite their dangers, modes are sometimes the right design choice: + +| Justification | Why It Works | Example | +|--------------|-------------|---------| +| **Physical constraints** | Limited input controls must serve multiple functions | Caps Lock/Shift on keyboard (limited key count) | +| **Separation of concerns** | Editing and viewing are fundamentally different activities | Google Docs edit mode vs. suggestion mode vs. view mode | +| **Safety** | Prevent accidental destructive actions in normal use | "Edit mode" in CMS protects published content | +| **Complexity management** | Different tasks need different tool sets | Photoshop tools: brush, eraser, selection, text | + +### Mode Design Guidelines + +**1. Make the current mode unmistakably visible.** + +| Method | Where to Apply | Example | +|--------|---------------|---------| +| **Color-coded background** | Entire screen or workspace | Yellow tint in edit mode | +| **Persistent banner** | Top of screen | "You are editing this page" banner | +| **Tool indicator** | Near cursor or toolbar | Active tool highlighted in toolbar; cursor changes shape | +| **Mode label** | Status bar or header | "DRAFT" / "PUBLISHED" / "EDITING" label | + +**2. Make mode transitions deliberate.** Entering and exiting a mode should require a conscious action (button click, keyboard shortcut), not happen accidentally (hover, proximity). + +**3. Minimize the number of modes.** Every mode doubles the testing surface. Two modes mean 2x testing. Five modes mean 5x. + +| Number of Modes | Complexity | Guidance | +|-----------------|------------|----------| +| **1 (no modes)** | Low | Ideal -- same action always produces same result | +| **2** | Moderate | Acceptable for clear binary states (edit/view) | +| **3** | High | Reconsider -- can you merge or eliminate one? | +| **4+** | Very high | Almost certainly too many; redesign with fewer modes | + +**4. Provide mode escape.** Users must always have a clear, obvious way to exit a mode. The escape route should be visible at all times while in the mode. + +| Escape Method | Implementation | Example | +|---------------|---------------|---------| +| **Explicit button** | "Done," "Exit," "Close" button visible in mode | "Done Editing" button in top-right | +| **Keyboard shortcut** | Escape key exits mode | Esc exits full-screen mode | +| **Timeout** | Mode auto-exits after inactivity | Edit mode locks after 15 minutes idle | +| **Gesture** | Swipe down or pinch to dismiss | Swipe down exits full-screen image view | + +--- + +## Avoiding Mode Errors + +Mode errors occur when users perform the correct action in the wrong mode. They are one of the most frustrating user experiences because users did the right thing -- the system responded wrong. + +### Prevention Strategies + +| Strategy | How It Works | Example | +|----------|-------------|---------| +| **Spring-loaded modes** | Mode exists only while holding trigger | Caps Lock as long as Shift is held (not toggled) | +| **Undo on mode exit** | Offer to undo all actions on mode exit | "Discard changes?" dialog when exiting edit mode | +| **Mode confirmation** | Show a brief confirmation when entering mode | "Edit mode" banner flashes for 2 seconds on entry | +| **Preemptive warning** | Warn before an action that depends on mode | "You are in eraser mode. Switch to pen to draw." | +| **Eliminate the mode** | Use a different UI pattern instead | Instead of "edit mode," use inline editing with pencil icon per field | + +### Spring-Loaded Modes + +Spring-loaded modes (also called quasi-modes) are temporary: they exist only while the user holds a trigger. When the trigger is released, the mode exits automatically. This eliminates mode amnesia because the user is physically reminded of the mode through the held action. + +| Spring-Loaded Mode | Trigger | Exits When | Example | +|-------------------|---------|------------|---------| +| **Shift for uppercase** | Hold Shift key | Release Shift | Typing uppercase letters | +| **Space for preview** | Hold Space bar | Release Space | macOS Quick Look preview | +| **Drag for reorder** | Hold and drag | Release finger/mouse | iOS home screen icon reordering | +| **Alt for alternate** | Hold Alt/Option key | Release Alt | Alternate toolbar functions | + +--- + +## Loop and Mode Combinations + +Loops and modes can interact. A mode might change the loop behavior, or a loop might trigger a mode transition. + +### Common Combinations + +| Pattern | How It Works | Example | +|---------|-------------|---------| +| **Mode-specific loop** | Loop behavior differs by mode | Do Not Disturb mode: notification loop suppressed | +| **Loop triggers mode** | After N repetitions, mode changes | After 3 failed login attempts, account enters "locked" mode | +| **Mode affects loop frequency** | Mode changes loop timing | "Focus mode" reduces notification frequency from real-time to hourly | +| **Loop exits mode** | After timeout, mode reverts | Screen dims to sleep mode after inactivity loop | + +--- + +## Real-World Loop and Mode Examples + +### Alarm Clock + +| Aspect | Design | +|--------|--------| +| **Loop type** | Open loop: repeats at same time until disabled | +| **Long loop** | After 3 snoozes, snooze interval shortens (2nd: 9 min, 3rd: 5 min) | +| **Mode** | Snooze mode: alarm is temporarily silenced | +| **Mode indicator** | "Snoozing until 7:09 AM" displayed on screen | +| **Mode escape** | "Stop" button always visible alongside "Snooze" | + +### Text Editor (Google Docs) + +| Aspect | Design | +|--------|--------| +| **Loop type** | Auto-save open loop: saves every few seconds while editing | +| **Long loop** | Saves become less frequent during periods of no edits | +| **Modes** | Editing, Suggesting, Viewing | +| **Mode indicator** | Mode selector dropdown + colored cursor (blue = editing, green = suggesting) | +| **Mode escape** | Mode selector always visible in toolbar | + +### Smart Thermostat (Nest) + +| Aspect | Design | +|--------|--------| +| **Loop type** | Temperature check loop: every 5 minutes | +| **Long loop** | Learns schedule over 2 weeks; adapts set-points automatically | +| **Modes** | Home, Away, Eco, Manual override | +| **Mode indicator** | Leaf icon (eco), "Away" text, temperature display | +| **Mode escape** | Manual adjustment exits Away/Eco mode immediately | + +### Notification System + +| Aspect | Design | +|--------|--------| +| **Loop type** | Open loop: checks for new notifications at interval | +| **Long loop** | Reduces frequency if user ignores notifications consistently | +| **Modes** | Normal, Do Not Disturb, Focus | +| **Mode indicator** | DND icon in status bar, banner at top of notification panel | +| **Mode escape** | Toggle in control center; scheduled auto-exit | + +--- + +## Loop and Mode Checklist + +### Loops +- [ ] Is this an open or closed loop? Is that the right choice? +- [ ] For open loops: can users stop or adjust the loop? +- [ ] For closed loops: is progress shown? What happens at completion? +- [ ] Have you designed the long loop (behavior at 1st, 10th, 100th use)? +- [ ] Does the interaction use progressive reduction for experienced users? +- [ ] Can users resurface removed scaffolding if they need help? +- [ ] Is loop frequency appropriate for user need and system resources? + +### Modes +- [ ] Is a mode necessary, or can you avoid it entirely? +- [ ] Is the current mode visible at all times? +- [ ] Is mode entry deliberate (not accidental)? +- [ ] Is there an obvious, always-visible escape from every mode? +- [ ] Have you tested for mode errors (right action, wrong mode)? +- [ ] Could you use a spring-loaded mode instead of a toggle mode? +- [ ] Is the total number of modes three or fewer? diff --git a/.agents/skills/microinteractions/references/rules-and-state.md b/.agents/skills/microinteractions/references/rules-and-state.md new file mode 100644 index 0000000..8252a9f --- /dev/null +++ b/.agents/skills/microinteractions/references/rules-and-state.md @@ -0,0 +1,251 @@ +# Rules and State in Microinteractions + +Rules are the invisible engine of a microinteraction. Once a trigger fires, rules determine what happens: what changes, in what order, with what constraints, and when the interaction ends. Users never see rules directly -- they experience their effects through feedback. But when rules are poorly designed, users feel it immediately: the toggle that does not remember its position, the slider that jumps to unexpected values, the form that erases their input on error. + +## What Rules Define + +Every microinteraction's rules answer these questions: + +| Question | What It Determines | Example | +|----------|-------------------|---------| +| What happens first? | The initial response to the trigger | Button text changes to "Saving..." | +| What sequence follows? | Steps that occur in order | Validate input, send request, show result | +| What can the user do during? | Available actions while processing | Cancel button appears during upload | +| What can the user NOT do? | Constraints that prevent errors | Cannot submit form with empty required fields | +| What are the boundaries? | Minimum, maximum, and default values | Character limit: 280; volume: 0-100%; quantity: 1-99 | +| When does it end? | Completion condition | Request returns success; timer reaches zero | +| What if it fails? | Error handling behavior | Show error message, preserve input, suggest fix | + +--- + +## Defining Rules: The Goal-First Method + +Start with the goal, not the interface. What is the user trying to accomplish? Derive every rule from that goal. + +### Process + +1. **State the goal in one sentence:** "The user wants to set their alarm time." +2. **Identify the minimum inputs:** Time (hour, minute), AM/PM, days of week. +3. **Define the simplest path:** Tap time, scroll to desired hour/minute, toggle AM/PM, select days, confirm. +4. **Add constraints:** Cannot set alarm in the past (today). Maximum 20 alarms. Minimum interval between alarms: 1 minute. +5. **Handle failures:** If alarm cannot be set (permission denied), show error with action to fix it. +6. **Define the end state:** Alarm is set, confirmation shown, alarm appears in list. + +### Rule Complexity vs. Frequency + +| Usage Frequency | Rule Complexity | Rationale | Example | +|-----------------|-----------------|-----------|---------| +| **Many times per day** | Minimal rules, zero configuration | Must be instant and frictionless | Liking a post: one tap, done | +| **Once per day** | Simple rules, smart defaults | Allow some configuration | Setting an alarm: time + days | +| **Once per week** | Moderate rules, options available | Users can invest time | Scheduling a meeting: time, attendees, recurrence | +| **Once ever** | Full rule set, onboarding acceptable | First-time setup | Account creation: email, password, preferences | + +--- + +## State Management Within Microinteractions + +Every microinteraction has state -- the current condition of the interaction at any given moment. Managing state well means users always know where they are, what happened, and what they can do next. + +### Core States of a Microinteraction + +| State | Description | Visual Indicator | User Can... | +|-------|-------------|------------------|-------------| +| **Idle** | Ready and waiting for trigger | Default appearance | Initiate the interaction | +| **Active/In Progress** | Processing or awaiting input | Loading spinner, active color | Cancel, wait, or provide input | +| **Success** | Completed successfully | Green checkmark, confirmation text | Move on, undo (if available) | +| **Error** | Failed to complete | Red indicator, error message | Retry, correct input, dismiss | +| **Partial** | Partially complete or partially loaded | Partial progress, skeleton | Continue, wait for more | +| **Disabled** | Cannot be initiated | Grayed out, reduced opacity | Nothing (show reason on hover/focus) | + +### State Transition Map + +Map every possible transition between states to ensure no combination is overlooked: + +``` + ┌─────────┐ + trigger │ IDLE │ reset + ┌─────────→│ │←──────────┐ + │ └────┬────┘ │ + │ │ trigger │ + │ ▼ │ + │ ┌──────────┐ │ + │ │ ACTIVE │───────────┤ + │ │ │ cancel │ + │ └────┬─────┘ │ + │ ┌──┴──┐ │ + │ │ │ │ + │ success fail │ + │ │ │ │ + │ ▼ ▼ │ + │ ┌────────┐ ┌───────┐ │ + │ │SUCCESS │ │ ERROR │ │ + │ │ │ │ │──retry─┘ + │ └───┬────┘ └───────┘ + │ │ timeout/dismiss + └─────────┘ +``` + +### State Persistence + +| Persistence Type | When to Use | Storage Method | Example | +|-----------------|-------------|----------------|---------| +| **Ephemeral** | Within a single session | Component state (React state, SwiftUI @State) | Hover state, dropdown open/closed | +| **Session** | Across page navigations, lost on close | Session storage, navigation state | Form progress, scroll position | +| **Persistent** | Across sessions, survives app close | Local storage, database, user preferences | Theme setting, notification preferences | +| **Synced** | Across devices | Cloud database, account-linked storage | Read/unread status, bookmarks | + +--- + +## Constraints and Limitations + +Constraints are rules that prevent errors by limiting what users can do. Well-designed constraints feel natural -- users do not notice them because the wrong action was never possible. + +### Types of Constraints in Microinteractions + +| Constraint Type | Mechanism | Example | +|----------------|-----------|---------| +| **Range** | Limit input to min/max values | Volume slider: 0-100%, cannot exceed | +| **Format** | Enforce specific input patterns | Phone field: auto-formats as (555) 123-4567 | +| **Type** | Restrict input to valid characters | Numeric field: keyboard shows numbers only | +| **Sequence** | Enforce step order | Payment flow: shipping before payment before confirm | +| **Dependency** | One option enables/disables others | "Ship to different address" checkbox reveals address form | +| **Capacity** | Limit quantity or selection count | File upload: maximum 5 files, 10MB each | +| **Temporal** | Restrict timing of actions | "Undo send": available for 30 seconds only | + +### Implementing Constraints Gracefully + +**Prevent rather than punish.** The best constraint is one users never encounter because the wrong action was impossible: + +| Punishing (bad) | Preventing (good) | +|----------------|-------------------| +| "Invalid date format" error after typing | Date picker control that only allows valid dates | +| "That username is taken" after submitting form | Real-time availability check as user types | +| "File too large" error after waiting for upload | Show size limit upfront; disable upload for oversized files | +| "Cannot select past dates" error message | Gray out and disable past dates in calendar | + +### Communicating Constraints + +| Method | When to Use | Example | +|--------|-------------|---------| +| **Disabled state** | Action not available yet | Submit button grayed until form is valid | +| **Counter** | Approaching a limit | "23/280 characters" or "3 of 5 files uploaded" | +| **Visual boundary** | Range limits | Slider track shows min/max; cursor stops at edges | +| **Inline hint** | Format requirements | "Must be 8+ characters with one number" below password field | +| **Progressive disclosure** | Complex constraints | Advanced options hidden behind "Show more" | + +--- + +## Error States + +Error states are what happens when rules are violated or when the system fails. Error handling is where most microinteractions fall apart -- and where thoughtful design has the most impact on user trust. + +### Error State Principles + +**1. Preserve the user's work.** Never erase input on error. If a form fails validation, keep everything the user typed. + +**2. Explain in human language.** Not "Error 422: Unprocessable Entity" but "That email address looks incomplete. Did you forget the domain (e.g., @gmail.com)?" + +**3. Point to the problem.** Show the error next to the field that caused it, not in a banner at the top of the page. + +**4. Offer a path forward.** Every error message should suggest a fix or offer an alternative. + +**5. Time it right.** Validate on blur (when the user leaves the field) for format errors; validate on submit for cross-field errors. + +### Error State Taxonomy + +| Error Type | Cause | Detection Timing | Display Strategy | +|-----------|-------|-------------------|------------------| +| **Format error** | Wrong input pattern (email, phone) | On blur or real-time | Inline message below field | +| **Missing required** | Required field left empty | On submit | Highlight field, inline message | +| **Range error** | Value outside allowed range | Real-time or on blur | Inline message with valid range | +| **Conflict error** | Input conflicts with existing data | On submit (requires server check) | Inline with suggestion | +| **System error** | Server failure, network issue | On submit | Banner or modal with retry option | +| **Permission error** | User lacks authorization | On trigger | Disable trigger or show explanation | +| **Timeout error** | Operation took too long | After threshold | Message with retry; preserve input | + +### Error Recovery Patterns + +| Pattern | How It Works | Example | +|---------|-------------|---------| +| **Inline correction** | User fixes error in place | Red-bordered field; user retypes; border turns green | +| **Undo** | Reverse the action that caused the error | "Undo" link in error toast message | +| **Retry** | Attempt the same action again | "Retry" button after network timeout | +| **Suggestion** | System proposes a valid alternative | "Did you mean john@gmail.com?" | +| **Fallback** | System provides an alternative path | "Upload failed. Try a smaller file or paste a URL instead." | +| **Graceful degradation** | System completes partial operation | "3 of 5 files uploaded. Retry remaining?" | + +--- + +## Edge Cases + +Edge cases are the boundary conditions where microinteractions often break. Designing for edge cases means asking "What happens when...?" for every unusual situation. + +### Essential Edge Cases to Design For + +| Edge Case | Question | Design Response | +|-----------|----------|-----------------| +| **Empty state** | What if there is no data? | Show helpful empty state with CTA | +| **Zero value** | What if the count is zero? | "No notifications" not "Notifications (0)" | +| **Maximum value** | What if the limit is reached? | Disable further input; show "Maximum reached" | +| **Rapid repeated trigger** | What if user clicks 10 times fast? | Debounce; disable trigger during processing | +| **Interruption** | What if user navigates away mid-action? | Save progress or warn before leaving | +| **Slow connection** | What if the request takes 30 seconds? | Show progress; allow cancel | +| **No connection** | What if the user is offline? | Queue action; show "Will send when online" | +| **Concurrent edit** | What if two users edit the same thing? | Detect conflict; show merge options | +| **Very long input** | What if the user enters 10,000 characters? | Truncate display; show full on expand | +| **Special characters** | What if input contains emoji, HTML, or Unicode? | Sanitize and display correctly | +| **Screen reader** | What if the user cannot see the visual feedback? | Announce state changes via aria-live regions | +| **Keyboard only** | What if the user cannot use a mouse? | Ensure all triggers are focusable and operable via keyboard | + +### Edge Case Testing Methodology + +1. **Boundary values:** Test at 0, 1, max-1, max, and max+1 for any numeric input. +2. **Empty/full:** Test with no data and with maximum data. +3. **Speed:** Test with instant response, 3-second delay, and 30-second delay. +4. **Interruption:** Test what happens when the user closes the browser, loses connection, or switches apps mid-action. +5. **Repetition:** Test triggering the same action 10 times rapidly. +6. **Platform variety:** Test on the slowest supported device and smallest supported screen. + +--- + +## What NOT to Allow + +Deciding what NOT to allow is as important as deciding what to allow. Good rules prevent harmful, confusing, or destructive actions. + +### Actions to Prevent + +| Action to Prevent | Why | How to Prevent | +|-------------------|-----|----------------| +| **Double submission** | Duplicates orders, messages, payments | Disable trigger on first click; debounce | +| **Deleting without confirmation** | Irreversible data loss | Confirmation dialog for destructive actions | +| **Submitting invalid data** | Creates bad records, user confusion | Client-side validation before submission | +| **Exceeding rate limits** | Overloads system, degrades experience | Throttle triggers; show "Try again in X seconds" | +| **Conflicting selections** | Logical impossibility (depart after arrive) | Disable impossible options based on other selections | +| **Accidental mode entry** | User does not realize they changed context | Require deliberate action (not hover) to enter modes | + +### The "Nothing Should Happen" Cases + +Some trigger activations should produce no result -- and that is a deliberate rule: + +| Situation | Rule | Feedback | +|-----------|------|----------| +| Clicking a disabled button | No action | Show tooltip explaining why it is disabled | +| Submitting an empty required field | No submission | Highlight field; show "Required" | +| Dragging a non-draggable item | No movement | No cursor change; no visual response | +| Pressing a key outside valid range | No input | No character appears; optionally shake field | +| Tapping outside a modal | Close modal (if non-critical) or no action (if critical) | Modal dismisses or overlay flashes briefly | + +--- + +## State Design Checklist + +- [ ] Have you defined every possible state (idle, active, success, error, disabled, partial)? +- [ ] Can users always tell which state the interaction is in? +- [ ] Have you mapped every state transition? +- [ ] Have you defined what is NOT allowed? +- [ ] Do constraints prevent errors instead of punishing them? +- [ ] Are error messages human-readable, specific, and actionable? +- [ ] Is user input preserved on error? +- [ ] Have you tested all edge cases (empty, max, rapid, offline, interrupted)? +- [ ] Is state persistence appropriate (ephemeral vs. session vs. permanent)? +- [ ] Can screen reader users perceive state changes? diff --git a/.agents/skills/microinteractions/references/signature-moments.md b/.agents/skills/microinteractions/references/signature-moments.md new file mode 100644 index 0000000..cf657d6 --- /dev/null +++ b/.agents/skills/microinteractions/references/signature-moments.md @@ -0,0 +1,235 @@ +# Signature Moments in Microinteractions + +A signature moment is a microinteraction so distinctive, so perfectly crafted, that it becomes inseparable from the product's identity. When someone describes Slack to a friend, they might mention the loading messages. When they think of the iPhone, they think of slide-to-unlock. When they use Stripe, they remember the animated checkmark on payment success. These are not features -- they are feelings, encoded in tiny interactive moments. + +## What Makes a Moment "Signature" + +Not every polished microinteraction is a signature moment. Signature moments have specific characteristics that elevate them beyond mere polish. + +### Signature Moment Criteria + +| Criteria | Definition | Test | +|----------|------------|------| +| **Memorable** | Users remember and can describe the moment to others | Ask users to describe your product; does this detail come up? | +| **Frequent** | Occurs often enough to become associated with the product | Does the user encounter this at least weekly? | +| **Distinctive** | No other product does it the same way | Would users recognize the product from this moment alone? | +| **Functional** | Serves a genuine purpose (not pure decoration) | Remove it -- does the experience become worse or just plainer? | +| **Brand-aligned** | Reflects the product's personality and values | Does this moment feel consistent with the brand voice? | +| **Effortless** | Adds delight without adding friction or cognitive load | Does it slow the user down or require attention? | + +### The Signature Moment Spectrum + +| Level | Description | Example | +|-------|-------------|---------| +| **Functional only** | Works correctly, no distinctive personality | Standard progress bar | +| **Polished** | Well-designed, pleasant, but generic | Smooth animation on button press | +| **Distinctive** | Noticeably different from competitors | Stripe's animated gradient on payment processing | +| **Signature** | Iconic, inseparable from product identity | Facebook Like animation, Slack loading messages | + +--- + +## Iconic Signature Moments: Detailed Analysis + +### Facebook Like (Reactions) + +| Aspect | Design Decision | Why It Works | +|--------|----------------|-------------| +| **Trigger** | Long-press on Like button | Discoverable but not obtrusive; power users find it | +| **Animation** | Emoji reactions float up with spring physics | Physics makes them feel tangible and playful | +| **Sound** | Subtle pop sound on selection | Tactile confirmation without being annoying | +| **Feedback** | Selected reaction replaces Like text with colored label | Persistent reminder of your choice | +| **Personality** | Each reaction has unique animation (Love floats, Angry shakes) | Individual character creates emotional connection | +| **Brand alignment** | Playful, expressive, social -- matches Facebook's social identity | Feels like Facebook, not like enterprise software | + +### iPhone Slide-to-Unlock (Original) + +| Aspect | Design Decision | Why It Works | +|--------|----------------|-------------| +| **Trigger** | Slide gesture on text "Slide to unlock" | Clear affordance; text itself explains the action | +| **Animation** | Shimmer effect on text, slider follows finger precisely | Direct manipulation creates physical connection | +| **Constraint** | Must slide fully to unlock; partial slide springs back | Prevents accidental unlocks in pocket | +| **Feedback** | Smooth resistance; screen reveals behind slider | Continuous feedback throughout the action | +| **Brand alignment** | Elegant, minimal, tactile -- matched Apple's design ethos | Felt like no other phone at the time | + +### Slack Loading Messages + +| Aspect | Design Decision | Why It Works | +|--------|----------------|-------------| +| **Context** | Application startup, a normally frustrating wait | Transforms dead time into brand moment | +| **Content** | Rotating humorous/inspirational quotes | Variable content prevents staleness; creates anticipation | +| **Personality** | Quirky, warm, self-aware humor | Matches Slack's friendly, informal brand voice | +| **Long loop** | Different message each load; users see hundreds over time | Infinite variability keeps it fresh | +| **Utility** | Makes loading feel shorter through engagement | Perceived wait time decreases when users are reading | + +### Stripe Payment Success + +| Aspect | Design Decision | Why It Works | +|--------|----------------|-------------| +| **Context** | Payment completion -- a moment of anxiety | Transforms worry into relief and satisfaction | +| **Animation** | Animated checkmark draws itself; confetti particles | Celebratory without being excessive | +| **Timing** | Appears after brief deliberate pause | Pause creates anticipation; arrival creates reward | +| **Color** | Green on white with subtle gradient | Clean, trustworthy, reassuring | +| **Brand alignment** | Professional, polished, detail-oriented | Communicates Stripe's reliability and craft | + +### GitHub 404 Page + +| Aspect | Design Decision | Why It Works | +|--------|----------------|-------------| +| **Context** | Error state -- normally frustrating and forgettable | Transforms error into a brand moment | +| **Design** | Parallax Octocat illustration that responds to mouse movement | Interactive and surprising | +| **Personality** | Playful but not dismissive of the error | Acknowledges the problem while lightening the mood | +| **Discovery** | Users share the 404 page on social media | Error page becomes marketing through delight | +| **Utility** | Still provides navigation and search to find what they wanted | Function preserved alongside delight | + +--- + +## Where to Create Signature Moments + +Not every microinteraction can or should be a signature moment. Focus signature investment on the right locations. + +### High-Opportunity Locations + +| Location | Why It Works | Risk Level | Example | +|----------|-------------|-----------|---------| +| **Loading/waiting states** | Users are idle and receptive; transforms negative time | Low (does not affect core task) | Slack loading messages, branded spinners | +| **Success confirmations** | Emotional peak after completing a task | Low (celebration after success) | Stripe checkmark, Mailchimp high-five | +| **Onboarding first action** | First impression shapes perception | Medium (must not confuse) | Duolingo's first lesson completion animation | +| **Empty states** | Opportunity to show personality and guide next action | Low (no data at risk) | Dropbox illustrated empty states | +| **Primary product action** | The thing users do most often | High (must not add friction) | Twitter/X pull-to-refresh, Instagram double-tap | +| **Error states** | Opportunity to show grace and personality | Medium (must still communicate error) | GitHub 404, Tumblr "Nothing here" illustrations | + +### Low-Opportunity Locations (Avoid Signature Investment) + +| Location | Why to Avoid | What to Do Instead | +|----------|-------------|-------------------| +| **Settings pages** | Infrequent, utilitarian | Standard controls, focus on clarity | +| **Forms and data entry** | Users want speed, not delight | Focus on reducing friction and clear validation | +| **Administrative actions** | Users are in task mode | Standard feedback, no surprises | +| **Error recovery flows** | Users are frustrated | Clear guidance, minimal decoration | +| **Background processes** | Users are not watching | Standard notifications on completion | + +--- + +## Creating Your Own Signature Moments + +### The Signature Moment Design Process + +**Step 1: Identify candidate moments** + +Map every microinteraction in your product and score each on two axes: + +| | Low Emotional Charge | High Emotional Charge | +|--|---------------------|----------------------| +| **High Frequency** | Routine -- polish but do not over-invest | Prime candidate for signature moment | +| **Low Frequency** | Ignore -- standard treatment | Secondary candidate -- invest if resources allow | + +**Step 2: Match to brand personality** + +Define your brand's personality in three adjectives and filter every signature moment decision through them. + +| Brand Personality | Signature Style | Avoid | +|------------------|----------------|-------| +| **Playful, warm, approachable** | Animated illustrations, humor, casual copy | Corporate formality, stiff animations | +| **Professional, trustworthy, precise** | Clean animations, subtle transitions, elegant typography | Whimsy, cartoon illustrations, slang | +| **Bold, rebellious, energetic** | Dramatic transitions, strong colors, unexpected interactions | Subtle anything -- go big or skip it | +| **Calm, minimal, thoughtful** | Slow transitions, generous spacing, quiet moments | Flashy animations, sound effects, confetti | + +**Step 3: Choose the medium** + +| Medium | Best For | Considerations | +|--------|----------|----------------| +| **Animation** | Visual polish, state transitions | Performance cost; must be interruptible | +| **Copy/microcopy** | Personality, humor, tone | Must be translatable; cultural sensitivity | +| **Sound** | Confirmation, identity | Must be optional; battery impact on mobile | +| **Illustration** | Empty states, errors, onboarding | Asset production cost; must match brand style | +| **Haptics** | Physical confirmation, mobile delight | Platform-dependent; must be subtle | + +**Step 4: Prototype and test** + +| Test | What to Observe | Pass Criteria | +|------|----------------|---------------| +| **First use** | Does the user notice? Do they smile? | Positive reaction without confusion | +| **10th use** | Does it still delight or has it become annoying? | Neutral to positive (not irritating) | +| **100th use** | Does it add friction? Do power users wish it were gone? | Invisible or still pleasant; never blocking | +| **Remove it** | Does anyone notice or care? | Users mention its absence unprompted | + +--- + +## Making Mundane Interactions Delightful + +You do not need a grand gesture to create delight. Small touches on mundane interactions can accumulate into a product that just "feels right." + +### Delight Techniques for Everyday Microinteractions + +| Technique | How It Works | Example | +|-----------|-------------|---------| +| **Personality in copy** | Replace generic text with human text | "No results" becomes "We looked everywhere but came up empty" | +| **Physics-based animation** | Use spring physics instead of linear easing | Toggle bounces slightly at the end of its travel | +| **Contextual response** | Interaction varies based on context | Weather app animation matches current conditions | +| **Progressive reveal** | Reward exploration with hidden details | Hover over avatar reveals a personalized greeting | +| **Meaningful transition** | Connect two states with a transition that shows relationship | New item slides into list from the "Add" button position | +| **Intentional sound** | One signature sound for one signature action | Slack's "knock brush" notification sound | + +### Delight vs. Distraction Checklist + +Before adding delight, verify it is not distraction: + +- [ ] Does this add friction to the interaction? (If yes, reconsider) +- [ ] Will this become annoying after 100 uses? (If yes, tone it down) +- [ ] Does this delay the user from completing their task? (If yes, remove it) +- [ ] Does this work on slow devices and connections? (If no, make it progressive) +- [ ] Does this respect user accessibility settings? (If no, fix it) +- [ ] Could a user with no cultural context understand it? (If no, simplify it) + +--- + +## When to Invest in Signature Moments + +Signature moments cost design and engineering time. Not every product stage justifies the investment. + +### Investment Timing + +| Product Stage | Signature Moment Investment | Rationale | +|---------------|---------------------------|-----------| +| **MVP / Early startup** | Near zero -- focus on core function | Get the basics right first; premature polish is waste | +| **Product-market fit achieved** | Begin experimenting with 1-2 candidates | You know which interactions matter; invest there | +| **Growing product** | Invest in 2-3 true signature moments | Differentiation and brand memory become important | +| **Mature product** | Maintain and refresh existing signature moments | Prevent staleness; keep moments feeling fresh | + +### The "Would They Miss It" Test + +The ultimate test of a signature moment: remove it and see if users notice and complain. If they do, it is truly signature. If they do not, it was decoration. + +| User Response to Removal | Verdict | Action | +|--------------------------|---------|--------| +| "Where did the [thing] go? Bring it back!" | True signature moment | Restore and protect it | +| "Something feels different but I cannot say what" | Polished detail, not signature | Keep it but do not over-invest | +| No reaction | Decoration | Consider removing to simplify codebase | + +--- + +## Signature Moment Pitfalls + +| Pitfall | Why It Happens | Prevention | +|---------|---------------|------------| +| **Delight that delays** | Animation or sound adds time to critical path | Ensure signature moment does not extend interaction time | +| **Trying too hard** | Every interaction is "delightful" resulting in sensory overload | Limit to 2-3 signature moments in the entire product | +| **Cultural blind spots** | Humor or imagery that does not translate | Test with diverse user groups; avoid culturally specific references | +| **Forgetting accessibility** | Signature moment relies on vision, motion, or hearing | Ensure core function works without the signature layer | +| **Stale moments** | Same animation/copy for years becomes invisible | Rotate variable content (like Slack messages); refresh periodically | +| **Copy without context** | Copying another product's signature moment | Signature moments must grow from your own brand personality | + +--- + +## Signature Moment Audit + +Evaluate your product's signature moments: + +- [ ] Can you identify 1-3 moments that define your product's personality? +- [ ] Do these moments occur on frequent, high-visibility interactions? +- [ ] Are they functional first, delightful second? +- [ ] Do they match your brand personality? +- [ ] Have you tested them at 1st, 10th, and 100th use? +- [ ] Do they work for all users (including those with accessibility needs)? +- [ ] Would users notice and complain if you removed them? +- [ ] Are you maintaining and refreshing them over time? diff --git a/.agents/skills/microinteractions/references/trigger-design.md b/.agents/skills/microinteractions/references/trigger-design.md new file mode 100644 index 0000000..cf0330d --- /dev/null +++ b/.agents/skills/microinteractions/references/trigger-design.md @@ -0,0 +1,223 @@ +# Trigger Design for Microinteractions + +A trigger is what initiates a microinteraction. It is the entry point -- the doorknob, the button, the notification badge. Triggers come in two fundamental types: manual triggers that users consciously activate, and system triggers that fire automatically when conditions are met. Every microinteraction begins with one of these, and the quality of the trigger determines whether users can discover, understand, and initiate the interaction at all. + +## Manual Triggers + +Manual triggers require a deliberate user action. They live inside UI controls -- buttons, switches, icons, form fields, gestures, voice commands. The user must perceive the trigger, understand what it does, and act on it. + +### Types of Manual Triggers + +| Trigger Type | Mechanism | Best For | Example | +|-------------|-----------|----------|---------| +| **Tap/Click** | Single press on a target | Most common actions | Submit button, checkbox, link | +| **Long press** | Press and hold | Secondary actions, previews | iOS Haptic Touch preview, Android context menu | +| **Swipe** | Horizontal or vertical drag | Spatial navigation, destructive actions | Swipe to delete, swipe between pages | +| **Drag** | Press, hold, and move | Reordering, adjusting values | Slider thumb, list reordering | +| **Pinch/Spread** | Two-finger scale gesture | Zoom, resize | Map zoom, photo zoom | +| **Double-tap** | Two rapid taps | Quick positive action | Instagram double-tap to like | +| **Voice** | Spoken command | Hands-free contexts | "Hey Siri, set a timer" | +| **Type** | Keyboard input | Search, data entry | Search-as-you-type, password field | + +### Manual Trigger Design Principles + +**1. Affordance clarity:** The trigger must look like what it does. A toggle should look slideable. A button should look pressable. A drag handle should look grabbable. + +**2. Action labeling:** Whenever possible, label the trigger with a verb that describes the outcome: "Save," "Send," "Delete." Avoid vague labels like "Submit," "OK," or "Continue." + +**3. Size and touch targets:** Touch triggers must be at least 44x44 points (Apple HIG) or 48x48dp (Material Design). Desktop triggers should be at least 24x24 pixels with generous click padding. + +**4. Placement convention:** Triggers should appear where users expect them based on platform conventions: + +| Action Type | Expected Position | Platform Convention | +|-------------|-------------------|---------------------| +| Primary action | Bottom-right (mobile), top-right (desktop) | FAB on Android, toolbar on macOS | +| Cancel/Back | Top-left (mobile), bottom-left (dialogs) | Back chevron on iOS, Escape key on desktop | +| Destructive | Bottom of menu, separated from safe actions | Red text, separated by divider | +| Settings | Top-right corner or hamburger menu | Gear icon, three dots | +| Search | Top of screen, center or right | Magnifying glass icon | + +**5. Discoverability hierarchy:** + +| Visibility Level | When to Use | Example | +|------------------|-------------|---------| +| **Always visible** | Primary actions, frequent use | Send button in messaging app | +| **Visible on hover/focus** | Secondary actions, contextual | Edit icon appears on card hover | +| **Visible on gesture** | Tertiary actions, power users | Swipe to reveal archive/delete | +| **Hidden (keyboard shortcut)** | Expert acceleration | Cmd+K for command palette | + +--- + +## System Triggers + +System triggers fire automatically when predefined conditions are met. The user does not initiate them -- the system detects a change in state and responds. + +### Types of System Triggers + +| Trigger Condition | How It Works | Example | +|-------------------|-------------|---------| +| **Time-based** | Fires at a specific time or after a duration | Alarm at 7am, session timeout at 30 minutes | +| **Threshold-based** | Fires when a value crosses a limit | Low battery at 20%, storage full at 95% | +| **Data-based** | Fires when new data arrives | New email, incoming message, price change | +| **Location-based** | Fires when user enters or exits a geofence | "You're near a store" reminder, weather alerts | +| **State-change** | Fires when system state changes | Connection lost, sync complete, download finished | +| **Error-based** | Fires when an error condition is detected | Form validation failure, payment declined | +| **Inactivity** | Fires after a period of no user input | Screen dims after 30 seconds, "Are you still watching?" | + +### System Trigger Design Principles + +**1. Relevance over frequency:** A system trigger should fire only when the information is genuinely useful at that moment. Every unnecessary notification erodes trust and trains users to ignore triggers. + +**2. Threshold calibration:** Set thresholds that balance urgency with usefulness: + +| Too Early | Right Threshold | Too Late | +|-----------|-----------------|----------| +| Battery warning at 50% | Battery warning at 20% | Battery warning at 2% | +| Disk full warning at 50% | Disk full warning at 90% | Disk full warning at 99% | +| Inactivity timeout at 1 min | Inactivity timeout at 15 min | Inactivity timeout at 2 hours | + +**3. Escalation:** Important system triggers should escalate if ignored: + +``` +Passive indicator → Active notification → Blocking alert +(badge count) (banner/toast) (modal dialog) +``` + +**4. Silencing rules:** Users must be able to silence system triggers. Provide: +- Global mute (Do Not Disturb) +- Per-category control (mute marketing, keep security) +- Scheduled quiet hours + +--- + +## Trigger States + +Every manual trigger exists in multiple states. Users must be able to distinguish each state at a glance. + +### The Five Essential Trigger States + +| State | Visual Treatment | Purpose | Example | +|-------|-----------------|---------|---------| +| **Default** | Normal appearance, ready for interaction | Shows availability | Blue button with white text | +| **Hover** | Subtle change on cursor proximity | Confirms interactivity (desktop only) | Background darkens slightly | +| **Active/Pressed** | Visual depression or color shift | Confirms action registration | Button scales down 2%, color deepens | +| **Disabled** | Reduced opacity, no cursor change | Prevents action, shows unavailability | 40% opacity, cursor: not-allowed | +| **Loading** | Spinner or animation replaces label | Shows processing in progress | Spinner replaces "Save" text | + +### Additional States for Complex Triggers + +| State | When Used | Visual Treatment | Example | +|-------|-----------|-----------------|---------| +| **Focus** | Keyboard navigation | Focus ring or outline | Blue 2px outline on Tab focus | +| **Selected/On** | Toggle or checkbox in active state | Filled, checked, or colored | Toggle thumb slides right, track turns green | +| **Error** | Associated input has validation error | Red border, error icon | Red outline on text field | +| **Success** | Action completed successfully | Green checkmark, brief animation | Checkmark replaces spinner for 1.5s | + +### State Transition Timing + +| Transition | Duration | Easing | Why | +|-----------|----------|--------|-----| +| Default to Hover | Instant or 50ms | ease-out | Must feel responsive to cursor | +| Default to Active | Instant | none | Must feel like physical press | +| Active to Loading | Instant | none | Immediate acknowledgment | +| Loading to Success | 200-400ms | ease-in-out | Smooth enough to notice | +| Loading to Error | 200-400ms | ease-in-out | Smooth enough to notice | +| Any to Disabled | 150ms | ease-out | Gentle enough not to flash | + +--- + +## Designing Invisible Triggers + +Some triggers have no visible control -- they rely on gestures, sensor input, or spatial awareness. These are powerful but dangerous because they have zero discoverability. + +### When Invisible Triggers Are Appropriate + +| Appropriate | Inappropriate | +|-------------|---------------| +| Shortcut for an action also available through a visible trigger | Only way to access a feature | +| Power-user acceleration | First-time user critical path | +| Delight/easter egg with no functional consequence | Destructive or irreversible action | +| Platform-standard gesture (pinch to zoom) | Novel gesture with no convention | + +### Making Invisible Triggers Learnable + +**1. One-time coaching:** Show a brief animation or tooltip on first use demonstrating the gesture. + +**2. Partial reveal:** Show just enough to hint at the interaction. For swipe-to-delete, show the edge of the red "Delete" background peeking out slightly. + +**3. Contextual hint:** When the user appears stuck (long pause, repeated taps), show a tooltip: "Try swiping left to delete." + +**4. Progressive discovery:** Let users stumble onto the trigger through natural exploration, then reinforce it. Pull-to-refresh was initially invisible but became a platform convention through consistent implementation. + +### Invisible Trigger Checklist + +- [ ] Is there a visible alternative for the same action? +- [ ] Is the gesture a platform convention (not a custom invention)? +- [ ] Do you provide coaching for first-time users? +- [ ] Does the trigger work reliably (no accidental fires)? +- [ ] Can users undo the result if they trigger it accidentally? + +--- + +## Trigger Placement and Visibility + +Where a trigger lives on screen determines whether users find it. Placement follows predictable patterns based on reading order, platform convention, and visual hierarchy. + +### Visibility Priority Framework + +| Priority | Screen Position | What Goes Here | +|----------|----------------|----------------| +| **1 (highest)** | Center of viewport | Primary CTA, hero action, onboarding step | +| **2** | Top-right (desktop) or bottom-center (mobile) | Primary persistent action (FAB, "New" button) | +| **3** | Inline with content | Contextual actions (edit, delete, reply) | +| **4** | Navigation bar / toolbar | Frequent global actions (search, settings) | +| **5 (lowest)** | Overflow menu, long-press, swipe | Secondary and tertiary actions | + +### Fitts's Law Application + +Fitts's Law states that the time to reach a target is proportional to the distance and inversely proportional to the target size. Practical implications: + +- **Corners and edges are easy targets** on desktop (cursor stops at screen edge). Place primary actions near edges. +- **Bottom of screen is easy to reach** on mobile (thumb zone). Place primary actions in the bottom third. +- **Larger triggers are faster to hit.** Primary actions should be physically larger than secondary ones. +- **Distance matters.** Group related triggers together to reduce travel between sequential actions. + +### Trigger Grouping Patterns + +| Pattern | When to Use | Example | +|---------|-------------|---------| +| **Toolbar** | Multiple peer-level actions | Text formatting: Bold, Italic, Underline | +| **Action group** | Primary + secondary actions | "Save" (primary) + "Save as Draft" (secondary) | +| **Contextual menu** | Many actions on a single object | Right-click: Copy, Paste, Delete, Rename | +| **FAB with expansion** | Primary action with variants | "+" FAB expands to: New Message, New Group, New Channel | +| **Inline actions** | Actions tied to specific content | Reply, Like, Share below a social post | + +--- + +## Trigger Audit Checklist + +Use this checklist to evaluate triggers across an interface. + +### Discoverability +- [ ] Can a first-time user find the trigger within 5 seconds? +- [ ] Is the trigger labeled with a clear verb (not "Submit" or "OK")? +- [ ] Does the trigger look interactive (distinct from static elements)? +- [ ] Is the trigger large enough for its input method (touch: 44pt+, mouse: 24px+)? + +### State Communication +- [ ] Can users distinguish default, hover, active, disabled, and loading states? +- [ ] Does the disabled state explain why it is disabled (tooltip or nearby text)? +- [ ] Does the loading state indicate progress or at least activity? +- [ ] Is the success/error state visible for long enough to register? + +### Placement +- [ ] Is the trigger where platform conventions suggest? +- [ ] Is the primary action more visually prominent than secondary actions? +- [ ] Are related triggers grouped together? +- [ ] Is the trigger reachable with one hand on mobile (bottom two-thirds of screen)? + +### Edge Cases +- [ ] What happens on double-tap/double-click? (Prevent duplicate submissions) +- [ ] What happens if the trigger is activated during loading? (Disable or queue) +- [ ] What happens on very slow connections? (Show loading state immediately) +- [ ] What if the user activates the trigger and navigates away? (Handle gracefully) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6aabe90 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +public/ +.wrangler/ +node_modules/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..be1bc24 --- /dev/null +++ b/README.md @@ -0,0 +1,88 @@ +# Open Free Books + +Free, open-source textbooks for every learner — from elementary school through university. The site is fully static, open on GitHub, and deployed to Cloudflare. + +**Live site:** [openfreebooks.org](https://openfreebooks.org) + +## Stack + +| Layer | Tool | +|-------|------| +| Site generator | [Zola](https://www.getzola.org/) | +| Theme | Custom theme in `themes/openfreebooks/` | +| Interactivity | [Solid.js](https://www.solidjs.com/) (header, marquee, scroll reveal, theme toggle) | +| JS build | [Bun](https://bun.sh/) + [Vite](https://vite.dev/) | +| Hosting | Cloudflare Workers (static assets via Wrangler) | + +Book content will use Markdown. Canvas features will follow the [JSON Canvas](https://jsoncanvas.org/) standard (Obsidian-compatible). + +## Prerequisites + +- [Zola](https://www.getzola.org/documentation/getting-started/installation/) 0.19+ +- [Bun](https://bun.sh/) (for frontend build) +- [Wrangler](https://developers.cloudflare.com/workers/wrangler/) 4.x (for deploy) + +## Project layout + +``` +content/ # Pages and sections (Markdown) +static/ # Site assets copied to public/ (favicons, manifest) +themes/openfreebooks/ # Zola theme + templates/ # HTML (Tera) + sass/ # Stylesheets (compiled to main.css) + static/js/bundle.js # Built Solid bundle (committed for simple deploys) +frontend/src/ # Solid.js source +public/ # Zola build output (gitignored) — Wrangler deploy target +wrangler.jsonc # Cloudflare Workers static assets config +``` + +## Development + +Install JS dependencies: + +```bash +bun install +``` + +Build the Solid bundle and start Zola’s dev server: + +```bash +bun run build:js +zola serve +``` + +Open [http://127.0.0.1:1111](http://127.0.0.1:1111). Re-run `bun run build:js` (or `bun run dev:js` in another terminal) when you change `frontend/`. + +## Production build + +```bash +bun run build +``` + +This runs `vite build` (outputs to `themes/openfreebooks/static/js/bundle.js`) and then `zola build` (outputs to `public/`). + +## Deploy to Cloudflare + +```bash +bun run build +wrangler deploy +``` + +The Worker name is `openfreebooks` (see `wrangler.jsonc`). Assets are served from `public/` with no server-side logic. + +## Configuration + +Site-wide settings live in `zola.toml`: + +- `base_url` — canonical URL for feeds and absolute links +- `[extra]` — `site_title`, `github_url`, `browse_url`, `about_url` (used in templates and the Solid config block) + +## Theme notes + +The visual design is inspired by [manlung.work](https://manlung.work/): paper background with grain, Instrument Serif headings, warm ochre accent (`#9a6b2e`), and light/dark mode (system preference plus a toggle). + +**Keep `themes/openfreebooks/static/` clean.** Only committed built assets belong there (currently `js/bundle.js`). Do not copy Zola’s `public/` output into the theme `static/` folder — that pollutes `public/js/` on the next build. + +## License + +Open source — see the repository license file when added. diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..a8e3bba --- /dev/null +++ b/bun.lock @@ -0,0 +1,264 @@ +{ + "lockfileVersion": 1, + "configVersion": 1, + "workspaces": { + "": { + "name": "openfreebooks", + "dependencies": { + "solid-js": "^1.9.5", + }, + "devDependencies": { + "typescript": "^5.8.3", + "vite": "^6.3.5", + "vite-plugin-solid": "^2.11.6", + }, + }, + }, + "packages": { + "@babel/code-frame": ["@babel/code-frame@7.29.0", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw=="], + + "@babel/compat-data": ["@babel/compat-data@7.29.3", "", {}, "sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg=="], + + "@babel/core": ["@babel/core@7.29.0", "", { "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", "@babel/traverse": "^7.29.0", "@babel/types": "^7.29.0", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA=="], + + "@babel/generator": ["@babel/generator@7.29.1", "", { "dependencies": { "@babel/parser": "^7.29.0", "@babel/types": "^7.29.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw=="], + + "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.28.6", "", { "dependencies": { "@babel/compat-data": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA=="], + + "@babel/helper-globals": ["@babel/helper-globals@7.28.0", "", {}, "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw=="], + + "@babel/helper-module-imports": ["@babel/helper-module-imports@7.28.6", "", { "dependencies": { "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6" } }, "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw=="], + + "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.28.6", "", { "dependencies": { "@babel/helper-module-imports": "^7.28.6", "@babel/helper-validator-identifier": "^7.28.5", "@babel/traverse": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA=="], + + "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.28.6", "", {}, "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug=="], + + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], + + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="], + + "@babel/helper-validator-option": ["@babel/helper-validator-option@7.27.1", "", {}, "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="], + + "@babel/helpers": ["@babel/helpers@7.29.2", "", { "dependencies": { "@babel/template": "^7.28.6", "@babel/types": "^7.29.0" } }, "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw=="], + + "@babel/parser": ["@babel/parser@7.29.3", "", { "dependencies": { "@babel/types": "^7.29.0" }, "bin": "./bin/babel-parser.js" }, "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA=="], + + "@babel/plugin-syntax-jsx": ["@babel/plugin-syntax-jsx@7.28.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w=="], + + "@babel/template": ["@babel/template@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/types": "^7.28.6" } }, "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ=="], + + "@babel/traverse": ["@babel/traverse@7.29.0", "", { "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", "@babel/helper-globals": "^7.28.0", "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", "@babel/types": "^7.29.0", "debug": "^4.3.1" } }, "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA=="], + + "@babel/types": ["@babel/types@7.29.0", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="], + + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="], + + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="], + + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="], + + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], + + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.60.4", "", { "os": "android", "cpu": "arm" }, "sha512-F5QXMSiFebS9hKZj02XhWLLnRpJ3B3AROP0tWbFBSj+6kCbg5m9j5JoHKd4mmSVy5mS/IMQloYgYxCuJC0fxEQ=="], + + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.60.4", "", { "os": "android", "cpu": "arm64" }, "sha512-GxxTKApUpzRhof7poWvCJHRF51C67u1R7D6DiluBE8wKU1u5GWE8t+v81JvJYtbawoBFX1hLv5Ei4eVjkWokaw=="], + + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.60.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-tua0TaJxMOB1R0V0RS1jFZ/RpURFDJIOR2A6jWwQeawuFyS4gBW+rntLRaQd0EQ4bd6Vp44Z2rXW+YYDBsj6IA=="], + + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.60.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-CSKq7MsP+5PFIcydhAiR1K0UhEI1A2jWXVKHPCBZ151yOutENwvnPocgVHkivu2kviURtCEB6zUQw0vs8RrhMg=="], + + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.60.4", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-+O8OkVdyvXMtJEciu2wS/pzm1IxntEEQx3z5TAVy4l32G0etZn+RsA48ARRrFm6Ri8fvqPQfgrvNxSjKAbnd3g=="], + + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.60.4", "", { "os": "freebsd", "cpu": "x64" }, "sha512-Iw3oMskH3AfNuhU0MSN7vNbdi4me/NiYo2azqPz/Le16zHSa+3RRmliCMWWQmh4lcndccU40xcJuTYJZxNo/lw=="], + + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.60.4", "", { "os": "linux", "cpu": "arm" }, "sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA=="], + + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.60.4", "", { "os": "linux", "cpu": "arm" }, "sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w=="], + + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.60.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg=="], + + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.60.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A=="], + + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.60.4", "", { "os": "linux", "cpu": "none" }, "sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ=="], + + "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.60.4", "", { "os": "linux", "cpu": "none" }, "sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw=="], + + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.60.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg=="], + + "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.60.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A=="], + + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.60.4", "", { "os": "linux", "cpu": "none" }, "sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA=="], + + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.60.4", "", { "os": "linux", "cpu": "none" }, "sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw=="], + + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.60.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ=="], + + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.60.4", "", { "os": "linux", "cpu": "x64" }, "sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ=="], + + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.60.4", "", { "os": "linux", "cpu": "x64" }, "sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg=="], + + "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.60.4", "", { "os": "openbsd", "cpu": "x64" }, "sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA=="], + + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.60.4", "", { "os": "none", "cpu": "arm64" }, "sha512-IPOsh5aRYuLv/nkU51X10Bf75Bsf6+gZdx1X+QP5QM6lIJFHHqbHLG0uJn/hWthzo13UAc2umiUorqZy3axoZg=="], + + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.60.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-4QzE9E81OohJ/HKzHhsqU+zcYYojVOXlFMs1DdyMT6qXl/niOH7AVElmmEdUNHHS/oRkc++d5k6Vy85zFs0DEw=="], + + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.60.4", "", { "os": "win32", "cpu": "ia32" }, "sha512-zTPgT1YuHHcd+Tmx7h8aml0FWFVelV5N54oHow9SLj+GfoDy/huQ+UV396N/C7KpMDMiPspRktzM1/0r1usYEA=="], + + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.60.4", "", { "os": "win32", "cpu": "x64" }, "sha512-DRS4G7mi9lJxqEDezIkKCaUIKCrLUUDCUaCsTPCi/rtqaC6D/jjwslMQyiDU50Ka0JKpeXeRBFBAXwArY52vBw=="], + + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.60.4", "", { "os": "win32", "cpu": "x64" }, "sha512-QVTUovf40zgTqlFVrKA1uXMVvU2QWEFWfAH8Wdc48IxLvrJMQVMBRjuQyUpzZCDkakImib9eVazbWlC6ksWtJw=="], + + "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], + + "@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], + + "@types/babel__template": ["@types/babel__template@7.4.4", "", { "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="], + + "@types/babel__traverse": ["@types/babel__traverse@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.2" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="], + + "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], + + "babel-plugin-jsx-dom-expressions": ["babel-plugin-jsx-dom-expressions@0.40.7", "", { "dependencies": { "@babel/helper-module-imports": "7.18.6", "@babel/plugin-syntax-jsx": "^7.18.6", "@babel/types": "^7.20.7", "html-entities": "2.3.3", "parse5": "^7.1.2" }, "peerDependencies": { "@babel/core": "^7.20.12" } }, "sha512-/O6JWUmjv03OI9lL2ry9bUjpD5S3PclM55RRJEyCdcFZ5W2SEA/59d+l2hNsk3gI6kiWRdRPdOtqZmsQzFN1pQ=="], + + "babel-preset-solid": ["babel-preset-solid@1.9.12", "", { "dependencies": { "babel-plugin-jsx-dom-expressions": "^0.40.6" }, "peerDependencies": { "@babel/core": "^7.0.0", "solid-js": "^1.9.12" }, "optionalPeers": ["solid-js"] }, "sha512-LLqnuKVDlKpyBlMPcH6qEvs/wmS9a+NczppxJ3ryS/c0O5IiSFOIBQi9GzyiGDSbcJpx4Gr87jyFTos1MyEuWg=="], + + "baseline-browser-mapping": ["baseline-browser-mapping@2.10.31", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-MujYO3eP72uvmSE0i4wltsodRfIpZATP3jvzRNRGGxgzId7aVocVJJV3nf01qnzzKFGxQVC9bpWxl5cjxTr/7Q=="], + + "browserslist": ["browserslist@4.28.2", "", { "dependencies": { "baseline-browser-mapping": "^2.10.12", "caniuse-lite": "^1.0.30001782", "electron-to-chromium": "^1.5.328", "node-releases": "^2.0.36", "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg=="], + + "caniuse-lite": ["caniuse-lite@1.0.30001793", "", {}, "sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA=="], + + "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], + + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "electron-to-chromium": ["electron-to-chromium@1.5.357", "", {}, "sha512-NHlTIQDK8fmVwHwuIzmXYEJ1Ewq3D9wDNc0cWXxDGysP6Pb21giwGNkxiTifyKy/4SoPuN5l6GLP1W9Sv7zB2g=="], + + "entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], + + "esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], + + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], + + "html-entities": ["html-entities@2.3.3", "", {}, "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA=="], + + "is-what": ["is-what@4.1.16", "", {}, "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A=="], + + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + + "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], + + "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + + "merge-anything": ["merge-anything@5.1.7", "", { "dependencies": { "is-what": "^4.1.8" } }, "sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ=="], + + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "nanoid": ["nanoid@3.3.12", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ=="], + + "node-releases": ["node-releases@2.0.44", "", {}, "sha512-5WUyunoPMsvvEhS8AxHtRzP+oA8UCkJ7YRxatWKjngndhDGLiqEVAQKWjFAiAiuL8zMRGzGSJxFnLetoa43qGQ=="], + + "parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@4.0.4", "", {}, "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A=="], + + "postcss": ["postcss@8.5.14", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg=="], + + "rollup": ["rollup@4.60.4", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.60.4", "@rollup/rollup-android-arm64": "4.60.4", "@rollup/rollup-darwin-arm64": "4.60.4", "@rollup/rollup-darwin-x64": "4.60.4", "@rollup/rollup-freebsd-arm64": "4.60.4", "@rollup/rollup-freebsd-x64": "4.60.4", "@rollup/rollup-linux-arm-gnueabihf": "4.60.4", "@rollup/rollup-linux-arm-musleabihf": "4.60.4", "@rollup/rollup-linux-arm64-gnu": "4.60.4", "@rollup/rollup-linux-arm64-musl": "4.60.4", "@rollup/rollup-linux-loong64-gnu": "4.60.4", "@rollup/rollup-linux-loong64-musl": "4.60.4", "@rollup/rollup-linux-ppc64-gnu": "4.60.4", "@rollup/rollup-linux-ppc64-musl": "4.60.4", "@rollup/rollup-linux-riscv64-gnu": "4.60.4", "@rollup/rollup-linux-riscv64-musl": "4.60.4", "@rollup/rollup-linux-s390x-gnu": "4.60.4", "@rollup/rollup-linux-x64-gnu": "4.60.4", "@rollup/rollup-linux-x64-musl": "4.60.4", "@rollup/rollup-openbsd-x64": "4.60.4", "@rollup/rollup-openharmony-arm64": "4.60.4", "@rollup/rollup-win32-arm64-msvc": "4.60.4", "@rollup/rollup-win32-ia32-msvc": "4.60.4", "@rollup/rollup-win32-x64-gnu": "4.60.4", "@rollup/rollup-win32-x64-msvc": "4.60.4", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-WHeFSbZYsPu3+bLoNRUuAO+wavNlocOPf3wSHTP7hcFKVnJeWsYlCDbr3mTS14FCizf9ccIxXA8sGL8zKeQN3g=="], + + "semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "seroval": ["seroval@1.5.4", "", {}, "sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw=="], + + "seroval-plugins": ["seroval-plugins@1.5.4", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw=="], + + "solid-js": ["solid-js@1.9.13", "", { "dependencies": { "csstype": "^3.1.0", "seroval": "~1.5.0", "seroval-plugins": "~1.5.0" } }, "sha512-6hJeJMOcEX8ktqjpDoJZEmld3ijvcvWBDtiXBm7f4332SiFN66QeAQI1REQshvyUoISsSeJ4PHDauKYbwao9JQ=="], + + "solid-refresh": ["solid-refresh@0.6.3", "", { "dependencies": { "@babel/generator": "^7.23.6", "@babel/helper-module-imports": "^7.22.15", "@babel/types": "^7.23.6" }, "peerDependencies": { "solid-js": "^1.3" } }, "sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "tinyglobby": ["tinyglobby@0.2.16", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg=="], + + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + + "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], + + "vite": ["vite@6.4.2", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ=="], + + "vite-plugin-solid": ["vite-plugin-solid@2.11.12", "", { "dependencies": { "@babel/core": "^7.23.3", "@types/babel__core": "^7.20.4", "babel-preset-solid": "^1.8.4", "merge-anything": "^5.1.7", "solid-refresh": "^0.6.3", "vitefu": "^1.0.4" }, "peerDependencies": { "@testing-library/jest-dom": "^5.16.6 || ^5.17.0 || ^6.*", "solid-js": "^1.7.2", "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["@testing-library/jest-dom"] }, "sha512-FgjPcx2OwX9h6f28jli7A4bG7PP3te8uyakE5iqsmpq3Jqi1TWLgSroC9N6cMfGRU2zXsl4Q6ISvTr2VL0QHpA=="], + + "vitefu": ["vitefu@1.1.3", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["vite"] }, "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg=="], + + "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + + "babel-plugin-jsx-dom-expressions/@babel/helper-module-imports": ["@babel/helper-module-imports@7.18.6", "", { "dependencies": { "@babel/types": "^7.18.6" } }, "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA=="], + } +} diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..e1a6075 --- /dev/null +++ b/content/_index.md @@ -0,0 +1,5 @@ ++++ +title = "Open Free Books" +description = "Free, open-source textbooks for every learner — elementary through university. Read the full book online at no cost, or contribute on GitHub." +template = "index.html" ++++ diff --git a/frontend/src/components/marquee.tsx b/frontend/src/components/marquee.tsx new file mode 100644 index 0000000..cd61849 --- /dev/null +++ b/frontend/src/components/marquee.tsx @@ -0,0 +1,25 @@ +const MARQUEE_TEXT = + "Every human being deserves free high quality learning materials — Man Lung Yeung"; + +export function Marquee() { + const segment = () => ( + + {MARQUEE_TEXT} +        + + ); + + return ( +
+
+ +
+
+ ); +} diff --git a/frontend/src/components/scroll-reveal.tsx b/frontend/src/components/scroll-reveal.tsx new file mode 100644 index 0000000..7bc4ce3 --- /dev/null +++ b/frontend/src/components/scroll-reveal.tsx @@ -0,0 +1,35 @@ +import { onCleanup, onMount } from "solid-js"; + +export function ScrollRevealBootstrap() { + onMount(() => { + const cards = document.querySelectorAll("[data-scroll-reveal-card]"); + if (!cards.length) return; + + const reducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches; + if (reducedMotion) { + cards.forEach((card) => card.classList.add("is-inview")); + return; + } + + const observer = new IntersectionObserver( + (entries, obs) => { + entries.forEach((entry) => { + if (entry.isIntersecting) { + entry.target.classList.add("is-inview"); + obs.unobserve(entry.target); + } + }); + }, + { threshold: 0.14 } + ); + + cards.forEach((card, index) => { + card.style.transitionDelay = `${index * 80}ms`; + observer.observe(card); + }); + + onCleanup(() => observer.disconnect()); + }); + + return null; +} diff --git a/frontend/src/components/site-header.tsx b/frontend/src/components/site-header.tsx new file mode 100644 index 0000000..9cea670 --- /dev/null +++ b/frontend/src/components/site-header.tsx @@ -0,0 +1,94 @@ +import { createSignal, onCleanup, onMount, For } from "solid-js"; +import { ThemeToggle } from "./theme-toggle"; + +type NavLink = { + label: string; + href: string; +}; + +type SiteHeaderProps = { + brand: string; + homeUrl: string; + links: NavLink[]; +}; + +export function SiteHeader(props: SiteHeaderProps) { + const [scrolled, setScrolled] = createSignal(false); + const [navOpen, setNavOpen] = createSignal(false); + + onMount(() => { + const onScroll = () => setScrolled(window.scrollY > 24); + onScroll(); + window.addEventListener("scroll", onScroll, { passive: true }); + + const onResize = () => { + if (window.innerWidth > 467 && navOpen()) { + setNavOpen(false); + document.body.style.overflow = ""; + } + }; + window.addEventListener("resize", onResize, { passive: true }); + + onCleanup(() => { + window.removeEventListener("scroll", onScroll); + window.removeEventListener("resize", onResize); + document.body.style.overflow = ""; + }); + }); + + const setOpen = (open: boolean) => { + setNavOpen(open); + document.body.style.overflow = open ? "hidden" : ""; + }; + + const headerClass = () => { + const classes = ["site-header"]; + if (scrolled()) classes.push("is-scrolled"); + if (navOpen()) classes.push("nav-is-open"); + return classes.join(" "); + }; + + return ( +
+
+ +
+ + + +
+
+
+ ); +} diff --git a/frontend/src/components/theme-toggle.tsx b/frontend/src/components/theme-toggle.tsx new file mode 100644 index 0000000..48468c6 --- /dev/null +++ b/frontend/src/components/theme-toggle.tsx @@ -0,0 +1,30 @@ +import { createSignal, onMount, Show } from "solid-js"; +import { resolveTheme, setTheme, type ThemeChoice } from "../theme"; + +export function ThemeToggle() { + const [theme, setThemeState] = createSignal("light"); + + onMount(() => { + setThemeState(resolveTheme()); + }); + + const toggle = () => { + const next: ThemeChoice = theme() === "dark" ? "light" : "dark"; + setTheme(next); + setThemeState(next); + }; + + return ( + + ); +} diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx new file mode 100644 index 0000000..274fbee --- /dev/null +++ b/frontend/src/main.tsx @@ -0,0 +1,59 @@ +import { render } from "solid-js/web"; +import { SiteHeader } from "./components/site-header"; +import { Marquee } from "./components/marquee"; +import { ScrollRevealBootstrap } from "./components/scroll-reveal"; +import { initTheme } from "./theme"; + +function readConfig() { + const el = document.getElementById("site-config"); + if (!el?.textContent) { + return { + brand: "Open Free Books", + homeUrl: "/", + browseUrl: "/browse/", + aboutUrl: "/about/", + githubUrl: "https://github.com/openfreebooks/openfreebooks", + }; + } + return JSON.parse(el.textContent) as { + brand: string; + homeUrl: string; + browseUrl: string; + aboutUrl: string; + githubUrl: string; + }; +} + +function mountFooterYear() { + const yearEl = document.getElementById("footer-year"); + if (yearEl) { + yearEl.textContent = String(new Date().getFullYear()); + } +} + +initTheme(); + +const config = readConfig(); +const navLinks = [ + { label: "Browse", href: config.browseUrl }, + { label: "About", href: config.aboutUrl }, + { label: "GitHub", href: config.githubUrl }, +]; + +const headerRoot = document.getElementById("site-header"); +if (headerRoot) { + render( + () => ( + + ), + headerRoot + ); +} + +const marqueeRoot = document.getElementById("marquee"); +if (marqueeRoot) { + render(() => , marqueeRoot); +} + +render(() => , document.body); +mountFooterYear(); diff --git a/frontend/src/theme.ts b/frontend/src/theme.ts new file mode 100644 index 0000000..60266f5 --- /dev/null +++ b/frontend/src/theme.ts @@ -0,0 +1,32 @@ +const STORAGE_KEY = "openfreebooks-theme"; + +export type ThemeChoice = "light" | "dark"; + +export function getSystemTheme(): ThemeChoice { + return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; +} + +export function getStoredTheme(): ThemeChoice | null { + const value = localStorage.getItem(STORAGE_KEY); + if (value === "light" || value === "dark") { + return value; + } + return null; +} + +export function resolveTheme(): ThemeChoice { + return getStoredTheme() ?? getSystemTheme(); +} + +export function applyTheme(theme: ThemeChoice) { + document.documentElement.setAttribute("data-theme", theme); +} + +export function setTheme(theme: ThemeChoice) { + localStorage.setItem(STORAGE_KEY, theme); + applyTheme(theme); +} + +export function initTheme() { + applyTheme(resolveTheme()); +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..14f2c1b --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "openfreebooks", + "private": true, + "type": "module", + "scripts": { + "build:js": "vite build", + "build": "bun run build:js && zola build", + "dev:js": "vite build --watch" + }, + "dependencies": { + "solid-js": "^1.9.5" + }, + "devDependencies": { + "typescript": "^5.8.3", + "vite": "^6.3.5", + "vite-plugin-solid": "^2.11.6" + } +} diff --git a/skills-lock.json b/skills-lock.json new file mode 100644 index 0000000..c02a43c --- /dev/null +++ b/skills-lock.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "skills": { + "frontend-design": { + "source": "anthropics/skills", + "sourceType": "github", + "skillPath": "skills/frontend-design/SKILL.md", + "computedHash": "063a0e6448123cd359ad0044cc46b0e490cc7964d45ef4bb9fd842bd2ffbca67" + }, + "grill-me": { + "source": "mattpocock/skills", + "sourceType": "github", + "skillPath": "skills/productivity/grill-me/SKILL.md", + "computedHash": "784f0dbb7403b0f00324bce9a112f715342777a0daee7bbb7385f9c6f0a170ea" + }, + "grill-with-docs": { + "source": "mattpocock/skills", + "sourceType": "github", + "skillPath": "skills/engineering/grill-with-docs/SKILL.md", + "computedHash": "1adf321072f53cce3dcaf5357d91b8230d4aa647bb8a51756745337a6ee567b8" + }, + "microinteractions": { + "source": "wondelai/skills", + "sourceType": "github", + "skillPath": "microinteractions/SKILL.md", + "computedHash": "875eca02a058bca5467850587d6c7aed62f3de1cd9f509f52c95253ec267b518" + } + } +} diff --git a/spec.md b/spec.md new file mode 100644 index 0000000..f1f5ee8 --- /dev/null +++ b/spec.md @@ -0,0 +1,7 @@ +## openfreebooks + +this project is free internet textbooks for elementary schools to university students. completely free, static and open source. + +this project is build using zola. interactivity by solid js. deployed to cloudflare. + +canvas feature use jsoncanvas standard by Obsidian. \ No newline at end of file diff --git a/static/android-chrome-192x192.png b/static/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..6d42f49101746fc52060aaf595cdada67dd49322 GIT binary patch literal 25297 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 nqj-Ds{aZ)*-hlgflAs}4wOm-HhCjZbt48{C|8u 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

?gK~IkxbYaodjL+#PF?PESRN_sk&9 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 M?6PU$S*J(;2j+W4oB#j- literal 0 HcmV?d00001 diff --git a/static/apple-touch-icon.png b/static/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9667a19120d0944d0f67b15144c466e1fd887d52 GIT binary patch literal 23238 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 M07*qoM6N<$g7MP_y8r+H literal 0 HcmV?d00001 diff --git a/static/favicon-32x32.png b/static/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..558cca4478783681439a2d202579447f9d501f0a GIT binary patch literal 1345 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 bEqb8nfuaYB9w>UC=z*dKiXQl1^uT`sw?pdC literal 0 HcmV?d00001 diff --git a/static/site.webmanifest b/static/site.webmanifest new file mode 100644 index 0000000..573ed77 --- /dev/null +++ b/static/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "Open Free Books", + "short_name": "OpenFreeBooks", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#9a6b2e", + "background_color": "#f5f4f1", + "display": "standalone" +} diff --git a/themes/openfreebooks/sass/_components.scss b/themes/openfreebooks/sass/_components.scss new file mode 100644 index 0000000..5fd9230 --- /dev/null +++ b/themes/openfreebooks/sass/_components.scss @@ -0,0 +1,493 @@ +h1, +h2, +h3 { + margin: 0; + font-family: var(--font-heading); + font-weight: 400; +} + +.site-header { + position: sticky; + top: 0; + z-index: 8; + border-bottom: 1px solid transparent; + transition: background-color 320ms ease, border-color 320ms ease, box-shadow 320ms ease; +} + +.site-header.is-scrolled { + backdrop-filter: blur(10px); + background: var(--header-bg-scrolled); + border-color: var(--line); + box-shadow: 0 8px 20px var(--shadow-soft); +} + +.header-row { + padding: 24px 0; + display: flex; + justify-content: space-between; + align-items: center; + gap: 20px; + transition: padding 320ms ease; +} + +.site-header.is-scrolled .header-row { + padding: 13px 0; +} + +.brand { + display: flex; + align-items: center; + gap: 12px; +} + +.brand-name { + font-family: var(--font-heading); + font-weight: 400; + font-size: 1.2rem; + color: var(--ink); + text-decoration: none; +} + +.brand-name:hover, +.brand-name:focus-visible { + color: var(--accent); +} + +.header-actions { + display: flex; + align-items: center; + gap: 16px; +} + +.main-nav { + display: flex; + gap: 26px; +} + +.main-nav a { + color: var(--soft-ink); + letter-spacing: 0.14em; + text-transform: uppercase; + font-size: 0.7rem; + font-weight: 700; + font-family: var(--mono); + text-decoration: none; +} + +.main-nav a:hover, +.main-nav a:focus-visible { + color: var(--accent); +} + +.theme-toggle { + display: inline-flex; + align-items: center; + justify-content: center; + width: 36px; + height: 36px; + margin: 0; + padding: 0; + border: 1px solid var(--line); + border-radius: 8px; + background: transparent; + color: var(--ink); + cursor: pointer; + transition: background-color 0.2s ease, border-color 0.2s ease; +} + +.theme-toggle:hover { + background: color-mix(in srgb, var(--accent) 10%, transparent); + border-color: color-mix(in srgb, var(--accent) 35%, var(--line)); +} + +.theme-toggle:focus-visible { + outline: 2px solid var(--accent); + outline-offset: 2px; +} + +.nav-burger { + display: none; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 5px; + width: 32px; + height: 32px; + margin: 0; + padding: 0; + border: 0; + border-radius: 8px; + background: transparent; + color: var(--ink); + cursor: pointer; + position: relative; + z-index: 10003; + transition: background-color 0.2s ease; +} + +.nav-burger:hover { + background: color-mix(in srgb, var(--accent) 12%, transparent); +} + +.nav-burger:focus-visible { + outline: 2px solid var(--accent); + outline-offset: 2px; +} + +.nav-burger-line { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; + background: currentColor; + transition: transform 0.32s ease, opacity 0.24s ease; +} + +.site-header.nav-is-open .nav-burger-line:nth-child(1) { + transform: translateY(7px) rotate(45deg); +} + +.site-header.nav-is-open .nav-burger-line:nth-child(2) { + opacity: 0; +} + +.site-header.nav-is-open .nav-burger-line:nth-child(3) { + transform: translateY(-7px) rotate(-45deg); +} + +.nav-backdrop { + display: none; +} + +.mobile-nav-panel { + display: none; +} + +.hero { + position: relative; + min-height: min(88vh, 720px); + display: flex; + flex-direction: column; + padding: 0; +} + +.hero .container { + flex: 1; + display: flex; + flex-direction: column; + justify-content: center; + padding-block: clamp(2rem, 6vh, 5rem); +} + +.hero h1 { + max-width: 860px; + font-size: clamp(2.2rem, 5.2vw, 4.2rem); + line-height: 1.08; +} + +.hero-lead { + max-width: 680px; + margin: 24px 0 16px; + color: var(--soft-ink); + font-size: clamp(1.05rem, 1.9vw, 1.35rem); + line-height: 1.55; +} + +.hero-points { + max-width: 680px; + margin: 0 0 32px; + padding: 0; + list-style: none; + color: var(--soft-ink); + font-size: 1.02rem; + line-height: 1.65; +} + +.hero-points li { + margin-bottom: 0.5rem; + padding-left: 1.25rem; + position: relative; +} + +.hero-points li::before { + content: "—"; + position: absolute; + left: 0; + color: var(--accent); +} + +.hero-actions { + display: flex; + flex-wrap: wrap; + gap: 20px; + align-items: center; +} + +.button { + display: inline-flex; + align-items: center; + justify-content: center; + border-radius: 4px; + padding: 16px 32px; + text-decoration: none; + font-weight: 700; + font-size: 0.93rem; + letter-spacing: 0.02em; + border: 1px solid transparent; + transition: transform 200ms ease, box-shadow 200ms ease, color 200ms ease; +} + +.button-primary { + background: var(--accent); + color: #fff; +} + +.button-primary:hover { + transform: translateY(-1px); + box-shadow: 0 10px 24px color-mix(in srgb, var(--accent) 35%, transparent); +} + +.button-secondary { + color: var(--ink); + border-color: transparent; + background: transparent; + padding-left: 0; + padding-right: 0; + border-radius: 0; +} + +.button-secondary:hover { + color: var(--accent); +} + +.section-kicker { + margin-bottom: 8px; + font-size: 0.72rem; + letter-spacing: 0.16em; + color: var(--accent); + text-transform: uppercase; + font-weight: 700; + font-family: var(--mono); +} + +.section-title { + font-size: clamp(1.75rem, 3.1vw, 2.8rem); + margin-bottom: 24px; +} + +.section-note { + margin-top: 14px; + color: var(--muted); + font-size: 0.88rem; +} + +.work-grid { + display: grid; + gap: 18px; + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.work-card { + background: var(--card-bg); + border: 1px solid var(--card-border); + border-radius: 0; + overflow: hidden; + padding: 24px; + transition: transform 350ms ease, opacity 500ms ease, translate 500ms ease; + opacity: 0; + translate: 0 20px; +} + +.work-card.is-inview { + opacity: 1; + translate: 0 0; +} + +.work-card:hover { + transform: scale(1.01); +} + +.work-card h3 { + margin: 0 0 12px; + font-size: clamp(1.4rem, 2vw, 1.85rem); + line-height: 1.2; +} + +.work-card p { + color: var(--soft-ink); + margin: 0; + font-size: 1.02rem; + line-height: 1.7; +} + +.card-subtitle { + font-style: italic; + color: var(--muted); + font-size: 0.98rem; + margin-bottom: 12px; +} + +.marquee-shell { + margin: 0; + padding: 0; +} + +.marquee { + overflow: hidden; + white-space: nowrap; + width: 100vw; + margin-left: calc(-50vw + 50%); + padding: 14px 0; +} + +.marquee-track { + display: inline-flex; + align-items: center; + animation: marquee-slide 32s linear infinite; +} + +.marquee-text { + font-family: var(--font-heading); + font-style: italic; + font-weight: 400; + color: color-mix(in srgb, var(--ink) 72%, transparent); + font-size: clamp(1.25rem, 2.3vw, 1.65rem); + line-height: 1.22; + user-select: none; + white-space: nowrap; + display: inline-block; + padding-right: 3rem; +} + +.marquee-line { + height: 1px; + background: linear-gradient( + 90deg, + color-mix(in srgb, var(--accent) 45%, transparent) 0%, + color-mix(in srgb, var(--accent) 20%, transparent) 100% + ); +} + +@keyframes marquee-slide { + from { + transform: translateX(0); + } + to { + transform: translateX(-33.333333%); + } +} + +@media (max-width: 900px) { + .work-grid { + grid-template-columns: 1fr; + } +} + +@media (max-width: 467px) { + .nav-burger { + display: inline-flex; + margin-left: auto; + } + + .header-actions .main-nav { + display: none; + } + + .site-header.nav-is-open { + z-index: 10000; + background-color: var(--paper); + border-bottom-color: var(--line); + box-shadow: 0 8px 20px var(--shadow-soft); + backdrop-filter: none; + } + + .nav-backdrop { + display: block; + position: fixed; + inset: 0; + z-index: 10001; + background: rgba(22, 22, 22, 0.48); + backdrop-filter: blur(10px); + opacity: 0; + pointer-events: none; + transition: opacity 0.3s ease; + } + + .site-header.nav-is-open .nav-backdrop { + opacity: 1; + pointer-events: auto; + } + + .mobile-nav-panel { + position: fixed; + inset: 0; + z-index: 10002; + display: flex; + flex-direction: column; + justify-content: flex-start; + align-items: flex-start; + gap: 0; + padding: 96px 28px 40px; + margin: 0; + background-color: var(--paper); + opacity: 0; + visibility: hidden; + pointer-events: none; + transition: none; + } + + .mobile-nav-panel::before { + content: ""; + position: absolute; + inset: 0; + z-index: 0; + pointer-events: none; + opacity: 0.7; + mix-blend-mode: multiply; + background-image: var(--grain-svg); + background-size: 180px 180px; + } + + .site-header.nav-is-open .mobile-nav-panel { + opacity: 1; + visibility: visible; + pointer-events: auto; + transition: opacity 0.3s ease, visibility 0.3s ease; + } + + .mobile-nav-panel a { + position: relative; + z-index: 1; + color: var(--soft-ink); + letter-spacing: 0.14em; + text-transform: uppercase; + font-size: 1.05rem; + font-weight: 700; + font-family: var(--mono); + text-decoration: none; + padding: 14px 0; + width: 100%; + } + + .mobile-nav-panel a:hover { + color: var(--accent); + } +} + +@media (prefers-reduced-motion: reduce) { + .marquee-track { + animation: none; + } + + .work-card { + opacity: 1; + translate: 0 0; + transition: none; + } +} + +@media (hover: none), (pointer: coarse) { + .marquee-track { + animation-duration: 48s; + } +} diff --git a/themes/openfreebooks/sass/_grain.scss b/themes/openfreebooks/sass/_grain.scss new file mode 100644 index 0000000..036fe65 --- /dev/null +++ b/themes/openfreebooks/sass/_grain.scss @@ -0,0 +1,23 @@ +body::before { + content: ""; + position: fixed; + inset: 0; + z-index: 9999; + pointer-events: none; + opacity: 0.7; + mix-blend-mode: multiply; + background-image: var(--grain-svg); + background-size: 180px 180px; +} + +[data-theme="dark"] body::before { + opacity: 0.45; + mix-blend-mode: soft-light; +} + +@media (prefers-color-scheme: dark) { + :root:not([data-theme="light"]) body::before { + opacity: 0.45; + mix-blend-mode: soft-light; + } +} diff --git a/themes/openfreebooks/sass/_layout.scss b/themes/openfreebooks/sass/_layout.scss new file mode 100644 index 0000000..66a8cc6 --- /dev/null +++ b/themes/openfreebooks/sass/_layout.scss @@ -0,0 +1,67 @@ +* { + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +@media (prefers-reduced-motion: reduce) { + html { + scroll-behavior: auto; + } +} + +html, +body { + margin: 0; + padding: 0; + background: var(--paper); + color: var(--ink); + font-family: var(--font-body); +} + +.container { + width: min(1100px, 92vw); + margin: 0 auto; +} + +main { + min-height: 50vh; +} + +section { + padding: 54px 0; +} + +section.hero { + padding: 0; +} + +.footer { + border-top: 1px solid var(--line); + margin-top: 45px; + padding: 20px 0 34px; + color: var(--soft-ink); + font-size: 0.84rem; +} + +.footer-inner { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: baseline; + gap: 12px 20px; +} + +.footer-link { + font-size: 0.78rem; + color: var(--muted); + text-decoration: none; + letter-spacing: 0.02em; +} + +.footer-link:hover, +.footer-link:focus-visible { + color: var(--accent); +} diff --git a/themes/openfreebooks/sass/_tokens.scss b/themes/openfreebooks/sass/_tokens.scss new file mode 100644 index 0000000..711b823 --- /dev/null +++ b/themes/openfreebooks/sass/_tokens.scss @@ -0,0 +1,46 @@ +:root { + --ink: #1a1a1a; + --soft-ink: #555; + --muted: #767676; + --accent: #9a6b2e; + --line: #e8e8e8; + --paper: #f5f4f1; + --header-bg-scrolled: rgba(252, 252, 253, 0.9); + --card-bg: rgba(255, 255, 255, 0.66); + --card-border: rgba(26, 26, 26, 0.08); + --shadow-soft: rgba(20, 20, 20, 0.04); + --mono: "IBM Plex Mono", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", + "Courier New", monospace; + --font-heading: "Instrument Serif", serif; + --font-body: Inter, Arial, sans-serif; + --prose-width: 68ch; + --grain-svg: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.55'/%3E%3C/svg%3E"); +} + +[data-theme="dark"] { + --ink: #eceae4; + --soft-ink: #b8b4ab; + --muted: #8f8a80; + --accent: #c4924a; + --line: #3a3834; + --paper: #1a1917; + --header-bg-scrolled: rgba(26, 25, 23, 0.92); + --card-bg: rgba(36, 34, 31, 0.72); + --card-border: rgba(236, 234, 228, 0.1); + --shadow-soft: rgba(0, 0, 0, 0.25); +} + +@media (prefers-color-scheme: dark) { + :root:not([data-theme="light"]) { + --ink: #eceae4; + --soft-ink: #b8b4ab; + --muted: #8f8a80; + --accent: #c4924a; + --line: #3a3834; + --paper: #1a1917; + --header-bg-scrolled: rgba(26, 25, 23, 0.92); + --card-bg: rgba(36, 34, 31, 0.72); + --card-border: rgba(236, 234, 228, 0.1); + --shadow-soft: rgba(0, 0, 0, 0.25); + } +} diff --git a/themes/openfreebooks/sass/main.scss b/themes/openfreebooks/sass/main.scss new file mode 100644 index 0000000..c0708d6 --- /dev/null +++ b/themes/openfreebooks/sass/main.scss @@ -0,0 +1,4 @@ +@import "tokens"; +@import "grain"; +@import "layout"; +@import "components"; diff --git a/themes/openfreebooks/static/404.html b/themes/openfreebooks/static/404.html new file mode 100644 index 0000000..2925e02 --- /dev/null +++ b/themes/openfreebooks/static/404.html @@ -0,0 +1,65 @@ + + + + + + Page not found | Open Free Books + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + diff --git a/themes/openfreebooks/static/android-chrome-192x192.png b/themes/openfreebooks/static/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..6d42f49101746fc52060aaf595cdada67dd49322 GIT binary patch literal 25297 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 nqj-Ds{aZ)*-hlgflAs}4wOm-HhCjZbt48{C|8u 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

?gK~IkxbYaodjL+#PF?PESRN_sk&9 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 M?6PU$S*J(;2j+W4oB#j- literal 0 HcmV?d00001 diff --git a/themes/openfreebooks/static/apple-touch-icon.png b/themes/openfreebooks/static/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9667a19120d0944d0f67b15144c466e1fd887d52 GIT binary patch literal 23238 zcmaHSV~{9K&-U83ZQHhS*0yciwr%g8wSCsMZQJ_xeyg6p-;bG2Wh$MnOwHu#T?GIe+UMuxJVi*n zi1ECSxE#0$`U`?`T>Sq%J|qw~S^SlpuLjM1f}MYD@d?2>sft{GB`f@EJKQro zvH#`{n=^>{c1(9ukdW12d{s{pTFEZkw5XSyUJ~| z4*k+QuHPAIU)zl>JoZ-m_Rp+& z-gj#&KG#ELdLQlRIWbq9qgos<>oa^m)m8itT{UVx=OJdg4;g8>PE%%juG21gK5J`r zKbsRXzE?NBpOaR6PxH*T{0HaqKaZTNtNaJrA4BMvc}`a+dhT!@*$?aVJ-gNH-g_Qq zx*r+nxeik|y{q-p-dAOQ&x~rmhYs*dkU1ZAJ8sWwb?>K9Go{Z?+qX;T*>4^6d^@~c zK^-$4$Bp!y7cP458I83cLPK@{dSRFAGoR5H93LI@pUwl#dA@UNYM8!th9jO=H^>(c z^gIV0^gqte>AJadeHyQ3mn+`yq-Ht~XKC4zy{CiH)9u&N^t>lec|U8vzDm+^J+@Bt zGViPS-)3ey&XM_@p6UH|Ii>R+3mfq(dp39Ye)7>h4_NVe{id*czXPuL-y?gs8qe$V zwp$OQQ^ZNW>^en!FFWOH8n zbtYy$5MBql)AD{2awcYgr@uyHP0W0(Um_cQ-FC(w_#3>2JX$Zc9kxGQ<#>;MI#aWM zv^rCHk6T^q+$U+hQuAK=c_*g7Z|SUEWph6E&QMQ$%~$Rl10MLAoZdL`*P1W8;;yw_ zpT*0_XWqAXrDwiJw@b|Y>|Y`u?A97D>wA4hBAIo4{9tutwyvbvelE_I`0xAAQcnEb zPv#r>xVj&!to9AzdcOUqhtcKe0w>e$5#od0xOYBuP{ds#`Vz#j3#NTFCIq-P@z|YXV-}NG2 z$CcN1(&P7X4{hsknKLonZn82D?d!FY=yW>R-g>FyyG`q*n*GDwsiu1yuyx`0i0t_t zv!ms)l*Zrnp2p{UZTP$k9`gk6TCno7p_S{ce_tJko4t9vKMzYeTvAU;b$}c>-B$SK z5J*V65)lhTVGv;wssQ0JkUroLhyj?xbkPZgDge;394A{|EGr>FT=2&bguwVbT5_6_ z>rYwGjQc4eR!+UcA7j58wGL%sCM-2f?6loL6{<+0LqKN~4P#FN%|Vwybo~ti;CiiQ2D}c8QUd4+&}0b&=b;j;VgEE%3xIs$KjvNdLi@lc zuK&%Gns+h%LXCfjo1#}BY zWFazdCSX_RjC2nrpyzRoB%KXc1~ij5Ch!1>1cFcO=Yvd*=pR!205ZbweKj@QU#r^r zJn3zGui5D^xyt(fOns{RSpRrTPLna{&i9yxuG4NjX3hH<&1C;x^IGXT(&}wLp4$1O zH}PJJS|ly{bC@h;uT6$jjIaW;&WfQwHebaG(AejC2hNE2xAKnB7KbLJDHo6IWN3T% zG6`Zki3iA@kMM_LhtxYXSk=w?Y|X9i?e63ZUw^hB%zY)zTVDn_Nq%pPnUap>D?5e^jr{n|=OY199xPHF`oLsHpZA=V(L`91Hver28b3b1cB>Y=w8jpdnGZ%81xI$Z3cR!2x zh{^Z0%E{?&7Ts(Bd#>J|>@FBw&m9o1klU?n++2WOJ3!~ixxhWTdG8f1IR3wHg8MK3 zCve{*##Nx*uh*-el#%g{uUqhd;w$J&ak~#-J3c)>rz6hyJT_V5-Z8lhQV;MOfYOj+ z=i#PH^zVh0w6F1#8;$2w_^sB@8of5RuO+=6U3dmtpYvX?gB|Vfs?J`gJHOS|hqCV( zAFtfc%(}GCPx-^_0*D)`5T3}~zZTklK1Ui{ub~g+AD`7@?f3*{2Vc{@H692>^4LZb z6>qyZS}*+#z;@m+-JqvWfR`}Kq{HMk@i*jQxGT9;yF)WJu7Uo{q$hBBcV()%bUtfg zQJ)1_zoGdkQwufil$KT~4wxVWuC7NuKTImW6`{kTPBi(18bHRz@{K0G_P1dV)e8%f zx8~19djN7@<3fF<(`!^Lr()_g!mPftB078$xy&m(wvksQ-O)&O zNgCqV#*cW8=KHWr>RBH4;7Rf9+zc6Z^R4SVaVOc)*Hh9G047qbi8x#yjhqi|Dzd8y zMuLRYOuXxTOS>~TS9DBR&7!{ak8PiI`mO>Qk0?+s9=({Ta`F)Y<_*^J zSP8`h#c)YF$_FrW&02*M8wioG6r~YY_D4g4>9hbV2Y*;h%WqG|tk!FAMX&36$LB%C zYUjPiYNh86d!@$b3%}QQ%c}Ribj!@fms!5(;nO2NOR@E2Kb#IE?C5-p=b#ctx26%q zsVKN$xYRhdb!}U)k71#@^)XpO(_}7kY<7m_y z?q}g*w!5~`dnzP^Na$N}*!@UJ?LtLfC*{`i*?me$^;lP}er5^1cA1{XqC_<@Nsfl& z0;+GMy|M}*usm=K%vv`Dxa#E}FHt2vN3*_ZVq~PMoa^Jnk8^X2PKPQx%ipVcm)i@MgOWaz zva?~c>XrNHyYqp5@WuM0vY*p}l8aVcEG?(Oev_jw*RS!&k}6I85zK)B~L@_cyRDk;yDNtvZ{u>IK-eYRR^qwU4x)HOm^!frKZd z8joYF>QpnE+1yz%LAjoE1F*ju&-fiVZ~5jhNGaNitr(8eGBH7TwRtEe%&7EkT@OK788D?BKQp7@Vc{)&t8t?)p07PV|@Dvr6=^qAaJBpE$t@_Lh!+atY)N8%S zioce&Wx_QFv$y6Q{Wl8BF>`V8|3;t?HxT9$;0O27#QRVyu4yj~1P~gi#$4;i>vyq1 zRLbZZD|)iqnAF#W^5i@11)RtHy`1`{nI>t@ez%2SM4pOTe(YpL+{b*;Zl}=rb4F*; z`%OVsGu<9Zx_ZNDwFqItIroB?Oj`8)&Gof| zb$F6aENmd@>1c#x>)s21QtOjT%M->Hg!%P=Uh0^~u$G{%v_R;f{GbIWh?e3YO=b1K zEoI9X?ta1wS@We-MB4O}ds;<8(500ni$+BXD-KKehylt_JIN5u#5d^u(Sn1zK8?#= z`<$WE%~Z$LEmoqivLjk!45sv@MC!(6h}EZ-SLE{h6%qJlmB(8>U*$kM5<@}0Y~ z7ru9`xz(arQH}+A1L85lRnu*?8yV`lffJe>ZRUL{cN@q=sK$jHkXfZ13Uw$O>1E2s z$C?Zi3o|r_z*FZt>Y%HfB#r+oLr1hw72Y^3`UdvDCU0{+tUz2Lpm-6TqhlgmCqIN#iaUjcj6rU1t!4jMCJ_SunGkqkZ`5=8!U{Vj zor5}tmypab+xG_%@v+3ym0ZA#qC^8GLoej+F&?^WKG7+Yrqf7{!~0$QPw&&rmbbI_ z6TjmaVsJ4;I|ej`kaE8=xJG`QTsiZyVsHska7~|K@Fy@M3$bB%-Vf!VNk3IM0N50% z(En-y;~D7Wl$1myfDubD?n+mjPxjL4kSwMOoZxFQN;)>$Tty3Hu@+yiinLJ&7R(rg zSDbxpHzwZKe6Sla-gB)UV>I7ej}D%a#ln9o8>l!4OO=-_hw}xAJ@rK{@&Ca;c|^ZDXu=Ag!zjcI_NEMYF(pX4N8P*!FTE$l(&fB;fGEQ;4VRBHS9ag`STHAIWdvCced33<`^7|d}|C#Mx9%1ACD__K5sfSXt zeJ-U|SsRq1ay6zp!jn;(a-!5VGg^|>y!nC26pMi6D>uA!S_2{puJtGy70QDqwm8 zTnw{a@3slbjWA$Hg>96rO*RCf}KI5q~t%t$!A9VUJ-X5e)}`Hgp5P5&B&};Ds5CDA1*clLr3~ zXT@deWN93%#axsZC&OeAtYV7sIiqY8+aOfZ^DqiiqhH_KQK*W|PBqvL2u&uU#2%BS zVhAH=2!aStVlIbNT55bIbe_YG9U0*4z7WPg2S~r8UR}roO)(ELzXV&D364EUkqHGKVASDn? zH zxi$z3)$3GDnSsSEoss%nYfBO9eJqJ^n8!YJh(04}GOqs`oYkv8o^F>2GD!@cM~?gg z20n|5*W;yXrXUz47Qyx*V!jG(%gIOOTc;l%iL@jdIBSlG^?fm& zmt>+YBXfHeGGL@FBl=_E2;G9xv~G?M zhCL1uG0_`@VEcK0UI9XhXzRov9lvyfW{D zYS3iyOo6nve2JT)NclHK7{4BNu?DE0t>hk1nrQnhsp%KI)zGGP13|DViajI+aFaap zGz!2_@F=GM+076v6Cb9Ca^3IC4C$%q&JlbRB`+Y-#NL3%YW7xqCBF*4K#mdY6rgsQ zWln-y1ifWpOaJyI96+pe5y`7f2VGY$rJZy@KK+C!oew4V#(Slcs zw@?H|=Dq6L<|JW z-XA;rnf1}c2F)kJl9kJ#nDV23C4yUhP2w$`b%mWZeN}6Yl93INedQedJBLbzek(AGYRQ@D2%&;ONx;ztM z{<;})5Te2Ahl;_x!A@@%-G_Xz@kLJGXsfrf6aIEroD#C&6>DtG{1t=K&ui>2aDVln zDcxqm4ZL2|FRMPViz%#ucHNi!_6Y9`oN%iX)5;lWTdF=E_O$+9zx6tWQS~UzwC;TLw=nwt=)AwhZB=O9aB+F7PMbhTNY&QU zN86ViYstir*;tk%+ROsKkPe9PD#n%17i!(`Rr?uzsjAr3D0=(+fU#w z8n!jAXOvB!>@>i85Ie>2wh@2n`rkm$Kg)ey&qCX-QTK#j9nBJ3GL2=j7)u`Ja1^ zeY~uvSbryin7uV_G_y4&)Su(&l4i6SF*woa{`CYFE=r)1w%2BJikY5}W^uEQ^@YX0 zpyYK+pH6tUKRsbwTWM#)hj!+#Tcvkd*8xv4HwALbz0g`0HW%)lXX1WtC-VS8rH8>H zJ&PJEf#p!pjx#hBk+XBK=6-+ZYUlKWf*}hh>Be=mlL_Q>zsKu`EOt6>DocBJdIaiAlJrGe&?c=ul*3u;~jmu0pj#PROt!NjU!XsZV0omyehE^}gSAlP z&Th_Cmtb=0O)&I8`tF*h#}?g$MWqdb<8YG1v7q@j*Yr$CGGc|POy7M2)7lC~-O_%f z3M1BH9sh(`TRA|fzN;P1on1>ELd}WA2>Sj+IRhz{nd0U4>GWEd2NT|{`C_)Z1)t5C z6?SJFy5-&;!>EtZn{!ksL@h<72Ii@+DWpxChY|O|eva-o7ROAtzeJaBRfEdDwUXqN$QmHS^_mwUi0=`0mzTD0B%Fh-6$R;Vi9kHbiLo3v zCT?<`1v6et5DlfuKu zgDu7xxw2mQTsS)HT1W|Mon%QUCLdn_)dE@(kmVm8B&|_C@jb|RC)#?mTb=vU$Nb z|AxvNLi1HU89K+JO{(LJ?Rbx9va8)fwZ8)-Ki!#@1+PP~qX5)~%B#)si}hbxkmrn( z>RC5`v(OFT_k%p`iXYH+(qE#Z-n;CS_o3RKFqsKSViZO&u)-wyrP|?g(s)b(r_vHIITlvgc3!SR z%MyjO^u{3vZhIqvuvOT6Zl9@O+a7C9R+f9#2y^~z$Oy6sK;Nh4{RC(>PG=4 zx&zW=`6^r4P#)2qv0I?)X}q)_vR!hW@paIwSnEyYUz!57N$k|JztD>6dld{H_tPB_ zGTi@}8~?sp3HNI)SOZ4_t#Bckuw^x1omLa zVy1Lt*ZWu&Ob!IZ1jq2Wq5@;_re=6{DXcmd0aMZA6li~6wbx&6u^x5WCbFfHT9L^! zPjoQ`3i^S5pmu1>`y(c+5gGWF z=Rzqh791@e?q|^k8)lD#3u!+CoEOGphwGO%72gA8+V>V%K&|CKv%YA~vj$;DAJB?KGLJm#unMqJzBjy3>Gexupl@w;$ls_95XPsbtF=Ur>3fm` z2;Nk|*EE|7Q%C;F&ucRywqV&eApAvn%qNqL*|vZagGe{6YL@1HZ>C;8J>c&I}s^IpN46n}?HNUp>rIbio!d~=f%W?fBf?9_T3 z$upDsezywv9W|p{Gps+~0N(&VlCxh?{ZoZvN?UDY_;8V7;rLbcfT`%vmTfxP-WDeH zh@ncEJ0BxARXCUhGQCQTCJLs!?0cw$X2ul$$)DDTwWnucI zDGseV(rRk&Tq`usRkcQlbM6XX1Eay z8xp;Ghq)Itu2~is#3JX1I>s`{q#3jL*F=w-$!o(}mqfKc!yO^R+L;3KXjyj%?Is9J zhL;N&H?NVes|77jYk$BwE?7O;FdwnkjWyQc+i&FGL>{OJv8zM9(Ln9FXx8x zxkLAl64S8oqiZdLvscVCC;PzA@<(48nHS4)wb+e{DJGbNjz6hwuxrQRG%@QGaC({u zFGlCe55iL>lx#-<`qpj}Gsm%`J9)2cUooQbnEz%yosO&CU5Vl1{o$Z-T<+W>iJZmLW9uT^|{-V4{IToOF59q@=MqPPh%BJE_U1VA3TU2>W|- z^{qI7ypK7!a%*#Q(I98)EcjMeTE025{X;I;aw^FXgr~?(T7_3)mG#0Z5Tw%MpOg1T z{o#G>(^&dP>*IAYK}cFoZ`#Im&0<_ERYbxcW1lm?kjYe3&pl5OFF`FqLZJ>%%9^G) z;=&mi#RrU+$Ct9fQF%NC?hRZ`?W2Bi3N^-6RIB5-t>vYKXNZqY{KZ#zW4>y;cC;P6 z&mKCraiR*^p)m!swCfMee)vahIn(Z_{;hbLUy}A&f3S~U-}3~tO>O1$zJvpx5~OVw z;>6VaaV$$rtE%F+u#z~$!boQ0WgLZ4$WntW9_-@dadfF%(PJ9l;7hl&A;M3e9KnZA|DZtHUp}?Qn{};`MmM!)wad1n^;b@_W7Y-B5B||{CFZ?+q zN6^cQ7w-&Q5K|8aoZ-3=QNd{h|5Fbm?+Jc&>Q02rwv72P82wZ_XE+imiwLb0VW{gzZX{T^YX^NeLv;b{XppO;? zlx1_43qMfY59H~wri*t*s60M5%Ipnw{)fIXWffbIM_I*FHgu@tu)xft692ig3luu2 zf1B@A0{L42zbWWEFiJ9#X_Q5O*zsT!WI=VOQBd(T74W`z;iu~hbLFRO-=57d=TENaaOE$(Dxuq1>$Z7aHHuv$mcd6BF zhdo(3^}s}8{3w%n;^F=emhfK<;eu(gN(gC9TR6JG&sI15S!BO2yUdP?9nKwzZg$_Y zWjWf~{$`uvP}n{(Yc|^=_+^`qShhge+J)74*HL!t26n%Snw6iBSoo4<1{=9u1p0I^ zFlJgx;XeSU+wH<4!68U?=YjI3xi`y7-vp_@$axNve#noq7=X-T5w$R_(aDXrIeVW; ziB<_BL%}z;5)PV*wFyl1#Wn2=Z})nw;@^vNzlqd~rs=w4kj1X;;fp`)(nyQatK8YO zs&04&-$Xp^f=;8f%gbc2smGlt2xl->GK;hyS^@MF`~1jI(LZZ{OArFqd6Mo)d?{wA zEoNp(Tcr*!S46t(MM}uL9qR>r9PGuW%pw zmVV!$iY3i#eNg@(og}H+{63yP8Y?8E+=fU1Vu`avjaj0%q{H{2Rs}|ibk1aRXDHLT zf!Rcm=m(1uBz0oR^M{BGM^uRG=)zf);0=V?FwlH+XQPCX?p5Qs!U0m=p>ERLv&S~T z6_v`k6gcYyD2RJ1oPjA_xWEMj$nlvq&MqjnXli{kVOkl;D+-Unr7#WENQoA#gAJx} z?TnqD2}2E)&zk0XlHw=UE55p-hy|Yxal})>5_6vvjINb~riFR^$jrmTO98c+9Ub^7 zl~(@eJ*CB;Z3e_aJduML0^s+@4YZDpV2uM#(XxB!Tt3gxF^XR~MS>Xyy{IXoQ2mD> zm9d3Zz=(g$_2M|O#T1Vze`?IUOterdlmf9{<4T_^;A)N0Xd zPj~vHv3iEMN$01f-cISf_hmdEq}P9~t{2EVn>9PYe&GpMdQ+8I+0aNp*>i zi%}<$BrC=cj|rNWNwKD=Z6wOvjFUm(*odsGcyMpNkWq}|$Y%AU(!3It0{VWya)5_H zP}t+b8u1i@Q-5RTdk|?5+Dk!0;|&WJU?aM^D%rgiQYw@KD3wzEY6=^4&F0V8Rr z0B399V&imAJ3dvTy`u&Amh;~tRNT9rQF+>7`OJ-kN0=^$`@kkZ?DP&iBcEwKC<9;J z@Dp^ujx>0Gio_oS<8YRv_#7qZ-){-OSRSEiK28<8PmRP~?7oY-3c~FpjRC0yrc=v1 zP+;T#+!Eu`32p{?_K(D#hWzto^y)e-x_p`o@+AD|@$c3ZrgOu0@zrrD-wIQ^5D=rq z_0tmYNj2$~OpCV5@a!@PrQo zX$=cRh6OU2+M?TN5#VgFz^kDS;`NYbm*_NRuOK^~Fhn?R(H=_DY|n_LBYNv1CL$IY zPNk0vzU_J^rQe>fiAz-%#g)tX+I0u_}t)zr8O&1WXn;c zX_k?b@~TcK{)m^uSfAl&Z@^x6dYYM+za5ooHa+cx&56AuFkO3RQ;W>t1MHp^z!hT` z+)^E~+;T*%oBHLw!K@m!mC|lTsEkyw?cbz6ij>4mr0P@(Pr74$@64_#LBm#XsKnv?S=Hq)($u=Cpcs^2Uii@hm-5bbxTI@OIsnp9oUOuc0B zH@lB)6B|aRb$lMH9W6f}KeKH9Wp%;nr!_q#d&}xocg6OUPC}VjCWjecdy(>67ea~KayDvEi=U$U1A0m9vgExJx-H=SS`tN&(S z#YBWvlBq6{l+02ZQ~^PrPc?ib{=BQ1h)5mv=aPQj)MscAO!^@5wb_rv&Lw7=V-qY) zg=h|N`S0KN{R^>hHqT&L;~{%~0mPIkst(6}ZxUr2o?!%(rc$>Z2ZSxvD)$x{s%gS+ zrFSzL9(BT*Q!g{mrk@&~V2nvQ=t9L;8{z2KhZ}D(7HXRZFxS_#Y*`O4w-hVdtC(av zcMe<)S!MQr0qPiG)iq_g#yLG$g>08bd|rOxEUb@fa?1nXP%Ek6GN`}OHrQHs!KiGJ zXYGoC$u4k#oGNW5*TK!R0a-c{tmBIUzuI)leni&9vK9*{`Ze;}QPYap$uSxb`{#?O3@j zg>L#$qnic11$>27GLjV-VN7=cF$y{>+$~$Vo#a$NBWS`I3Sj3|1;>4viktJX^OU)E z*{S0Z``B^rfr}qp`CigkZ!*+Id>))a|94F$Oa9%D78YrKkaKz=txccv{=s%ECRz|4 zZ>$iTYWc-tucoDAb+%P0mtDBLB@2@W7f)4NCFXT`MEB3dFhgd z(or=|st3Bb&Jw)CIG+AplJJu7xj}_ESANnQJe%ca(%Y-a>M0I>!&c#6hYRf4DVBlC zjJaOupk&Reelmx1QM}8Du9%qB0jMQ_%)aVDMx|Q->5DLOug4g#fR93C3hT=QaT>0q z{A_cazco%Ohn=j=sds$-C8hz4 z4R)drRXov(^D`>Z9^M)6&n?eZQfwGYOg{TZg`S6b<*#{Sz;AF_r(~B`b*jsSidmda zEEq{t$WtdRzVH&AUtIByxhmk50$zZiSi9noR+RUSPKAIWy5a zpsM;Ef;e~g^r_EEFToMnQH&*qzO>@ZGtv&L|BJ(!o}QJbhMok)Oovo7(`*T>?nx*s zoPVf!dz21=1t$!7plQjVZmAXuc329_(v}nz5zYzE4(iX0+z_I>GddAUj4^BPx4ZCXZSzKJIPW@jkK-Fey zgRo1y(TpJc7K)LhrWJcNjX|!$j?>gEGdZWA(G{?tp3$(0sa>X-xa5g6o9JAMr|q@x z-G5jP4wiGL$wuCGBQ%5FwTKH5_BE%xshENYY5fZ)&y2Tq)U!Y-b~L2~fHR7QIo;+< zb_SgAXeiSPU6EKsxjK6Md8n`OTVf|yM=y8L-vXQRhz1cj5fEv~UQXxe8qP!k&dsO~ zGQ_L+6DClQX?Oddz60Lur{@}U2Y}%~?+^TY5`iD>eI<<==VYhM3bMg?J}26F%rA)t z9WD&z%feAOBa(hcH!2gzVOY{OQf5Cr|Ej*e-n`lXcJEkT7Y@OZ-+$#1VZTQ-=lK%} zMZtu03|s5X^gxT@T38gmT>Ds~si>FeS|A}Qg0Dt3^gtgRGi;{|{HUTE0Z|P&5xL`g z8)I%FIOd-s@I;}GffcZ{3Vple*894FGafQCJs`|6;9wG4J*=F}nMjZH=+UNc3P{rm zOOljWEw1iOZ0-N}eY`!`$h2weT|R&OlF7HIvaf2^BW`4c{Q$NAxioS|z2**-IWt);|2Sa@(XQa$BxL}|60G7RT6*h*v-pp-x0OGjg zWiD1q%bt!GxIFxN8~wbB*U`KMtdo@TZW4AJ8?Kzf~0&gkDie6*%ES9G`QaQ4={0|BFyN!@hP_#{OQQg z%@x-MC)s8xGm;(n4%y2t%nD%kcP%bgPKPE((D!N!P|KpZ)`JE&pBd@pY{u!d-^k8k zodx1_McxpDiH=ifOA-F^0;UGBsul1h8HoJDJ0^P#NLH1_fyt3}B_%|>&F5luT*&%2n5-uvHcMOnDA2O_un}DuO zWuB(TduYe%G*T~#JMj<(xuYH3xWQ6VQ3B z9Yv+M)Qb+FYj)n?+GR9a_Jz=~a0bmOu)+k8&a2Ehm_|G4Z_Xb95fDEfm6-u$!8ob* ziL{&}NZ-HZ)z%iEk{(w_3F!06iQEz9?tkZ8PzIf^30AXpo)9LYgwh04#5ODpS^j&J z#Xm4>2?`q?ey&vvaT-tH=?|gFDWhdmy8n#@6}42zgQrK6E#=mdrY53~^a~V~w8ugJd593;VxQC{C0r?R>uWU({ZgD16-2!D#3KKau~eh|A^-Lv$)6~l(}#Fd zZnJR_p&&LR?s}tE;f`u04zntywkY5-j>Aa=E5wpu6@W^vOP|-FwJ4MrE*=Z9EMNuU zEckEgZt9l1hQ>}y>Fqd3=)HD+!ETn#_@KXTd^`@_;7P2Z_j=XEx?Lq9%CIQBbr4lz zSN@PQABEpGCw|fwdMEhwymkY>f4aS__^e(${QDW$AryWY;fB93PZM~BNOtjHG-g4& z5NM9WAl=f_l;i-|{e$S|LZiV;_pj71*;HSXciL)XjIoKwV0_U|V0 zq&tq+KkvThcBb7Vul94&CqoIl4t6hn+7n~49=UsL0*cPxr%NxYzVB~&Ddw(R=FI(d zavnmp!m4&eo0k-(tszXg@p=b{^OeZ7Ol?zD1d8XLDvtb6AbQ?iV9;cA4Eh~rhk^uQ zrc&@>VtS!Hf|B9h6leej!{l+T2B~gO?qH|WX!5qaaNm5oGp~fx}GpVrd;Q&&|#`c-?4igz{ zHQKq0(KDU2n%U0sncH8M{Vj57@vkL>rA^ggrfn(SLrX6v{{z^?_S0laNBbQ2GB>?m zK^DDUNmi};h^+Rl_1~z-bIR6v-g9-&-y&Zm z`Yt7{T&VEZ>#Ajf>%wY7{!ks15%`UB=|K9TzN+l15wZKG*xYtE1gLSA0(RC&p*4_X5yDeNr1;Kq^pk==~h71;^>U>l_5yeb#cOfQXml zG1q}P34n>1i&zmC7OJu~io|S%&@D*IVCqGwN_NUG<8ZTQ6G;7r?fu)sQzeNG_r@9O zE#(#w0n`__|7wF&K%}tfdPil9P)7whrP;#=q367ci|N>4FS%m62*M$(LzE*lLdq0{ zM3z2k@cwJ6My$dm;<_hgu6YxKEcUNQ^g;*No1NsHV^*@YmKcU^#y;XZ+kwCm(X6QD zE0Bl<AF->g8SOIpZo??P zr+eA=!wEJrZ>Z0TG_`kR`i<(8Wd7aE;yj+(F$H>9#Ec4S^w$=X362Q)9`7i=xBIC} z6(hfM6YR&aysh%hINqJF>SoQAk5;2~f*t;pdq&16P8h`ku}itQe1=vLtThx(v{K!gP<0fFUzi{F z5&c>83B!r=@55y<6!szo?gg#)nD5WP408dqdknQvl+J(ZiSBZwlk$^l z#-tA`rNHfY3km`nSk{-DVKADUe_2EHr zHr~^CJ&qcOAw&tlEH(eIzb(FGY$5)_bbxFad&qMPw^xt4V3S&k`0O6dh#yepoCDDT zuivItMmUI(;he{;xj%nYS>nq_C+wXeva09 z!bXA*U%m#lL!}?H*R-O_{5QyR^O=5+TeB;pXqX6-8A0=WxczuCH|!$?4c*_$Y-*P= z^5;fJ08OsLh>xui7Co%gm4d|Yo)_M=!=ay*OCmyu;G5i(ZN({d#%~!TM4|}j5H5y+ zZXUD)zx>+1Se9pI)adU^3j*ifk|d;j9fVqH{9 zAlQ6U7(5B$b7IG)9wF4M*zobkM*mhAa0>a2W)32`)s+q?SKMmaHXy7SoCe=nINvshT{DkXp(*xN1ZWV3!^?!F_=*$4e3}2A(eO`soB|4 zn@Y~!uvt3re*;9D1?v_OXJE*5{}F-k3x-RGs1^HU*5kjZG2!uxK1Oz(?W0tf0?7+A zIg5QZPVBNwS0vm*^u}a)hIuG562)L=7*nI${TTMS5<_J=Tp};L+`DmptQagUyie8N zVRX=kk)wfziG+|pU+I$j+C40lgc^UCR_*w8t*oO+awpL` zm{$`)w={*gaQ-@{hT2MMHA2xMoYP5N_e&G`0_HK|_F9n7IUGZFXR+UPv|^oDC;99a z8ZH^X;H|ovO;K%Lq-LsCQmIH2J1Z23ugqM~M@5*>#HP##Rz>q;0JH`~OfVUMTZkxi z96H9cC?O!7(nVRAY3F3W%Lfw7P3c+*WlpR%@vw^kUKDDKM{lM3aS8ug1;o{7u4_>{ zDqMAbgp~J!E8B|7Q#xLaX1dCiJ6 zH;J{4@YGGkSi~lEiPi9ADybH$__+AM3eeNH0C*xxf!Ur zoI6Tze^o#=H!yObYx>C&dP^Hn5Lt|d8Y4rk%va*! zi{Y6yoVH(vmAKFZszWTj{4f*NW|XSDYKM_(sa6)pT2|#Y5-;P*i#(V^Z?wA`@o%Sz z`bq|GUjq1Uz0x^8J}EEy{-QR@|10FI-=cWGhYwN;2olnWfFRN(wa9`rOUN6gm+tP6 z7Eo!W5osxu`2(Kkw=-vE&YW|unYr%!+~wAF`=iGBX2le42pjGXhuMlhUH7A zz-;?t;(yLpG)B?PWtO1~VH85gf*RzX%1K9I9#g%`!rp_A<&@=)JlTedcgbcSGtC$Ft5m=${!%ndGCBx{{ktGKkb)A=|q2MB2> zeNB+uwCQxXEXr)gvA7@^;SB*|ImO{8z-{)wy`i?xU%RjxTHvH*kL3DvJRkU)WY3pi z5-a*_g)Kk&$BZ#SW!w|$iDN#cesv*`nx|a9xl$u}kNPKpHjm}(@5!wn3l>gck`d?! z2`X1BKOTri{mD;6npwzN(F{>>l=gFs%b)6`eWjvca(ENK)%lL2|Cl=B!K??B%(SuLgXr##VaN38bgx7$Rg>dLWFA5s_l!{G5T7mf>YX6 zh>61lSKd_un?TTD%FFuX<+%39fZQ+pH)7?BkfN=%mQ%-&=*4gDsKGW2-fas8>4M(E z1UDQ=yu)k|Y`u9{Q5czQTdr!|_A}{$m_FW5&+*>2DhlGh&S7e|WB;wZ^^d3!C|ASc!b*X`r4;7?^LQmc#T?XOnSdYZ-q$(a%KHC#VI1P|-qk*v)a{o+r% z8@~&e@|$au3f{9zMTXGOJ?bH2%3 zta|2DFyvO=Ew=Ta>zO)LUKz`W_&_Vr!$Hl2jWjood_)y@i@4yEs~a!0-oeaikTOS& zmAMq?Nh|z+1?zA6w(o+=-r|J4d}&uot}XeyO?H@@RY@O5IZc1}lt5)rD0C+vVW-@* zU2l$b+U<2cSblWw8+6s-@=sEG+7Hxj*p0i!`F?wm_=Q+AjX0#couS3S)OrSGQV+ZS zGk?Nox}=qH7WQFoSd4a#>apTK(YN()#qs1`&`NjbN?8iIbAz{U$@hu?q1>|VXF7brE8W7>E9G!B-D7PL=}BZbki%7IIjlBK;qYjDnttff7I|205qDIh*W zdc7=elL!G3J0HJ4fi0O4-0+agk;ao7)Q3mLPb&_E-iVA}NOE1O1Z-0kSz3llvpL|7 zXE(9*Gy+H82mp&x!-eH3=DcR}{<$o@=lLUglZz?}Qc??nGyIO5qv}jtOfvpm&hfNA zy`-ylu*zzavy^`?mK-&>#wXRwsTNJ!IGx$h@qFVe)Z>+OhMJPcpTB9M4h6iweAt8i z)w(ICDJZAR+Qnv=jLKc=LWeD-6S(Yt|Ix>-Hk;ltRHcKQD-gpc?c{s0CCzrO3kp*t>{R$Au2ae*tk2rf00nmi^LxPQq3tJ`tMv{zDP3sBH() zY%;EJLa!G|>Ii{y_0n;-SIVnuSAkHv4+EUWv|f3#u$=Py@<{2S19tWj)|R6h?oIgV zuMNH%U^R-$Jce*D0Y*d7ANp`T7{9L}DhC!N#JSE(Kp7jk{{FW?d8yEgwbDY?^m3q! zTeb|9va9{c=S13;`UEju$Av>Cj}W|L+x*T2d{*X1TnwI19|j*vBCENy?5e zG*pNgU5L4h>Zw4t0-re@l)umrP=@AmSYQ;jKl z#!SWOn$a&k3s0W^_ob$JK#O`y|Etx)1ZzreSXdCfS>{(fN>Wif^Jm^-5$lnAY{$>a zQ`}|d$MYN@v4rfy_B`@&dDEZqA=COJc6{7MKbm>;=KifNMnXHkPsgqybKw%@-uSx1 zQ3I;k_RI?pb;d2m7=54)-CR)}WZRaXIhrE*+D%Df%v>=TA*prB<<@Tv#z{RHZ729_ z4=6g|6W!C4-o0G9b$I@&^3#&9WZZM(up>r8|JSZn5VI7eH%>0QqRfSWoqP}dW3 zOQWtOd1mmPsgL7HTnJvEa%KevBIbMp5p%r(InSRnJNw_5?w)4eDK)T29|#6<1x>yu z-Qdi2@+1}Xh%FaK*FzRBnVktBPB)Iu?P2K9IQU)k8;n{SX0y%($VB;us!N;n+lazT z`L6SK_P+?Ctv zi(_$YVOAd^XZv$++#<7+>%+j)N`(qY^{*FcF^)Kk>jAcD+oS7L&7L-;2RoXttJHnR z_-7FP2XAK!WkWWzH_UFSy<@}dY&h0R>08^)z~z1_PqX7Wc3T{6RO3_^W3`<6#Di#W z5OW(@8Z%>g>P=Gl=|MPjkTPTMovCnxi^3T-#zPv=VlJKz-p4O_|!xrzcDB3|}Y z1?z5HQ0lRoIy$-uy*s0kfZQCFpl$PP;UmsM19 z$!9}FRh|6RJH(&~J^j?XnZCNSmD0kUG_jqSSU*r++ObPD^~Y#Bot46l>qrH^7vgfkx_k{&Z)sqCq)u38#})qZEH$MDjN>g#o|+ zdnC$bK!H9Gu%kRUEK;(fi7;i9HWs->w=Gq!*wMHI&)a6 z3>mEc+C-eOua^bU<>B+?wSpK$4g2uSmCqd4|9LGVQ$a>sO7LAoM<#+To3GIH>5IxO zmpk!7M@vAoTUG@fZ)rI8*EYoC1R_8_DN~S5LvyoYyly`+FzR?o{Ya;qBR)3Vk?Qv^ z^dzWcyZFGkO;z8RopQ*Nr&o{eC_3J)V?b~ZJ%+sx&eDa5_3O%2YU+=1fR$P1?7gSN z`wRw5{`fyBSA(Ako2XWDrtwp#>f||wlU`GO!cFJYdBn%~oBo!NsaCp|(TBC9_Q@9O zav%UHOBgXNzn~3_$+ehWdwz@?;Y=>S6>EGXLgto^?a+UV?d4K{(L0N-tk8Hjk}^jM zR;zr!ZswHNYf@85!N6l>w`mK6xDRLyuXjPMKS}Bw*6j^z-3yBRUJj&tv-+g{#9@n+ zIwbhk8#TAeCY*xj&Q19xB1BmQhNnPkC&n+m&lkP2u&z#HIGE)1_@)xxD2Gj_PVp24 z#U7#9he=?GWHdvw75I3YO%(E4jI+tcP3;g*Wu)Zp`>_(T`>TQF;rMS+CwF7P5jDn1 zq6Vnk3Ud{Iuh{r3ycjXYRu9mgDm^Q9#Q-8VBz98p35fE2l3&z35${Yf_>V_e@dRP9 z$}^)(3md^XvsvjFCj6nK%`UG`#_-eMryRFBP;!AbROfJY{#nX*Ue9>vl4yCVB#`I; z{PqP4u$PllP+opA%(}XUYPzwL$K5{y&ZYj_^rzQ1(&~HK)AiUT+S$6z1V=!ysTDy+_c;C zv;vzBkIu-{pW46dtLp|IXsEyx3g3D&k|udQTYO6Yj<45ij)uursTOhlM=B$+c`hTv zVB}ejwnC96>)E7-%ed1#fms=(t(;ezGOn8|63y`dZ^+(EO#_fBG`io(0pZ>Mt(BO% zs?S8kr0xAz?-{`o-83$eENowFps!$NcMiFw5OQ}xHN~P~{H~W%7k3FmdtnFHLyfyH zsg3-3(jgQ^Z!#?&WX+OOkBXF!4>CuQRsBT~-kMZ1=yw_28Ol84T^Fe&2H;RYDqX4^ zJmuLIXW~~E_h&1)=iFt17a%<5i!V5Z2vaeZbnNYC z1;CdCbzR(z9R5z$ux17+RC!ccM6f0%JQRt3xKV+-JCLpP)La7{!ooXjlEW!c0W zb)K~l6FBDF($VstZ=dt+DvpeEM?e_dRdEh>&=bsZ_qlF9zU_(`k})fDTP~sxC5IAk z`>NMo)SZW2?86?%#a`YVLYV^r)vkRq?!EBBX+$%XQ3uRt1yHg<=5&F8fPI~oN#K3!Y;AUNVD*^i|7^I?6%CVhvYw+K{{DUG1=SBiw%8Su`xHql)1)>=o z5Q=Cx=to~vFYoU`)6fW_si*xTO$C2$EA|R^PCH$5&Zg~KD@#YN@sYhZ9kVyaE`7lQ zN9PL=g55BP^366{#_8O=CE?A1tS`}}kAom|OzN`j=YR=(@&fIC8nd$59Hvj(Y>k*FZXcZ*Ch@zm(w1XNM#b(W+x{aKIEY@ z`yvx=lpab4)HQgjs%Mmx@3;G37?u13NEZp!ZzzYGm~ z{^+V2d@@Z*IaS}R8BS+z?kS7AoHj*wB8r==-U;b|kJhXan1N<(*iJVDq;X>&uUZ2s z{(e4;M9Y@-^D3LZO7~ea`j&>wOo5LxCxU*lALL3iiI3azp8w-=AkVcn^u{mofAl<( zH84evJ<3kvow)t02febhWM4pS%U?&>Q>kx}2Pq$zKm4noe`?D)*!*@lBdF=s+(rqw zERi!I^gKdzFevG8O~#tg&(q#9pQ}dOPZ(e`q4BKEce#xv5Y1@j?^Vn1CUx*Y{{00i z=q~(%ANa9v=%p#U4Fw!>rgHUXkR9~8I*87$pN`$=7p^*Y<)!4LO|%agpn$<8QJhEC2cBbcpeqp~!A7 z3t}mKk7}VQiOz-<*xLF`(8NjsRY&lw_x!S%VW0?m_R2QH4G!&=Vrwh{iEQ_Et8VY| z_Zt5~2lG{tDaqp!4ZiJYc!@$Bi8Sw%`xJna=d+LU@mqr6Q&5Q2b%=C8Pu|Wl6YAM= zCE02LJLgW!CUw+c_%-79Y}6oY{cI z=E~~g&2>d@mJ<1e{J0L+hAwH$w-g*tS|&+N6@99!nU<^gBwzHFG|Jps_!LEPv<%@@ zQ#7q5nAG;IMhzIom5ll)ITE>PAwM?e5_C|2lyPBmcN0iT{KGpC2daS~BFT-2`WgfFZB8O4BY7vpCwa>6;sSr~4YevgVwa#yI;RHu;u;^Q`oAO6wm#@dz%9=x-o?9!H;p5`jux-OX+kMcVx%GlX* zl5Rfn#~yvWQ|ekpj9D({EPh0y1mGTr0m!R1TW3ixxJbjZ*8S*mEWEGXm;NZb`fU3g z>mR~>e$%ogyKM*NVxfU~zv<<*Tq`!LjzOkcPK_Cd+(JMQrsbnkKII0}#xqzvi59SC z-M*Lwj()!$N7Mj3JC(<7>*rJUHBo``8~R$!6*?wpn6|t7pf)l|5p8L%=?KrBh4mJG zQ(wQa!pwN*kmKG0K(@!V(CydiqyA-}^KPDzz#=xdDG1a2QQZ_71`)}a;1aT6-&ZWK z=ojca3w7T-FLsrHpz|O1of|i)k{Omfu6>zyw?CLX=mEJ~r5P%`dU;&aZIDfa{o!aPKN<~&XCD#VEc#6Km@eMM+Xm*5 zkKO*Q@HM_G%t8hB>Or9BXy8xIyNcav|6N5>*x4)zwC==N3q3f>C~!UKa=tKf*W%iG zOYQ?juT^R;d+lr$H-Imj?2ms24`~JZ^ciKJ&+qKwA^|Rqdw<}|SFykaP2R2M_5HLU z?=3*iRSJCRD9N`rg#2Bu5DNIrlS(wUI;(~Sf#8Ob64lN za88wz*?zY+wqVIfFGVLU z5rCd*Z`|e6I_NUWxsGf*wHgCpLyphn$G8Gq1ADQrFkWys%zJ$!#L2WzSRINsFs*g^ z(N>gsUA%mr4E)i)Itl#QzFKMuIy5;9=nt5K#Iy^JNNSm4#$QhcIjL2~bN+#|MM=$K51tC9BGvO3Z$C04&Xy+!?Ceg8p_d0+ECXe}Q%XW9~wh z3lPEm_aci&xbiB?!aaUh9*)v+Xi&Bg#sY~|q-T`fHLwDg%&oG;&i_;M2DO?HK|XhH zqU#K)hIykZf}~jmrm}vzgx~jDwl5mqw^YTxg=k-GGB%XoVIE! z{naMY{C;oXmB*6;QJP}xZEX@kOp20<_ekR6e!195{h#;e*G}E3H>h{8P~RLjB6s4V zqbhZKEF(CzPfYFF>OP(%Z<`k(`u7j}|0_4|knD(8_uk4_C)gyz!td<@(<|ZvHRu25 zOn_)X_cQf-^l+z_GtzVL-mKPq0X@gLnN$@Ft3?VP(|emu+&dXFJE)zjlZW*@i2LVX zt}lxB2xS379_292NU~e(2oeW_=_tb=zzT%-LrFXw8fn*>SB?u5SPhPS->P)MaTDWuc?_a`gl|UFy?M+Fx>yFTUQL=*)N%U73Z^ zEAQ_mPW-)b^X{MA$kh+fJnsD(xt!73?9cEZLvX(VlCI`e094sH2D{tnVNZ;5+%!gPT=HB!9Ju*#`9U-F;pvn3Vr(71k zTVc2iNBm!RMYdFV_Pywd<#MF?6>r>kUE!2Bgb~(%B0=p@o9?#Ar;-fZ5%wm# z-b8v-`;*Cc%^IFo0LWpXHaM&qzI^}y0RR7CL-`~C000I_L_t&o06@F?Ax1|#%K!iX M07*qoM6N<$g7MP_y8r+H literal 0 HcmV?d00001 diff --git a/themes/openfreebooks/static/favicon-32x32.png b/themes/openfreebooks/static/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..558cca4478783681439a2d202579447f9d501f0a GIT binary patch literal 1345 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 bEqb8nfuaYB9w>UC=z*dKiXQl1^uT`sw?pdC literal 0 HcmV?d00001 diff --git a/themes/openfreebooks/static/index.html b/themes/openfreebooks/static/index.html new file mode 100644 index 0000000..9ab313c --- /dev/null +++ b/themes/openfreebooks/static/index.html @@ -0,0 +1,123 @@ + + + + + + Open Free Books + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + diff --git a/themes/openfreebooks/static/js/bundle.js b/themes/openfreebooks/static/js/bundle.js new file mode 100644 index 0000000..230bfb5 --- /dev/null +++ b/themes/openfreebooks/static/js/bundle.js @@ -0,0 +1 @@ +const we=(e,t)=>e===t,ve=Symbol("solid-track"),j={equals:we};let re=ce;const T=1,P=2,oe={owned:null,cleanups:null,context:null,owner:null};var g=null;let K=null,ye=null,h=null,p=null,C=null,H=0;function D(e,t){const n=h,s=g,l=e.length===0,r=t===void 0?s:t,o=l?oe:{owned:null,cleanups:null,context:r?r.context:null,owner:r},i=l?e:()=>e(()=>N(()=>B(o)));g=o,h=null;try{return q(i,!0)}finally{h=n,g=s}}function F(e,t){t=t?Object.assign({},j,t):j;const n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0},s=l=>(typeof l=="function"&&(l=l(n.value)),ue(n,l));return[ae.bind(n),s]}function _(e,t,n){const s=X(e,t,!1,T);M(s)}function Se(e,t,n){re=$e;const s=X(e,t,!1,T);s.user=!0,C?C.push(s):M(s)}function R(e,t,n){n=n?Object.assign({},j,n):j;const s=X(e,t,!0,0);return s.observers=null,s.observerSlots=null,s.comparator=n.equals||void 0,M(s),ae.bind(s)}function N(e){if(h===null)return e();const t=h;h=null;try{return e()}finally{h=t}}function J(e){Se(()=>N(e))}function Q(e){return g===null||(g.cleanups===null?g.cleanups=[e]:g.cleanups.push(e)),e}function ae(){if(this.sources&&this.state)if(this.state===T)M(this);else{const e=p;p=null,q(()=>G(this),!1),p=e}if(h){const e=this.observers;if(!e||e[e.length-1]!==h){const t=e?e.length:0;h.sources?(h.sources.push(this),h.sourceSlots.push(t)):(h.sources=[this],h.sourceSlots=[t]),e?(e.push(h),this.observerSlots.push(h.sources.length-1)):(this.observers=[h],this.observerSlots=[h.sources.length-1])}}return this.value}function ue(e,t,n){let s=e.value;return(!e.comparator||!e.comparator(s,t))&&(e.value=t,e.observers&&e.observers.length&&q(()=>{for(let l=0;l1e6)throw p=[],new Error},!1)),t}function M(e){if(!e.fn)return;B(e);const t=H;Ee(e,e.value,t)}function Ee(e,t,n){let s;const l=g,r=h;h=g=e;try{s=e.fn(t)}catch(o){return e.pure&&(e.state=T,e.owned&&e.owned.forEach(B),e.owned=null),e.updatedAt=n+1,de(o)}finally{h=r,g=l}(!e.updatedAt||e.updatedAt<=n)&&(e.updatedAt!=null&&"observers"in e?ue(e,s):e.value=s,e.updatedAt=n)}function X(e,t,n,s=T,l){const r={fn:e,state:s,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:g,context:g?g.context:null,pure:n};return g===null||g!==oe&&(g.owned?g.owned.push(r):g.owned=[r]),r}function V(e){if(e.state===0)return;if(e.state===P)return G(e);if(e.suspense&&N(e.suspense.inFallback))return e.suspense.effects.push(e);const t=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt=0;n--)if(e=t[n],e.state===T)M(e);else if(e.state===P){const s=p;p=null,q(()=>G(e,t[0]),!1),p=s}}function q(e,t){if(p)return e();let n=!1;t||(p=[]),C?n=!0:C=[],H++;try{const s=e();return Ae(n),s}catch(s){n||(C=null),p=null,de(s)}}function Ae(e){if(p&&(ce(p),p=null),e)return;const t=C;C=null,t.length&&q(()=>re(t),!1)}function ce(e){for(let t=0;t=0;t--)B(e.tOwned[t]);delete e.tOwned}if(e.owned){for(t=e.owned.length-1;t>=0;t--)B(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}e.state=0}function ke(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown error",{cause:e})}function de(e,t=g){throw ke(e)}const Ce=Symbol("fallback");function z(e){for(let t=0;t1?[]:null;return Q(()=>z(r)),()=>{let u=e()||[],c=u.length,f,a;return u[ve],N(()=>{let m,S,$,d,b,w,v,y,k;if(c===0)o!==0&&(z(r),r=[],s=[],l=[],o=0,i&&(i=[])),n.fallback&&(s=[Ce],l[0]=D(me=>(r[0]=me,n.fallback())),o=1);else if(o===0){for(l=new Array(c),a=0;a=w&&y>=w&&s[v]===u[y];v--,y--)$[y]=l[v],d[y]=r[v],i&&(b[y]=i[v]);for(m=new Map,S=new Array(y+1),a=y;a>=w;a--)k=u[a],f=m.get(k),S[a]=f===void 0?-1:f,m.set(k,a);for(f=w;f<=v;f++)k=s[f],a=m.get(k),a!==void 0&&a!==-1?($[a]=l[f],d[a]=r[f],i&&(b[a]=i[f]),a=S[a],m.set(k,a)):r[f]();for(a=w;ae(t||{}))}const Te=e=>`Stale read from <${e}>.`;function ee(e){const t="fallback"in e&&{fallback:()=>e.fallback};return R(xe(()=>e.each,e.children,t||void 0))}function _e(e){const t=e.keyed,n=R(()=>e.when,void 0,void 0),s=t?n:R(n,void 0,{equals:(l,r)=>!l==!r});return R(()=>{const l=s();if(l){const r=e.children;return typeof r=="function"&&r.length>0?N(()=>r(t?l:()=>{if(!N(s))throw Te("Show");return n()})):r}return e.fallback},void 0,void 0)}function Le(e,t,n){let s=n.length,l=t.length,r=s,o=0,i=0,u=t[l-1].nextSibling,c=null;for(;of-i){const S=t[o];for(;i{l=r,t===document?e():E(t,e(),t.firstChild?null:void 0,n)},s.owner),()=>{l(),t.textContent=""}}function O(e,t,n,s){let l;const r=()=>{const i=document.createElement("template");return i.innerHTML=e,i.content.firstChild},o=()=>(l||(l=r())).cloneNode(!0);return o.cloneNode=o,o}function he(e,t=window.document){const n=t[te]||(t[te]=new Set);for(let s=0,l=e.length;sY(e,t(),l,n),s)}function Oe(e){let t=e.target;const n=`$$${e.type}`,s=e.target,l=e.currentTarget,r=u=>Object.defineProperty(e,"target",{configurable:!0,value:u}),o=()=>{const u=t[n];if(u&&!t.disabled){const c=t[`${n}Data`];if(c!==void 0?u.call(t,c,e):u.call(t,e),e.cancelBubble)return}return t.host&&typeof t.host!="string"&&!t.host._$host&&t.contains(e.target)&&r(t.host),!0},i=()=>{for(;o()&&(t=t._$host||t.parentNode||t.host););};if(Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return t||document}}),e.composedPath){const u=e.composedPath();r(u[0]);for(let c=0;c{let i=t();for(;typeof i=="function";)i=i();n=Y(e,i,n,s)}),()=>n;if(Array.isArray(t)){const i=[],u=n&&Array.isArray(n);if(W(i,t,n,l))return _(()=>n=Y(e,i,n,s,!0)),()=>n;if(i.length===0){if(n=U(e,n,s),o)return n}else u?n.length===0?ne(e,i,s):Le(e,n,i):(n&&U(e),ne(e,i));n=i}else if(t.nodeType){if(Array.isArray(n)){if(o)return n=U(e,n,s,t);U(e,n,null,t)}else n==null||n===""||!e.firstChild?e.appendChild(t):e.replaceChild(t,e.firstChild);n=t}}return n}function W(e,t,n,s){let l=!1;for(let r=0,o=t.length;r=0;o--){const i=t[o];if(l!==i){const u=i.parentNode===e;!r&&!o?u?e.replaceChild(l,i):e.insertBefore(l,n):u&&i.remove()}else r=!0}}else e.insertBefore(l,n);return[l]}const ge="openfreebooks-theme";function Ue(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Ie(){const e=localStorage.getItem(ge);return e==="light"||e==="dark"?e:null}function be(){return Ie()??Ue()}function pe(e){document.documentElement.setAttribute("data-theme",e)}function Be(e){localStorage.setItem(ge,e),pe(e)}function Me(){pe(be())}var qe=O("
+ +
+ +
+ +
+ +
+
+

Catalog

+

Browse by subject

+
+
+

Mathematics

+

Coming soon

+

Algebra, calculus, statistics, and more — structured for self-study and classrooms.

+
+
+

Science

+

Coming soon

+

Physics, chemistry, biology, and earth science from introductory to advanced levels.

+
+
+

Humanities

+

Coming soon

+

History, literature, philosophy, and languages — readable, citable, and free to share.

+
+
+

Computing

+

Coming soon

+

Programming, computer science fundamentals, and practical skills for students and teachers.

+
+
+

Subject pages and full catalogs are on the roadmap. Contribute a book on GitHub.

+
+
+ + + +

+ +
+ +
+ +