🚀 Ambitious, extensible page builder for React
Triax Page is an ambitious, extensible page builder for React, designed to provide a complete visual editing experience—including a block editor, style editor, and logic editor. While the long-term goal is a full-featured page builder, the current focus is on the advanced style editor and foundational block editor.
- 🏗️ Block-based layout system (planned for future releases)
- ⚡ Initial implementation for managing block structure and state
- 🗂️ Roadmap: drag-and-drop, nesting, and block-level controls
- 🎛️ Slot-based CSS Value Editor: Incremental, context-aware editing for complex CSS value patterns
- 🏷️ Token System: All CSS data types, keywords, and functions are represented as tokens for robust parsing and validation
- 💤 Lazy Evaluation: Syntax parsing and expansion are performed on-demand for performance and circular dependency safety
- 📚 Comprehensive Lookup Tables: Centralized definitions for CSS properties, tokens, and units
- 🧪 Robust parsing, validation, and UI generation
- 📱 Device, Orientation, and Pseudo Selection: Style editor supports device-specific, orientation-specific, and pseudo-class styling and selection for advanced responsive and stateful layouts.
- 🧠 Visual logic and workflow editor (planned for future releases)
- 🛣️ Roadmap: conditional logic, event handling, and data flow
All documentation is in the docs/
folder. Key topics are organized by editor:
- (Coming soon)
Constants:
property.md
: CSS property definitions, structure, and usagetoken.md
: Token system (formerly "data types"), canonical forms, and usageunit.md
: Supported CSS units, categories, and metadatavalue.md
: Value parsing, slotting, and editor logicparse.md
: CSS value definition syntax parsing, combinators, and multipliers
Utilities:
dimension.md
: Dimension parsing and validation helpersfunction.md
: CSS function parsing helpersoption.md
: Option parsing and normalization helpersparse.md
: Main parser for CSS value definition syntax, combinators, and multiplierstoken.md
: Token helpers for type checks, canonicalization, and conversionvalue.md
: Value parsing, slotting, and normalization helpers
- (Coming soon)
All tests are located in the tests/
folder.
- Style tests:
- Located in
tests/style/
- Currently includes:
parse.test.ts
- Located in
- Global utility tests:
- Located in
tests/
- Currently includes:
array.test.ts
,string.test.ts
- Located in
- Component tests:
- Will be written when the UI is stabilized
- Download the repository:
git clone https://github.com/ChouseinKec/triax-page.git
- Navigate to the project directory:
cd triax-page
- Install dependencies:
npm install
- Run the development server:
npm run dev
- Run tests:
npm test
MIT License
Copyright (c) 2025 Chousein Kechagia
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.