diff --git a/layouts/default.vue b/layouts/default.vue
index 52175e3..463418e 100644
--- a/layouts/default.vue
+++ b/layouts/default.vue
@@ -99,6 +99,35 @@ h1 {
grid-gap: 1rem;
}
+// Fade in title and cards and rows
+.fade-title {
+ &-enter {
+ opacity: 0;
+
+ &-to {
+ opacity: 1;
+ }
+
+ &-active {
+ transition: opacity .1s ease-in-out;
+ }
+ }
+}
+
+.fade-card {
+ &-enter {
+ opacity: 0;
+
+ &-to {
+ opacity: 1;
+ }
+
+ &-active {
+ transition: opacity .1s ease-in-out;
+ }
+ }
+}
+
@media (max-width: 400px) {
.layout {
diff --git a/pages/_category.vue b/pages/_category.vue
index 770e2b4..9f505e0 100644
--- a/pages/_category.vue
+++ b/pages/_category.vue
@@ -1,12 +1,15 @@
div
- h1 {{ category.title }}
- .cards(v-if="areCardsVisible")
- template(v-for='resource in category.resources' )
- Card(:resource='resource' :key='resource.title' :createCopyUrl="createCopyUrl" :isActive='activeCard === resource.cleanTitle')
- table(v-if="!areCardsVisible")
- template(v-for='resource in category.resources' )
- TableRow(:resource='resource' :key='resource.title' :createCopyUrl="createCopyUrl" :isActive='activeCard === resource.cleanTitle')
+ transition(name="fade-title" @after-enter="afterEnter")
+ h1(v-if="showTitle") {{ category.title }}
+ transition(name="fade-card")
+ .cards(v-if="areCardsVisible && showCards")
+ template(v-for='resource in category.resources' )
+ Card(:resource='resource' :key='resource.title' :createCopyUrl="createCopyUrl" :isActive='activeCard === resource.cleanTitle')
+ transition(name="fade-card")
+ table(v-if="!areCardsVisible && showCards")
+ template(v-for='resource in category.resources' )
+ TableRow(:resource='resource' :key='resource.title' :createCopyUrl="createCopyUrl" :isActive='activeCard === resource.cleanTitle')