What are the minimum sizes for transactions and blocks in Bitcoin?
There is no minimum size restraint on blocks and transactions. However, due to the nature of blocks and transactions, there is a practical minimum.

The smallest transaction I can think of is 61 bytes. It is a transaction that spends an OP_TRUE anyonecanspend output and creates 1 OP_TRUE anyonecanspend output. The smallest block I can think of is 146 bytes. This is the 61 byte small transaction + 4 bytes for block height in that transaction + 80 byte block header + 1 byte for transaction count.