mirror of
https://github.com/GuerillaStudio/souvenir.git
synced 2025-01-20 18:50:21 +00:00
feat: Bootstrap welcome screen
This commit is contained in:
parent
fbe2c3bce9
commit
dc0559805f
13 changed files with 154 additions and 20 deletions
10
src/App.vue
10
src/App.vue
|
@ -1,13 +1,17 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="container">
|
<div class="layout">
|
||||||
<h1 class="txtcenter">Souvenir</h1>
|
<welcome-screen/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
import welcomeScreen from '@/views/welcome'
|
||||||
export default {
|
export default {
|
||||||
name: 'souvenir'
|
name: 'souvenir',
|
||||||
|
components: {
|
||||||
|
welcomeScreen
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ html {
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-size: calc(1.4em);
|
font-size: 1.6em;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
/**
|
||||||
|
* Button Module
|
||||||
|
* namespace : .btn
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------- */
|
||||||
|
/* == configuration */
|
||||||
|
/* ----------------------------------------------------------- */
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--btn-primary: var(--color-primary);
|
||||||
|
--btn-secondary: var(--color-secondary);
|
||||||
|
--btn-radius: 4.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------- */
|
||||||
|
/* == module */
|
||||||
|
/* ----------------------------------------------------------- */
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
display: inline-block;
|
||||||
|
padding: .8em 1.6em;
|
||||||
|
border: none;
|
||||||
|
border-radius: var(--btn-radius);
|
||||||
|
background-color: var(--btn-primary);
|
||||||
|
box-shadow: none;
|
||||||
|
color: #fff;
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none !important;
|
||||||
|
line-height: normal;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: background .4s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn:active,
|
||||||
|
.btn:focus {
|
||||||
|
outline: none;
|
||||||
|
box-shadow: var(--focus-ring);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* colors
|
||||||
|
-------------------------------------------------------------- */
|
||||||
|
|
||||||
|
.btn--primary,
|
||||||
|
.btn--primary:link,
|
||||||
|
.btn--primary:visited {
|
||||||
|
background: linear-gradient(116.15deg, var(--btn-primary) 0%, var(--btn-secondary) 100%);
|
||||||
|
background-color: var(--btn-primary);
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn--primary:hover,
|
||||||
|
.btn--primary:active,
|
||||||
|
.btn--primary:focus {
|
||||||
|
background: var(--btn-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* size
|
||||||
|
-------------------------------------------------------------- */
|
||||||
|
|
||||||
|
.btn--big {
|
||||||
|
font-size: calc(var(--base-font) + .4em);
|
||||||
|
}
|
|
@ -3,6 +3,9 @@
|
||||||
/* ----------------------------------------------------------- */
|
/* ----------------------------------------------------------- */
|
||||||
|
|
||||||
body {
|
body {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
min-height: 100vh;
|
||||||
background: var(--color-tertiary) url("/img/dotgrid.png");
|
background: var(--color-tertiary) url("/img/dotgrid.png");
|
||||||
color: var(--color-light-text);
|
color: var(--color-light-text);
|
||||||
font-family: var(--fontstack);
|
font-family: var(--fontstack);
|
||||||
|
|
|
@ -1,3 +1,13 @@
|
||||||
/* ----------------------------------------------------------- */
|
/* ----------------------------------------------------------- */
|
||||||
/* == layout */
|
/* == layout */
|
||||||
/* ----------------------------------------------------------- */
|
/* ----------------------------------------------------------- */
|
||||||
|
|
||||||
|
.layout {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
flex-grow: 1;
|
||||||
|
margin-right: auto;
|
||||||
|
margin-left: auto;
|
||||||
|
max-width: 32rem;
|
||||||
|
}
|
||||||
|
|
36
src/assets/css/5-screens/welcome.css
Normal file
36
src/assets/css/5-screens/welcome.css
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
/* ----------------------------------------------------------- */
|
||||||
|
/* == Welcome screen */
|
||||||
|
/* ----------------------------------------------------------- */
|
||||||
|
|
||||||
|
.welcome {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
flex-grow: 1;
|
||||||
|
padding: 4rem 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.welcome-about {
|
||||||
|
margin-top: auto;
|
||||||
|
margin-bottom: auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.welcome-title {
|
||||||
|
margin-bottom: 6rem;
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 2.4rem;
|
||||||
|
line-height: 1.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.welcome-steps {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
color: rgba(255, 255, 255, .7);
|
||||||
|
}
|
||||||
|
|
||||||
|
.welcome-steps__item {
|
||||||
|
margin: .5rem 0;
|
||||||
|
}
|
|
@ -2,5 +2,5 @@
|
||||||
/* == rwd -> large */
|
/* == rwd -> large */
|
||||||
/* ----------------------------------------------------------- */
|
/* ----------------------------------------------------------- */
|
||||||
|
|
||||||
@media (min-width: var(--rwd-large)) {
|
@media (min-width: 1280px) {
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,5 +2,5 @@
|
||||||
/* == rwd -> medium */
|
/* == rwd -> medium */
|
||||||
/* ----------------------------------------------------------- */
|
/* ----------------------------------------------------------- */
|
||||||
|
|
||||||
@media (min-width: var(--rwd-medium)) {
|
@media (min-width: 960px) {
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,5 +2,13 @@
|
||||||
/* == rwd -> small */
|
/* == rwd -> small */
|
||||||
/* ----------------------------------------------------------- */
|
/* ----------------------------------------------------------- */
|
||||||
|
|
||||||
@media (min-width: var(--rwd-small)) {
|
@media (min-width: 768px) {
|
||||||
|
.welcome {
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.welcome-about {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 4rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,5 +2,5 @@
|
||||||
/* == rwd -> xsmall */
|
/* == rwd -> xsmall */
|
||||||
/* ----------------------------------------------------------- */
|
/* ----------------------------------------------------------- */
|
||||||
|
|
||||||
@media (min-width: var(--rwd-xsmall)) {
|
@media (min-width: 480px) {
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,21 +10,11 @@
|
||||||
-------------------------------------------------------------- */
|
-------------------------------------------------------------- */
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--base-font: 14; /* px value (without unit), will be converted in em */
|
--base-font: 16; /* px value (without unit), will be converted in em */
|
||||||
--line-height: 1.5;
|
--line-height: 1.5;
|
||||||
--fontstack: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
--fontstack: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* responsive
|
|
||||||
-------------------------------------------------------------- */
|
|
||||||
|
|
||||||
:root {
|
|
||||||
--rwd-xsmall: 480px;
|
|
||||||
--rwd-small: 768px;
|
|
||||||
--rwd-medium: 960px;
|
|
||||||
--rwd-large: 1280px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* focus ring
|
/* focus ring
|
||||||
-------------------------------------------------------------- */
|
-------------------------------------------------------------- */
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
/* == screens */
|
/* == screens */
|
||||||
/* ----------------------------------------------------------- */
|
/* ----------------------------------------------------------- */
|
||||||
|
|
||||||
/* @import "5-screens/..."; */
|
@import "5-screens/welcome.css";
|
||||||
|
|
||||||
/* ----------------------------------------------------------- */
|
/* ----------------------------------------------------------- */
|
||||||
/* == helpers */
|
/* == helpers */
|
||||||
|
|
19
src/views/welcome.vue
Normal file
19
src/views/welcome.vue
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<template>
|
||||||
|
<div class="welcome">
|
||||||
|
<div class="welcome-about">
|
||||||
|
<h1 class="welcome-title">Capture few seconds as a gif for souvenir</h1>
|
||||||
|
<ol class="welcome-steps">
|
||||||
|
<li class="welcome-steps__item">Enable Camera</li>
|
||||||
|
<li class="welcome-steps__item">Capture</li>
|
||||||
|
<li class="welcome-steps__item">Save as a GIF</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
<button class="btn btn--primary">Start Capturing</button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'welcome'
|
||||||
|
}
|
||||||
|
</script>
|
Loading…
Reference in a new issue