Ckeditor5: Functional requirements

Created on 12 Dec 2017  ·  11Comments  ·  Source: ckeditor/ckeditor5

Originally posted by @fredck in https://github.com/ckeditor/ckeditor5/issues/610#issuecomment-337267343.


This is a preliminary analysis of requirements.

When it comes to use cases, we want to support data tables. This comes in contrast with the use case we don't want to support at this stage, which is clearly described in the HTML5 specs for tabular data:

Tables should not be used as layout aids. Historically, many Web authors have tables in HTML as a way to control their page layout making it difficult to extract tabular data from such documents.

We'll still see developers asking for the above though and we'll handle such requests in a separate issue.

Macro elements

The macro elements of the table feature are:

  • Table: represents the whole table, including the following elements:

    • Row: a sequence of horizontal cells.

    • Column: a sequence of vertical cells.

    • Cell: the smallest unit of the table.

  • Caption: a caption description for the table.

Users would like to operate on all the above elements.

HTML-wise, we follow the Editor Recommendations specs on tables.

Features

These list of features may be incomplete and it focuses just on UX and high-level features. The order in the list matters as this is the proposed way to releasing enhancements to the feature as a whole.

Milestone 1 – MVP (ready)

  • Insert / remove tables.
  • CSS controlled styling (kinda nothing to do here... it should just work).
  • Custom selection (table).
  • Type and insert content inside cells and the caption.
  • Caret navigation through the cells.
  • Insert row / column.
  • Remove row / column.
  • Merge cells (if UX is found for it, otherwise part of Milestone 2 will have to be anticipated).
  • Table copy / paste.
  • Set the table header rows.

Milestone 2 (todo)

  • Support block content inside tables. See ckeditor/ckeditor5-table#56.
  • Custom selection (table + row + columns + cells). See ckeditor/ckeditor5-table#63.
  • Multi-cell styling.
  • Multi-cell copy/paste.
  • Styles, which set classes to tables, to define alignment (like image styles) and different design for different kinds o table. See ckeditor/ckeditor5#3160.
  • Set the table footer rows.
  • Column resizing.
  • Rearrange rows and columns (move them). This may be available as copy/cut + paste first and later as DnD.
  • Caption. See ckeditor/ckeditor5-table#66.

Details

  • Captions should work exactly like in the image feature.
  • Cells selection can contain multiple cells in both horizontal and vertical directions in the middle of a table.
  • Coping cells sends a table to the clipboard based on the subset of cells selected.
  • Pasting behavior is to define, much probably based on CKEditor 4.
table feature

Most helpful comment

Thanks @Reinmar, this features are the core of my project:

- Column resizing.

  • Multi-cell styling.

  • Support block content inside tables. See #56.

All 11 comments

Some other concerns (besides UX, which is handled in ckeditor/ckeditor5#3161):

I'd leave Heydon's article about data tables, which could be useful: https://inclusive-components.design/data-tables/

Hi, the milestone 2... have an estimated date to release? Thanks!

No, not yet. From the milestone 2 only the support for block content has been added so far and we don't have any definite dates for the other points.

Which features would interest you the most from that list?

Thanks @Reinmar, this features are the core of my project:

- Column resizing.

  • Multi-cell styling.

  • Support block content inside tables. See #56.

+1 for table column resizing.
+1 for table captions (matching what you already have for images),

👍 I'm also looking to get column resizing. Other issues are less important to me.

Another one here looking for column resizing as well as some of these other features. Any plans for milestone 2 yet?

We're currently working on https://github.com/ckeditor/ckeditor5/issues/3287 which will, among many other things, allow changing columns and table widths (but not by dragging - we don't plan that at the moment).

I'm closing this ticket in favor of more granular tickets.

NOTE: Please upvote specific features from this list: https://github.com/ckeditor/ckeditor5/issues?utf8=%E2%9C%93&q=is%3Aopen+label%3Atype%3Afeature++label%3Apackage%3Atable or report new tickets for features which weren't yet reported.

I need resize the column in my project, Is there any way to resize the column @Reinmar

Any update on the resizing columns feature? Thanks!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

PaulParker picture PaulParker  ·  3Comments

metalelf0 picture metalelf0  ·  3Comments

benjismith picture benjismith  ·  3Comments

msamsel picture msamsel  ·  3Comments

devaptas picture devaptas  ·  3Comments