Skip to content

Base MiniKit Docs Revamp #200

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE/miniapp-featuring-request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
name: MiniApp Featuring Request
about: Request review and featuring for your MiniApp
title: "[Featuring] <App Name>"
labels: ["featuring"]
assignees: []
---

## App Information

- Name:
- Category:
- Manifest URL:
- Live URL:

## Quality Validation

- [ ] Quality Bar checklist completed
- [ ] Performance budgets met
- [ ] Copy lint (no banned terms in UI)
- [ ] Assets validated against caps

## Materials

- Loom walkthrough (≤2 min):
- Lighthouse report (mobile webview):

## Notes

Additional context or requests
20 changes: 20 additions & 0 deletions .github/workflows/mini-kit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: MiniKit Doctor
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Could we scale this PR back to just the docs update for now? There's a lot going on in this action and I don't think it's currently running, so it's also hard to verify.

I'd also ask that we get rid of the starters/* folder, since we have templates and examples in the onchainkit repo. We've spread that sort of thing around in the past, and IMO it'd be nice to keep it it one place. The onchainkit repo makes the most sense to me, as we run tests against the templates when we make changes to OnchainKit.

on:
pull_request:
paths:
- "docs/**"
- "tools/minikit-cli/**"
- "minikit.config.json"

jobs:
doctor:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "18"
- name: Install CLI deps
run: npm ci --prefix tools/minikit-cli || npm install --prefix tools/minikit-cli
- name: Run doctor (Base App only)
run: node tools/minikit-cli/bin/mini-kit.mjs doctor docs/base-app
Comment on lines +11 to +20

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}

Copilot Autofix

AI 12 days ago

To fix the problem, add a permissions block to the workflow to explicitly set the minimum required permissions for the GITHUB_TOKEN. Since the workflow appears to only check out code and run a CLI tool, it likely only needs read access to repository contents. The best way to fix this is to add permissions: contents: read at the top level of the workflow file, just below the name key and above the on key. This will apply the permission restriction to all jobs in the workflow. No other changes are needed.

Suggested changeset 1
.github/workflows/mini-kit.yml

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/.github/workflows/mini-kit.yml b/.github/workflows/mini-kit.yml
--- a/.github/workflows/mini-kit.yml
+++ b/.github/workflows/mini-kit.yml
@@ -1,3 +1,5 @@
+permissions:
+  contents: read
 name: MiniKit Doctor
 on:
   pull_request:
EOF
@@ -1,3 +1,5 @@
permissions:
contents: read
name: MiniKit Doctor
on:
pull_request:
Copilot is powered by AI and may make mistakes. Always verify output.
67 changes: 67 additions & 0 deletions TASKS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Base MiniKit Docs Revamp — Tasks

## Phase 1 (Foundations)

- [x] Restructure IA to 5 pillars in `docs/docs.json`
- [x] Quality Bar checklist (`docs/base-app/quality/checklist.mdx`)
- [x] Design & UX principles (`docs/base-app/design/principles.mdx`)
- [x] Performance budgets (`docs/base-app/performance/budgets.mdx`)
- [x] Asset specifications (`docs/base-app/performance/asset-specifications.mdx`)
- [x] Language & Tone guidelines (`docs/base-app/guides/language-tone.mdx`)
- [x] Authentication (guest-first) (`docs/base-app/guides/authentication.mdx`)
- [x] Manifest documentation update (unified byte caps) (`docs/base-app/miniapps/manifest.mdx`)

## Phase 2 (Patterns and Tooling)

- [x] UI Patterns page (`docs/base-app/design/ui-patterns.mdx`)
- [x] Error Handling + Taxonomy (`docs/base-app/guides/error-handling.mdx`)
- [~] Figma UI Kit page stub (`docs/base-app/design/figma-ui-kit.mdx`) — needs link + assets
- [x] CLI: mini-kit (lint-copy, validate-assets, doctor) (`tools/minikit-cli/`)
- [x] Doctor command MVP
- [x] Copy linter MVP (with suggestions, code-fence ignore)
- [x] Enhance lint-copy: path allowlist to reduce false positives
- [x] CI: GitHub Action to run `mini-kit` on PRs (scoped to docs)
- [~] Update `create-base-mini-app` CLI with auth scaffolding and asset optimization — MVP scaffolder to add

## Phase 3 (Templates and Growth)

- [x] Growth: Event schema (`docs/base-app/growth/event-schema.mdx`)
- [x] Growth: Analytics integration (`docs/base-app/growth/analytics-integration.mdx`)
- [x] Distribution & categories (`docs/base-app/growth/distribution-categories.mdx`)
- [ ] Templates & starters (code repos) — docs page exists (`docs/base-app/guides/templates-starters.mdx`)
- [x] Scaffolds added under `starters/` (browse-first, action-gated, game-loop)
- [ ] Promote to separate repos and link from docs
- [ ] Example projects (3 polished references) — TODO

## Phase 4 (Review & Enforcement)

- [x] Submission workflow (`docs/base-app/quality/submission-workflow.mdx`)
- [x] Validation guide with CI example (`docs/base-app/quality/validation.mdx`)
- [ ] Quality Lead role + office hours — TODO
- [~] Validation pipeline (CI in this repo using `mini-kit`) — doctor in PRs; add Lighthouse mobile harness next
- [ ] Getting Featured metrics monitoring — TODO

## Next suggested steps

- [x] Create manifest docs page and add to nav
- [x] Add linter path allowlist to skip guidance/example pages in copy lint
- [x] Add GitHub Action running `mini-kit doctor` (scoped) on PRs
- [x] Add GitHub Issue template: "MiniApp Featuring Request"
- [ ] Link real Figma UI Kit URL and assets

## Reconciled original items

- [x] Update manifest docs with unified asset specs and byte caps
- [x] Create UI Patterns page with copy‑paste components and examples
- [x] Write Error Taxonomy & Reliability guide
- [~] Design and publish Figma Base Mini‑kit UI library (docs stub exists)
- [~] Update `create-base-mini-app` CLI with auth scaffolding and asset optimization (add MVP)
- [x] Create `mini-kit doctor` CLI command for validation and quality checks
- [x] Build copy linter tool to scan for banned terms and jargon
- [ ] Create three official starter templates (browse‑first, action‑gated, game‑loop)
- [ ] Build three polished reference apps with end‑to‑end walkthroughs
- [x] Write Growth & Analytics pillar (event schema and integrations)
- [x] Update Distribution & Categories with examples and tag guidance
- [x] Create Getting Featured submission workflow + GitHub issue template
- [ ] Establish Mini‑app Quality Lead role and office hours schedule
- [~] Set up automated validation pipeline for submissions and featuring (PR doctor done; add Lighthouse)
7 changes: 7 additions & 0 deletions base-docs.code-workspace
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"folders": [
{
"path": "."
}
]
}
96 changes: 96 additions & 0 deletions docs/base-app/design/accessibility.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---
title: "Accessibility"
description: "Make MiniApps usable by everyone: safe areas, contrast, motion, and semantics"
---

# Accessibility

Design for everyone. Follow these requirements to pass the Quality Bar and deliver inclusive experiences.

## Safe areas and touch targets

- Use `env(safe-area-inset-*)` for padding
- Minimum touch target: 44×44 px
- Avoid placing controls near home indicator edges

```css
.app {
padding: env(safe-area-inset-top) env(safe-area-inset-right) env(
safe-area-inset-bottom
) env(safe-area-inset-left);
}
.button {
min-height: 44px;
min-width: 44px;
}
```

## Color and contrast

- Meet WCAG AA contrast (≥ 4.5:1 for body text)
- Do not convey meaning by color alone; pair with icons/labels
- Provide light/dark themes and preserve contrast in both

## Typography

- Base size ≥ 16px; avoid ultra‑light weights
- Maintain readable line length (45–75 characters)
- Respect user font size settings when possible

## Motion and reduced motion

- Keep transitions 200–300ms; no gratuitous motion
- Respect `prefers-reduced-motion`

```css
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
}
}
```

## Semantics and roles

- Use semantic HTML (`button`, `nav`, `main`, `h1`–`h3`)
- Provide `aria-label` for icon‑only buttons
- Ensure focus outlines are visible and not removed

```tsx
<button aria-label="Close dialog">
<Icon name="close" />
</button>
```

## Keyboard and focus management

- Trap focus within modals; return focus to trigger on close
- Visible focus state for all interactive elements
- Order focus logically (DOM order matches visual order)

## Error messaging

- Use clear language; describe cause and next step
- Link errors to fields via `aria-describedby`
- Do not rely solely on color to indicate errors

## Media and images

- Provide `alt` text for informative images
- Mark decorative images with empty `alt=""`
- Caption essential videos; provide transcripts when applicable

## Accessibility checklist

- [ ] Touch targets ≥ 44px; safe areas respected
- [ ] Contrast ≥ 4.5:1; legible in light and dark
- [ ] Reduced motion honored; no blocking animations
- [ ] Semantic elements and ARIA where needed
- [ ] Focus visible and managed in modals
- [ ] Clear, actionable error messages
- [ ] Images have appropriate alt text

Resources: WCAG 2.2 AA, Apple HIG Accessibility
42 changes: 42 additions & 0 deletions docs/base-app/design/figma-ui-kit.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
title: "Figma UI Kit"
description: "Official Base MiniApp components and tokens for fast, consistent design"
---

# Figma UI Kit

Design MiniApps faster with the official Base UI Kit for Figma. Components mirror Base App styles and include responsive variants.

## Contents

- Core components: buttons, inputs, cards, sheets, modals, toasts
- Layout primitives: grids, safe‑area frames, navigation bars
- Tokens: color, typography, spacing, radius, elevation
- Templates: first‑run, list/detail, empty, error, auth prompt

## Download

- Public link: [Figma Base MiniApp UI Kit](https://www.figma.com/file/PLACEHOLDER/Base-MiniApp-UI-Kit?node-id=0%3A1)
- Duplicate to your workspace; keep tokens intact

## Using tokens

- Colors and type are provided as styles; do not detach
- Map design tokens to CSS variables shown in Design Principles
- Light and dark modes included via color styles

## Contribution

- Suggest improvements via GitHub issues in `docs` repo
- Include screenshots and rationale

## Versioning

- Kit versions follow SemVer (e.g., 1.0.0)
- Breaking visual changes increment major version

## Best practices

- Start from templates; avoid reinventing common patterns
- Keep touch targets ≥ 44px
- Use safe‑area frames when composing screens
Loading
Loading