Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prototypes: Requirements #190

Closed
mtias opened this issue Mar 6, 2017 · 18 comments
Closed

Prototypes: Requirements #190

mtias opened this issue Mar 6, 2017 · 18 comments
Labels
[Type] Task Issues or PRs that have been broken down into an individual action to take [Type] Technical Prototype Offers a technical exploration into an idea as an example of what's possible

Comments

@mtias
Copy link
Member

mtias commented Mar 6, 2017

All technical prototypes need to accomplish the following:

  • Use post-content.js data.
  • Infer blocks from content structure.
  • Should follow design of UI prototype and mockups for blocks.
  • Have “selected”, “writing”, and “hover” states.
    • Selected state shows all controls.
    • Writing state fades out UI.
    • Hover state shows block outline and move-arrows.
  • Moving a block should select the block.
  • Moving a block should scroll the window to focus on the block.
  • Implement block type switcher that works for text/heading/quote.
  • Implement block level attributes for text, image, and quote.
  • Implement insert-block menu toggled by the (+).
  • Any new line outside of blocks should show the (+) and if you start writing should default to text block.
  • Insert-block menu should allow to insert any of the post-content blocks.
  • When a block is at the top or bottom and they cannot be moved further, the corresponding arrow should be grayed out.
  • Integrate basic API for defining a block markup and inferring block data from it.

Text

  • Should support alignment options at block level.
  • Should support TinyMCE formatting.
  • Enter creates new text block.

Heading

  • Should show band with different headings.

Image

  • All alignment needs to work (floated and full-bleed).
  • Implement caption and handle markup variations.
  • Caption field should appear only when block is selected.

Quote

  • Needs to support two styles.
  • Should support cite attribute that is edited in place.
  • Cite field should appear only when block is selected.
  • It should not be possible to mess the cite or quote markup in visual mode.
@anna-harrison
Copy link

@mtias should we add "Design" label to this issue? Thx

@jasmussen jasmussen added [Type] Task Issues or PRs that have been broken down into an individual action to take UI Prototype labels Mar 7, 2017
@jasmussen
Copy link
Contributor

should we add "Design" label to this issue? Thx

Since all the prototypes should look virtually the same, it's probably best to keep the discussion on the visuals on the individual tickets for the design.

@mtias mtias added [Type] Technical Prototype Offers a technical exploration into an idea as an example of what's possible and removed UI Prototype labels Mar 7, 2017
@mtias
Copy link
Member Author

mtias commented Mar 7, 2017

Yes, this is a list of requirements for the technical prototypes to have a comparable set of features. If there are things here that we don't yet have in the UI Prototype we should make mockups for them separately.

@ellatrix
Copy link
Member

ellatrix commented Mar 7, 2017

Sounds good, I'll work on this for single.

Enter should do single line break; double enter should create new text block.

Are we settled on this? Has there been any discussion? Could someone describe the behaviour a bit better? Should other blocks still create a new paragraph (e.g. heading)?

@mtias
Copy link
Member Author

mtias commented Mar 7, 2017

Good question. Not settled, but we need to pick one behaviour now to have a comparable experience. I'd be ok with punting this and having a simpler "enter creates new text block". Does that sound more reasonable?

@jasmussen
Copy link
Contributor

Are we settled on this? Has there been any discussion? Could someone describe the behaviour a bit better? Should other blocks still create a new paragraph (e.g. heading)?

Not settled. But we also haven't really tried it yet, given it a fair shake. So feels worth trying. And if it's a bit-flip in TinyMCE, seems worth a shot, with the goal being to make informed decisions.

@jasmussen
Copy link
Contributor

See also #198 for mockups for every base block.

@mtias
Copy link
Member Author

mtias commented Mar 7, 2017

Adding them to the description.

@ellatrix
Copy link
Member

ellatrix commented Mar 8, 2017

Single MCE tracking comment:

  • Use post-content.js data.
  • Infer blocks from content structure.
  • Should follow design of UI prototype and mockups for blocks.
  • Have “selected”, “writing”, and “hover” states.
    • Selected state shows all controls.
    • Writing state fades out UI.
    • Hover state shows block outline and move-arrows.
  • Moving a block should select the block.
  • Moving a block should scroll the window to focus on the block.
  • [Similar functionality.] Implement block type switcher that works for text/heading/quote.
  • Implement block level attributes for text, image, and quote.
  • [Needs search.] Implement insert-block menu toggled by the (+).
  • Any new line outside of blocks should show the (+) and if you start writing should default to text block.
  • Insert-block menu should allow to insert any of the post-content blocks.
  • When a block is at the top or bottom and they cannot be moved further, the corresponding arrow should be grayed out.
  • Integrate basic API for defining a block markup and inferring block data from it.

Text

  • Should support alignment options at block level.
  • Should support TinyMCE formatting.
  • Enter should do single line break; double enter should create new text block.

Heading

  • Should show band with different headings.

Image

  • All alignment needs to work (floated and full-bleed).
  • Implement caption and handle markup variations.

Quote

  • Needs to support two styles.
  • Should support cite attribute that is edited in place.
  • It should not be possible to mess the cite or quote markup in visual mode.

@ellatrix
Copy link
Member

ellatrix commented Mar 8, 2017

If anyone likes to work on these, let me know, just so we're not working on the same. Trying to get the inserter in today.

@youknowriad
Copy link
Contributor

youknowriad commented Mar 8, 2017

Multi-Instance MCE tracking comment:

  • Use post-content.js data.
  • Infer blocks from content structure.
  • Should follow design of UI prototype and mockups for blocks. (Not perfect)
  • Have “selected”, “writing”, and “hover” states.
    • Selected state shows all controls.
    • Writing state fades out UI.
    • Hover state shows block outline and move-arrows.
  • Moving a block should select the block.
  • Moving a block should scroll the window to focus on the block.
  • Implement block type switcher that works for text/heading/quote.
  • Implement block level attributes for text, image, and quote.
  • Implement insert-block menu toggled by the (+).
  • Any new line outside of blocks should show the (+) and if you start writing should default to text block.
  • Insert-block menu should allow to insert any of the post-content blocks.
  • When a block is at the top or bottom and they cannot be moved further, the corresponding arrow should be grayed out.
  • Integrate basic API for defining a block markup and inferring block data from it.

Text

  • Should support alignment options at block level.
  • Should support TinyMCE formatting.
  • Enter should do single line break; double enter should create new text block.

Heading

  • Should show band with different headings.

Image

  • All alignment needs to work (floated and full-bleed).
  • Implement caption and handle markup variations.

Quote

  • Needs to support two styles.
  • Should support cite attribute that is edited in place.
  • It should not be possible to mess the cite or quote markup in visual mode.

@aduth
Copy link
Member

aduth commented Mar 9, 2017

What of #179 should we integrate into the requirements here? Many of these text interactions will be important to preserve.

cc @azaozz

@intronic
Copy link
Contributor

@iseulde - fyi we are working today on:

  • making drag&drop work with hover
  • 'Moving a block should select the block.'

@mimo84
Copy link
Contributor

mimo84 commented Mar 13, 2017

@iseulde: @intronic and I have just opened a new PR #249 which provides

  • Hover shows block outlines
  • Hovered blocks can be dragged and dropped
  • Blocks not currently selected can be dragged and dropped (on hover)

blockdraganddrop

@youknowriad
Copy link
Contributor

I checked all the requirements for the "Multi" prototype. I'm sure I've missed some use-cases or introduced some regressions. Please let me know if you notice something missing.

@jasmussen
Copy link
Contributor

I checked all the requirements for the "Multi" prototype. I'm sure I've missed some use-cases or introduced some regressions. Please let me know if you notice something missing.

Looks amazing. Very very good work 👏👏👏

There are some little things UI wise, but nothing critical for evaluating the prototype at all. I'll see if I can take a stab at them, but as it stands this prototype works excellently, in fact better than I'd expected it to!

@azaozz
Copy link
Contributor

azaozz commented Mar 14, 2017

What of #179 should we integrate into the requirements here? Many of these text interactions will be important to preserve.

Ideally, all of them. I realize most of these behaviors are not used commonly. Personally I use only 2-3 on a regular basis. However the so called "power users" will probably use many. Also all of them are important for accessibility, some are critical. They are at approximately the same "level of importance" as using Cmd+C and Cmd+V for copy/paste.

There is a very easy way to test :) Unplug your mouse (literally) and try to create some content in few different editors, including both prototypes and the current editor.

@jasmussen
Copy link
Contributor

Closing this one as it seems no longer relevant.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Type] Task Issues or PRs that have been broken down into an individual action to take [Type] Technical Prototype Offers a technical exploration into an idea as an example of what's possible
Projects
None yet
Development

No branches or pull requests

9 participants