Skip to content

Planned features #2

Description

@purajit

Bug fixes/code enhancements:

  • https://playwright.dev/docs/intro playwright tests
  • look into small DOM manipulation + state sync libraries/ideas if they offer anything useful
  • compress svgs when storing in localstorage

High priority

  • Multiple types of paths - bridges, roads, etc
  • Rotating text
  • Line tool
  • Settings menu - inverse scrolling
  • Redo path and boundary (x,y) when grid orientation is flipped
  • Text editing and better text interface (preferably in-line, but that may not be possible)
  • Redo stack

Medium priority

  • Prevent SVG going fully offscreen
  • Shortcut help display
  • Help "?" to hover to get information about each layer/tool
  • Grid resizing
  • Readjust minimap viewbox on window resize

Low priority

  • Make paths contours
  • Allow uploading object tileset
  • Area controls - move, copy+paste
  • Cross-layer contextual fill (stop filling at boundaries created in other layers)

Low low priority

  • Nominal mobile support - very very nominal
  • Mouse scrollwheel (but not trackpad!) to zoom: these are potentially nigh-impossible; TBD

Completed

  • Figure out image metadata embeddings
  • Figure out layers vs tools
  • Allow configuring grid
  • Shortcuts
  • Export/import
  • Flood fill
  • Undo stack
    • Floodfill undo
    • Grid settings undo
  • Welcome screen with information
  • Erase text
  • Warning before flipping grid axes/make it non-destructive
  • Grid thickness customizability
  • Saving state in-browser
  • pinch to zoom
  • scroll sensitivity should be lower when zoomed in, higher when zoomed out
  • Minimap
  • Multiple files - but handling 5MB limit
  • Set initial page state based on known defaults
  • lint and check code
  • create/destroy hex objects to save space - save 3/5ths of the entire space, holy
  • handle other results from https://jakearchibald.github.io/svgomg/. For a 5MB image:
    • Remove unknowns & defaults ~800KB - can't. we need these attrs
    • Shapes to (smaller) paths 300KB (polygons -> paths) - rounding gave most benefits. also this makes hex vertex logic much more complicated
    • Round/rewrite paths 180KB - rounded to 2 decimals
    • Merge paths 200KB (if even sensible) - makes no sense for this
  • migrate to typescript
  • Use data-attr for all additional attrs
  • use a custom SVG metadata ns to store metadata, or dataset attr

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions