Top voxel Texture not applied properly

[205161-capture.png**|205161]

I am using the code below to create a voxel cube but the top and Bottom dosent seam to apply the texture as it should.
I kind of understand the uv mapping when you say do the front piece but when you try to work out the sides which have a z cord I get confused because the texture I am applying is vector2.

If somebody could help explain further that would help as I have watched lots of you tube videos.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Chunk : MonoBehaviour
{
    public MeshFilter meshFilter;
    public MeshRenderer meshRenderer;

    List<Vector3> voxelVerts = new List<Vector3>();
    List<int> voxelTriangles = new List<int>();
    List<Vector2> voxelUvs = new List<Vector2>();

    // Start is called before the first frame update
    void Start()
    {
        for (int b = 0; b < 8; b++)
        {
            voxelVerts.Add(VoxelData.verts**);**

Debug.Log(VoxelData.verts + “V”);
}

for (int a = 0; a < 36; a++)
{

voxelTriangles.Add(VoxelData.tris[a]);
Debug.Log(VoxelData.tris[a] + “T”);
}

for (int c = 0; c < 8; c++)
{
voxelUvs.Add(VoxelData.uvs
```c
**);
Debug.Log(VoxelData.uvs[c] + “U”);
}

        meshFilter.mesh.vertices = voxelVerts.ToArray();
        meshFilter.mesh.triangles = voxelTriangles.ToArray();
        meshFilter.mesh.uv = voxelUvs.ToArray();
        meshFilter.mesh.RecalculateNormals();
        meshFilter.mesh.RecalculateBounds();
        


    }

}

public static class VoxelData
{
    public static readonly Vector3[] verts = new Vector3[8] {

        new Vector3(0.0f, 0.0f, 0.0f),//0
        new Vector3(0.0f, 1.0f, 0.0f),//1
        new Vector3(1.0f, 1.0f, 0.0f),//2
        new Vector3(1.0f, 0.0f, 0.0f),//3
        new Vector3(1.0f, 1.0f, 1.0f),//4
        new Vector3(1.0f, 0.0f, 1.0f),//5
        new Vector3(0.0f, 1.0f, 1.0f),//6
        new Vector3(0.0f, 0.0f, 1.0f),//7

    };

    public static readonly int[] tris = new int[36]
    {
          0, 1, 3, 1, 2, 3,
          3, 2, 5, 2 ,4, 5,
          7, 1, 0, 6 ,1, 7,
          3, 7, 0, 3 ,5, 7,
          5, 4, 7, 7 ,4, 6,
          4, 2, 6, 2 ,1, 6,
    };

    public static readonly Vector2[] uvs = new Vector2[8]
    {

        new Vector2 (0.0f, 0.0f),
        new Vector2 (0.0f, 1.0f),
        new Vector2 (1.0f, 1.0f),
        new Vector2 (1.0f, 0.0f),
        new Vector2 (0.0f, 1.0f),
        new Vector2 (0.0f, 0.0f),
        new Vector2 (1.0f, 1.0f), 
        new Vector2 (1.0f, 0.0f),
    };
      
}

```