Tooltip: implement Bootstrap trigger and positioning parity #9

Closed
opened 2026-06-23 19:00:29 +00:00 by mik-tf · 2 comments
Owner

Parent tracker: #1

Objective: upgrade Tooltip to expose typed Dioxus behavior matching Bootstrap tooltip behavior where dbcss has a component surface.

Scope:

  • Use the shared overlay positioning core for viewport-aware placement, fallback placements, offset, and effective placement classes.
  • Add typed trigger support for hover, focus, click, manual, and combined hover+focus behavior where appropriate.
  • Add show/hide delay support.
  • Add custom tooltip class support without losing Bootstrap classes.
  • Add accessibility behavior: focus visibility, role/aria output, and predictable keyboard-trigger behavior.
  • Document disabled-trigger wrapper guidance or add a small helper if that fits the component design.

Acceptance criteria:

  • Tooltip examples and docs show the typed props.
  • E2E covers hover, focus, viewport-edge fallback, and aria/role output.
  • No Bootstrap JavaScript dependency is introduced.
  • Existing checks stay green.

Dependencies: parity spec issue and overlay positioning core issue.

Signed-by: mik-tf mik-tf@noreply.invalid

Parent tracker: https://forge.ourworld.tf/lhumina_code/dioxus-bootstrap-css/issues/1 Objective: upgrade Tooltip to expose typed Dioxus behavior matching Bootstrap tooltip behavior where dbcss has a component surface. Scope: - Use the shared overlay positioning core for viewport-aware placement, fallback placements, offset, and effective placement classes. - Add typed trigger support for hover, focus, click, manual, and combined hover+focus behavior where appropriate. - Add show/hide delay support. - Add custom tooltip class support without losing Bootstrap classes. - Add accessibility behavior: focus visibility, role/aria output, and predictable keyboard-trigger behavior. - Document disabled-trigger wrapper guidance or add a small helper if that fits the component design. Acceptance criteria: - Tooltip examples and docs show the typed props. - E2E covers hover, focus, viewport-edge fallback, and aria/role output. - No Bootstrap JavaScript dependency is introduced. - Existing checks stay green. Dependencies: parity spec issue and overlay positioning core issue. Signed-by: mik-tf <mik-tf@noreply.invalid>
Author
Owner

Implemented Tooltip parity in b05c34577f.

Summary:

  • Added typed Tooltip triggers for hover/focus, hover, focus, click, and manual control.
  • Added delay, controlled open state, Auto placement, fallback placements, offset, boundary padding, and disabled-trigger wrapper support.
  • Wired Tooltip positioning through the shared overlay core for viewport-aware fallback placement.
  • Updated the showcase, parity/design docs, and E2E coverage for hover, focus, click, role/aria output, and viewport fallback.

Verification completed locally:

  • cargo fmt --all -- --check
  • cargo test -p dioxus-bootstrap-css
  • cargo check --target wasm32-unknown-unknown -p showcase
  • cargo clippy --target wasm32-unknown-unknown -p dioxus-bootstrap-css -- -D warnings
  • npm run test:migrate
  • npm run lint:bootstrap
  • npm run test:e2e -- --grep "tooltip"
  • npm run test:e2e (51 passed)

Forge CI status:

  • MSRV 1.85 is green.
  • Check, lint, format is still reported as pending/running on actions/runs/21, last updated at 2026-06-23T20:12:31Z. Leaving this issue open until that status resolves cleanly.

Signed-by: mik-tf mik-tf@noreply.invalid

Implemented Tooltip parity in b05c34577f2dfc01160bc91d755b9d80a424a0fa. Summary: - Added typed Tooltip triggers for hover/focus, hover, focus, click, and manual control. - Added delay, controlled open state, Auto placement, fallback placements, offset, boundary padding, and disabled-trigger wrapper support. - Wired Tooltip positioning through the shared overlay core for viewport-aware fallback placement. - Updated the showcase, parity/design docs, and E2E coverage for hover, focus, click, role/aria output, and viewport fallback. Verification completed locally: - cargo fmt --all -- --check - cargo test -p dioxus-bootstrap-css - cargo check --target wasm32-unknown-unknown -p showcase - cargo clippy --target wasm32-unknown-unknown -p dioxus-bootstrap-css -- -D warnings - npm run test:migrate - npm run lint:bootstrap - npm run test:e2e -- --grep "tooltip" - npm run test:e2e (51 passed) Forge CI status: - MSRV 1.85 is green. - Check, lint, format is still reported as pending/running on actions/runs/21, last updated at 2026-06-23T20:12:31Z. Leaving this issue open until that status resolves cleanly. Signed-by: mik-tf <mik-tf@noreply.invalid>
Author
Owner

Tooltip parity CI is now green for b05c34577f.

The implementation summary was posted earlier while Forge CI was still pending. The pending jobs have since completed successfully:

  • Forge CI run 21 MSRV 1.85 is green.
  • Forge CI run 21 Check, lint, format is green.

Current tracker checks also passed in the #12 cleanup run, including targeted overlay E2E coverage.

Signed-by: mik-tf mik-tf@noreply.invalid

Tooltip parity CI is now green for b05c34577f2dfc01160bc91d755b9d80a424a0fa. The implementation summary was posted earlier while Forge CI was still pending. The pending jobs have since completed successfully: - Forge CI run 21 MSRV 1.85 is green. - Forge CI run 21 Check, lint, format is green. Current tracker checks also passed in the #12 cleanup run, including targeted overlay E2E coverage. Signed-by: mik-tf <mik-tf@noreply.invalid>
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/dioxus-bootstrap-css#9
No description provided.