diff --git a/src/assets/css/2-components/_buttons.css b/src/assets/css/2-components/_buttons.css index 5e48c55..72ec821 100644 --- a/src/assets/css/2-components/_buttons.css +++ b/src/assets/css/2-components/_buttons.css @@ -28,6 +28,7 @@ vertical-align: middle; text-align: center; text-decoration: none !important; + font-weight: bold; line-height: normal; cursor: pointer; transition: background .4s; diff --git a/src/assets/css/3-base/_03-layout.css b/src/assets/css/3-base/_03-layout.css index f48da3a..011c0c1 100644 --- a/src/assets/css/3-base/_03-layout.css +++ b/src/assets/css/3-base/_03-layout.css @@ -10,6 +10,9 @@ width: 100%; } +/* Default layout +-------------------------------------------------------------- */ + .layout { display: flex; flex-direction: column; @@ -20,3 +23,55 @@ max-width: calc(100% - 2rem); width: 32rem; } + +/* Overlay layout +-------------------------------------------------------------- */ + +.layoutOverlay { + display: flex; + flex-direction: column; + align-items: center; + flex-grow: 1; + margin-right: auto; + margin-left: auto; + padding-top: 7rem; + max-width: calc(100% - 2rem); + width: 32rem; +} + +.layoutOverlay-body { + background: #000; +} + +.layoutOverlay-close, +.layoutOverlay-close:visited { + position: absolute; + top: 0; + right: 0; + align-self: flex-end; + padding: 0; + border: none; + border-radius: 0; + background-color: transparent; + color: #fff; + line-height: 1; + cursor: pointer; +} + +/* Content */ + +.layoutOverlay-content { + padding-top: 2rem; + padding-bottom: 4rem; +} + +.layoutOverlay-title { + margin-bottom: .7rem; + font-size: 2.4rem; +} + +.layoutOverlay-subtitle { + color: rgba(255, 255, 255, .7); + font-size: 1.4rem; + line-height: 120%; +} diff --git a/src/assets/css/4-modules/encoding.css b/src/assets/css/4-modules/encoding.css index 9dedce1..d786551 100644 --- a/src/assets/css/4-modules/encoding.css +++ b/src/assets/css/4-modules/encoding.css @@ -3,68 +3,44 @@ /* ----------------------------------------------------------- */ .encoding { - position: fixed; - top: 0; - left: 0; - z-index: 1; display: flex; flex-direction: column; - justify-content: center; align-items: center; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, .9); - color: #fff; + flex-grow: 1; + padding-bottom: 4rem; text-align: center; - font-size: 2.4rem; } -.encoding-illu { +/* Loader +-------------------------------------------------------------- */ + +.encoding-loader { position: relative; - margin-bottom: 5rem; + flex-shrink: 0; + margin-bottom: 1rem; + line-height: 1; } -.encoding-illu::before { +.encoding-loader__preview { position: absolute; - top: .5rem; - right: -1rem; - left: -1rem; - height: .5rem; - border-radius: .5rem; - border-radius: .4rem; - background: var(--color-primary); - box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .25); - content: ""; - animation: encodingProgress .3s ease-in-out infinite alternate; -} - -@keyframes encodingProgress { - from { - top: .5rem; - } - - to { - top: calc(100% - 1rem); - } -} - -.encoding-label { - font-size: 2rem; -} - -.encoding-progressBar { + top: 1.4rem; + left: 1.4rem; overflow: hidden; - margin: 2rem 0; - max-width: 30rem; - width: 90%; - border-radius: .5rem; - background-color: rgba(255, 255, 255, .2); + width: 11.4rem; + height: 11.4rem; + border-radius: 100%; + + object-fit: cover; } -.encoding-progressBar__state { - height: .5rem; - background: linear-gradient(91.78deg, var(--color-primary) 0%,var(--color-secondary) 100%); - transition: .3s all ease-in-out; +/* Progress bar +-------------------------------------------------------------- */ + +.encoding-progress__value { + transition: stroke-dashoffset .2s ease-in-out; + + will-change: auto; + stroke-miterlimit: round; } .encoding-percent { @@ -72,3 +48,39 @@ font-size: 5rem; line-height: 1; } + +/* Percent +-------------------------------------------------------------- */ + +.encoding-percent { + color: rgba(255, 255, 255, .5); + font-weight: bold; + font-size: 1.5rem; + line-height: 1.8rem; +} + +/* Notif +-------------------------------------------------------------- */ + +.encoding-notif, +.encoding-notif:visited { + margin-top: auto; + padding: .5rem 2rem; + border: none; + border-radius: .3rem; + background-color: transparent; + color: #fff; + text-align: center; + font-size: 1.4rem; + cursor: pointer; +} + +.encoding-notif:focus { + outline: none; + box-shadow: var(--focus-ring); +} + +.encoding-notif +.encoding-notif__icon { + margin-bottom: .7rem; +} diff --git a/src/assets/css/5-screens/download.css b/src/assets/css/5-screens/download.css index 847620d..97a90d0 100644 --- a/src/assets/css/5-screens/download.css +++ b/src/assets/css/5-screens/download.css @@ -7,10 +7,39 @@ flex-direction: column; flex-grow: 1; max-width: 100%; + text-align: center; } +/* Preview +-------------------------------------------------------------- */ + +.download-preview { + position: relative; + align-self: center; +} + +.download-preview__visual { + width: 16.2rem; + border-radius: 42rem; +} + +.download-preview__flower { + position: absolute; + right: -.6rem; + bottom: .2rem; + width: 7.1rem; + height: 7.9rem; +} +/* Button +-------------------------------------------------------------- */ + .download-btn, .download-btn:visited { - margin-top: auto; - margin-bottom: 4rem; + display: flex; + justify-content: center; + align-items: center; +} + +.download-btn svg { + margin-right: .6rem; } diff --git a/src/assets/css/7-rwd/_rwd-small.css b/src/assets/css/7-rwd/_rwd-small.css index 30b9924..0c15f4f 100644 --- a/src/assets/css/7-rwd/_rwd-small.css +++ b/src/assets/css/7-rwd/_rwd-small.css @@ -7,6 +7,23 @@ flex-grow: inherit; } + /* Overlay layout + -------------------------------------------------------------- */ + + .layoutOverlay-body { + background: var(--color-tertiary); + } + + .layoutOverlay-close { + top: 1rem; + right: 1rem; + } + + .layoutOverlay-close svg { + width: 8rem; + height: 8rem; + } + /* Welcome screen -------------------------------------------------------------- */ @@ -35,4 +52,11 @@ .capture-btn:visited { margin-top: 0; } + + /* Encoding screen + -------------------------------------------------------------- */ + + .encoding-notif { + margin-top: 7rem; + } } diff --git a/src/main.js b/src/main.js index bdb954d..5c0efb5 100644 --- a/src/main.js +++ b/src/main.js @@ -6,7 +6,9 @@ import store from '/store' import registerServiceWorker from '/register-service-worker.js' import LayoutDefault from '/views/layout/default' +import LayoutOverlay from '/views/layout/overlay' Vue.component('layout-default', LayoutDefault) +Vue.component('layout-overlay', LayoutOverlay) Vue.config.productionTip = false diff --git a/src/views/components/encoding-loader.vue b/src/views/components/encoding-loader.vue new file mode 100644 index 0000000..8845285 --- /dev/null +++ b/src/views/components/encoding-loader.vue @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + diff --git a/src/views/components/encoding.vue b/src/views/components/encoding.vue deleted file mode 100644 index 5314fc2..0000000 --- a/src/views/components/encoding.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - Encoding - - - - {{ roundedPercentage }}% - - - - diff --git a/src/views/icons/flower.vue b/src/views/icons/flower.vue new file mode 100644 index 0000000..a5d2297 --- /dev/null +++ b/src/views/icons/flower.vue @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/views/icons/ico-close-overlay.vue b/src/views/icons/ico-close-overlay.vue new file mode 100644 index 0000000..5be700c --- /dev/null +++ b/src/views/icons/ico-close-overlay.vue @@ -0,0 +1,5 @@ + + + + + diff --git a/src/views/icons/ico-download.vue b/src/views/icons/ico-download.vue new file mode 100644 index 0000000..21f5cbe --- /dev/null +++ b/src/views/icons/ico-download.vue @@ -0,0 +1,5 @@ + + + + + diff --git a/src/views/icons/ico-notif.vue b/src/views/icons/ico-notif.vue new file mode 100644 index 0000000..3d2b44e --- /dev/null +++ b/src/views/icons/ico-notif.vue @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/layout/overlay.vue b/src/views/layout/overlay.vue new file mode 100644 index 0000000..3900b0b --- /dev/null +++ b/src/views/layout/overlay.vue @@ -0,0 +1,30 @@ + + + + + + + + + + diff --git a/src/views/screens/download.vue b/src/views/screens/download.vue index 218d35d..01344ce 100644 --- a/src/views/screens/download.vue +++ b/src/views/screens/download.vue @@ -1,30 +1,47 @@ - - - - - ← back + + + + + + - - - + + Ready just for you~ + + Thank you for your patience. + You can now download your souvenir. + - - Download GIF + Save as GIF - + diff --git a/src/views/screens/encoding.vue b/src/views/screens/encoding.vue new file mode 100644 index 0000000..f3d4ef2 --- /dev/null +++ b/src/views/screens/encoding.vue @@ -0,0 +1,46 @@ + + + + + + + + {{ roundedPercentage }}% + + + Almost ready~ + Encoding may take some time depending on your device + + + + + Get notified when It’s done + + + + + diff --git a/src/views/screens/preview.vue b/src/views/screens/preview.vue index d3534e8..9603ef0 100644 --- a/src/views/screens/preview.vue +++ b/src/views/screens/preview.vue @@ -7,16 +7,12 @@ - Generate GIF - - + Generate GIF