Using UI textues authored in Gamma space in Linear mode

I would like to use UI textures authored in gamma space on linear mode.
I found some information at this QA, but it seems that it didn’t solve the problem.

The shader code mentioned in this answer did not solve the problem in my experiment. Appropriate alpha value changes according to RGB color in linear space blending. See the image below. This is more obvious when the background color is white.

Also, AFAIK, There is no practical way to reauthor linear texture with alpha channel in Photoshop. Our artist told me that we need to use AfterEffects or Nuke for reauthoring content for linear blending.

Does anyone knows any good way to solve this problem?
I hope that Unity supports a feature that allow us to render UI in gamma space whether color space for 3d rendering is set to linear or not.

I’m having the exact same issue. UI looks the way it way it does in photoshop if I use Gamma color space and the 3D world looks much better in Linear color space. Is there a way we can make the UI appear like it does in Gamma after we switch to Linear?

I have exactly the same issue : Nobody knows how to author UI texture for the linear space ?

I solved this by writing ui shader with _Gamma property, and apply this to the sampled color alpha only(!):

Shader "UI/Alpha blend gamma"
{
	Properties
	{
		_MainTex ("Texture", 2D) = "white" {}
		_Gamma ("Gamma", Range(1, 2.2)) = 2.2
		_Color ("Tint", Color) = (1,1,1,1)
         
        _StencilComp ("Stencil Comparison", Float) = 8
        _Stencil ("Stencil ID", Float) = 0
        _StencilOp ("Stencil Operation", Float) = 0
        _StencilWriteMask ("Stencil Write Mask", Float) = 255
        _StencilReadMask ("Stencil Read Mask", Float) = 255
 
        _ColorMask ("Color Mask", Float) = 15
	}
	SubShader
	{
		Tags
        {
            "Queue"="Transparent" 
            "IgnoreProjector"="True" 
            "RenderType"="Transparent" 
            "PreviewType"="Plane"
            "CanUseSpriteAtlas"="True"
        }

		Stencil
        {
            Ref [_Stencil]
            Comp [_StencilComp]
            Pass [_StencilOp] 
            ReadMask [_StencilReadMask]
            WriteMask [_StencilWriteMask]
        }

		Cull Off
        Lighting Off
        ZWrite Off
        ZTest Off
        Blend SrcAlpha OneMinusSrcAlpha
        ColorMask [_ColorMask]

		LOD 100

		Pass
		{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			
			#include "UnityCG.cginc"

			struct appdata
			{
				float4 vertex : POSITION;
				float4 color : COLOR;
				float2 uv : TEXCOORD0;
			};

			struct v2f
			{
				half2 uv : TEXCOORD0;
				fixed4 color : COLOR;
				float4 vertex : SV_POSITION;
			};

			sampler2D _MainTex;
			float4 _MainTex_ST;
			
			v2f vert (appdata v)
			{
				v2f o;
				o.vertex = UnityObjectToClipPos(v.vertex);
				o.color = v.color;
				o.uv = TRANSFORM_TEX(v.uv, _MainTex);
				return o;
			}

			fixed4 _Color;
			float _Gamma;
			
			fixed4 frag (v2f i) : SV_Target
			{
				fixed4 col = tex2D(_MainTex, i.uv) * i.color;
				col.a = pow(col.a, _Gamma);
				return col * _Color;
			}
			ENDCG
		}
	}
}