connetation / t3wtk-elements
30+ ready-to-use content elements for TYPO3 14 LTS: sliders, galleries, accordions, tabs, timelines, pricing tables, testimonials, team, maps and more. Part of the Connetation TYPO3 Web Toolkit (T3WTK).
Package info
github.com/connetation/t3wtk-elements
Type:typo3-cms-extension
pkg:composer/connetation/t3wtk-elements
Requires
- b13/container: ^3.2
- connetation/t3wtk-base: ^3.0.6
- typo3/cms-core: ^14.0
- typo3/cms-fluid: ^14.0
- typo3/cms-frontend: ^14.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
- conn/t3kit-elements: 3.1.4
README
From an empty TYPO3 installation to a complete, themeable website in hours instead of weeks.
T3WTK is a modular set of TYPO3 extensions for TYPO3 14 LTS. It replaces the groundwork that has to be redone on almost every project: sitepackage, page templates, navigation, footer, content elements, dark mode, forms and SEO setup. Once installed via Composer, your team can start with configuration, design and content right away.
Packages
| Package | Purpose |
|---|---|
connetation/t3wtk-base |
Design system & foundation: page templates, navigation, footer, design tokens, light/dark theme, site settings, default theme |
connetation/t3wtk-elements |
30+ content elements in eight categories |
connetation/t3wtk-sitepackage |
Project layer: theme overrides, forms, email templates, SEO configuration |
connetation/t3wtk-demosite |
Creates a complete demo page tree with sample content |
connetation/t3wtk-themes |
Theme library (in development) |
Project-specific code lives only in the sitepackage, so base and elements can be updated via Composer like any other dependency without overwriting your customizations.
Highlights
- Design once, theme everywhere: colors, logo, navbar, footer, buttons and border radius as TYPO3 site settings. 250+ options, editable in the Sites module.
- Full dark mode with its own color palette and theme toggle, per site, no extra CSS
- 30+ content elements: hero and card sliders, video hero, before/after comparison, mosaic and lightbox galleries, accordion, tabs, flip cards, timeline, pricing tables, stats/counter, testimonials, team, map & location and more
- Five container layouts (2/3/4 columns, narrow/wide, wide/narrow), nestable
- Shared design options for every element: spacing, content width up to full-bleed, backgrounds (color, image, parallax), scroll and text animations
- Built on TYPO3 standards: Site Sets, Fluid, Composer, core "Text & Media" as a base, regular TYPO3 content records with no proprietary structures
- Performance: responsive images, lazy loading, CSS/JS loaded only for elements actually used on a page
- Accessibility-minded markup: Bootstrap 5, semantic HTML, clean heading hierarchy, keyboard-operable widgets
- Included: contact form (Form Framework) with branded email templates, SEO setup via cs_seo (Open Graph, Twitter Cards, structured data), favicon/branding set, three icon libraries (Bootstrap Icons, Font Awesome, Ionicons)
Requirements
- TYPO3 14 LTS (tested on 14.3), Composer mode
- Uses
b13/containerandclickstorm/cs_seo
Quick start
composer require connetation/t3wtk-base connetation/t3wtk-elements- Add the T3WTK site set to your site configuration
- Configure colors, logo, navigation and footer in the site settings
- Build pages with the ready-made content elements
Want to explore first? Install connetation/t3wtk-demosite or visit https://demosite.connetation.at
Feedback & contributing
T3WTK is a young open-source project. Bug reports, ideas and pull requests are welcome via GitHub Issues and Discussions.
This package: connetation/t3wtk-elements
30+ ready-to-use content elements for TYPO3 14 LTS: sliders, galleries, accordions, tabs, timelines, pricing tables, testimonials, team, maps and more. Part of the Connetation TYPO3 Web Toolkit (T3WTK).
๐ Quickstart: the fastest way to start a new TYPO3 14 project with
connetation/t3wtk-base,connetation/t3wtk-elementsandconnetation/t3wtk-sitepackageis t3wtk-quickstart-shell โ a ready-to-use DDEV project template. Clone it and runddev setup-project.
Responsive images
All image-rendering elements use <ce:responsiveImage> (Classes/ViewHelpers/ResponsiveImageViewHelper.php) โ it outputs a WebP srcset ladder with sizes, capped at the source file width, honoring the backend image editor crop. SVG/GIF are served unprocessed.
Server-side prerequisites (Install Tool)
[GFX][processor_effects] = true(sharpening after downscale โ required for crisp output)webpmust be in[GFX][imagefile_ext](default in modern TYPO3 if processor supports it)- Editor guideline: hero uploads >= 2560px wide (ladder caps at source width)
Build
Local โ run from vendor/connetation/t3wtk-elements/:
npm install npm run build # production build (SCSS + JS) npm run dev # watch mode (SCSS + JS in parallel) npm run build:scss # SCSS only npm run build:js # JS only
DDEV:
ddev exec "cd /var/www/html/vendor/connetation/t3wtk-elements && npm run build"
Adding a new content element
Use the scaffold CLI โ it generates every required file and patches all registration files automatically.
Local (Node.js installed on host):
cd vendor/connetation/t3wtk-elements
npm run make-element
Inside DDEV (recommended โ no local Node.js required):
ddev make-element
Or pass the element name directly to skip the first prompt:
ddev make-element "Hero Banner"
Under the hood ddev make-element is a custom host command at .ddev/commands/host/make-element. It opens an interactive terminal inside the web container (ddev exec -it) so readline prompts work correctly. Running plain ddev exec without -it would hang waiting for input.
It asks three questions:
- Element name โ e.g.
Hero Banner,Testimonial,Pricing Table - Type โ Simple (FlexForm settings only) or With inline child records (like Accordion / Cards)
- CE group โ
conn_bootstrap,conn, orconn_swiper
What gets generated
| File | Purpose |
|---|---|
Configuration/FlexForms/<Name>.xml |
Display settings form |
Configuration/TypoScript/ContentElements/<Name>.typoscript |
Frontend rendering setup |
Configuration/TCA/tx_conn_t3wtk_elements_domain_model_<name>_item.php |
Child record TCA (with-items only) |
Classes/DataProcessing/<Name>ItemsProcessor.php |
DB query + FlexForm resolver (with-items only) |
Resources/Private/Templates/ContentElements/<Name>.html |
Main Fluid template |
Resources/Private/Partials/<Name>/Item.html |
Item partial (with-items only) |
Resources/Private/Components/<Name>/index.scss |
SCSS entry point |
Resources/Private/Components/<Name>/_<name>.scss |
SCSS component |
Resources/Private/Components/<Name>/<name>.ts |
TypeScript component |
Resources/Public/Icons/<name>-ce.svg |
Icon placeholder (replace with real SVG) |
What gets patched automatically
Configuration/Icons.php, build.mjs, ext_tables.sql, ext_localconf.php,
Configuration/TCA/Overrides/tt_content.php, Resources/Private/Language/locallang_be.xlf,
Configuration/TypoScript/setup.typoscript
All patches are idempotent โ re-running the script on an existing element name is safe.
After running the scaffold
These steps must be done in order โ skipping or reordering them causes the "Unknown column" SQL error when saving the element in the backend.
1. Build assets
Local:
cd vendor/connetation/t3wtk-elements && npm run build
DDEV:
ddev exec "cd /var/www/html/vendor/connetation/t3wtk-elements && npm run build"
2. Flush TYPO3 caches โ so TYPO3 picks up the new TCA and SQL definitions
Admin Tools โ Maintenance โ Flush all caches
3. Apply database schema (with-items elements only)
Admin Tools โ Maintenance โ Analyze Database Structure โ apply changes
Skipping step 3 leaves the new column missing from the database, which causes SQL error: Unknown column '...' in 'INSERT INTO' when saving the element.
4. Verify โ the element should now appear in the "New Content Element" wizard under the chosen group.
Customising the generated element
- FlexForm โ edit
Configuration/FlexForms/<Name>.xmlto add/change display settings - Child record fields โ extend
Configuration/TCA/tx_conn_t3wtk_elements_domain_model_<name>_item.phpandext_tables.sql, then re-run DB analysis - Data Processor โ extend
resolveSettings()and$rowsenrichment in the generated processor - Template โ edit the Fluid template and partial freely
- SCSS โ edit
_<name>.scss; usesvar(--conn-*)design tokens for consistent theming - TypeScript โ edit
<name>.ts; theregistry.register()call at the bottom wires it to the DOM - Icon โ replace
Resources/Public/Icons/<name>-ce.svgwith your SVG (16ร16 viewBox recommended)
License
GPL-2.0-or-later ยท Developed by Connetation Web Engineering GmbH, Salzburg, Austria