Note
This extension is currently not maintained. I recommend using Tailwind v4 instead of v3 and just copy paste the things you need from this extension directly into your sitepackage. Also DaisyUI might not be the best choice for your project anymore. Maybe you would like to consider Fluid Primitives.
Easily use TYPO3 with Tailwind CSS. Tailwind Styled Content is an alternative for fluid_styled_content using Tailwind CSS, providing a clean, robust and modern starting point for building websites with TYPO3.
Tailwind Styled Content ships basic templates for (not all) default content elements. Its important to say, that we made some opinionated adjustments and settings. Thats why it is not a drop in replacement for fluid_styled_content and is more suitable for new projects.
- Simplified content elements layout
- Removed and added some
frame_classoptions - New
.framespacing api - Overhauled textmedia template and gallery partial
- Removed and added some
imageorientoptions - Disabled the following content elements
- textpic (in favor of textmedia)
- table (in favor of RTE table)
- bullets (in favor of RTE lists)
Refer to the individual files for more details.
We’ve also introduced a Prose partial, which can be used as follows:
<f:render partial="Prose" contentAs="content">
<!-- content -->
</f:render>We override the default form element classes via YAML, as they were originally designed for Bootstrap. We use the form templates of version2.
Tailwind Styled Content comes with a Tailwind preset, a safelist and a plugin, which you can directly import from the composer package. No need for an additional npm package.
The preset extends Tailwind's default theme to better suit TYPO3 websites. It also includes the needed plugins like daisyUI, which makes Tailwind usable for non-component-based JS frameworks and tailwindcss/typography for RTE and default heading styling.
The Tailwind Styled Content plugin uses the .frame class to add robust and flexible spacing to all content elements. The combo classes added by the space_before_class and space_after_class fields, to adjusts the spacing of individual content elements, look like this: frame-space-(before|after)-(none|small|large). For further customization, check out the customization section.
Install it via Composer:
composer req jramke/tailwind-styled-contentNote: For legacy installations, use the Extension Manager in the backend. Make sure to adjust the paths in your Tailwind config.
To initialize Tailwind, use PostCSS as recommended. Follow these instructions: Tailwind CSS Installation using PostCSS.
For an easy setup, use vite-asset-collector by Simon Praetorius and simply import the your CSS file in your JS entry file. More info here: Vite Asset Collector.
As Tailwind Styled Content relies on daisyUI and @tailwindcss/typography, you need to install them as development dependencies:
npm i -D daisyui@latest @tailwindcss/typographyAdd Tailwind Styled Content to your tailwind.config.js. You'll need to define the content paths and safelist yourself, as they’re not merged with the preset.
import { preset, safelist } from './vendor/jramke/tailwind-styled-content';
/** @type {import('tailwindcss').Config} */
module.exports = {
presets: [preset],
content: [
'./vendor/jramke/tailwind-styled-content/**/*.{html,yaml,typoscript,tsconfig}',
'packages/**/*.{html,js,yaml,typoscript,tsconfig,xml}',
],
safelist: [...safelist],
}For basic Tailwind customization, refer to the Tailwind docs.
To customize daisyUI, I would recommend this approach, where you extend an existing theme with your brand colors. More details are available in the daisyUI docs.
To customize Tailwind Styled Content, use the tsc object in your Tailwind config.
You can tweak the .frame component’s CSS by adjusting the default vertical padding, breakpoint-specific padding, and spacing for the combo classes. Set frame: false to opt-out of these styles entirely.
The default config looks like this:
tsc: {
frame: {
default: '2.5rem',
screens: {
lg: '3.5rem',
},
multipliers: {
small: '1.5',
large: '1.5',
},
},
}To customize the typography styles, extend your Tailwind config or override the Prose.html partial in your distribution extension. Learn more here.
The development setup uses DDEV and is based on this example.
ddev startnpm install1. Setup the TYPO3 development environment for the needed version
ddev install-v11
ddev install-v12
ddev install-v13The installations are then available at:
- https://v11.tailwind-styled-content.ddev.site
- https://v12.tailwind-styled-content.ddev.site
- https://v13.tailwind-styled-content.ddev.site
You can log into the backend with username admin and password Password1#.
2. Restore base database
ddev snapshot restore dev-baseor manually include the Tailwind Styled Content static TypoScript file and add this to the template:
page.includeCSS {
tailwind = output.css
tailwind {
disableCompression = 1
excludeFromConcatenation = 1
}
}
4. Start the Tailwind CLI build process
Replace [VERSION] with the desired installation version (e.g. v12):
ddev exec -d /var/www/html/[VERSION] npm run tailwind