Skip to main content

kozan_core/layout/inline/
mod.rs

1//! Inline formatting context — handles text and inline-level elements.
2//!
3//! Chrome equivalent: `ng/inline/` (`NGInlineNode`, `NGInlineItem`,
4//! `NGLineBreaker`, `NGInlineLayoutAlgorithm`).
5//!
6//! # Architecture
7//!
8//! ```text
9//! 1. CollectInlines: DOM subtree → flat Vec<InlineItem>
10//! 2. ShapeText: text items → shaped glyph runs (via Parley, future)
11//! 3. LineBreaker: measure items, break into lines
12//! 4. BuildLines: position items within line boxes, align baselines
13//! 5. Output: Vec<LineFragment> each containing positioned inline fragments
14//! ```
15
16pub mod context;
17pub mod font_system;
18pub mod item;
19pub mod line_breaker;
20pub mod measurer;
21
22pub use context::InlineFormattingContext;
23pub use font_system::{FontQuery, FontSystem};
24pub use item::InlineItem;
25pub use measurer::{
26    FontHeight, FontMetrics, TextMeasurer, TextMetrics, WrappedTextMetrics, resolve_line_height,
27};