Skip to content

bento/slides v1.0.19

Latest

Choose a tag to compare

@nyblnet nyblnet released this 04 Sep 22:49
0100083

Download the single file below and open it in any modern browser — it's the document, the viewer and the editor in one. Shipped files self-update through the signed release channel.

  • Bento Slides works on a phone. Eight changes land together, because
    individually none of them was enough: a deck opened on a handset could be
    looked at and rearranged, but not written.

    Text is editable by touch. Opening a text box was bound to double-click,
    and a double-click never reaches the canvas from a touchscreen — so on a
    phone a deck was effectively read-only. Elements selected, moved and resized;
    no word in them could be changed. A tap on the box a previous tap selected
    now opens it, and on a table it opens the cell under your thumb. Mouse
    behaviour is untouched: one click still selects, two still open.

    A formatting bar, which is also the only route to any of this on a phone.
    Select words inside an open box and a bar appears over them — bold, italic,
    underline, strikethrough, code, title, heading, body, bulleted and numbered
    lists, and clear formatting. Bold and italic previously existed with no
    visible way to reach them (⌘B and markdown, neither mentioned anywhere in the
    interface); lists and headings could not be made at all. They are real list
    and heading tags in the document, sized proportionally, so a box keeps its
    hierarchy when you resize it and the canvas, thumbnails, presenter and print
    all agree.

    Lists and headings are the only part of this batch that changes what a file
    can contain, and they are additive like everything else in the format: a deck
    using them opens in any earlier copy of Bento, which keeps every word and
    simply shows the list without its bullets until that copy is updated. The new
    tags carry no attributes of their own, by construction.

    Pinch to zoom, and two fingers to move the canvas. A deck opens at
    19–27% on a handset, so it always needs zooming, and the only way to zoom was
    two small buttons in a corner. Pinch now drives the editor's own zoom,
    anchored between your fingers rather than snapping back to the middle of the
    slide, and the same gesture pans. The page itself still never zooms, and
    one-finger selection and dragging are unchanged.

    Press and hold, or right-click, for a menu that belongs to the deck.
    There was no context menu, so a right-click produced the browser's own — Back,
    Reload, View source — which is the wrong set of verbs for a slide and the
    first gesture most people try. Now an element offers Edit text, Cut, Copy,
    Duplicate, Bring to front, Send to back, Group and Delete; a thumbnail offers
    New, Duplicate and Delete slide; the canvas offers Paste. Press and hold is
    the same menu on a phone. The browser's own menu is deliberately left in place
    where it is the better one — form fields, links, and text you are editing,
    where the system carries spelling, dictation and look-up.

    The toolbar can be reached at 320px. Fully folded the bar still needs
    about 356px, and an iPhone SE — or any iPhone with Display Zoom on — is 320.
    The surplus was simply cut off, which put the ⋯ button 36px past the edge of
    the screen, taking Redo, Comment, Export PDF, Share, Language, Help and the
    whole save-as list with it, none of which had another route on a phone. The
    bar now scrolls, so a clipped button becomes a partly visible one.

    The panels get out of the way. Below 700px the side panels are drawers
    laid over the canvas rather than columns beside it. Tapping a thumbnail
    navigated correctly and then left the drawer covering the slide it had just
    moved to, so every slide change cost a second trip to the toggle. Picking a
    slide now closes the list, and tapping the slide beside any open overlay
    dismisses it. On a wide screen the panels are still columns and stay put.

  • Code on a slide — and it morphs. A slide can hold a code snippet, syntax
    highlighted, and when the same snippet appears on two slides in a row the code
    travels between them. A line that moved moves; a call that changed position
    slides to where it went, and the lines it passes step out of its way. Nothing
    blanks and redraws.

    This is the deck's existing morph pointed at source code. Show a refactor as
    three slides and an audience watches the edit happen rather than comparing two
    static screenshots — the starter deck now walks through fifteen years of
    JavaScript, callbacks to promises to async/await, and the code rearranges
    itself at each step.

    Symbols with no counterpart on the previous slide fade in, staggered, once the
    movement is already under way, so a newly introduced line arrives as part of
    the same beat instead of snapping in. A word whose role changes while its
    text does not — render( becoming .then(render) — keeps its identity and
    travels, because turning a call into a reference is a refactor, not a rename.

    Highlighting is built in, covers 75 languages plus diffs and Markdown, and
    costs a deck about 10 KB. It is deliberately the cheaper of two tiers: the
    format keeps its seam for full grammars carried as per-deck assets, and
    nothing here closes that door.

  • A deck can set its own morph tempo. The default 0.65 seconds is tuned for
    the ordinary case — a title sliding in, a shape growing, a journey of several
    hundred pixels. A code symbol moves about one line height, and at that tempo
    the whole journey is over in roughly 300 ms: measurably an animation, watchably
    a blink. A deck built around small, precise movement can now choose a slower
    beat, and decks that say nothing are unchanged.

    This one is a document setting (present.morphSeconds, clamped to 0.1–6
    seconds) with no control in the panel yet — reachable today by editing the
    deck's JSON through Copy document JSON / Replace from JSON….

  • Deck-wide brand colours. The Slide panel gains a Theme section — a
    background, a text colour and six accents — and every colour control now
    offers those swatches above its picker. Pick one and the deck remembers where
    the colour came from
    , so changing the theme later updates every element using
    it, across every slide. Pick a custom colour instead and it stays exactly as
    you set it: choosing by hand clears the link, because a colour you chose
    deliberately should never be overwritten by a later theme edit.

    The document keeps ordinary colour values throughout, exactly as before — the
    reference sits alongside them rather than replacing them. So a deck saved with
    a theme still opens correctly in any earlier copy of Bento, which simply sees
    a normal deck of normal colours.

  • The web demo says where your deck went. bento.page always hands out a new
    deck — that is what it is for — so anyone who saved from it and came back
    later got a blank starter and reasonably read it as lost work. Their file was
    on disk the whole time; nothing on screen said so.

    Saving from the web now leaves a line naming the file it went to, and saying
    that this page always starts a new deck. Coming back after a save says the
    same thing before you start typing into a fresh one, with the name of the file
    to open — and Start a new deck anyway is always there, because some
    visitors do want a fresh one.

    Two things genuinely do not survive that trip and are worth knowing: version
    history and the recovery snapshot belong to the browser, not the file, so they
    stay behind on bento.page when the deck moves to your disk.

  • Every deck you save is smaller. The runtime each file carries is now packed
    harder — about 26 KB off a Bento Slides file, for nothing given up. It is the
    same compression format as before, searched more thoroughly at build time, so
    files you already saved keep working and an older copy of Bento still updates
    itself against a new shell exactly as it did.

  • Saving into any of several granted folders. With the browser extension
    installed, you can grant Bento more than one folder and a deck saves back to
    whichever one it came from. Two decks that share a filename in different
    folders both save correctly now; previously that ambiguity made Bento decline
    the save. Granting a large folder no longer costs anything either, so a whole
    home directory is as cheap as a single decks folder.

  • The toolbar is centred on a phone, and the Save button has its outline
    back.
    At phone widths the deck title had 90px to sit in and now has 220px,
    because the folded bar centres and gives the title the room it frees. The Save
    button had lost its right-hand border and rounded corner below 700px, where
    the caret beside it is hidden — so it read as an unfinished edge rather than a
    button.

  • Fix: several buttons were unreadable in dark mode. White text on a
    near-white button — the main action in a dialog, the toast that confirms a
    save, the active chip in a settings row, and the + between slides. The
    colour of the text was fixed while the colour behind it followed the theme,
    so what read cleanly in light turned into white-on-white as soon as the
    interface went dark. The panel chevrons had a milder version of the same
    thing. Text now always takes the opposite colour to whatever it sits on.

  • Fix: audio and video played in a show even with Autoplay switched off.
    Set a clip's Autoplay to Off and it still started the moment its slide came
    up — every time, in a saved file, on any browser. The only way to stop it was
    to remove the clip.

    The flag was written as an empty attribute rather than left off, and the
    slideshow engine treats an attribute that is present as a yes, whatever it
    says. Bento's own check read the value and was right; it simply never got
    asked. Present since audio and video arrived.

  • Fix: a fading slide painted over the morph behind it. When a slide set to
    fade handed off to a morph, the outgoing slide dissolved on top of the
    animation — a 450 ms curtain over a 600 ms move — so the elements appeared to
    jump straight to their new arrangement. They had been travelling the whole
    time, underneath. Slides that hand off to a morph now cut instead.

  • Fix: a formula's new symbols appeared instantly instead of fading in. A
    formula gaining a term showed that term snapping into place while every other
    symbol glided. Bento's animation engine recognised HTML and SVG elements but
    not MathML ones, so the fade was quietly written to the wrong place and never
    reached the screen. Formula symbols now arrive on the same staggered beat as
    everything else.

  • Fix: the palette swatches had a border you could not see on a dark panel.
    The new theme swatches shipped with a border colour pinned to a light-mode
    value while the panel behind it followed the interface theme — the same
    mismatch the dark-mode fix above removes everywhere else. The border now
    follows the theme too.

  • Fix: the toast after saving an editor copy said only "Editor". In seven of
    the eight built-in languages the message that confirms an editor copy was
    saved carried the translation of the neighbouring one-word "Editor" label
    instead of its own sentence, so a German user saving an editor copy saw a
    toast reading Bearbeiter and nothing else. All eight now say what actually
    happened. Downloadable language packs were never affected.

  • Fix: a diagram could restyle other diagrams on the same slide. An SVG
    element can carry its own <style> block, and those rules were applied to the
    whole page rather than to the drawing they belong to. So a diagram that styled
    .dot or .label silently restyled every other SVG beside it — colours,
    strokes and dimming rules leaking between unrelated drawings, and the more
    diagrams a slide carried the stranger it looked.

    Nothing could escape further than that: a drawing's stylesheet has never been
    able to load or run anything, and still cannot. This was one diagram reaching
    another's appearance, not reaching out of the document.

    Bento already scoped the stylesheet you write in the element panel; the one
    that arrives inside pasted or imported SVG markup was never scoped at all.
    Both go through the same scoping now, and a drawing's own rules still apply to
    it in full.

  • Fix: a two-finger pinch on a phone could move an element and save the move.
    Pinching to look closer at a slide would silently drag whatever was under
    your fingers and commit that move to the document — no visible cause, and no
    reason to reach for undo, so the deck was quietly wrong the next time you
    opened it. Measured on a real deck: a title at (88, 122) landed at (566, 469)
    after one pinch.

    The first finger had already begun an ordinary drag. Multi-touch over the
    canvas was then swallowed so the page would not zoom — but swallowing the
    events did not end the drag that was already running underneath, and it
    committed on release like any other. The pinch now takes the canvas and stops
    that drag, which is the same change that made pinch-to-zoom possible.

    Touch only, so phones and tablets, and it needed an element under your
    fingers — which on a slide is the ordinary case.

  • Filipino is now offered to people whose browser is set to Filipino. The
    pack was filed under tl, the ISO 639-1 code for Tagalog, but browsers,
    Android, iOS and macOS all report Filipino as fil / fil-PH — so the pack
    could never be picked up automatically and only appeared if you went looking
    for it by hand. It is filed as fil now, with tl kept as an alias so a
    system that does report the old code still lands on it, and so a file already
    carrying the pack keeps working. Turkmen (tk) was checked at the same time
    and needed no change: tk-TM is what a Turkmen system reports.

  • Fix: a single click could leave an element stuck to the cursor, and the
    click that freed it moved the element.
    Click once to select something and it
    would occasionally follow the pointer around the slide as though you were
    dragging it. The click that finally released it committed the move, so the
    element stayed where the pointer happened to be — a selection turning into an
    edit, with nothing on screen to say so and no reason to reach for undo.

    This one is not about phones. It is a race between how fast the click arrives
    and how fast the machine can respond to it, so it bites slower hardware of any
    kind: the person who reported it hit it roughly one click in five on an older
    desktop and never once on a current laptop. If your deck has quietly lost its
    layout and you have never pinched a phone screen, this is the more likely
    cause. Measured on the same machine before and after: 22 of 24 clicks stuck,
    then 0 of 24.