"WFQuickActionSurfaces": [],
"WFWorkflowClientVersion": "1305.1.2",
"WFWorkflowHasOutputFallback": false,
"WFWorkflowHasShortcutInputVariables": true,
"WFWorkflowIcon": {
"WFWorkflowIconStartColor": 463140863,
"WFWorkflowIconGlyphNumber": 61488
},
"WFWorkflowImportQuestions": [
{
"Category": "Parameter",
"ParameterKey": "WFFolder",
"ActionIndex": 2,
"Text": "Select the folder you want to use for the new Quick Save feature of Apple Frames. This is a folder where framed images will be saved without having to rename them or picking a destination folder manually.",
"DefaultValue": {
"fileLocation": {
"fileProviderDomainID": "com.apple.CloudDocs.MobileDocumentsFileProvider",
"relativeSubpath": "com~apple~CloudDocs",
"WFFileLocationType": "iCloud"
},
"filename": "com~apple~CloudDocs",
"displayName": "iCloud Drive"
}
}
],
"WFWorkflowInputContentItemClasses": [
"WFImageContentItem"
],
"WFWorkflowMinimumClientVersion": 1106,
"WFWorkflowMinimumClientVersionString": "1106",
"WFWorkflowOutputContentItemClasses": [],
"WFWorkflowTypes": [
"ActionExtension",
"QuickActions",
"MenuBar"
]
Add device frames to screenshots for iPhones (11, 8/SE, and 12-13-14 generations in mini/standard/Plus/Pro Max sizes), iPad Pro (11" and 12.9", 2018-2022 models), iPad Air (10.9", 2020-2022 models), iPad mini (2021 model), Apple Watch S4/5/6/7/8/Ultra, iMac (24" model, 2021), MacBook Air (2020-2022 models), and MacBook Pro (2021 models). The shortcut supports portrait and landscape orientations, but does not support Display Zoom; on iPadOS and macOS, the shortcut supports Default and More Space resolutions. If multiple screenshots are passed as input, they will be combined in a single image. The shortcut can be run in the Shortcuts app, as a Home Screen widget, as a Finder Quick Action, or via the share sheet.
Select the folder you want to use for the new Quick Save feature of Apple Frames.
It looks like the Frames folder for Apple Frames 3.0 is not installed on your device.
You'll have to download this zipped folder ONCE for Apple Frames to work.
Click OK and Shortcuts will download the zipped folder from MacStories.net and take care of installing it for you.
(The download will take a few seconds.)
The Frames folder has been successfully saved in iCloud Drive/Shortcuts.
There's nothing else you have to do now. Do NOT modify the contents of iCloud Drive/Shortcuts/Frames.
In the future, to install new versions of Apple Frames, you may have to delete the Frames folder and download it again.
But for now: welcome to Apple Frames, and enjoy. ☺
- Federico
Start routine to check for JSON file
FileErrorIfNotFound
false
Frames.json file is not installed. It needs to be downloaded alomg with the entire folder.
A newer version of Apple Frames assets has to be downloaded. This will only occur once.
AskWhereToSave
false
SaveFileOverwrite
true
FileDestinationPath
/Frames/
AlertActionCancelButtonShown
false
AlertActionMessage
[Thank You Message]
AlertActionTitle
✅
FileErrorIfNotFound
false
The user has the latest version of Frames installed. The shortcut can continue.
The Frames Dictionary variable has already been set.
Check if the input has any value or not.
ConditionalActionString
0
ConditionalLegacyComparisonBehavior
true
ContentItemFilter
Is a Screenshot
ContentItemSortOrder
Latest First
ContentItemLimitNumber
100
ContentItemLimitEnabled
false
ContentItemSortProperty
Creation Date
ChooseFromListActionPrompt
Select Screenshots
ChooseFromListActionSelectMultiple
true
Set a screenshot variable for each pass of repeat loop and reset it every time
ConditionalLegacyComparisonBehavior
true
ConditionalActionString
1242
NumberValue
1242
11 Pro Max frame
Check for Pro Max screenshot height.
ConditionalLegacyComparisonBehavior
true
ConditionalActionString
2688
NumberValue
2688
ConditionalLegacyComparisonBehavior
true
ConditionalActionString
1125
NumberValue
1125
Pro portrait
Additional check to see we're not dealing with an iPhone 12 mini
It is an iPhone 12 mini in portrait
ImageResizeHeight
2340
ImageResizeWidth
1080
ConditionalLegacyComparisonBehavior
true
ConditionalActionString
2688
NumberValue
2688
Pro Max landscape
ConditionalLegacyComparisonBehavior
true
ConditionalActionString
2436
NumberValue
2436
iPhone 12-13 mini landscape
ImageResizeHeight
1080
ImageResizeWidth
2340
ConditionalLegacyComparisonBehavior
true
ConditionalActionString
368
NumberValue
368
Apple Watch S4 44mm
ImageResizeWidth
368
ConditionalLegacyComparisonBehavior
true
ConditionalActionString
750
NumberValue
750
iPhone 8 and SE 2020
iPad Pro 12.9-inch (2018/2021 model landscape)
ConditionalActionString
2732
ConditionalLegacyComparisonBehavior
true
NumberValue
2732
iPad Pro 12.9-inch (2018/2020 model) portrait mode
ConditionalActionString
2048
ConditionalLegacyComparisonBehavior
true
NumberValue
2048
Additional check to make sure 6th gen iPad does not get matched here
It is not the base model iPad, so it's a 12.9" Pro in portrait
End of check for 6th gen iPad height
2021 iPad mini in portrait
ConditionalActionString
1488
ConditionalLegacyComparisonBehavior
true
NumberValue
2208
2021 iPad mini landscape
ConditionalActionString
2266
ConditionalLegacyComparisonBehavior
true
NumberValue
1334
Landscape iPad Pro 11" 2018
ConditionalActionString
2388
ConditionalLegacyComparisonBehavior
true
NumberValue
2388
iPad Pro 11" 2018 Portrait
ConditionalActionString
1668
ConditionalLegacyComparisonBehavior
true
NumberValue
1668
Apple Watch S4 40mm
ConditionalActionString
324
ConditionalLegacyComparisonBehavior
true
NumberValue
324
iPhone 11
iPhone 11 frame
iPhone 11 landscape
iPhone 11 landscape frame
iPhone 12-13 and 12-13 Pro
iPhone 12-13 and 12-13 Pro in landscape
iPhone 12-13 Pro Max in portrait
CustomMaskImage
[180 13 Pro Max Portrait Mask]
iPhone 12-13 Pro Max landscape
CustomMaskImage
[189 File]
iPad Air 2020 in landscape
iPad Air 2020 portrait
iMac 24" at default resolution
iPad base model 9th gen
2020 MacBook Air @ 2880px resolution
Resize screenshot to match frame
ImageResizeWidth
2560
Apple Watch S7 45mm
[⚫️,
⚪️]
ChooseFromListActionPrompt
Apple Watch
Midnight color
MBP 2021 14"
MBP 2021 16" at default resolution
iPad Pro 12.9" with More Space display scaling
ImageResizeHeight
2048
ImageResizeWidth
2732
iPhone 14 Pro Max, portrait mode.
We need to mask the image, then overlay the first frame without Dynamic Island shown.
CustomMaskImage
[260 File]
ShouldShowImageEditor
false
ImageX
80
OverlayImageOpacity
100
Rotation
0
ImageY
70
ImagePosition
Custom
iPhone 14 Pro Max, landscape
CustomMaskImage
[272 File]
ShouldShowImageEditor
false
ImageX
70
OverlayImageOpacity
100
Rotation
0
ImageY
80
ImagePosition
Custom
Apple Watch Ultra, 2022
iPhone 14 Pro in portrait
CustomMaskImage
[289 File]
ShouldShowImageEditor
false
ImageX
80
OverlayImageOpacity
100
Rotation
0
ImageY
80
ImagePosition
Custom
iPhone 14 Pro in landscape
CustomMaskImage
[301 File]
ShouldShowImageEditor
false
ImageX
80
OverlayImageOpacity
100
Rotation
0
ImageY
80
ImagePosition
Custom
12.9” iPad Pro with more space, portrait mode
ImageResizeHeight
2732
ImageResizeWidth
2048
iPad Air M1 with More Space display setting in landscape
ImageResizeHeight
1640
ImageResizeWidth
2360
iPad Air M1 with More Space display setting in portrait
ImageResizeHeight
2360
ImageResizeWidth
1640
11” iPad Pro with display scaling enabled in landscape
ImageResizeHeight
1668
ImageResizeWidth
2388
11” iPad Pro with display scaling enabled in portrait
ImageResizeHeight
2388
ImageResizeWidth
1668
M1 MacBook Air with More Space resolution
Resize screenshot
ImageResizeWidth
2560
M2 MacBook Air with default resolution
ImageResizeHeight
1664
ImageResizeWidth
2560
M2 MacBook Air with More Space resolution
ImageResizeHeight
1664
ImageResizeWidth
2560
MBP 16" with More Space resolution
ImageResizeWidth
3456
iMac 24" at More Space resolution
ImageResizeWidth
4480
MBP 14" with More Space resolution
ImageResizeWidth
3024
More devices here
Screenshots from older devices and those with Dynamic Island use a different logic. Thus we need to have a condition here to check if there is a variable for frame without island.
OverlayImageOpacity
100
Rotation
0
ShouldShowImageEditor
false
Reset value of Frame No Island variable
ShouldShowImageEditor
false
ImageX
[Matched Device Dictionary as Dictionary.x]
OverlayImageOpacity
100
Rotation
0
ImageY
[Matched Device Dictionary as Dictionary.y]
ImagePosition
Custom
OverlayImageOpacity
100
Rotation
0
ShouldShowImageEditor
false
If dealing with more than one device, combine them into a single image.
ConditionalLegacyComparisonBehavior
true
ImageCombineSpacing
60
screenshots
A single device was passed, no need to combine images.
screenshot
Strip metadata and rename
ImagePreserveMetadata
false
DateFormatStyle
Custom
DateFormat
EEEE, dd MMM yyyy HH:mm:ss
Final menu of actions for the framed images.
Framed [Framed Screenshots Count][Noun].
Pick an action below.
Use the proper name for the filesystem based on user device
Finder
Files
MenuPrompt
[475 Menu Title]
MenuItems
[🌄 Save to Photos,
"🔠 Rename and Save to [Filesystem App]",
"📁 Quick Save to [Filesystem App]",
📋 Copy,
🔀 Copy as JPEG,
⬆️ Share,
👁 Preview with Quick Look]