Skip to main content
Hyalinemist
Participant
April 15, 2025
Answered

Photoshop 2025 removed batch Clear Layer Style — WHY?!

  • April 15, 2025
  • 2 replies
  • 620 views

I honestly can’t believe this.

In Photoshop 2025, the ability to right-click and batch clear layer styles is GONE. What are you thinking, Adobe? This has been a standard feature for YEARS and is essential for fast, efficient workflow — especially for UI/UX, web, and graphic designers who deal with dozens or hundreds of layers at once.

Now, the option is just greyed out when multiple layers are selected. Why would you remove something so basic and useful? Do your developers actually use Photoshop, or is this just an abstract experiment in making things harder for professionals?

I don’t want a workaround. I don’t want to write a script. I want the functionality that used to be there. This is not an upgrade — it’s a regression.

Please bring this feature back. Immediately.

Stop removing features we rely on. This is not innovation — it’s sabotage.

Correct answer Stephen Marsh

thank you! that would be amazing!


quote

thank you! that would be amazing!


By @Indra L.5C67

 

 

Try this:

 

/*
Clear Layer Style From Selected Layers.jsx
Stephen Marsh
v1.0 - 8th August 2025
https://community.adobe.com/t5/photoshop-ecosystem-discussions/photoshop-2025-removed-batch-clear-layer-style-why/m-p/15449914
Special thanks jazz-y for the code to work with multiple selected layers
Based on:
https://community.adobe.com/t5/photoshop-ecosystem-discussions/how-to-convert-multiple-shape-into-raterize-layer-at-one-go/td-p/15099483
https://community.adobe.com/t5/photoshop-ecosystem-discussions/rasterize-flatten-layer-transparency-quickly/m-p/11393469
*/

#target photoshop

// Single history stage undo
app.activeDocument.suspendHistory("Clear Layer Style From Selected Layers", "main()");

function main() {

    try {

        // Capture the initial layer visibility and layer selection
        var currentLayersState = getLayersVisiblity();

        // Get the selected layers: courtesy of jazz-y
        var s2t = stringIDToTypeID;
        (r = new ActionReference()).putProperty(s2t('property'), p = s2t('targetLayersIDs'));
        r.putEnumerated(s2t('document'), s2t('ordinal'), s2t('targetEnum'));
        var lrs = executeActionGet(r).getList(p),
            sel = new ActionReference();

        // Loop over the selected layers: courtesy of jazz-y
        for (var l = 0; l < lrs.count; l++) {

            sel.putIdentifier(s2t('layer'), p = lrs.getReference(l).getIdentifier(s2t('layerID')));
            (r = new ActionReference()).putIdentifier(s2t('layer'), p);
            (d = new ActionDescriptor()).putReference(s2t("target"), r);
            //d.putBoolean(s2t("makeVisible"), false);
            executeAction(s2t('select'), d, DialogModes.NO);

            // Clear layer style
            disableLayerStyle();

        }

        // Restore the initial layer visibility and selection
        setLayersVisiblity(currentLayersState);

    } catch (e) {
        alert("Error: " + e.message);
    }
}


///// Functions /////

function getLayersVisiblity() {
    // by jazz-y
    var s2t = stringIDToTypeID,
        t2s = typeIDToStringID;
    (r = new ActionReference()).putProperty(s2t('property'), p = s2t('targetLayersIDs'));
    r.putEnumerated(s2t('document'), s2t('ordinal'), s2t('targetEnum'));
    var targetLayers = executeActionGet(r).getList(p),
        seletion = [],
        visiblity = {};

    for (var i = 0; i < targetLayers.count; i++) seletion.push(targetLayers.getReference(i).getIdentifier());
    (r = new ActionReference()).putProperty(s2t('property'), p = s2t('numberOfLayers'));
    r.putEnumerated(s2t('document'), s2t('ordinal'), s2t('targetEnum'));
    var len = executeActionGet(r).getInteger(p);

    for (var j = 1; j <= len; j++) {
        (r = new ActionReference()).putProperty(s2t('property'), p = s2t('layerSection'));
        r.putIndex(s2t('layer'), j);
        if (t2s(executeActionGet(r).getEnumerationValue(p)) == 'layerSectionEnd') continue;
        (r = new ActionReference()).putProperty(s2t('property'), p = s2t('layerID'));
        r.putIndex(s2t('layer'), j);
        var id = executeActionGet(r).getInteger(p);
        (r = new ActionReference()).putProperty(s2t('property'), p = s2t('visible'));
        r.putIndex(s2t('layer'), j);
        var visible = executeActionGet(r).getBoolean(p);
        visiblity[id] = visible;
    }
    return {
        selection: seletion,
        visiblity: visiblity
    };
}

function setLayersVisiblity(layersStateObject) {
    // by jazz-y
    var s2t = stringIDToTypeID;
    for (var a in layersStateObject.visiblity) {
        makeVisible = layersStateObject.visiblity[a] ? "show" : "hide";
        (r = new ActionReference()).putIdentifier(s2t('layer'), a);
        (d = new ActionDescriptor()).putReference(s2t('target'), r);
        executeAction(s2t(makeVisible), d, DialogModes.NO);
    }
    if (layersStateObject.selection.length) {
        var r = new ActionReference();
        for (var i = 0; i < layersStateObject.selection.length; i++)
            r.putIdentifier(s2t("layer"), layersStateObject.selection[i]);
        (d = new ActionDescriptor()).putReference(s2t("target"), r);
        d.putBoolean(s2t("makeVisible"), false);
        executeAction(s2t("select"), d, DialogModes.NO);
    } else {
        (r = new ActionReference()).putEnumerated(s2t("layer"), s2t('ordinal'), s2t('targetEnum'));
        (d = new ActionDescriptor()).putReference(s2t('target'), r);
        executeAction(s2t('selectNoLayers'), d, DialogModes.NO);
    }
}

function disableLayerStyle() {
    var s2t = function (s) {
        return app.stringIDToTypeID(s);
    };
    var descriptor = new ActionDescriptor();
    var reference = new ActionReference();
    reference.putEnumerated(s2t("layer"), s2t("ordinal"), s2t("targetEnum"));
    descriptor.putReference(s2t("null"), reference);
    executeAction(s2t("disableLayerStyle"), descriptor, DialogModes.NO);
}

 

  1. Copy the code text to the clipboard
  2. Open a new blank file in a plain-text editor (not in a word processor)
  3. Paste the code in
  4. Save as a plain text format file – .txt
  5. Rename the saved file extension from .txt to .jsx
  6. Install or browse to the .jsx file to run (see below)

https://prepression.blogspot.com/2017/11/downloading-and-installing-adobe-scripts.html

2 replies

Stephen Marsh
Community Expert
Community Expert
April 15, 2025

It's there for me running 26.5.0 on Mac Ventura 13.7.5 – Just make sure that your contextual click is on the name text or to the blank area to the right of the name text in the layer panel or on the "fx" icon, just not on the layer thumbnail or mask.

Bojan Živković11378569
Community Expert
Community Expert
April 15, 2025

Do you mean the Clear Layer Style option from the right-click context menu? It works for me on Windows, so it might be a Mac-related issue or something wrong with your machine. Wait for someone with a Mac to check, or try resetting your preferences, but be aware that unsaved actions and presets will be lost.

Participant
August 8, 2025

I think they mean that the option to Clear Layer Styles is greyed out when you are trying to do that to multiple layers at once. I just ran accros the same issue and I'm working on windows, too. It's quite annoying if you work with a lot of layers tbh

Stephen Marsh
Community Expert
Community Expert
August 8, 2025

@Indra L.5C67 wrote:

I think they mean that the option to Clear Layer Styles is greyed out when you are trying to do that to multiple layers at once. I just ran accros the same issue and I'm working on windows, too. It's quite annoying if you work with a lot of layers tbh


 

This can be scripted, I'll look at it when I have time.