v133 · html

Contextual help system

Every field in the form below has a ? help button. Hovering or focusing it shows the field's documentation as a [popover] via interestfor. The same attribute handles mouse hover, keyboard focus, and long-press on touch — one declaration covers all input modes.

Feature detection: checking…
0
help opens
6
fields annotated
0
JS click handlers
1
attr per button
New repository — hover the ? buttons for contextual help
a–z, 0–9, hyphens, underscores
Repository name

The name identifies your repository in URLs and CLI commands. It must be unique within your account.

Use lowercase letters, digits, hyphens, and underscores. Spaces are not allowed.

Good names: my-api, image-resizer, auth-service
Description

A one-sentence summary of what the project does. Shown on the repository homepage and in search results.

Can be changed any time in Settings.
Visibility

Public — anyone can see the code. Ideal for open source.

Private — only invited collaborators can access it.

Internal — visible to everyone in your organisation.

You can change visibility later, but going Public is permanent on free plans.
License

Tells others what they can and can't do with your code.

MIT — permissive, minimal restrictions.
Apache 2.0 — permissive with patent protection.
GPL v3 — copyleft: derivatives must also be GPL.

Without a license the default copyright law applies — others cannot use your code.
Default branch

The branch checked out by default on clone. Pull requests merge here unless redirected.

Historically master; the industry default is now main.

Can be renamed later in Settings → Branches.
.gitignore template

Adds a pre-built .gitignore for your stack, excluding build artefacts, dependencies, and editor files.

Node — excludes node_modules/, dist/, .env.
Python — excludes __pycache__/, .venv/, *.pyc.

You can add additional rules manually after creation.
Legacy: one hover listener per button
Each help button needs a mouseenter listener to call showPopover(), a mouseleave listener to hidePopover(), and the same pair for focus/blur. That's 24 listeners for a 6-field form — plus touch-specific logic for long-press.
Chrome 133+: one interestfor attribute
interestfor="help-id" on the button tells the browser to show the target popover on hover, focus, or long-press — automatically. The UA handles all three input modalities. No JS event wiring at all. Six buttons, zero listeners.
<!-- The ? button — interestfor is the only attribute needed for wiring -->
<button interestfor="help-repo-name" aria-label="Help for repository name">?</button>

<!-- The popover content is a regular popover -->
<div id="help-repo-name" popover>
  Contextual help text…
</div>

/*
  The browser shows the popover:
  - on mouseenter  → the button is the hover target
  - on focus       → keyboard/assistive navigation
  - on long-press  → touch devices (700ms default)
  It hides it on mouseleave / blur / short tap.
  Zero JS required.
*/

see also