Description
Gutenberg is more than an editor. While the editor is the focus right now, the project will ultimately impact the entire publishing experience including customization (the next focus area).
Discover more about the project.
Editing focus
The editor will create a new page- and post-building experience that makes writing rich posts effortless, and has “blocks” to make it easy what today might take shortcodes, custom HTML, or “mystery meat” embed discovery. — Matt Mullenweg
One thing that sets WordPress apart from other systems is that it allows you to create as rich a post layout as you can imagine — but only if you know HTML and CSS and build your own custom theme. By thinking of the editor as a tool to let you write rich posts and create beautiful layouts, we can transform WordPress into something users love WordPress, as opposed something they pick it because it’s what everyone else uses.
Gutenberg looks at the editor as more than a content field, revisiting a layout that has been largely unchanged for almost a decade.This allows us to holistically design a modern editing experience and build a foundation for things to come.
Here’s why we’re looking at the whole editing screen, as opposed to just the content field:
- The block unifies multiple interfaces. If we add that on top of the existing interface, it would add complexity, as opposed to remove it.
- By revisiting the interface, we can modernize the writing, editing, and publishing experience, with usability and simplicity in mind, benefitting both new and casual users.
- When singular block interface takes center stage, it demonstrates a clear path forward for developers to create premium blocks, superior to both shortcodes and widgets.
- Considering the whole interface lays a solid foundation for the next focus, full site customization.
- Looking at the full editor screen also gives us the opportunity to drastically modernize the foundation, and take steps towards a more fluid and JavaScript powered future that fully leverages the WordPress REST API.
Blocks
Blocks are the unifying evolution of what is now covered, in different ways, by shortcodes, embeds, widgets, post formats, custom post types, theme options, meta-boxes, and other formatting elements. They embrace the breadth of functionality WordPress is capable of, with the clarity of a consistent user experience.
Imagine a custom “employee” block that a client can drag to an About page to automatically display a picture, name, and bio. A whole universe of plugins that all extend WordPress in the same way. Simplified menus and widgets. Users who can instantly understand and use WordPress — and 90% of plugins. This will allow you to easily compose beautiful posts like this example.
Check out the FAQ for answers to the most common questions about the project.
Compatibility
Posts are backwards compatible, and shortcodes will still work. We are continuously exploring how highly-tailored metaboxes can be accommodated, and are looking at solutions ranging from a plugin to disable Gutenberg to automatically detecting whether to load Gutenberg or not. While we want to make sure the new editing experience from writing to publishing is user-friendly, we’re committed to finding a good solution for highly-tailored existing sites.
The stages of Gutenberg
Gutenberg has three planned stages. The first, aimed for inclusion in WordPress 5.0, focuses on the post editing experience and the implementation of blocks. This initial phase focuses on a content-first approach. The use of blocks, as detailed above, allows you to focus on how your content will look without the distraction of other configuration options. This ultimately will help all users present their content in a way that is engaging, direct, and visual.
These foundational elements will pave the way for stages two and three, planned for the next year, to go beyond the post into page templates and ultimately, full site customization.
Gutenberg is a big change, and there will be ways to ensure that existing functionality (like shortcodes and meta-boxes) continue to work while allowing developers the time and paths to transition effectively. Ultimately, it will open new opportunities for plugin and theme developers to better serve users through a more engaging and visual experience that takes advantage of a toolset supported by core.
Contributors
Gutenberg is built by many contributors and volunteers. Please see the full list in CONTRIBUTORS.md.
FAQ
- How can I send feedback or get help with a bug?
-
We’d love to hear your bug reports, feature suggestions and any other feedback! Please head over to the GitHub issues page to search for existing issues or open a new one. While we’ll try to triage issues reported here on the plugin forum, you’ll get a faster response (and reduce duplication of effort) by keeping everything centralized in the GitHub repository.
- How can I contribute?
-
We’re calling this editor project “Gutenberg” because it’s a big undertaking. We are working on it every day in GitHub, and we’d love your help building it.You’re also welcome to give feedback, the easiest is to join us in our Slack channel,
#core-editor
.See also CONTRIBUTING.md.
- Where can I read more about Gutenberg?
-
- Gutenberg, or the Ship of Theseus, with examples of what Gutenberg might do in the future
- Editor Technical Overview
- Design Principles and block design best practices
- WP Post Grammar Parser
- Development updates on make.wordpress.org
- Documentation: Creating Blocks, Reference, and Guidelines
- Additional frequently asked questions
Reviews
The Edsel of User Experiences
Awefull Garbage
pure garbage
Thanks for all the unnecessary work
Nada amigable y molesto
Excellent!
Contributors & Developers
“Gutenberg” is open source software. The following people have contributed to this plugin.
Contributors“Gutenberg” has been translated into 44 locales. Thank you to the translators for their contributions.
Translate “Gutenberg” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
For 5.4.0.
Features
- Add vertical alignment support for the columns block.
- Add playsinline support for the video block.
Enhancements
- Add the Media Library button to the gallery block appender.
- Improve appearance of the block hover state on colored backgrounds.
- Move the color and font size caption styles into theme styles.
- Replace the verse block icon.
- Standardize align and className attributes for dynamic blocks.
- Remove the title from mobile inserters.
- Capitalize button labels.
- Remove menu toggling on checkbox, radio buttons clicks.
- Make the invisible image resize handlers bigger.
- Improve the alt text field description.
Bug Fixes
- Improve the format boundary styles.
- Convert void blocks properly when converting or pasting content.
- Fix the ClipboardButton component behavior in Safari.
- Fix expanding the text selection when using shift + vertical arrows.
- Fix the alignment of the third-party block settings items.
- Fix invalid HTML in some more menu items.
- Fix JavaScript error in the columns block.
- Fix radio button appearance on small screens.
- Save line breaks in the preformatted block.
- Fix edge case in the is_gutenberg_page plugin function.
- Fix toolbar position in full size aligned blocks on small screens.
- Fix double scrollbar issue in Full Screen mode.
- Fix JavaScript error when downgrading to an old Gutenberg version.
- Fix the WordPress embed block resolution.
- Fix embedding links with trailing slashes.
- Fix the preloading apiFetch middleware when initialized empty.
- Fix php notice when using widgets without description.
- Better horizontal edge detection to fix the arrow key navigation in the table block.
- Fix error in API Fetch initialization.
- Fix unwanted margin in Column block.
- Fixes issue where emoji would be destroyed.
Documentation
- Document the block editor module.
- Add design documentation for the Panel component.
- Document webpack config extensibility.
- Clarify experimental and unstable API guidelines.
- Setup automatic API documentation for the data module.
- Improve the automatic API documentation tool.
- Enhance the components documentation:
- FormFileUpload component.
- MediaPlaceholder component.
- Notice component.
- TextControl component.
- Updates the blocks creation tutorial.
- Typos & tweaks: 1, 2, 3, 4, 5, 6, 7, 8, 9.
Various
- Implement a built-in static Gutenberg Playground.
- Override core block server-side code when using the plugin.
- Make the block editor module more reusable.
- Expose the lazy and Suspence React features in the element package.
- Avoid assuming persisted preferences state shape.
- Remove dead code from the calendar block renderer.
- Extract global CSS resets into reusable mixins.
- Replace image urls by base 64 encoded images in reusable CSS files.
- Add default empty implementation for the block types save function.
- Add a new data action to replace the inner blocks.
- Support parent data registry inheritance in the data module.
- Add extra props support for the Dashicon component.
- Add a BaseControl.VisualLabel component for purely visual labels.
- Refactor setupEditor effects to actions.
- Refactor the core/data store to be independent from the registry object.
- Remove componentWillMount usage from LatestPostEdit component.
- Add a generic e2e test for block transforms and work on its stability.
- Allow e2e test failures for php versions lower than 5.6.
- Add eslint rule to prevent incorrect truthy length property checks.
- Add eslint rule to prevent unsafe setTimeout usage in components.
- Run the local gutenberg environment in debug mode.
- Disable debug mode in local e2e tests.
- Exclude test files while rebuilding packages.
- Make E2E tests resilient against transforms added by plugins.
- Add LGPL as an OSS license.