diff --git a/app/citizen-frontend/src/pages/introduction.vue b/app/citizen-frontend/src/pages/introduction.vue index 616f1b0..5b38eaa 100644 --- a/app/citizen-frontend/src/pages/introduction.vue +++ b/app/citizen-frontend/src/pages/introduction.vue @@ -1,4 +1,5 @@ @@ -62,6 +84,10 @@ const slides = [ max-height: 680px; } +.carousel-shell { + margin-top: 12px; +} + .introduction-carousel :deep(.v-window__container), .introduction-carousel :deep(.v-window-item), .introduction-carousel :deep(.v-responsive), @@ -81,14 +107,67 @@ const slides = [ } } -.introduction-carousel :deep(.v-carousel__controls__item .v-icon) { - color: rgb(var(--v-theme-accent)) !important; - opacity: 1; +.carousel-pagination { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 8px; + max-width: 520px; + margin: 14px auto 0; + padding: 0 12px 8px; } -.introduction-carousel :deep(.v-carousel__controls__item.v-btn--active .v-icon), -.introduction-carousel :deep(.v-carousel__controls__item--active .v-icon) { - color: rgb(var(--v-theme-secondary)) !important; - opacity: 1; +.carousel-page { + display: flex; + min-width: 0; + align-items: center; + justify-content: center; + padding: 8px 10px; + border: 0; + border-radius: 999px; + color: rgb(var(--v-theme-primary)); + background-color: rgba(var(--v-theme-primary), 0.09); + cursor: pointer; + font: inherit; + transition: + color 220ms cubic-bezier(0.32, 0.72, 0, 1), + background-color 220ms cubic-bezier(0.32, 0.72, 0, 1), + transform 220ms cubic-bezier(0.32, 0.72, 0, 1); +} + +.carousel-page:hover { + color: #ffffff; + background-color: rgb(var(--v-theme-secondary)); +} + +.carousel-page:active { + transform: scale(0.97); +} + +.carousel-page:focus-visible { + outline: 3px solid rgba(var(--v-theme-secondary), 0.42); + outline-offset: 2px; +} + +.carousel-page--active { + color: #ffffff; + background-color: rgb(var(--v-theme-secondary)); +} + +.carousel-page-number { + font-size: 0.78rem; + font-weight: 900; + line-height: 1; +} + +@media (max-width: 600px) { + .carousel-pagination { + gap: 6px; + margin-top: 10px; + padding-inline: 4px; + } + + .carousel-page { + padding: 8px; + } }