Repository navigation
Releases: farhantawfeeq56/edityy
Release list
v0.8.0
Added
- The dock's row glides when the layout mode changes. The controls both modes
have are the same control, and they travel to the places the new row gives
them. What the mode adds or removes crosses over, and the row takes its new
width under them. (#236) - The children of a container glide to their new places when the layout mode,
the direction, the wrap or the alignment changes. The browser cannot animate
those properties, so the children are measured before and after the change and
moved over the difference. A text element's words move with them, one box to a
word, so an alignment change is a move and not a jump. (#236, #242) - The selection frame moves with the box it draws. (#236)
- Undo steps back through a move, a delete and the words typed into an element,
in the same stack as a style change. ⌘Z and ⇧⌘Z work after the edit ends, as
they do during it. (#239) - The editor's own scroll areas wear one thin scrollbar in the ramp, in the
standard and in the WebKit spelling, so a list never shows the scrollbar of
the host page. (#239)
Changed
- The last button in the row draws three dots and is named More controls. It
opens the list it opened before: the controls this one element can take. (#241) - Two things in a panel stand a gap apart. The room comes from the panel's stack,
so two chips never read as one box. (#241)
Fixed
- The pointer's fill stays where it was measured when the layout mode changes.
It sat between two controls that the change had removed, and it pointed at
them. It now goes down with them, and comes back with the first move of the
pointer. (#236) - The text alignment control cycles from the value the text has. An element with
no alignment computes tostart, andtext-align: endcomputes toend:
neither was in the list, so the first press wrote the alignment the text
already had. (#242) - A shadow's four fields keep a gap between the columns, not only between the
rows. (#241)
npm: https://www.npmjs.com/package/edityy/v/0.8.0
What's Changed
- feat(dock): glide the row when the layout mode changes, and release 0.8.0 [#236] by @farhantawfeeq56 in #238
- feat(edit): undo moves, deletes and typed words, and glide the layout [#236 #239 #241 #242] by @farhantawfeeq56 in #243
Full Changelog: v0.7.0...v0.8.0
v0.7.0
Added
npx edityy initwrites the whole setup for the project it runs in: the Vite
plugin, or the Next.js client file andproxy.ts; the MCP server in the agent
config it finds; and thevartestrules inAGENTS.md. It installs the
package when it is missing, changes nothing on a second run, and never edits
next.config.ts.--removetakes it back out.npx edityy doctorchecks the setup again, and asks the MCP server for its
tools over stdio. A written config file is not proof that the server answers.
Changed
- Under Next.js, both endpoints answer from
proxy.ts, so the app needs no
rewrite and no route folder for them.next.config.tskeeps no Edityy lines.
npm: https://www.npmjs.com/package/edityy/v/0.7.0
What's Changed
- feat(cli): add edityy init and doctor [#234] by @farhantawfeeq56 in #235
Full Changelog: v0.6.0...v0.7.0
v0.6.0
Added
- A media element has its own controls in the dock's row: Width and
Height, as fields in pixels, and Radius. The list beside each length
says Auto, which gives the image back to the size of the page, and a
press on the field puts the caret in it, so an exact size is typed as any
other number is. A media element's+offers Opacity in place of the
fill, and Radius opens a field of its own. (#223) - A border says where it sits: Inside, Center or Outside, on the
same line as its width. Inside is a border, which takes its room from the
box, Outside is an outline, and Center is that outline pulled in by half its
width. (#228) - A hairline stands between the controls and the
+. (#223)
Changed
- The tip is the size of the dock: 11px in the 7px corner its buttons have, so
it reads as part of the row and not as a card. (#223) - The corner radius and a shadow's blur wear a mark of their own, so the border
keeps its square and the opacity keeps its drop. (#223) - A chip in the row keeps its tip. The mark a chip wears, a letter or a
×, is
not a word, so the tip says the name of the field. (#223) - The dock bar unfolds from the Edits button when it opens: the bar holds its
place, its left edge travels, and the right edge it hangs from slides the
half the bar grew by. (#230)
Fixed
- A surface that is sent away and comes back takes clicks again. The fade out
leftpointer-eventsat none, and only an interrupted fade cleared it, so
every press in a dock that had finished leaving landed on the page behind.
The card had the same fault. (#227)
npm: https://www.npmjs.com/package/edityy/v/0.6.0
What's Changed
- fix(edit): let a click on a selection handle reach the page [#212] by @AathilFelix in #216
- fix(edit): keep the frame, card and dock usable, and reach the dock by keyboard [#210 #213 #214 #215] by @AathilFelix in #221
- fix(edit): leave page fields their keys, and drop a selection the page replaced [#209] by @farhantawfeeq56 in #222
- feat(edit): put the image controls and the dock bar animation in one branch [#223 #230] by @farhantawfeeq56 in #232
Full Changelog: v0.5.1...v0.6.0
v0.5.1
Added
- The package ships its motion tokens as a stylesheet:
edityy/motion.cssis
a new export. It holds the five curves and the nine durations that the
editor chrome uses, so a page that imports it runs on the same timings as
the chrome. (#206)
Changed
- The dock wears the native look: the controls are 30px, the icons are 16px,
the groups are set by space and not by lines, and the surface is a hairline
with a soft shadow. The element card and the panel over the dock wear the
same size and the same surface. The controls, the actions and the shortcuts
do not change. (#205) - Surfaces leave as carefully as they arrive, and a panel whose content
changes under the reader's eyes crosses rather than cuts. (#206) - The pointer dot tracks the cursor with no lag. The dot's scale is animated
and its travel is not, so the dot is under the pointer and not chasing it.
(#206) - A tip that is interrupted travels from where it is showing, and the
animation it replaces stops. A control that already says what it is gets
no tip. (#206) - The row slides to its new place when a control is added, instead of
jumping. The card's buttons and the strip's rows are kept between redraws,
so a scroll does not blink the card. (#206) - A dock or a card that is sent away and wanted back comes back from where it
is. (#206) - An undo during a delete stops the delete: an element that was put back does
not fade away in the reader's hand. (#206) - Reduced motion is one rule in the chrome and in the stylesheet: every
duration collapses. (#206)
Fixed
- Two rules of the sheet lost their closing brace, and the parser read every
rule after them as part of them. The frames, the launcher, the element
card, the tip and the buttons wore no style at all. A rule that is not
closed is now a test. (#206) - The element action's rule lost its closing brace with the dock's own look.
(#206)
npm: https://www.npmjs.com/package/edityy/v/0.5.1
What's Changed
- feat(site): add a docs site at /docs [#202] by @farhantawfeeq56 in #203
- chore(release): ship edityy 0.5.1 — the native dock and one motion system [#207] by @farhantawfeeq56 in #208
Full Changelog: v0.5.0...v0.5.1
v0.5.0
Added
- One element can be varied. The element actions carry Variations: the box
asks how many variants to make, 2 to 10, and takes an optional comment. The
box then becomes a waiting card that says what to type in the agent, and the
agent answers with that many variations of plain CSS declarations. The agent
never sees the page code: it gets the element's tag, its selector and a few
computed values. (#199) - A strip at the bottom right shows the variations on the live element. Keys
1to9pick one and0picks the tenth, and the one that is kept is an
ordinary edit: Save to project and Copy for an agent carry it like
any other, and Escape or leaving the mode reverts it. (#199) - A variation can change a state, a pseudo-element or a breakpoint. A
declaration withonis a state or a pseudo-element of the element itself,
and a declaration withwhenis a media condition. The browser cannot show
either in an inline style, so Edityy writes them into a stylesheet of its own
for that element, and takes the sheet away with the edit. (#199) - The MCP server has two tools for this:
get_variation_requestreturns what
the user asked for, andplace_variationstakes the answer. The request and
the answer live in.edityy/variation-request.jsonand
.edityy/variation-response.json. (#199) - A new endpoint,
POST,GETandDELETE /__edityy/variations, and a
Next.js route file for it:app/edityy/variations/route.ts, with a rewrite
from/__edityy/variationsonto it. (#199)
Changed
- The text edit ends with a Done button in the element card. The card
holds that button alone, so a click in the words moves the caret and nothing
else. (#199) - The page asks for the answer for two minutes, and then says the agent did
not answer. A variation that is picked is an ordinary edit, so undo steps
over it. (#199) - The answer is read from the fifteen values the page actually reads, so the
request stays under about 800 characters. (#199) - The waiting card says to say what you want in the same message, and the agent
follows the user's own words as well as the comment. A request without a
comment asks for styles that differ from each other, not shades of one
style. (#199) - An answer for a request the user changed says what to answer: the new number
of variations and the new id. More variations than the user asked for are not
a refusal; the first ones are the ones the user sees. (#199) - The request the user takes back with the X stays in the file, marked as
taken back, so a withdrawal is not the same as a request that was never
made. (#199) - The strip names the element it varies, and Keep is grey until a
variation is on the element. The picked row wears the cobalt of an active
state, and the list scrolls when ten rows do not fit. (#199)
Removed
- The Parent and Child buttons in the element actions. The arrows move
the selection to the parent, the first child and the siblings. (#199)
npm: https://www.npmjs.com/package/edityy/v/0.5.0
What's Changed
- feat(variations): ask an agent for style variations, and ship edityy 0.5.0 [#199] by @farhantawfeeq56 in #200
Full Changelog: v0.4.1...v0.5.0
v0.4.1
Added
- A numeric style field turns under the pointer: one wheel notch is one step, a
4px sideways drag is one step, and a click still puts the caret in to type.
The value stops at the field's own limits, and one drag is one undo step. A
one-time line says "Scroll to adjust", and after it the pointer and the field's
outline say the same thing. (#197) - The font control lists the face the element wears now, even when the page does
not declare it, so the list always offers a way back to that face. (#197)
Changed
- The Google Fonts catalog answers a search instead of loading when the list
opens, and only the rows that are drawn are previewed. (#197)
npm: https://www.npmjs.com/package/edityy/v/0.4.1
What's Changed
- feat(fields): turn a number with the wheel or a drag, and bump edityy to 0.4.1 [#197] by @farhantawfeeq56 in #198
Full Changelog: v0.4.0...v0.4.1
v0.4.0
Changed
- The editor chrome uses the interaction rules of interior.dev. The dock
tooltips are one group: the first tooltip opens after 200ms, and the next one
opens at once and moves to its control. One hover fill moves along the dock
row. A panel grows from its control and fades out when it closes. The copy and
save buttons change their words in place, and the edits count pops when it
changes. The dock and the element menu move in when they appear. Reduced
motion stops all of this motion. (#181) - A grid wears its columns and rows in the dock row as
columns × rows, with
autowhere the grid names no tracks of that axis. The count is read from the
resolved track list, so a grid written withrepeat()or with its tracks
written out shows the count it has. An absolute element wears its top, right,
bottom and left offsets in the row, one field for each side. (#187) - The alignment control is a 3 x 3 grid of empty cells. The cell is the
control, and the cell that is picked is filled. (#188) - A shadow on words is written as
text-shadow, so the letters carry it and the
block does not. Its four lengths are number fields in a 2 x 2 grid, with a
glyph where "Blur" and "Spread" stood, and the colour under them. A text
shadow offers no spread, because CSS has none for it. (#189) - The padding and margin panel has one field for the left and right pair, and
one field for the top and bottom pair: a box is even both ways far more often
than not. Each pair shows two arrows, and its one value is written to both
sides. A link button beside the pair breaks it into a field per side, each
with one arrow. A pair that the stylesheet already sets apart opens broken. The
Grid gap sliders wear glyphs in place of "Column gap" and "Row gap". (#191) - Every slider in the dock is a number field: the weight of a variable face, the
gap, the column and row gap, and a border's width. A number is typed, not
dragged. The padding and margin panel keeps its two pair fields, and no slider
stands above them. (#192) - The typography spacing panel wears a glyph where a word stood: sideways arrows
for the letters, up and down arrows for the lines. The word stays on the field,
where a screen reader reads it, like the shadow's blur and spread. (#192) - A list row that shows its own words keeps no title. Hovering "Shadow" in the
+list showed "Shadow" a second time, in a browser tooltip. The row keeps its
accessible name. (#192) - Every field is one chip and answers the pointer the same way: a hairline and
paper at rest, a touch of ink under the pointer, and the open fill with a
darker hairline while it holds the caret. A number in a panel is as wide as
its own digits, so it no longer spans the panel; the dock's own fields keep
the width they are drawn at. (#192) - Every value in a panel sits in one chip with the glyph that names it: the two
typography spacings, the gap, the border width, the shadow lengths, the colour
value, the weight and the padding and margin sides. A chip presses like the
size chip in the dock: down in .08s, back in .2s, and it takes the open fill
while it holds the caret. A number is as wide as its digits and the room to
type one more, so no field is wider than its value. A dock count field no
longer takes the padding of a panel field, so it is the width it says it is.
The search and the comment box keep the width their words need. (#193) - The dock's size and count chips are a box before the pointer arrives: the
same hairline a panel field wears, and the open fill while it holds the caret.
The cobalt ring is not on a field: a text field answers that ring to a pointer
too, so a click drew a blue edge around a field that had done nothing. The
cobalt ring stays on the buttons and the lists, where only the keyboard draws
it. (#193)
Fixed
- The
+list wears the chrome face. It drew its words in the machine UI face,
because each row carried a font stack of its own. (#194) - A pointer over an option of the size list no longer moves the row's hover fill
to the left end of the row, where the font family chip stands. An option is
part of the list that came out of its chip, not a control of the row. (#194) - The foot of the family list says "Search for more fonts", with no count in
front of it, in an 11px line where it stood at 16px. (#194) - A number field printed its value twice: once in the field and once beside it,
where a unit stood. The field says the number, and no unit stands beside it.
(#190)
Removed
- A grid no longer offers the Alignment control. The Grid size control, and the
width and height control of an absolute element, are gone: their values are
fields in the dock row. (#187) - Edit text no longer plays the Canvas UI ASCII sweep. The caret goes in at
once, and the launcher no longer fetches a second file. A cyclic dock control
changes the element with no animation. (#179)
npm: https://www.npmjs.com/package/edityy/v/0.4.0
What's Changed
- feat(edit): rework the dock and remove the ASCII sweep [#177] by @farhantawfeeq56 in #180
- feat(edit): apply the interior.dev interaction rules to the editor chrome [#181] by @AathilFelix in #182
- chore(release): ship edityy 0.4.0 — new chrome, and the site [#195] by @farhantawfeeq56 in #196
Full Changelog: v0.3.1...v0.4.0
v0.3.1
Added
- The flex direction and flex wrap controls cycle on one click. Each button shows
the value the element has, and no list opens. (#152) - Edit text plays the Canvas UI ASCII sweep over the element before the caret goes
in. The effect is its own file, served beside the launcher and fetched the first
time a user asks to edit text. Only the band is drawn over the page, so the
words keep their own rendering everywhere the band is not. A page without it, or
a browser without WebGL2, edits text as it did before. (#162) - The element actions carry a Comment action. It opens a field for a note about
the element, and the note travels with the edits: it is in
.edityy/changes.json, in the Markdown the agent reads, and in the MCP tool
result. A change without a note keepscomment: null. (#174)
Changed
- Every colour is picked in HeroUI's picker: the text colour, a fill, a border
and a shadow. It is a saturation and brightness field with a dot to drag, the
hue slider with the browser's own picker beside it, and one line holding the
hex code and the transparency as a percentage. A colour with any transparency
is written asrgba(r, g, b, a), and a solid one stays#rrggbb. The native
swatch the fill, border and shadow controls used is gone. Where the picker is
the whole control it wears HeroUI's white overlay; every other control keeps
the dock's cream. (#171) - Font size and font weight are one value each: the field beside the arrow holds it,
the arrow opens the common values, and a pick writes the field instead of a
second readout. The list of sizes opens upwards, over the dock, where the button
is in view. (#170) - The font family button in the dock draws its name in the family it names, and
the name is set at the size the dock uses. (#170) - An open dock control takes the screen from the element actions: the card at the
element closes while a control or a list inside one is open, and comes back when
it closes. Moving to another element closes the control that belonged to the
last one. (#166) - Edit text opens on an element whose words are split by a child element — a
paragraph around a link — and the caret starts at the end of the words. Leaving
the mode puts the markup back, child element included. (#165) - The style dock is fixed at the bottom centre again, whatever the selected
element does. An open control comes out over the dock. The element actions
keep their own card at the element. (#151)
Removed
- The Add element button and its Text and Container choices are gone. A click on
the page selects an element; it never inserts one. Shift+A still wraps selected
elements in a new container. (#153)
Fixed
- A Next.js app that builds with webpack can import
edityyon the server.
Before, the save route threw on load, saving failed with a 500 andnext build
stopped. This is the default on Next.js 15, and--webpackon 16. (#155)
npm: https://www.npmjs.com/package/edityy/v/0.3.1
What's Changed
- fix(edityy): read the launcher by path so webpack can load it [#155] by @AathilFelix in #156
- chore(release): ship edityy 0.3.1 with the editor chrome, sweep and comment [#173] by @farhantawfeeq56 in #176
Full Changelog: v0.3.0...v0.3.1
v0.3.0
Added
- The selection frame carries four corner handles and four edge handles. An edge
handle is at most 24px or 40% of its edge, whichever is smaller, and a handle
on a short edge is hidden. (#147)
Changed
- The bounding box is a 1.5px line that straddles the element's own edge, in the
negative of the colour it lies on. (#147) - Every icon is a Phosphor regular glyph, so the dock, the element actions and
the insert marker draw one family. (#148)
npm: https://www.npmjs.com/package/edityy/v/0.3.0
What's Changed
- feat(edit): cap the bounding-box handles and draw icons from Phosphor [#147] by @farhantawfeeq56 in #149
- chore(release): bump edityy to 0.3.0 [#147] by @farhantawfeeq56 in #150
Full Changelog: v0.2.0...v0.3.0
v0.2.0
Changed
- Selecting an element opens one surface at the element. The element actions
come first, and the style controls sit below them. An open control comes out
below the controls. (#145) - The surface follows the element. The controls sit under the actions, or
beside them when the page leaves no room there. An open control comes out
above the actions when there is no room below the controls. (#145)
Removed
- The interaction variant switcher, its number keys and the saved variant are
gone. The merged surface is the design. (#143, #145)
npm: https://www.npmjs.com/package/edityy/v/0.2.0
What's Changed
- fix(edit): count deletes and moves, and place moves in grids [#134] by @AathilFelix in #137
- fix(edit): fix bugs from the editor bug hunt [#135] by @AathilFelix in #139
- feat(edit): tell the agent when a picked font is a Google font [#113] by @AathilFelix in #140
- chore(release): credit PR authors in GitHub Releases [#141] by @AathilFelix in #142
- feat(edit): adopt the merged menu and dock surface [#145] by @farhantawfeeq56 in #146
Full Changelog: v0.1.7...v0.2.0