# Variable Tags These tags are used to declare, assign, and manipulate variables in Liquid templates. They allow you to store values, perform calculations, and manage data within your templates. Use these tags to handle dynamic data and logic in your templates. ## assign Performs an assignment of one variable to another. **Input** ```liquid {% assign var = "hello" | upcase %} {{ var }} ``` **Output** ``` HELLO ``` --- ## capture Captures the string inside of the opening and closing tags and assigns it to a variable. Variables created using `capture` are stored as strings. **Input** ```liquid {% capture my_variable %}I am being captured.{% endcapture %} {{ my_variable }} ``` **Output** ``` I am being captured. ``` Using `capture`, you can create complex strings using other variables created with `assign`. **Input** ```liquid {% assign favorite_food = "pizza" %} {% assign age = 35 %} {% capture about_me %} I am {{ age }} and my favorite food is {{ favorite_food }}. {% endcapture %} {{ about_me }} ``` **Output** ``` I am 35 and my favourite food is pizza. ``` --- ## decrement Creates and outputs a new number variable with initial value `-1`. On subsequent calls, it decrements its value by one and outputs the new value. **Input** ```liquid {% decrement my_counter %} {% decrement my_counter %} {% decrement my_counter %} ``` **Output** ``` -1 -2 -3 ``` Like `increment`, variables created using `decrement` are independent from variables created using `assign` or `capture`. --- ## increment Creates and outputs a new number variable with initial value `0`. On subsequent calls, it increases its value by one and outputs the new value. **Input** ```liquid {% increment my_counter %} {% increment my_counter %} {% increment my_counter %} ``` **Output** ``` 0 1 2 ``` Variables created using `increment` are independent from variables created using `assign` or `capture`. In the example below, a variable named “var” is created using `assign`. The `increment` tag is then used several times on a variable with the same name. Note that the `increment` tag does not affect the value of “var” that was created using `assign`. **Input** ```liquid {% assign var = 10 %} {% increment var %} {% increment var %} {% increment var %} {{ var }} ``` **Output** ``` 0 1 2 10 ```