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.
frame_class
options.frame
spacing apiimageorient
optionsRefer 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-content
Note: 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/typography
Add 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}',
],
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 start
npm install
1. Setup the TYPO3 development environment for the needed version
ddev install-v11
ddev install-v12
ddev install-v13
The installations are then available at:
You can log into the backend with username admin
and password Password1#
.
2. Add the Tailwind Styled Content static TypoScript file
3. Include the generated Tailwind CSS in your TYPO3 page
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