Skip to content

Releases: monomixs/Droidwright

v1.6.0

Choose a tag to compare

@monomixs monomixs released this 01 Nov 21:27

v1.6.0

This release adds a full-window drag and drop experience and the ability to import your own fonts. It also introduces the Droidwright app for Windows, the same editor running as a desktop app that works without an internet connection.

New

  • Drag and drop overlay. Dragging a file over the window now fades in a full-window drop zone that tells you what will happen when you let go. It recognizes what you are dragging and highlights the matching card (Drawings, Projects, Fonts, Images), and it stays out of the way while a dialog is open.
  • Drop more than SVG and JSON. Dropping now handles .svg, Android .xml, project .json, fonts, and images. A dropped image opens in the Reference panel so you can trace it or pick colors from it. Unsupported files get a clear message instead of silently doing nothing.
  • Add your own fonts. Drop .ttf, .otf or .woff files onto the window (any number at once), or use the new Add font... button in the font browser. They appear under a new My Fonts category and work with the text tool like any other font.
  • Fonts are grouped for you. Several files of one family (Regular, Bold, Italic...) become one family with the right weights, and variable fonts offer every weight.
  • Fonts stay private. Imported fonts are kept in your browser, never uploaded, and remembered between visits. Clearing your browser data removes them.
  • Removing a font. Use the ✕ in the font browser (click twice to confirm). Text you already made with it keeps its shape.

Changes

  • The window-wide drop handling was rewritten. The old plain dashed box is replaced by the new overlay.
  • An imported font never hides a built-in one: if the name is already taken it is listed as Name (imported).
  • A font that can't be used is skipped with a reason (for example WOFF2 and .ttc collections are not supported) and never stops the other files in the same drop.
  • Dragging something that is not a file, such as a link, onto the window is refused so it can't navigate away from the editor.

Fixes

  • Fixed the Reference panel saying "Drop in a reference image" when dropping an image did nothing.

Introducing Droidwright for Windows

Droidwright is now also a desktop app. It is the same editor you already know, with everything below added on top.

Works without internet

Once installed, you can draw, edit, import, and export with no connection at all.

  • The editor and all the built-in fonts are inside the app. Nothing is loaded from a server to start it or to use it.
  • Your projects are saved on your computer, not in the browser.
  • Only two optional features use the internet, and both remember their last result.
  • Google Fonts. The app downloads the Google font you pick and keeps it, so a font you have used once keeps working offline. The list falls back to the fonts you already downloaded when you are offline.
  • Changelog. The Changelog button reads the release notes from GitHub and shows the last copy it fetched when GitHub can't be reached.

What's different from the website

Website Windows app
Where projects live Browser storage Real .json files in a folder you choose
Opening an SVG or XML Import or drop it Also right-click > Open with, or double-click
Saving an opened file Saved as a project Saved as a project and written back into your file
Fonts Built-in, Google Fonts (online), your own Built-in, Google Fonts (downloaded and cached), your own
Working on a whole folder Not available Workspace tab: edit every vector XML in a folder in place
Window Browser tab Native window with its own title bar

What's now possible

  • Edit a file in place. Open an .svg or .xml from Explorer, edit it, and every save (Ctrl+S, the Save button, autosave) writes your changes into that same file. Android vector XML stays Android XML; anything else is saved as SVG. A toast confirms Saved to "name.svg".
  • Pick up where you left off. The project remembers which file it came from, even after you close the editor or the app. Open the same file again and you get your project back instead of a new copy. If another program changed the file in the meantime, it opens as a fresh project so you never see a stale version.
  • Your projects are normal files. Every project is a .json file in the Projects folder inside your save folder (default Documents\Droidwright), named after the project and renamed when you rename it. Copy them, back them up, or send them to someone. Projects already stored in your browser are copied across once, and the browser copies are left untouched as a backup.
  • Workspace mode. The home screen now has Project and Workspace tabs next to the search bar. Project (the default) works exactly as before. In Workspace you pick a folder on your PC and Droidwright scans it, subfolders included, and shows every Android vector drawable (.xml) as a card. Opening a card edits the real file, and every save (Ctrl+S, the Save button, autosave) is written straight back into it, like saving a text file. Nothing is copied and nothing is added to your Projects folder.
    • New file. In Workspace the New project button becomes New file. Draw your icon and the first save creates a .xml in the workspace folder, named after the icon. An existing file is never overwritten (a taken name becomes name_2.xml).
    • Delete file. Workspace cards have a delete button. It asks first and warns that the real file is deleted permanently, with no Recycle Bin.
    • Safe opening. If a file has parts Droidwright can't keep (clip paths, @color/ references and similar), you are warned before it opens, because saving rewrites the file without them.
    • Stays up to date. The folder is remembered between launches and rescanned when you return to the home screen, press Refresh, or switch back to the app after changing files elsewhere. Search also matches the subfolder path.
    • What is listed. Only vector drawables get cards. Other XML (layouts, manifests, strings...) is skipped and counted, and .git, .gradle, .idea, node_modules and build folders are not scanned. Workspace mode is only in the Windows app.
  • Make Droidwright your SVG and XML app. Register it for .svg and .xml in Settings > Files & Projects. Opening a file while the app is already running sends it to the open window instead of starting a second copy.
  • Fonts on your own terms. Add font... copies fonts into the app and Fonts folder opens where they are kept. Variable fonts are converted to the exact weight you choose, so text traces correctly at any weight.
  • Everything from the website. The drop overlay, My Fonts, and every editor feature work the same in the app.

Note: Files dropped onto the window are imported but are not linked to their original location, because the browser doesn't tell the app where a dropped file came from. Use Open with or a double-click for save-back.

v1.5.0

Choose a tag to compare

@monomixs monomixs released this 10 Oct 00:43

New

  • Custom color picker. Replaces the browser's built-in picker everywhere: a saturation/brightness square, hue slider, and hex field. Shape fill, stroke, and gradient-stop colors, plus the icon tint and canvas background, also get a transparency slider that stays in sync with their existing opacity controls. The accent color and default fill/stroke settings stay flat colors with no transparency.
  • Custom dropdown menus. The export format, PNG size, and font weight dropdowns now use app-styled menus instead of the browser's native list, with arrow-key navigation.
  • Delete multiple projects at once. Select several icons on the home screen and a Delete selected button appears next to Group selected. It uses the same confirmation as deleting a single icon, and respects the "confirm before deleting" setting.
  • New logo. The new mascot icon replaces the old mark in the top bar, the home header, the browser tab icon, and the first-run welcome popup.
  • Hidden developer settings. Click the Settings title 10 times in quick succession to unlock a Developer tab, which stays unlocked on that device. It currently contains a button to reopen the welcome popup.

Changes

  • Resize handles. Selection now shows 4 round corner handles. The entire top, bottom, left, and right edges are draggable to change just the width or height (similar to Canva), replacing the 4 small edge-midpoint handles.
  • Text hover outline. Hovering text now shows the same box as the selection outline, instead of tracing the glyph shapes.
  • Right-click menu. The context menu now measures its real size and stays fully on screen near any edge, and re-fits itself if the window is resized while it's open.
  • Grid. The grid now has the same visual density at every canvas size (300 cells across the larger dimension). The Grid size setting scales this spacing rather than setting literal units. Snap-to-grid still uses the literal size.
  • Keyline guide. Added a minimum line thickness so the guide doesn't thin out to a hairline at very high zoom.
  • Text selection. UI text (panels, toolbars, labels, and dialog titles) is no longer selectable, and dragging from the canvas onto panels no longer highlights their text. Inputs, the XML editor, the Changelog, and the About popup stay selectable.

Fixes

  • Fixed the grid and keyline guide looking oversized on small canvases (below 256 units) compared to 512×512.
  • Fixed the grid's cell size jumping between canvas sizes. For example, a 24×24 canvas had noticeably larger cells than 48×48 or 512×512.
  • Fixed grid and keyline lines appearing thick on small canvases that are zoomed in.
  • Fixed the grid and keyline guide not updating while zooming in and out. They only refreshed after you clicked the canvas.
  • Fixed the tooltips for the Settings, Undo, and Redo buttons showing no text.
  • Fixed the About popup becoming wider after opening and closing the Changelog.
  • Fixed a tangled green scribble appearing when hovering over text from an imported SVG. Any shape made of more than one subpath, such as text or a shape with a hole, now gets the simple box hover.

v1.4.0

Choose a tag to compare

@monomixs monomixs released this 24 Sep 01:17
4d03689

This release adds a dedicated Settings pop-up (with a searchable, fully customizable keyboard shortcuts tab), a light theme, a customizable accent color, autosave, and a batch of fixes and polish for icon grouping and shape grouping.

New

Settings pop-up

Categories are listed on the left. Selecting one shows its settings on the right.

Opening it:

  • Gear button in the Home header
  • Gear button in the editor top bar
  • Ctrl + , (Cmd + , on macOS) — customizable, see Keybinds below

Using it:

  • Changes apply instantly and are saved on this device.
  • Each category has a Restore defaults button.
  • Press Esc or click outside the dialog to close it. Keyboard focus stays inside while it's open, and editor shortcuts are paused.
  • Arrow keys move between categories.
  • On narrow screens the categories become a scrolling row across the top.

Search settings

A search box sits right above the category list. Type anything — a setting's name, a description, a tab name, or even a shortcut like ctrl+z — and matching settings from every tab (including Keybinds) show up grouped by category, fully editable right there. Click a group's heading to jump straight to that tab.

Keybinds tab

A new category lists every keyboard shortcut in Droidwright, grouped by area (Editing, Tools, View, General).

  • Click Change next to any shortcut, then press the key combination you want — it's applied instantly.
  • If that combination is already in use, you'll be offered a choice: cancel, or take it here and clear it from whichever action had it.
  • Reset brings a single shortcut back to its default; Restore Keybinds defaults resets all of them.
  • Tooltips throughout the app update immediately to reflect your current shortcuts.

Appearance

  • Theme: Dark, Light or System. System follows your device and updates live if your device switches.
  • Accent color: seven presets or any custom hex color. It recolors buttons, active tabs and chips, selection handles, the keyline guide, alignment guides and snap indicators.
  • Toast duration: 1 to 10 seconds. A sample message appears when you let go of the slider.

Canvas & Editing

  • Default canvas size: the artboard size for new projects (24, 32, 48, 64, 96, 108 or 512 dp). Existing projects keep their own size.
  • Grid size: the spacing between grid lines. Snapping uses the same distance.
  • Show grid, Snap to grid and Show guides: these are the same switches as the chips above the canvas. Changing one updates the other, and both are remembered next time you open the app.
  • Default zoom: Fit to canvas, 50%, 100%, 200% or 400% when a project opens.

Tools

  • Default stroke width: applies to new shapes and lines.
  • Default fill and Default stroke: colors for new shapes and lines.
  • Remember last-used tool: starts your next session with the tool you were using. Edit points and Cut are not restored, because they only work with a selection or in the middle of a gesture.

Files & Projects

  • Autosave: saves the open project to this device as you work.
  • Autosave interval: after a pause in editing, or every 30 seconds, 1 minute or 5 minutes.
  • Auto after delay: how many milliseconds to wait after your last edit before saving. It only appears when the interval is set to "after a pause".
  • Confirm before deleting: asks before permanently deleting a project from Home.
  • Confirm before closing unsaved projects: asks before the Home button, New project, or closing the tab discards unsaved changes.

Autosave details

  • While autosave is on, the top bar shows Unsaved changes or Saved 2:14 PM.
  • A burst of edits saves once, after you pause. Saving is held off while you're mid-drag or typing in a field.
  • Leaving for Home, starting a new project, switching tabs or closing the tab saves first. You aren't asked to confirm.
  • If browser storage is full, you get an "Autosave failed" message instead of a silent failure.

Light theme

The whole app now has a light theme: Home, the editor, the canvas and artboard, the XML view and code previews. The selected theme and accent are applied before the page first paints, so there is no flash of the wrong theme on load.

Edit one shape inside a group

On the canvas, hold Ctrl (or Cmd on macOS) while hovering, clicking or dragging a shape that belongs to a group to reach in and work on just that one shape — the hover preview, selection outline and drag all target only that shape instead of the whole group.

Changed

  • Clicking any shape in a group now selects, outlines and drags the whole group together by default (matching how selecting a group from the layers panel already worked). Hold Ctrl/Cmd for the old single-shape behavior — see "Edit one shape inside a group" above.
  • Icons inside an open group (Home) are no longer individually selectable. They behave like plain browsable cards — hover highlight only, click to open. Selecting icons to build or add to a group is still done from the main grid.
  • The "Group selected" button (Home) only appears once you've selected two or more icons, instead of showing disabled the rest of the time.
  • The extra "+ New project" tile inside the icon grid has been removed. The compact "New project" button in the top-right header is the only one shown once you have at least one icon, saving space.
  • Confirmation prompts (deleting a project, closing unsaved work, replacing local data on import) now use Droidwright's own dialog instead of the browser's native pop-up, matching the rest of the app.
  • Default stroke and fill now apply to all new shapes. Rectangles, ellipses and polygons previously ignored stroke defaults, and the pen tool ignored the stroke width default.
  • Arcs, lines, Bézier curves and preset shapes now use your default colors. They used to have their own built-in colors (mint or blue). With the default settings they now start black.
  • Default stroke width starts at 2 dp. Turning on a rectangle's stroke now gives 2 instead of 1.
  • The zoom-to-fit button and shortcut are unchanged. Only opening or creating a project follows the Default zoom setting.
  • On-canvas UI follows your accent color. The keyline guide, node handles, alignment guides and snap markers used a fixed mint.
  • Grid spacing now follows Grid size. It was fixed at 1.

Fixed

  • Removing an icon from an open group (Home) now updates the popup immediately, instead of only showing the change after closing and reopening it.
  • Clicking an icon inside an open group (Home) now takes you into the editor right away, instead of leaving the group popup open behind it.
  • Selecting an icon on Home no longer replays every card's entrance animation — only the selection state itself updates.
  • Smoother, non-jumpy closing animation for the group popup (Home), which previously snapped to a different size partway through the fade-out.
  • Dragging one shape in a group on the canvas now moves and outlines every shape in that group, instead of only the shape you clicked.
  • The "More tools" panel now fits itself to the actual window size, so its last entry no longer gets clipped off-screen on short or narrow windows.
  • Undo and redo now mark a project as having unsaved changes. Undoing back past your last save previously left the project looking clean.

V1.3.0

Choose a tag to compare

@monomixs monomixs released this 17 Sep 09:47
ac6d49f

v1.3.0

Added

  • Gradient fills and strokes: linear, radial, and sweep, with per-stop color and transparency, three tile modes (clamp/repeat/mirror), 10 built-in presets, and a full editor — angle, center, radius, live preview, and a stop list with add/remove/reverse/even-out.
  • Gradient stops can be reordered by dragging them in the stop list.
  • Gradients export to Android Vector Drawable XML (<aapt:attr> + <gradient>, with each stop's transparency folded into its color) and round-trip back in through both Apply XML and SVG import.
  • Home screen quick view: zoom (buttons, scroll wheel, double-click, +/-/0 keys, and drag-to-pan once zoomed in), inline rename, and a toggle between the rendered icon and its XML — each view fully replaces the other.
  • Line-number gutter in the quick view's code panel.
  • Custom up/down stepper buttons on every number input across the app, replacing the browser's native spinner, with press-and-hold to repeat.
  • A Changelog button on the home screen, next to About, showing the project's published GitHub releases — tag, date, and full release notes rendered from Markdown — fetched live from GitHub with the last successful fetch cached for when GitHub is unreachable.

Changed

  • Home screen card previews are larger and now show the canvas background layer when it's turned on.
  • Once there's at least one saved icon, the home screen's headline and illustration collapse to a slim stats strip, so the project grid starts right under the header instead of below a full-height intro every time.
  • The home screen's header and outer spacing are more compact overall.
  • The headline, subtitle, and keyline illustration that used to sit inline on the home screen now show once, as a dismissible welcome popup, instead of taking up space on every visit.

Fixed

  • The mobile/desktop editor block no longer triggers on ordinary laptops, touchscreen or not, while still catching phones and tablets — even ones using "Desktop site" mode. Windows, macOS, and desktop Linux now always get a pass regardless of window size.
  • The mobile block's overlay text stays legible at any size, including when a phone's browser is zoomed out under "Desktop site" mode.
  • Dragging to reorder gradient stops or layers could silently do nothing, because a page-wide listener for dropping SVG/JSON files was fighting with the reorder drag over the same browser drag state. Both now use the same pointer-based dragging the rest of the app already uses, which sidesteps the conflict and works on trackpads and touch too.
  • The "Drag to reorder" tooltip on the gradient stop and layer drag handles no longer gets clipped by the panel — it was anchored to grow toward the panel edge it sits against; it now grows the other way, into open space.

v1.2.0

Choose a tag to compare

@monomixs monomixs released this 07 Sep 01:57
b865b54

v1.2.0 Beta

Added

  • Reference image panel import a reference image by URL or from your device, with zoom, pan, rotation, and an eyedropper (native browser picker, with a canvas-based fallback) to pull colors straight onto your shapes.

  • 2-click drawing for Arc, Curve, and Line click a start point, see a live preview, click again to place the end, instead of click-and-drag.

  • Arc / Pie tool overhaul dedicated on-canvas angle and inner-radius handles, plus a full properties panel (start angle, sweep, opening %, sector/pie toggle, donut inner radius) with one-click presets (full ring, quarter, half, three-quarter, thin slice).

  • Pie added as a built-in shape preset.

  • Cut tool trace a cutting shape point-by-point (pen-style) to slice it out of whatever's underneath.

  • Merge command combine 2+ selected shapes into a single path via right-click, kept distinct from the existing Union boolean op (no geometry recalculation, just combines them into one editable shape).

  • Hover outline hovering an unselected shape now shows a green outline in the site's accent color, hugging the true visible edge of its stroke (not just the fill), and staying correctly sized as you zoom in/out.

  • Open working space outside the canvas shapes can now be drawn and positioned outside the square canvas bounds for staging/overflow; anything left outside is still correctly cropped out of the exported icon and XML.

  • Selection handles and smart alignment guides now account for stroke width, snapping/positioning to a shape's true visible edge.

  • Canvas Background Layer section moved lower in the side panel, below the shape properties controls.

  • Text tool add and edit text directly on the canvas — content, font size, weight, italic, letter spacing, and text alignment can all be changed at any time after the text is placed, not just when it's first created.

  • Google Fonts browser search and filter (Sans Serif, Serif, Display, Handwriting, Monospace) real Google Fonts from directly inside the text properties panel, with each entry previewed in its own typeface. Text is automatically traced into a real vector outline from the actual selected font file, so it behaves like any other exportable shape on the canvas.

  • Convert to Path action for text freezes the current letterforms into a plain, directly-editable outline (drag individual points) once you no longer need to keep editing it as live text.

  • Text portability indicator the XML tab's valid/invalid checkmark gains a third status icon whenever the icon contains text, explaining that Android Vector Drawable XML has no live text — exported XML/SVG/PNG bakes it into fixed paths permanently, while the saved project file keeps it fully editable.

  • Export menu the old "Export .xml" button is now a single "Export" button that opens a live preview of the icon alongside a format dropdown — Android Vector XML (default), SVG, or PNG (with a size picker) — instead of only ever downloading XML.

Fixed

  • Dragging a Bézier curve's endpoint handle could send the curve growing outward uncontrollably instead of following the cursor.
  • Arc and Curve shapes could lose their dedicated editing handles (getting silently flattened into generic paths) when selected with the Edit Points tool.
  • Removed leftover demo/test buttons from the Boolean panel.
  • Hover outline wasn't showing at all for shapes drawn far from the main canvas — its highlight mask was sized to the canvas's own viewport instead of to the shape itself, so anything outside that region got silently clipped away.
  • Resizing a Bézier curve's handles didn't adapt to the curve's actual size after its points had been edited by hand — the resize handle stayed sized to whatever the curve looked like when it was first drawn.
  • The open working area outside the canvas was small and rendered as a solid black background, making it look like a hard boundary shapes couldn't be created past. It's now a much larger, visually open area that reads as part of the canvas instead of a walled-off box.
  • The reference image panel could only zoom out to 10%, not enough to shrink a large reference photo down to fit a small icon canvas for tracing — it can now zoom out to 2%.
  • Hover outline could occasionally end up stuck on the wrong shape (or fail to update at all) right after finishing a drag, resize, or rotate, due to how the browser tracks pointer position during a drag. It now double-checks what's actually under the cursor the moment the drag ends, instead of relying only on hover events that fired mid-drag.

v1.0.0

Choose a tag to compare

@monomixs monomixs released this 01 Sep 03:06
58aefec

Initial release.

Bugs are expected.