This is a tracking (meta) issue to organize issues around adding editable responsive layouts to Drupal 8 core. These modules have been actively worked on in contrib for both Drupal 7 and 8, so some are readily ported to Drupal 8 and needs reviews while others need more work.
First and foremost there is considerable abstraction work going on to introduce layouts as their own concept in Drupal 8 core. Some of the work is in core, but there is mo to do, see #1787634: [META] Decouple layouts from themes for the tracking issue for that.
The responsive layout builder was originally built for Spark in Drupal 7 contrib to be proposed for Drupal 8 core and is readily testable with a Panels integration in the Drupal 7 Spark distribution: http://drupal.org/project/spark (Drupal 8 versions also available with up to date patches and modules). The responsive layout builder consists of the following pieces:
- A module to manage a dynamic list of regions. This is needed because editable layouts support adding any number of regions naturally. This is implemented in the http://drupal.org/project/region module. Core patch for Drupal 8 inclusion at #1813910: Add region module to Drupal core (for editable responsive layouts)
- Breakpoints to be able to have different layouts for different presentation sizes. The Drupal 7 implementation for this was in http://drupal.org/project/layout and a temporary Drupal 8 implementation exists at http://drupal.org/project/bunnypoint, but a much more mature breakpoint API module is in core now (#1734642: Move breakpoint module into core). The layouts and grids depend on this now.
- Grids to serve as snapping guides for easier and best practice layout creation. Grids are individually created but can be assigned to breakpoints so that layouts can relate region placement to the grid columns for each breakpoint. The existing Drupal 7/8 implementation for this is in http://drupal.org/project/gridbuilder. Issue to add into core at #1816650: Add swappable (dynamic) grid systems to core
- Responsive layouts themselves, which relate a list of ordered regions to grid columns for each breakpoint applicable to the layout. This is the most extensive user interface element proposed and would map into the standard set of layouts as recognized by the core layout system. See #1787846: Themes should declare their layouts and its related changelogs for more details. Issue proposing addition of responsive layout builder in core: #1822950: Add responsive layout builder to core
Comments
Comment #1
Gábor HojtsyAdded #1813910: Add region module to Drupal core (for editable responsive layouts) as the first module patch.
Comment #1.0
Gábor HojtsyAdd regions patch reference
Comment #2
Gábor HojtsyIntegrated gridbuilder and layout for Drupal 8 with core breakpoints in http://drupalcode.org/project/gridbuilder.git/commitdiff/fa2748a329ff5d0... and http://drupalcode.org/project/layout.git/commitdiff/938b906b3490fe09a71c... (no issues opened for them).
Comment #2.0
Gábor HojtsyRemove reference to issues that were never opened :D
Comment #3
Gábor HojtsyI've added #1816650: Add swappable (dynamic) grid systems to core for grids which is getting some lively discussion.
Comment #4
Gábor HojtsySubmitted #1822950: Add responsive layout builder to core for responsive layouts.
Comment #4.0
Gábor Hojtsyadd gridbuilder issue
Comment #5
Gábor HojtsyTo play around with the current state of layouts apply these patches and click the region list, page library and responsive layout editor:
I just updated the Drupal 8 version of the Spark distribution as well, once/if it is rebuilt, it should reflect all this functionality as well.
Comment #6
Shyamala CreditAttribution: Shyamala commentedComment #7
Gábor HojtsyWell, anyway, due to core things not happening below this layer that we wanted to build on, we just need to go and focus on those things and will pretty likely not have a responsive layout builder (and therefore any of the proposed modules from it) in core. Unless someone comes and want to run with all these.
Comment #8
Gábor HojtsyBTW help with the underlying issues at #1787634: [META] Decouple layouts from themes so we can implement this in contrib at least.
Comment #9
chx CreditAttribution: chx commentedDid you check that this can't happen with catch/Dries?
Comment #10
Gábor HojtsyDries is the product owner for these issues, yes. Within the Spark team there are multiple other issues that were contentious and more important to get in, such as toolbar, wysiwyg and in place editing. The layout capability was/is the last in terms of priority among these. And on top of that, the underlying display/block placement infrastructure is not there to support this and based on the parallel progress there so far, that set of issues need more help (#1787634: [META] Decouple layouts from themes) and would not be complete without our involvement. Finally, there have both been minimal feedback on the responsive layout builder sub-issues linked from above and we consider the region module, grids and the responsive layout builder to be features and not "refactoring of already present functionality", so we think these are subject to the December 1st feature freeze.
Comment #11
Gábor HojtsyGiven feature freeze yesterday, this is clearly not going to be in Drupal 8. Watch http://drupal.org/project/layout (or more precisely the renamed version) for Drupal 8 if that appears. Moving this one and the following issues to Drupal 9:
- #1813910: Add region module to Drupal core (for editable responsive layouts)
- #1816650: Add swappable (dynamic) grid systems to core
- #1822950: Add responsive layout builder to core
- #1787942: Allow assigning layouts to pages
Comment #11.0
Gábor HojtsyAdd responsive layout issue
Comment #12
philsward CreditAttribution: philsward commentedI really, really hope this is targeted for 8.1.0
I'm a site builder and hate dealing with responsive on D7 because of the lack of consistency of how each theme framework deals with responsive layout.
When responsive began hitting the D7 scene, not much was known about it and the only solution was for each theme maintainer to do the best of their abilities to create a responsive theme/framework. The concept is all the same but the way it is handled is completely different, even between various bootstrap forks. Very frustrating.
What I truly believe needs to happen, is for Drupal to generate the entire responsive grid system to allow themes to do what they need to do: wrap it in a pretty bow.
I was excited for the spark initiative for this, but sorely disappointed it missed D8. I understand why, but looking at the future of Drupal, when D8 launches, theme frameworks are again going to pop up out of the woodworks, doing things however they see fit instead of following a common set of pre-generated guidelines. It's hard enough trying to learn and master the plethera of awesome Drupal modules. Learning a "hacked together" theme framework can have a higher learning curve than learning how to do responsive layout by scratch...
Point is, I would love to see Drupal accel in this area and very quickly. Make Drupal do the heavy lifting and allow the themes to spend more time making the pretty bow before the countless frameworks get out of hand with doing things the way they want to do them. In my opinion, a person should be able to jump from theme to theme without having to spend several weeks just going through the documentation of how this or that maintainer thought the best practice should be. Joomla or WordPress doing this yet or are they still hacking away like iPhone and Android just came out? There's got to be an easier way...
Comment #13
catchNothing inherently stops this going into a minor version.
Comment #14
EclipseGc CreditAttribution: EclipseGc commentedThis should likely be moved to the layout_plugin module, but postponing this for the time being at the very least.
Eclipse
Comment #17
tim.plunkettThis is explicitly out of scope for #2811175: [plan] Add layouts to Drupal, untagging
Comment #31
catchComment #32
larowlanDo we still need this?
If so I think we should be targeting site builders only.
We could have a config entity that resulted in a derivative plugin for layouts.
https://www.previousnext.com.au/blog/creating-layout-plugin-dynamic-regions has some prior art for config based regions but I think we could simplify that here.
I don't think this should be given to content-editors, as in my experience that works out as well as giving them the ability to edit font colours and backgrounds.