Template Variables, better known as TVs, are effectively extra resource fields. They are assigned to Templates, so all Resources that use an assigned Template will have the TV's input forms available for editing in its Template Variables tab.
The value for a TV in any given Resource can come from several different sources. When a TV is created, it can be given a default value, so any Resource that does not customize the value will use the default value. TVs also have data source bindings, one of which, @INHERIT, will cause a Resource to use its parent's TV value.
There are a number of data input types, and there are several custom TV types available, perhaps most notably the MIGX and MIGXdb TV types. There are also a number of display output types, which modify the TV value on output. For example an Image input type TV will provide a field with a button for accessing the Media Browser to select an image, storing the path to the image as its value, and the Image output type will output an HTML img tag with the TV's value as the src attribute for the tag.
Multiple choice type TVs, such as selects, checkboxes and radio buttons, can use hard-coded Input Option Values, or can accept data from @SELECT, @FILE, and other data bindings.