dropflow
Version:
A small CSS2 document renderer built from specifications
25 lines (24 loc) • 1.02 kB
TypeScript
import { BlockContainer } from './layout-flow.js';
import { Image } from './layout-image.js';
import { ShapedItem } from './layout-text.js';
import { Color } from './style.js';
import type { LoadedFontFace } from './text-font.js';
export interface PaintBackend {
fillColor: Color;
strokeColor: Color;
lineWidth: number;
direction: 'ltr' | 'rtl';
font: LoadedFontFace | undefined;
fontSize: number;
edge(x: number, y: number, length: number, side: 'top' | 'right' | 'bottom' | 'left'): void;
text(x: number, y: number, item: ShapedItem, textStart: number, textEnd: number, isColorBoundary?: boolean): void;
rect(x: number, y: number, w: number, h: number): void;
pushClip(x: number, y: number, w: number, h: number): void;
popClip(): void;
image(x: number, y: number, width: number, height: number, image: Image): void;
}
/**
* Paint the root element
* https://www.w3.org/TR/CSS22/zindex.html
*/
export default function paint(block: BlockContainer, b: PaintBackend): void;