Как сделать? С помощью CSS. Или нужно чтобы кто то сделал и выложил?
Прямоугольник сделать острым с помощью псевоэлементов before и after ну или добавить еще селекторов в разметку. Закругление - наложить круг с z-index
Вы задали z-index для .header .catalog-menu .catalog-menu__item ul li a
z-index: 2, но у родителя .header .catalog-menu .catalog-menu__item
стоит z-index: 4, это называется наследование, если у родителя большой z-index то на вложенные элементы он так же распространяется.
margin-top: 1px;
margin-left: 1px;
Нужно смотреть что с ними происходит при hover
Лучше вообще не использовать margin с флексами, по крайней мере тут, как альтернатива: border-left: 1px solid #fff; border-top: 1px solid #fff;