I am working on a web store for a client right now, their designer has created an amazing website on paper. It is my job to translate it to HTML / CSS, etc.

As you can see its rounded corners and diagonal fills and diagonal texts.
The red shape says "add to cart" and the customer wants it to be clickable, but only this shape.
The above image, which I sorted, was able to replicate and work in Chrome. But when I tried it in Firefox, everything went wrong.
This is the CSS code I used:
.product-grid > div { position:relative; width: 215px; height: 320px; display: inline-block; vertical-align: top; margin-right: 5px; margin-left: 5px; margin-bottom: 6px; margin-top: 6px; text-align: center; -webkit-border-top-left-radius: 30px; -webkit-border-bottom-right-radius: 30px; -moz-border-radius-topleft: 30px; -moz-border-radius-bottomright: 30px; border-top-left-radius: 30px; border-bottom-right-radius: 30px; -moz-box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.6); -webkit-box-shadow:3px 3px 10px rgba(0, 0, 0, 0.6); box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.6); z-index:5; overflow:hidden; } .product-grid .blue { width: 0px; height: 0px; border-style: solid; border-width: 75px 175px 0 0; border-color: #009de0 transparent transparent transparent; bottom:0px; right:0px; } .product-grid .red { width: 0px; height: 0px; border-style: solid; border-width: 0 0 75px 175px; border-color: transparent transparent #ff0000 transparent; float:right; bottom:0px; right:0px; cursor:pointer; z-index:2; } .product-grid .blue .price { display: block; font-weight: 800; font-size: 18px; color: #FFF; margin-bottom: 4px; -webkit-backface-visibility: hidden; backface-visibility: hidden; position:relative; margin-top:-50px; width:100px; transform:rotate(337deg); -ms-transform:rotate(337deg); -moz-transform:rotate(337deg); -webkit-transform:rotate(337deg); -o-transform:rotate(337deg); } .product-grid .red .cart { margin-bottom: 3px; width:100px; color:#FFF; transform:rotate(337deg); -ms-transform:rotate(337deg); -moz-transform:rotate(337deg); -webkit-transform:rotate(337deg); -o-transform:rotate(337deg); margin-top: 40px; margin-right: 15px; -webkit-backface-visibility: hidden; backface-visibility: hidden; font-size:18px; }
The Add to Cart button is still rectangular, although the top half is not displayed. This is not what my client wants.

What would you advise to do? Work with SVG? Or what cross-browser solution should work?
Can someone point me in the right direction?
source share