Vertex Shader Properties Issu

I’m getting a Material doesn’t have a float or range property ‘_Width’
UnityEditor.DockArea:OnGUI()
error for all of my properties and I don’t know why. Can anyone see the problem?

Also if anyone knows what’s wrong with this line I’d appreciate it v.vertex = _Position + (_WidthDir * x + _HeightDir * y) * _Width;

Shader "Custom/PlanetShader" {
	Properties {
		_Position ("Position", Vector) = (0,0,0,0)
		_WidthDir ("WidthDir", Vector) = (1,0,0,0)
		_HeightDir ("HeightDir", Vector) = (0,1,0,0)
		_Width ("Width", Float) = 1
	}
	SubShader {
		Pass{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#include "UnityCG.cginc"
	
			uniform float4 _Position;
			uniform float4 _WidthDir;
			uniform float4 _HeightDir;
			uniform float _Width;
			
			struct v2f{
				float4 pos : SV_POSITION;
				float2 uv : TEXCOORD0;
			};			
			
			v2f vert(appdata_base v){
				v2f o;
				float4 x = float4(v.vertex.x, 0, 0, 0);
				float4 y = float4(0, v.vertex.y, 0, 0);
				v.vertex = float4(x,y,0,0);
				v.vertex = _Position + (_WidthDir * x + _HeightDir * y) * _Width;
				o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
				return o;
			}
	
			half4 frag(v2f i) : COLOR{
				return (0,0,0,.9);	
			}		
			
			ENDCG	
		}
	} 
}

Your problem is in the line:

v.vertex = float4(x,y,0,0);

because, instead of constructing a float4 from four float parameters, x and y are themselves float4s (as defined in the two preceding lines).

This statement is completely redundant anyway because v.vertex is reassigned in the following line, so you can just delete it altogether.