we pick a shape
the widget used to live in your bottom-right. now it's a tab, an owl, a pill, or nothing. you pick. the snippet stays two lines.
you drop the widget. it lands in the corner.
that's the whole bug. not the form. not the two-line snippet. the pill sitting on top of your page.
so i shipped four shapes.
the button is a choice now
project → share → widget.
shape is the first control. a fake viewport shows it before you copy anything.
four of them:
- floating button. the original pill. bottom-right unless you move it.
- edge tab. flush against the left or right. you set how far from the top or the bottom. on a phone it gets slimmer so it doesn't eat the screen.
- owl icon. a round button with the owl. the label stays hidden until hover.
- hidden. no trigger at all.
color, size, text, position still apply to the ones that render a trigger. they don't apply to hidden. there's nothing to color.
the snippet does not change for the first three. two lines. the script reads the shape from us.
hidden means hidden. on purpose.
if you pick hidden, i will not draw a backup pill.
until your page calls window.Hoot.open(), visitors have no way in. that's the point. your nav, your menu, your shortcut. not mine.
the copied snippet includes an example button so it isn't a dead end:
<button type="button" onclick="window.Hoot?.open()">Feedback</button>
the ? is because the script loads async. a click before it lands should not throw.
you also get close() and toggle(). close discards whatever they typed. toggle is the one you bind to a keyboard shortcut.
free still gets the pill
shapes are pro.
the free widget is the floating button. that's the product, for one board, for one person.
if you were on pro and you stop paying, we keep your choice stored. we serve the pill anyway. the page does not break. it just looks like hoot again.
why this
i don't need a prettier widget.
i need the form to open from a thing that already belongs on your page.
the corner was never the feature. the form was. the button was just the loudest way in.
if you're already on hoot: share → widget. pick a shape. watch the preview. if you go hidden, wire window.Hoot.open() before you ship the snippet.
if you're not: usehoot.app
ask. ship. pick a shape. 🦉