Introduction
TYPO3 Astryx (skom/) delivers an editorial design system, Content Blocks,
and PAGEVIEW page layouts for TYPO3 14.3. It replaces typo3/ (FSC)
with an atomic CSS architecture powered by StyleX and skom/.
Key Highlights
- FSC Replacement: Replaces legacy Fluid Styled Content templates with structured Content
Blocks (
friendsoftypo3/) and native Fluid components.content- blocks - StyleX CSS-in-JS Architecture: Styles are authored in StyleX modules and compiled by Vite into atomic CSS with deterministic specificity and zero runtime overhead.
- Progressive Enhancement: Editorial pages work without client-side JavaScript. Interactive features—such as header navigation dropdowns, mobile navigation dialogs, accordion disclosure animations, code block copying, and carousel scroll snapping—enhance the page progressively when JavaScript is available and degrade gracefully when disabled.
- Built-in Theme & Mode Switching: - Themes: Neutral (default), Stone (Montserrat typography and warm neutral palette), and Ocean (cool palette). - Modes: System (follows operating system), Light, and Dark. - Client-side theme switcher toggle in the site header with saved visitor preference. - Page-level theme and mode inheritance via rootline fields in Page properties.
- Accessible by Design (WCAG 2.2 AA):
- Contrast ratios meet or exceed 4.5:1 for normal text and 3:1 for user interface controls.
- Keyboard navigation with visible focus rings and proper focus restoration on modals.
- Explicit ARIA landmarks, roles, and live region announcements.
- Respect for user motion preferences (
prefers-disables transitions).reduced- motion - Native Fluid Component Architecture:
- Registered Fluid namespace
<astryx:*>for composable UI primitives:<astryx:,button> <astryx:,badge> <astryx:,status Dot> <astryx:,icon> <astryx:,heading> <astryx:,text> <astryx:,divider> <astryx:,card> <astryx:, andside Nav> <astryx:. - Extension ViewHelpers undertree List> <ax:*>:<ax:for atomic class resolution andrecipe> <ax:for responsive image slot calculation.image Sizes> - Flexible Page & Container Layouts:
- 3 Backend Layouts: Default (Stage, Main), Astryx Sidebar (Stage, Main, Detail),
and Astryx App Shell (Stage, Editorial Navigation, Main, Detail).
- 6 Container Content Elements powered by
b13/: Single Column (with lighter/darker surface shades and full-bleed breakout), 2-Col 50/50, 2-Col 25/75, 2-Col 75/25, 3-Col, and 4-Col.container - Rich Content Element Suite: 22 Content Blocks plus 5 retained core element renderers (Sitemap, Subpages, Selected Pages, Shortcut, Sanitized HTML) covering all modern editorial needs.
Architecture Overview
TYPO3 Astryx is built on three interconnected layers:
+-------------------------------------------------------------+
| TYPO3 Frontend (PAGEVIEW) |
| Layouts, Templates, Content Blocks, Native Fluid Components |
+-------------------------------------------------------------+
|
v
+-------------------------------------------------------------+
| skom/stylex-connector (StylexRegistry) |
| Resolves <ax:recipe> and <stylex:class> keys to classes |
| via stylex-manifest.json generated during build |
+-------------------------------------------------------------+
|
v
+-------------------------------------------------------------+
| StyleX Compiler & Vite Build Pipeline |
| StyleX modules (.stylex.js) -> Atomic CSS (@layer) |
| Token families + themes -> complete semantic CSS variables |
+-------------------------------------------------------------+
Copied!
- Content Blocks: Content elements are authored as TYPO3 Content Blocks in
Content. Each block owns its configuration, frontend Fluid template, backend preview template, local XLF labels, and block-owned StyleX sources.Blocks/ Content Elements/<block- name>/ - StyleX Connector: Connects TYPO3's PHP/Fluid rendering engine with the compiled StyleX
manifest. Rather than hardcoding generated atomic CSS class names, Fluid templates request
semantic recipe keys (such as
button.orroot button.), whichvariant_ primary Stylexresolves to atomic class strings at render time.Manifest Service - Design Tokens & Theme Bridge: Semantic token families are declared in
Resources/and theme overrides in the matchingPrivate/ Java Script/ Style X/ tokens/ Stylemodules. The build-time bridge resolves sparse theme overrides into completeX/ themes/<theme>- theme. stylex. js themes.custom-property sets for the active theme and color mode.css