concrete5 ships with a few default attributes for pages, users, and files. You can easily add new attributes to these objects to attach different kinds of metadata to them. You can use attributes to create dynamic elements in your theme without creating your own block.
A few things you can do with the default attributes:
Exclude a page from the navigation
Specify metadata for search engines
Exclude a page from the search index
These are just a few of the things you can do by default, without adding a new attribute. However, what can we do if we create our own attributes?
Imagine we'd like to have a different background picture on each page. We could create a block for this, but we can also use an attribute and a little modification to our theme.