You can define transition in three ways to apply transition on page navigation:
- Page component option: 
transition - Page attribute: 
transition - Layout component option: 
transition 
Priority: 1 > 2 > 3.
For example, you can use the component option:
export default {
  // Can be a string
  transition: 'slide-left',
  // Or an object
  transition: {
    name: 'slide-left'
  },
  // or a function
  transition (to, from) {
    // return a string or object
  }
}Or use the page attribute transition, this is useful if you just want to use front matter:
# A string
transition: string
# Or object
transition:
  name: string
  mode: stringNote that you can NOT use a function as transition in page attribute.
All the props of Vue's built-in <transition> component can be used in our transition object:
| Property | Type | Default | Description | 
|---|---|---|---|
name |  string |  page |  Used to automatically generate transition CSS class names. e.g. name: 'fade' will auto expand to .fade-enter, .fade-enter-active, etc. | 
appear |  boolean |  false |  Whether to apply transition on initial render. | 
css |  boolean |  true |  Whether to apply CSS transition classes. If set to false, will only trigger JavaScript hooks registered via component events.` | 
type |  string |  N/A | Specifies the type of transition events to wait for to determine transition end timing. Available values are transition and animation. By default, it will automatically detect the type that has a longer duration.` | 
mode |  string |  out-in |  Controls the timing sequence of leaving/entering transitions. Available modes are out-in and in-out. | 
duration |  number |  N/A | Specifies the duration of transition. | 
enterClass |  string |  N/A | See Vue.js docs. | 
enterToClass |  string |  N/A | See Vue.js docs. | 
enterActiveClass |  string |  N/A | See Vue.js docs. | 
leaveClass |  string |  N/A | See Vue.js docs. | 
leaveToClass |  string |  N/A | See Vue.js docs. | 
leaveActiveClass |  string |  N/A | See Vue.js docs. | 
You can also define methods in the transition, these are for the JavaScript hooks:
beforeEnter(el)enter(el, done)afterEnter(el)enterCancelled(el)beforeLeave(el)leave(el, done)afterLeave(el)leaveCancelled(el)
The default transition name is page, so you can directly define following CSS to apply transition to all pages:
.page-enter-active, .page-leave-active {
  transition: opacity .5s;
}
.page-enter, .page-leave-to {
  opacity: 0;
}