Kivy provides a design language specifically geared towards ease of GUI Design, seperating the interface design part of your App from the rest. for example ::
An important thing to note here is that when you set a property in your `kv` language like ``row: 2`` one of two things happen.
If the value(the part that comes after the ``:``) has no variables then what happens is a normal assignment like ``gridlayout_obj.rows = 2``.
However, if the value part has one or more variables in it then the property/field(the part to the left of ``:``) is updated whenever any of the variables on the right change.
This expression listens for a change in center_x, center_y, and texture_size. If one of them is changing, the expression will be re-evaluated, and update the ``pos`` field.
You can also handle ``on_`` events inside your kv language. For example the TextInput class has a ``focus` property whose autogenerated ``on_focus`` event can be accessed inside the kv language like so::
TextInput:
on_focus: Print args
The ``args`` is a list of arguments passed to the ``on_focus`` event.
To define a new property in you class through kv language::