Sketchpad.app Cloud Instance
"toolMode": "svg", // SVG-based tools (paths, shapes, precise vectors)
"toolMode": "vector", // Vector tools but not strictly SVG (could be other formats)
"toolMode": "raster" // Pixel/bitmap-based tools (like Photoshop)
"toolGroups": {
brush: [ 'pen', 'pencil' ],
shape: [ 'rectangle', 'circle', 'triangle' ],
text: [ 'fancyText' ],
fill: [ 'paintEditor', 'floodFill' ]
},
"toolConfigs": {
shapeBrush: {
name: 'Shape Brush',
icon: 'sketch-icon-shapeBrush',
compatibility: ['raster', 'vector'],
settings: { ... }
}
}
Done
Sketchpad.app projects
SketchAPI.com endpoints
Notes
yarn build sketchpad
--dry-run
--target ../sketch-api-instances/public/
--domain-lock "iheart.sketchpad.app iheart-dev.sketchpad.app 127.0.0.1:8080 localhost:8080"
--mixin-sketch-config '{
"ui": {
"ExportPane": {
"enabled": true,
"components": [
{ "type": "DownloadPaneTrigger" },
{ "type": "DownloadRegion" },
{ "type": "QuickDownload", "formats": [ "JPEG", "PNG", "PDF", "SVG", "SKETCHPAD" ] },
{ "type": "PrintPaneTrigger" }
]
},
"PrimaryToolbar": {
"enabled": true,
"mirrorInRTL": true,
"position": "left",
"primaryCommands": [
"select",
"crop",
"brush",
"shape",
"clipart",
"text",
"fill",
"eraser"
],
"secondaryCommands": [
"newDocument",
"openDocument",
"exportDocument",
"settings"
]
},
"SettingsPane": {
"enabled": true,
"components": [
{ "type": "AutoSaveToggle" },
{ "type": "HotkeysPanel" },
{ "type": "LanguageSelector" },
{ "type": "MeasurementUnitsSelector" },
{ "type": "PersistentStorageToggle" },
{ "type": "SnapToGuidesToggle" },
{ "type": "SurfacePanelTrigger" },
{ "type": "ThemePanel" }
]
},
"WelcomeMessage": {
"enabled": false
},
"EmbeddedWatermark": {
"enabled": false
}
}
}'
--mixin-sketch-hosts '{ "sketchpad.app": { alias: [ "*.sketchpad.app", "127.0.0.1:8080", "localhost:8080" ], assetUrl: "https://asset.sketchpad.com/api/", baseUrl: "/", mediaUrl: "/media/", pluginUrl: "/min/plugins-${pkgName}.min.js", saveUrl: "https://save.sketchpad.com" }
}'
Sketch Hosts (PENDING IMPLEMENTATION)
export const SKETCH_HOSTS = {
'sketchpad.app': {
alias: [
'*.sketchpad.app',
'127.0.0.1:8080',
'localhost:8080'
],
assetUrl: 'https://asset.sketch.io/api/',
pluginUrl: 'http://localhost:2040/?${pkgName}&returnAs=pluginLoader',
saveUrl: 'https://share.sketchpad.app/save/',
baseUrl: 'http://localhost:2040/projects/sketchpad/',
mediaUrl: 'http://localhost:2040/projects/sketchpad/media/'
}
}
Sketch Config (PENDING IMPLEMENTATION)
export const SKETCH_CONFIG = {
docSurface: 'white',
docUnits: 'px',
cropSizes: [
{ label: 'crop-2x3', width: 2, height: 3, units: 'in', dpi: 300, type: 'paper', note: 'Wallet Size' }
],
fsAutosave: true,
fsProviders: [ 'local', 'google' ],
FloatingToolbar: {
commands: [
'layers',
'zoom',
'history',
'undoOrRedo'
]
},
LayerConfigPane: {
BlendModeSelector: { enabled: false },
PaintIntoLayerToggle: { enabled: false }
},
PalettePane: {
paintTypes: [ 'color', 'linearGradient', 'radiantGradient', 'pattern' ]
}
}