JustFlows

Документация пока доступна только на английском языке. Остальная часть сайта соответствует вашему языку.

Core blocks

Every core block type plus the built-in Post List and Comments: text, lists, tables, disclosure and tabs, media, layout, site identity and navigation, content queries, and site chrome.

7 минута чтения

Registered in @justflows/blocks and exposed at GET /api/blocks. Type ids are stable (core.*).

Content and media
TypeTitleCategoryMain props
core.paragraphParagraphcontentrichtext text
core.headingHeadingcontenttext, level 1–6 (default 2)
core.quoteQuotecontentrichtext text, attribution
core.buttonButtoncontentlabel and href (typed URL or page/post picker; sanitized)
core.link-listLink Listcontentoptional heading and reorderable links
core.htmlHTMLcontentsanitized HTML, wrapped in one <div class="jf-html"> so block styles and scoped CSS apply to every top-level node
core.codeCodecontentcode listing
core.imageImagemediasrc (media), alt, caption
core.embedEmbedmediaembed URL
core.list / core.list-itemListcontentbullets, numbering, or a checklist; start number, reversed order, marker, gap; nested lists
core.tableTablecontentcell editor, caption, header and footer rows, stripes, borders, alignment; up to 100 rows and 20 columns
core.detailsDetailscontentsummary, initial open state, marker, child blocks
core.accordionAccordioncontentDetails children; one open at a time or several
core.tabs / core.tabTabscontentpanel titles and content, horizontal or vertical, initial tab, automatic or manual keyboard activation
core.calloutNotice / Calloutcontentinfo, success, warning, error, or neutral; title, icon, optional dismiss button
core.iconIconcontentbuilt-in icon, label or decorative, size, colour, stroke width (no arbitrary SVG)
core.videoVideomediaURL, caption, controls, autoplay, muted, loop, preload, poster, size and fit
core.audioAudiomediaURL, caption, controls, autoplay, muted, loop, preload
core.fileFilemediaURL, link label (defaults to the file name), download toggle
core.coverCovermediaimage or video background with overlay, focal point, minimum height, and child blocks; videos get a pause control
core.media-textMedia & Textmediaimage or video beside child blocks; side, width, fit, gap, mobile stacking
Layout
TypeTitleNotes
core.dividerDividerHorizontal rule.
core.spacerSpacerVertical space.
core.sectionSectionChildren wrapper.
core.containerContainerWidth-constrained children.
core.groupGroupGeneric children group.
core.columnsColumnsChildren should be core.column.
core.columnColumnOne column inside columns.
core.gridGridResponsive column grid; move and resize any child visually or enter its exact placement.
core.reusableReusable blockLinked reference to a saved library block, resolved on the server.
core.buttonsButtonsButton children in a row or column, with alignment, gap, and wrapping.
core.cardCardChild blocks with padding, gap, border, corners, shadow, and alignment.
Site chrome and dynamic content
TypeTitleUse
core.color-schemeLight / darkLight, dark, or Auto (follow the visitor's device).
core.language-switcherLanguage switcherFull locale, short locale, flags, flag and locale, or flag and country-name styles, each an accessible dropdown.
core.auth-linksLogin / registerAccount links; registration appears publicly only when enabled in Settings.
justflows.blog.post-listPost ListPaginated published posts in a grid or list, with optional images, dates, and excerpts.
justflows.comments.threadCommentsThreaded approved discussion plus a guarded submission form; see Comments.
core.site-logo / core.site-title / core.site-taglineSite identityThe live logo, title, and tagline, optionally linked home.
core.navigationNavigationThe header or footer menu, or any menu by slug, with layout, submenus, and mobile collapse. Uses the menu renderer and its visibility rules.
core.breadcrumbsBreadcrumbsHome link and current page with editable labels and separator.
core.social-linksSocial LinksProfile links with icons, optional labels, and safe new-tab links.
core.table-of-contentsTable of ContentsLinks to the page's headings within a heading-level range, optionally numbered.
core.content-queryContent QueryPublished content by type and taxonomy term, sorted, as a grid or list, with pagination.
core.searchSearchA site search field.
core.account / core.auth-formAccount section / Account formParts of the account and sign-in pages.
Sections
TypeTitleUse
core.heroHeroPage intro band.
core.featuresFeaturesFeature grid.
core.ctaCall to ActionClosing conversion band.

The core.color-scheme (light/dark) block ships several designs — a two/three-button segmented control, a single sun/moon toggle, a switch, a compact dropdown, plain text labels, or icon buttons with tooltips — each selectable per block with size, radius, overridable icons and labels, and an optional animated icon change that respects prefers-reduced-motion. All variants share one CSP-safe preference engine.

Templates add context blocks that render the current request's content: core.post-title, core.post-content, core.post-meta, core.post-excerpt, core.featured-image, and core.template-part. See Templates.

Lists, Details, Accordions, Tabs, and dismissible notices need no external library: their public behaviour ships in /js/block-interactions.js and works with the keyboard. Without JavaScript, Details still open and tab content stays readable. In the builder, Details and tab panels stay open for editing.

Site identity, menus, and query results are resolved on the server. Content Query returns only published, publicly listed content of the current site and locale. Its page parameter must end in -page (default content-page), so give each query on a page its own key; paginated requests bypass the shared page cache. Table of Contents opens an enclosing Details or tab panel when a link is followed.

Good to know

Images use loading="lazy" and safeMediaSrc. Buttons and embeds refuse unsafe URLs. Custom HTML is sanitized, not blindly echoed. Video, Audio, File, Cover, and Media & Text accept only site-relative or HTTPS media URLs.

Block settings

Each core block's sidebar shows only the settings that apply to it. Duplicate or ineffective generic controls are hidden, and fields that depend on another choice appear only when it is made: playback settings for a video Cover, numbering for a numbered list, checkbox state inside a checklist. Theme styling shows the variables the theme curated for that block instead of the whole catalog. Hiding a control never deletes a saved value; a stored value stays visible until you clear it. Plugin blocks keep the default controls and can switch them on or off with inspector in their block definition.