A startup extension for TYPO3 that brings the full power of Bootstrap 5 β classes, components, layouts and utilities β directly into the TYPO3 backend, out of the box.
Editors get rich, ready-to-use Bootstrap content elements. Integrators get a clean, configurable foundation so they can stop reinventing the wheel for every project.
π Live demos, documentation & tutorials: https://www.t3sbootstrap.de/
- What's new in 5.3.51
- What's new in 5.3.50
- Highlights
- Requirements
- Installation
- Setup after installation
- Configuration
- The t3sbootstrap ecosystem
- Documentation & Demos
- Support the project
- License
A maintenance release, and it is all about the editor. The CKEditor of t3sbootstrap learned
three new tools, and integrators can now decide which of them their editors actually get to see.
| Item | What it does |
|---|---|
| Columns | Inserts a Bootstrap row with 2, 3 or 4 columns, converts an existing row to a different count, or removes it again. Surplus content is moved into the last remaining column instead of being dropped. A thin guide line marks the columns while editing β backend only. |
| Margin | The Bootstrap spacing utilities mt-1β¦mt-5 and mb-1β¦mb-5 on the current block. Top and bottom are independent, so they combine freely; none clears one side. |
| Code block | <pre><code> with a language picker β TypoScript, PHP, YAML, JSON, XML, HTML, CSS, SCSS, JavaScript, TypeScript, Bash, SQL, plain text. The inline Code button next to it now works too; the plugin behind it was never loaded before. |
Alerts, columns and margins are real editor features, not entries in the Styles dropdown: their
markup is declared in the schema and converted in both directions. That means the classes survive
a save even in the default preset, whose General HTML Support whitelist only covers <div>.
Not every installation wants every button. Extension Configuration β category RTE now holds one switch per toolbar item and one per group of the Styles dropdown. Page TSconfig overrides it per page tree and always wins:
RTE.t3sbootstrap.features {
columns = 0
sourceEditing = 0
styleBadges = 0
}
Switching a feature off hides the button β it does not touch content. The CKEditor plugin stays loaded, so alerts, columns and code blocks that are already in the text remain editable and are written back unchanged. Style groups behave the same way: their element/class pairs move to the General HTML Support whitelist before the entry leaves the dropdown.
- New RTE preset
t3sbootstrap_extendedβ same editor, wider class whitelist, so classes on<p>,<span>,<a>, lists and tables survive untouched. Opt in per page tree withRTE.default.preset = t3sbootstrap_extended. - A way out of a container β an alert or a column at the very end of the field used to be a dead end: no paragraph behind it, and no way to create one except the source view. Enter on an empty last line now steps out of it, Backspace on an empty first line steps out upwards β the same gesture CKEditor's own block quote uses.
icon-linkfor links βclass="icon-link"andicon-link icon-link-hoverare selectable in the link wizard, and the hover animation now actually runs.- Speaking ID β the anchor
<span>was written whenever an element had a value intx_t3sbootstrap_anchor, no matter whether the option was enabled; the TypoScript now honours the switch. And inside a.rowthat span was a sibling of the columns, sorow-cols-*and the CSS grid counted it as a column β it is taken out of flow now. - Bug fixes:
FlexFormTools::convertFlexFormContentToArray()with anullFlexForm (issue #517) and its untracked twin in the card wrapper, an offcanvas menu reserving the height of a closed dropdown, the accordion no longer scrolling to the top when it opens, and empty card buttons caused by a missing label.
Flush all caches after updating β the RTE preset, the import map and the DI container are cached.
EXT:t3sb_package is no longer required. Everything the extension generates now lives below
typo3temp/assets/t3sbootstrap/ instead of being written into a site package:
typo3temp/assets/t3sbootstrap/
TypoScript/ t3sbconstants.typoscript, t3sbsetup.typoscript
T3SB-SCSS/ custom-variables-<uid>.scss, custom-<uid>.scss
T3SB-CSS/ downloaded CSS
T3SB-JS/ downloaded JS
T3SB-Bootstrap/ Bootstrap sources from the release zip
css/ compiled CSS
None of it is a source: the TypoScript and the SCSS are derived from the configuration record in
the database, the compiled CSS is derived from those, and the downloads are reproducible with
t3sbootstrap:cdnToLocal. A middleware rewrites missing TypoScript and SCSS from the database on
the next frontend request β after a deployment, after Remove Temporary Assets, or on a fresh
install.
Further changes:
- Upgrade wizard Move generated assets out of EXT:t3sb_package copies existing files to the new location once. Nothing is deleted.
- Configuration transfer β export and import a site's configuration as JSON directly in the T3SB backend module, with three import modes (update in place / replace / add).
- RTE β the alert box became a dropdown offering all eight Bootstrap 5 contextual variants, and a dedicated stylesheet shows the alert colors inside the editor. Everything else that happened to the editor is in 5.3.51.
- New setting
flexformDirβ the directory holding your own FlexForm overrides is now configurable instead of being fixed toEXT:t3sb_package/Configuration/FlexForms/. b13/containermoves to^4.1. If your rootcomposer.jsonpins an older major, raise it:composer require "b13/container:^4.1" -W- Numerous bug fixes across frontend rendering, the migration commands and the TCA.
After updating, flush all caches (several constructor signatures changed, the compiled DI container has to be rebuilt) and run the database schema update.
- Bootstrap 5 out of the box β all components, utilities and grid classes ready to use
- Rich content elements β extended FSC elements plus Bootstrap-specific ones (cards, carousels, accordions, tabs, modals, β¦)
- Backend configuration module β global and per-page settings, no TypoScript required for the basics
- Container-based layouts β built on
EXT:containerfor clean, structured content - Site Sets support β uses the modern TYPO3 v13+ Site Settings approach (recommended over legacy "static templates")
- Dark mode, breakpoints, utility colors β configurable from the backend module
- CDN by default, local assets optional β load CSS/JS from CDN or serve them locally from
typo3temp/assets/ - Self-contained β no companion site package required; generated files are restored from the database when missing
- Extendable via companion extensions β theme builder, swiper slider, iconpack and more (see ecosystem)
| Component | Version |
|---|---|
| TYPO3 | ^14.3 |
| PHP | >= 8.2 |
b13/container |
^4.1 |
Always check the latest requirements in
composer.jsonof the current release β supported TYPO3 versions evolve with each major release.
In your Composer-based TYPO3 project root, run:
composer require t3sbs/t3sbootstrapThen activate the extension and flush the caches:
vendor/bin/typo3 extension:setup
vendor/bin/typo3 cache:flush- Install the required dependency first:
container. - Download and install
t3sbootstrapvia the Extension Manager in the TYPO3 backend. - Flush all caches.
After installation, complete these steps to get a working frontend:
-
Site Settings (TYPO3 v13+, recommended) Include the "T3S Bootstrap - MAIN SETTINGS" in your site configuration. Also include "Fluid Styled Content" there and remove it from the legacy Static Template include. π More info: https://www.t3sbootstrap.de/dokumentation/installation
-
Configuration module Open the "T3sb" backend module and configure global defaults (navbar, footer, breakpoints, colors, etc.) for your site.
-
Assets: CDN vs. local By default, Bootstrap CSS & JS are loaded via CDN. For production, serve them locally: run the Scheduler task "T3SB CDN to local" (
vendor/bin/typo3 t3sbootstrap:cdnToLocal), then switch off Enable CDN in the site settings. The files end up intypo3temp/assets/t3sbootstrap/. -
Custom SCSS (optional) With Enable CDN switched off you can activate Enable Custom SCSS and run
vendor/bin/typo3 t3sbootstrap:customScsswith the root page ID. Bootstrap variables and your own SCSS are then editable in the T3SB backend module.
Deployments: the CDN downloads are the only files that cannot be rebuilt from the database. If
typo3temp/is not carried over between releases, runt3sbootstrap:cdnToLocalagain after each deployment. The backend module points this out when local delivery is configured and the files are missing.
t3sbootstrap offers a wide range of options via Extension Configuration (Settings β Extension Configuration β t3sbootstrap), TypoScript, and the website settings, as well as in the backend module
For the full list, see the official documentation.
Which items the t3sbootstrap RTE offers is configurable β no forked YAML preset needed.
Installation-wide: Settings β Extension Configuration β t3sbootstrap β category RTE.
One switch per toolbar item (rteAlert, rteColumns, rteMargins, rteCodeBlock,
rteTable, rteSourceEditing, β¦) and one per group of the Styles dropdown (rteStyleColors,
rteStyleButtons, rteStyleBadges, rteStyleTables). Everything is on by default, so an
existing installation sees no change.
Per page tree: Page TSconfig wins over the Extension Configuration.
RTE.t3sbootstrap.features {
columns = 0
sourceEditing = 0
styleBadges = 0
}
Switching a feature off hides the button β it does not touch content. The CKEditor plugin stays loaded, so existing alerts, columns and code blocks remain editable and are written back unchanged. Style groups behave the same way: their element/class pairs move to the General HTML Support whitelist before the entry leaves the dropdown, so classes already set in the content survive the round trip.
t3sbootstrap is the core, but it plays nicely with a family of companion extensions:
| Extension | Purpose |
|---|---|
t3sbootstrap_builder |
Visual Bootstrap 5.3 theme builder as a backend module β around 200 variables with live preview. Version 1.0.2 requires t3sbootstrap >= 5.3.50. |
t3s_swiper |
Swiper slider content element, based on Content Blocks |
iconpack / iconpack_fontawesome |
Icon picker integration (replacement for rte_ckeditor_fontawesome) |
t3sb_packageis no longer needed as of 5.3.50. Existing installations can keep it installed; it is simply not written to any more.
- Main site (docs + live demos): https://www.t3sbootstrap.de/
- Installation guide: https://www.t3sbootstrap.de/dokumentation/installation
- Packagist: https://packagist.org/packages/t3sbs/t3sbootstrap
- GitHub: https://github.com/t3solution/t3sbootstrap
- Issues & feature requests: https://github.com/t3solution/t3sbootstrap/issues
t3sbootstrap is developed and maintained in spare time. If you use it in commercial projects or simply find it useful, please consider supporting its development:
Bug reports, pull requests and constructive feedback are very welcome.
t3sbootstrap is developed and maintained by Helmut Hackbarth β freelance TYPO3 developer at t3solution.
This extension is released under the GNU General Public License v2.0 or later (GPL-2.0-or-later), in line with the TYPO3 Core. See LICENSE.txt for details.
Bootstrap itself is Β© the Bootstrap Authors and released under the MIT license.