Although odolvlobo chart answers your question, this subject is a bit more complicated.
Bitcoin transaction fees have no relation to amount being transacted. If you transfer 30 or 30,000,000 USD the transaction fee is the same.
What you are really paying is the amount of bytes that your transaction occupies in a block, as blocks have a limited space (this is why we have so much discussion about blocksize).
These are the attributes that control transaction size:
- number of inputs and outputs
- address format
The transaction size is determined by the number of inputs and outputs your transaction have. If you want, in the same transaction, to transfer some bitcoins to 1 or 30 people, the fees (and size) will be completely different.
The address format also changes transaction size, as legacy address occupy more bytes.
Finally, what you are really setting when choosing your fee is the how much you will pay for each byte you need. This is called feerate and is represented by satoshis/byte (virtual byte, after segwit activation).
For example, fees are now about 20 satoshi/byte to get a confirmation within a few hours, and the lower possible fee is 1 satoshi per byte (you won't get a confirmation in the same week, probably).