Manual/Reference

Style dock and QGIS

The style dock is a capability-driven authoring surface. It combines the application’s persisted LayerStyle, CartographyStyle, LabelLayoutStyle, provider-owned metadata, and a dedicated Travels style document. It covers a useful subset of QGIS concepts, but it does not promise QGIS rendering parity. An import or export that keeps application metadata does not prove that QGIS or an SLD server will draw the same result.

Editing model

The dock exposes only the tabs and controls supported by the selected layer and renderer. Vector layers can expose Symbol, Labels, 3D, Rendering, and More; LiDAR classification controls are a Classifications section under More, shown when the data and active mode support them. Raster, native, and plugin layers expose their own capability sets. The layer preview is automatic. It renders a bounded synthetic sample from the current draft, including every available LiDAR classification code when that sample is used. The sample has no source coordinates and does not read the main map’s camera or extent. There is no Preview action or Preview checkbox. Save is the single action that applies the draft to the project, and it commits all pending style changes together.

The style document starts with Undo and Redo disabled. Its Travels journal records local style edits only. Provider refreshes, map navigation, layer selection, and project mutations outside the style document do not add entries. Drafts for each layer survive layer switches. Save establishes a new dirty baseline without clearing the journal, so Undo after Save creates a pending draft that needs another Save before it reaches the project.

Switching to an incompatible renderer or tab does not erase authored values. When the layer returns to a compatible capability, the values are restored. Categorized examples remain available, while the unrelated 3D examples have been removed. Native model previews use an asset-free abstract silhouette sized for the fixed stage. They never duplicate the main map or read its camera, extent, or provider content.

Raster index mode follows the active provider engine. The dock offers it for maplibre-gl-raster and titiler; the CPU WASM renderer does not evaluate band math indices. The dock can retain an authored index while that mode is hidden, then restore it when a compatible engine returns. Source-band histograms are not presented as index statistics.

Capability comparison

The application column describes persisted state and executable renderer paths. It does not count a control as support when the model or renderer cannot apply the value.

AreaCurrent dock and modelQGIS 3.44 baseline and remaining gap
Vector renderers and symbol stacksingle, categorized, graduated, rule-based, and expression modes. Point layers can use single markers, heatmaps, or clusters. Proportional size, diagrams, fill patterns, generated geometry, line decorations, marker shapes, and ordered fill, line, and marker symbols are persisted with filters, zoom ranges, enabled state, and explicit base-symbol visibility.QGIS also exposes point displacement, merged-features, no-symbol, embedded, and other renderer paths, plus a larger symbol-layer tree. The missing work is renderer and model support for those paths, symbol levels, and their data-defined properties. A selector alone would be inert.
Rules and category stateVectorRule supports ordered filters, an else rule, nested groups, enabled state, zoom bounds, and per-rule color, stroke, opacity, and radius overrides. Categorized stops retain values, display labels, colors, and enabled state, including legacy duplicate values.QGIS has a broader rule and symbol tree with more predicate, scale, legend, and per-symbol combinations. The application needs executable model and export mappings before exposing those combinations.
Lines and dash or gapLine cartography supports solid, dash, dot, dash-dot, and custom sequences, separate casing and hollow gap width, caps, joins, offset, and repeated line decorations. Stroke width can use pixels or ground meters where the property supports it.QGIS supports more marker-line and arrow placement, rotation, symbol-level ordering, and dash controls such as phase. Those require renderer fields and native export behavior, not extra labels in the dock.
Labels, rules, halo, background, and calloutBasic labels support a field or expression, point or line placement, size, color, halo, zoom range, overlap, anchors, offsets, rotation, wrapping, case transform, deduplication, and data-defined size, color, opacity, visibility, and priority. LabelLayoutStyle adds independent classes with filters, font weight and style, line height, letter spacing, alternative anchors, repeat distance, backgrounds, and callouts.QGIS has a wider labeling engine with more placement, obstacle, masking, data-defined, and provider-aware behavior. The current classes are application label classes, not a full QGIS placement engine.
Derived geometry and inverted fillGeometry generators offer centroid, bounding box, convex hull, and buffer presets. Polygon layers can enable invertedFillEnabled, which builds a mask outside the features while keeping their outlines.QGIS has a general geometry-generator symbol-layer language and a fuller inverted-polygon renderer. The application supports the concrete presets and mask path implemented by its renderer; it does not claim the complete QGIS renderer.
3D, extrusion, and native scenesVector extrusion supports height and base properties, scales, expressions, color, opacity, and mode switching. Coordinate Z values can use the elevation 3D path with vertical scale and offset. Native scene controls cover the application’s deck.gl, Cesium, and 3D Tiles contracts, including model scale and heading, color blending, outlines, clipping, shadows, and scene lighting.QGIS has a broader 3D scene and provider renderer with different terrain, material, camera, model, and point-cloud semantics. The application documents its own scene contracts and keeps unsupported settings in the model when a mode switch cannot apply them.
Raster providers and indexRaster sources expose RGB, single-band colormap, and engine-gated index modes, with band selection, ramps, discrete classification, custom colors, rescale, no-data, opacity, blend mode, brightness, saturation, contrast, and hue controls. A provider runtime owns statistics and engine behavior.QGIS provides more raster renderers, provider and source settings, resampling, transparency, histogram, hillshade, contour, and elevation controls. The application does not expose those provider-specific controls through this dock.
LiDAR classificationLiDAR controls offer elevation, intensity, classification, and optional RGB color schemes, colormap and range controls, point size, opacity, and an elevation filter. Classification controls appear in a Classifications section under More when the data has classification attributes and classification mode is active.QGIS point-cloud styling and provider controls are broader. The application exposes classification visibility at its LiDAR runtime boundary, not a general point-cloud renderer.
Time SliderTime Slider COG and mosaic layers expose a dedicated four-field contract: color ramp, band list, rescale window, and no-data mode. Edits are staged in the style document. Save writes the mirrored layer metadata and the native provider state.QGIS has broader temporal layer properties and temporal-controller integration, including provider-specific temporal behavior. The Time Slider contract is intentionally narrower.
Data authoringEditable GeoJSON layers can define persistent joins with key fields, prefixes, field subsets, and match statistics; expression and spatial-aggregate virtual fields; attribute-form widgets with constraints, visibility, and value maps; and editor tracking with author and timestamp fields. These sections are not shown for provider-owned layers.QGIS supports a wider provider-backed editing model, defaults, constraints, relation widgets, auxiliary storage, and form behavior. The dock’s authoring features apply to its local GeoJSON command path.
Style library and formatsThe style library stores style, symbol, labels, and ramp entries in project state or app-level IndexedDB. The project decoder in packages/core/src/project/document/layers.ts completes compact persisted label defaults before format exporters receive the style. The dock imports and exports Mapbox GL, SLD, and QML, reports conversion warnings, and preserves application metadata.QGIS style databases and native QML or SLD symbol trees carry more renderer and provider detail. Format conversion is a partial mapping with warnings, not a promise of native QGIS equivalence.
Units, effects, and render passesLine and polygon stroke widths support pixels and meters; point outlines remain pixel-based. Labels use pixel and em-style layout values, extrusion uses meters, and layers support the fixed blend modes normal, multiply, screen, lighten, and add. Ordered symbols provide application draw order, but there is no separate paint-effect stack or explicit render-pass field.QGIS supports more unit families, including millimeters, points, inches, and map or scale units, plus composable paint effects and explicit symbol levels or rendering passes. These are model and renderer gaps.

The QGIS vector properties manual lists its renderer, label, diagram, 3D, fields, joins, rendering, temporal, and elevation surfaces. The symbol selector manual describes its symbol layers, units, marker placement, and paint effects. The raster properties manual describes its band renderers, provider settings, resampling, histogram, temporal, and elevation tabs.

Format contracts and future work

Native drawing instructions and editable application metadata are separate contracts. Format checks should inspect both. They should assert category visibility, rule fallback behavior, symbol ordering, independent fill and outline visibility, and label defaults completed by the project decoder before the exporter runs. When a format cannot represent an expression, symbol layer, or inverted mask, the adapter should report the limitation and retain the authored application state where the format permits it.

Remaining compatibility work belongs in model, renderer, and format contracts. That includes the broader QGIS renderer tree, complete symbol-layer placement and effects, richer units and render passes, provider-specific raster and point cloud controls, and wider temporal and 3D semantics. Add a control only after the corresponding value can be applied, persisted, and exported or warned about accurately.

Application style and format tests show what can round-trip in this codebase. They do not verify how an exported style renders inside QGIS or an external SLD server.