Every one of SupaDupa's store designs is enabled with these options. We call them "Product variations".
These are entered as variants of the main product they belong to.
So for example:
If a gold ring is available in 5 sizes then the ring will have 5 variants.
Each variant can even have its own price and quantity (+ other options such as finishes and materials).
By using variants you can allow your customers to select which size, type, finish, length etc. they want to buy based on the main product.
The easiest analogy here is a shoe that is available in different sizes where the customer selects which size fits them best.
Just a little comment about finishes:
We have found that it is probably best to create a new product for every finish it is available in. So if a ring is available in Gold and Silver, you would be best to create 2 products rather than one (with gold and silver variations). This creates more prominence and user choice + helps in your search engine rankings. That's why often you see stores create completely different products when all that is changing is the colour. It is often not because they can't amalgamate them into one product with multiple variations but because it is better for exposure.
Either way, all these options are available to you and it is your choice how you wish to use them.