Skip to content

Docs: Extend details about features integration with theme.json - #22622

Merged
oandregal merged 6 commits into
masterfrom
update/docs-theme-json-features
Jun 5, 2020
Merged

Docs: Extend details about features integration with theme.json#22622
oandregal merged 6 commits into
masterfrom
update/docs-theme-json-features

Conversation

@gziolo

@gziolo gziolo commented May 26, 2020

Copy link
Copy Markdown
Member

Description

Follow-up for and depends on #22291.

This PR aims to document all the development happening in #22291 and accompanying PRs that try to expose blocks registration to the server.

The goal of these changes is to make it clear what's the order of applying block editor features depending on the place where they were defined when used with the following helper hook:

// edit.js

const Edit = ( props ) => {
    const isDisabled = ! useEditorFeature( 'typography.dropCap' );
    // ...
};

@gziolo gziolo self-assigned this May 26, 2020
@gziolo gziolo added [Type] Developer Documentation Documentation for developers [Feature] Block API API that allows to express the block paradigm. [Feature] Extensibility The ability to extend blocks or the editing experience [Feature] Themes Questions or issues with incorporating or styling blocks in a theme. labels May 26, 2020
@github-actions

github-actions Bot commented May 26, 2020

Copy link
Copy Markdown

Size Change: +14 B (0%)

Total Size: 1.12 MB

Filename Size Change
build/components/index.js 193 kB +7 B (0%)
build/components/style-rtl.css 19.5 kB +4 B (0%)
build/components/style.css 19.5 kB +3 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.62 kB 0 B
build/api-fetch/index.js 3.4 kB 0 B
build/autop/index.js 2.83 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 6.75 kB 0 B
build/block-directory/style-rtl.css 892 B 0 B
build/block-directory/style.css 892 B 0 B
build/block-editor/index.js 106 kB 0 B
build/block-editor/style-rtl.css 11.4 kB 0 B
build/block-editor/style.css 11.4 kB 0 B
build/block-library/editor-rtl.css 7.87 kB 0 B
build/block-library/editor.css 7.88 kB 0 B
build/block-library/index.js 126 kB 0 B
build/block-library/style-rtl.css 7.72 kB 0 B
build/block-library/style.css 7.72 kB 0 B
build/block-library/theme-rtl.css 684 B 0 B
build/block-library/theme.css 686 B 0 B
build/block-serialization-default-parser/index.js 1.88 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 48.2 kB 0 B
build/compose/index.js 9.31 kB 0 B
build/core-data/index.js 11.4 kB 0 B
build/data-controls/index.js 1.29 kB 0 B
build/data/index.js 8.46 kB 0 B
build/date/index.js 5.47 kB 0 B
build/deprecated/index.js 771 B 0 B
build/dom-ready/index.js 568 B 0 B
build/dom/index.js 3.17 kB 0 B
build/edit-navigation/index.js 8.25 kB 0 B
build/edit-navigation/style-rtl.css 918 B 0 B
build/edit-navigation/style.css 919 B 0 B
build/edit-post/index.js 302 kB 0 B
build/edit-post/style-rtl.css 5.43 kB 0 B
build/edit-post/style.css 5.43 kB 0 B
build/edit-site/index.js 15 kB 0 B
build/edit-site/style-rtl.css 2.96 kB 0 B
build/edit-site/style.css 2.96 kB 0 B
build/edit-widgets/index.js 8.83 kB 0 B
build/edit-widgets/style-rtl.css 2.4 kB 0 B
build/edit-widgets/style.css 2.4 kB 0 B
build/editor/editor-styles-rtl.css 425 B 0 B
build/editor/editor-styles.css 428 B 0 B
build/editor/index.js 44.7 kB 0 B
build/editor/style-rtl.css 4.26 kB 0 B
build/editor/style.css 4.27 kB 0 B
build/element/index.js 4.65 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.72 kB 0 B
build/format-library/style-rtl.css 502 B 0 B
build/format-library/style.css 502 B 0 B
build/hooks/index.js 2.13 kB 0 B
build/html-entities/index.js 621 B 0 B
build/i18n/index.js 3.56 kB 0 B
build/is-shallow-equal/index.js 711 B 0 B
build/keyboard-shortcuts/index.js 2.52 kB 0 B
build/keycodes/index.js 1.94 kB 0 B
build/list-reusable-blocks/index.js 3.12 kB 0 B
build/list-reusable-blocks/style-rtl.css 226 B 0 B
build/list-reusable-blocks/style.css 226 B 0 B
build/media-utils/index.js 5.3 kB 0 B
build/notices/index.js 1.79 kB 0 B
build/nux/index.js 3.4 kB 0 B
build/nux/style-rtl.css 616 B 0 B
build/nux/style.css 613 B 0 B
build/plugins/index.js 2.56 kB 0 B
build/primitives/index.js 1.5 kB 0 B
build/priority-queue/index.js 789 B 0 B
build/redux-routine/index.js 2.85 kB 0 B
build/rich-text/index.js 14.8 kB 0 B
build/server-side-render/index.js 2.68 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.28 kB 0 B
build/url/index.js 4.06 kB 0 B
build/viewport/index.js 1.85 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

@gziolo
gziolo force-pushed the update/docs-theme-json-features branch from 0becf23 to 01f3a5d Compare May 26, 2020 10:02
@gziolo
gziolo requested review from oandregal and youknowriad May 26, 2020 10:07
@gziolo
gziolo marked this pull request as ready for review May 26, 2020 10:07
Comment thread docs/designers-developers/developers/themes/theme-json.md Outdated
Comment thread docs/designers-developers/developers/themes/theme-json.md Outdated
Comment thread docs/designers-developers/developers/themes/theme-json.md Outdated
### Features

This is being implemented, so it's not currently available.
So far, this function is only enabled for the `global` section in `experimental-theme.json`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What if we add an intro that sums up the general behavior (see). I'm thinking something along these lines:


Via the features key we allow controlling some editor and block features:

  • The features within global will override the default editor settings, which plugins still can modify by hooking into the block_editor_settings filter in the server.
  • The features within each block content will override the default block settings, which plugins can still modify by hooking into the blocks.registerBlockType filter in the client.

Block settings take precedence over global settings.

For example, if a feature is enabled for a block by default, although the theme disables it at the global level, the block will still have it enabled. If the theme wants to override a block's default, it has to target that particular block.

@gziolo gziolo May 27, 2020

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great idea, how do you like 816f31b?

@gziolo
gziolo force-pushed the update/docs-theme-json-features branch 2 times, most recently from e7ada48 to 816f31b Compare May 27, 2020 06:16
@gziolo
gziolo force-pushed the update/docs-theme-json-features branch 2 times, most recently from d66c8c4 to 18f45d2 Compare June 2, 2020 08:42
@gziolo

gziolo commented Jun 2, 2020

Copy link
Copy Markdown
Member Author

@nosolosw, I rebased this branch, do you think it's good to go now?

@oandregal oandregal left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see this needs rebase, but the contents here are ready to 🚢

@oandregal
oandregal force-pushed the update/docs-theme-json-features branch from 2fb751f to 9cfaabe Compare June 5, 2020 08:23
@gziolo

gziolo commented Jun 5, 2020

Copy link
Copy Markdown
Member Author

Thank you for rebasing, much appreciated 😍

@oandregal
oandregal merged commit 6a90f56 into master Jun 5, 2020
@oandregal
oandregal deleted the update/docs-theme-json-features branch June 5, 2020 10:07
@github-actions github-actions Bot added this to the Gutenberg 8.3 milestone Jun 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Feature] Block API API that allows to express the block paradigm. [Feature] Extensibility The ability to extend blocks or the editing experience [Feature] Themes Questions or issues with incorporating or styling blocks in a theme. [Type] Developer Documentation Documentation for developers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants