added more preview pages and more templates

This commit is contained in:
2026-07-21 07:10:03 -05:00
parent c6119ffdf5
commit b19fdee30d
3726 changed files with 651487 additions and 6169 deletions
+79 -6
View File
@@ -32,7 +32,12 @@ Do **not** invent new product features or prices. Read `features.md` and use tho
Made by <a href="https://aimloperations.com" rel="noopener noreferrer" target="_blank">AI ML Operations, LLC</a>
```
Link the company name only. Do not omit on new pages.
10. **SEO on first shot** — public marketing pages must pass Lighthouse SEO (target **100**). Follow the [SEO checklist](#seo-public-marketing) below; do not ship homepage without meta description and descriptive link text.
10. **Lighthouse on first shot** — public homepage must hit these targets before calling the mockup done:
- **SEO ≥ 100**
- **Accessibility ≥ 90** (prefer 95+)
- **Performance ≥ 50** on throttled mobile (prefer 65+; template-heavy sites rarely hit 90 without image rebuild)
Follow [SEO](#seo-public-marketing), [Accessibility](#accessibility), and [Performance](#performance) below. Re-run Lighthouse after major homepage changes.
---
@@ -73,14 +78,14 @@ proposals/<client-name>/
1. Create folders above.
2. Copy closest `templates/<name>/` into `mockup/` (omit template docs/junk).
3. Brand the **public** site (copy, colors, logo, services, contact). Prefer real approved data; mark placeholders clearly.
4. Apply **SEO** on every public marketing page (see [SEO checklist](#seo-public-marketing)) — meta description, unique titles, descriptive links, OG/Twitter, LocalBusiness JSON-LD on the homepage.
4. Apply **SEO + Accessibility + Performance** on public marketing pages (see checklists). Homepage Lighthouse: SEO 100, a11y ≥ 90, perf ≥ 50.
5. Add **ux-gallery.html** — monica-style hub: eyebrow per feature (`Public · base`, `Portal · base`, `Portal · Email/SMS`, …). Ready screens link to real HTML; unfinished → `ux-planned.html?p=<key>`.
6. Add **pricing.html** — base rows locked on; add-ons toggleable; enforce deps; show one-time + monthly totals; disclaimer that usage (Stripe/SMS/postage) is extra.
7. Write **SCOPE.md** — recommend add-ons for *this* business; compute totals from `features.md` prices.
8. Write **NOTES.md** — client identity, sources, sitemap, preview reminder, next passes.
9. Banner on marketing pages → gallery + pricing links.
10. Add the client row to the **Active previews** table in `README.md` (business, phone, email, preview URL). Use `_TBD_` for unknown phone/email.
11. Smoke-test locally as static files; run Lighthouse SEO on the homepage (target 100).
11. Smoke-test locally; run Lighthouse SEO + accessibility + performance on the homepage.
### Reuse
@@ -143,13 +148,17 @@ Service-card links must point to the **correct** service page (not one shared wr
### Quick Lighthouse check
```bash
npx lighthouse@12 "https://<preview-host>/" --only-categories=seo --chrome-flags="--headless --no-sandbox"
npx lighthouse@12 "https://<preview-host>/" \
--only-categories=seo,accessibility,performance \
--chrome-flags="--headless --no-sandbox"
# or local:
python3 -m http.server 8765
npx lighthouse@12 "http://127.0.0.1:8765/proposals/<client>/mockup/" --only-categories=seo --chrome-flags="--headless --no-sandbox"
npx lighthouse@12 "http://127.0.0.1:8765/proposals/<client>/mockup/" \
--only-categories=seo,accessibility,performance \
--chrome-flags="--headless --no-sandbox"
```
Fix any SEO audit with score < 1 before calling the mockup done.
Fix SEO audits with score < 1. Fix accessibility fails with weight > 0 until ≥ 90. Apply performance checklist until ≥ 50 (prefer 65+).
### Reference implementations
@@ -161,6 +170,68 @@ Homepages that already follow this pattern:
---
## Accessibility
Target Lighthouse **Accessibility ≥ 90** (prefer 95+) on the public homepage.
### Required
| Item | Rule |
|------|------|
| Icon-only controls | Every icon-only `<a>` / `<button>` needs `aria-label` (social, search, menu, carousel dots, overlay “+” links). Hide decorative icons with `aria-hidden="true"`. |
| Form controls | Every `<select>` / meaningful `<input>` has a visible `<label>` or `aria-label` / `aria-labelledby`. |
| Color contrast | Body text, footer links, CTAs, and muted labels must meet WCAG AA vs their background. Lighten footer links on dark footers; darken low-contrast primary buttons. |
| Links in text | Concept-banner and in-paragraph links need more than color alone — use **underline** (`.preview-concept-banner a { text-decoration: underline }`). |
| Touch targets | Interactive controls ≥ ~24×24px (carousel dots often fail — enlarge hit area). |
| Images | Content images have meaningful `alt`; decorative may use `alt=""`. Logo links whose `<img>` is CSS-hidden need `aria-label` on the `<a>`. |
| Heading order | Prefer sequential `h1 → h2 → h3` without skipping. Template leftovers that skip a level are lower priority than contrast/names, but fix when easy (e.g. section eyebrow as `<p>` not `h4`). |
### Carousel / third-party widgets
Owl/Swiper dots are often nameless. After init, set `aria-label="Carousel slide N"` on each dot button (small deferred script is fine).
---
## Performance
Target Lighthouse **Performance ≥ 50** on simulated mobile (prefer **65+**). Template kits with Bootstrap + many plugins rarely reach 90 — still apply every item below.
### Images (highest ROI)
- Compress large JPEGs (quality ~7580, longest edge ≤ ~14001600 for heroes, ≤ ~900 for cards).
- Shrink oversized logos (often tiny on-screen but hundreds of KB on disk).
- `loading="lazy"` + `decoding="async"` on **below-fold** images; keep LCP/hero eager.
- Explicit `width` and `height` on logos and major images to limit CLS.
- Prefer WebP/AVIF when adding new assets; when stuck with a template JPG/PNG, at least resize + recompress.
### CSS / fonts / JS
- Keep only critical CSS render-blocking (main `style.css` + layout framework). Load secondary CSS (AOS, Fancybox, Swiper, Font Awesome CDN, etc.) with:
```html
<link rel="stylesheet" href="…" media="print" onload="this.media='all'">
<noscript><link rel="stylesheet" href="…"></noscript>
```
- `rel="preconnect"` to CDNs (`cdnjs`, `fonts.googleapis.com`, `fonts.gstatic.com` with `crossorigin`).
- Google Fonts: `display=swap`. Local `@font-face`: `font-display: swap`.
- `defer` site scripts at end of body; drop duplicate Bootstrap/Popper bundles (`bootstrap.bundle` **or** `bootstrap`+`popper`, not both).
- Avoid loading unused heavy plugins on pages that dont need them when practical.
### CLS / LCP
- Dont lock zoom (`user-scalable=0` / `maximum-scale=1`).
- Reserve space for images and sticky banners (`padding-top` for concept banner).
- Preload the true LCP image when its an `<img>` (not required for CSS background heroes).
### Realistic expectations
| Site type | Perf target |
|-----------|-------------|
| Lean custom homepage | 7090 |
| Third-party HTML template (Bootstrap + carousels + many CSS imports) | 5070 after image + defer work |
| Untouched stock template + huge photos | often < 40 — not acceptable |
---
## UX gallery conventions
| Do | Don't |
@@ -208,6 +279,8 @@ Portal mocks can be denser/app-like; still match proposal hub styling (`ux-hub.c
- [ ] `pricing.html` totals correct; deps work
- [ ] Public marketing is client-branded and concept-bannered
- [ ] SEO: homepage Lighthouse SEO 100; unique titles + meta descriptions on public pages; no vague “Learn more” links; OG/Twitter + JSON-LD on homepage
- [ ] Accessibility: homepage Lighthouse a11y ≥ 90 — named controls, contrast, underlined banner links, labeled forms, lazy-safe alts
- [ ] Performance: homepage Lighthouse perf ≥ 50 (prefer 65+) — compressed images, lazy below-fold, deferred secondary CSS/JS, `font-display: swap`, preconnect CDNs
- [ ] `README.md` Active previews table has business, phone, email, preview URL
- [ ] Footer credit: Made by [AI ML Operations, LLC](https://aimloperations.com)
- [ ] No secrets committed; relative paths; opens without a server framework