Native preset and action formats
Portable libraries for brushes, patterns, shapes, styles, colour and automation.
Reviewed against the application source on 5 October 2026. Focale is in active development; available commands and published packages may differ by build.
Format identifiers
These user-facing formats use UTF-8 JSON with an explicit format tag and version. Export through the corresponding catalogue to back up or share presets; local cache files are implementation details.
| Extension | Version | Root format | Content |
|---|---|---|---|
| .fbrush | 1 | focale-brush-presets | Brush presets, sampled coverage tips and texture patterns |
| .fpattern | 1 | focale-pattern-presets | Pattern metadata and deduplicated RGBA tiles |
| .fshape | 1 | focale-custom-shape-presets | Vector outlines and custom-shape metadata |
| .fstyle | 1 | focale-style-presets | Editable layer effects and blending options |
| .fswatch | 1 | focale-color-swatches | Straight-alpha ARGB colour values |
| .fgradient | 1 | focale-gradient-presets | Colour/alpha stops, midpoints and interpolation |
| .fcurve | 1 | focale-curve-presets | Composite, red, green and blue curves |
| .faction | 1 | focale-action-set | One action set with referenced paint resources |
A portable JSON library
Most preset libraries contain a presets array. Action bundles instead contain one set with actions and steps. Identifiers, names and values are typed and validated rather than accepted as arbitrary executable code.
The example is a version-1 gradient library. Exact schemas, bounds and compatibility rules for each family are in the downloadable references.
{
"format": "focale-gradient-presets",
"version": 1,
"presets": [{
"id": "gradient.user.example",
"name": "Black to white",
"gradient": {
"interpolation": "perceptual",
"stops": [
{ "position": 0, "color": 4278190080 },
{ "position": 1, "color": 4294967295 }
]
}
}]
}Raster and vector assets
Brush tips encode one coverage byte per pixel in Base64. Pattern assets encode row-major, straight-alpha RGBA with four bytes per pixel. Shapes retain normalized vector anchors and relative Bézier handles.
Native brush and pattern bundles embed their referenced resources. Dimensions, lengths and content identities are checked before textures are created. Resource and file-size limits differ by format.
Photoshop library interchange
- Interchange support does not cover every historical version or every Photoshop feature.
- Native libraries retain Focale’s own values. ASL pattern pixels and some context-dependent Adobe values do not map into every native catalogue.
| Family | Adobe format | Current direction |
|---|---|---|
| Brushes | ABR | Import and export |
| Patterns | PAT | Import and export |
| Shapes | CSH | Import and export |
| Styles | ASL | Import and export of supported effects |
| Swatches | ACO | Import only |
| Gradients | GRD | Import only |
| Curves | ACV | Import only |
| Actions | ATN | Import and export; only supported operations can execute |
Action safety and versions
The root contains one set, its actions and their steps, plus sampledTips and patterns. A step stores id, enabled, operation and typed parameters. Active primary/dual brush tips and patterns are embedded so paint steps do not depend on another installation’s catalogue.
Maximum: 256 MiB, 2,048 actions and 32,768 steps; decoded tips 64 MiB and patterns 128 MiB. Import assigns fresh identities. Unknown operations and parameters are retained as unsupported and never executed by an older build.
Complete format references
Download the full Markdown specifications in English, including schemas, validation rules and compatibility details.