diff --git a/app/app.vue b/app/app.vue index 56302ca..86f6369 100755 --- a/app/app.vue +++ b/app/app.vue @@ -1,5 +1,7 @@ - + + + diff --git a/app/assets/styles/button.css b/app/assets/styles/button.css index 2373e67..11a6a95 100755 --- a/app/assets/styles/button.css +++ b/app/assets/styles/button.css @@ -93,6 +93,18 @@ } } + &.search-button { + --background: var(--color-lightest); + --color: var(--color-main-darkest); + border-radius: 100%; + padding: var(--padding); + font-size: 1.1em; + + &:hover { + scale: 1.2; + } + } + &.mini-button { padding: .5rem 1.5rem; display: flex; diff --git a/app/assets/styles/buttonGroup.css b/app/assets/styles/buttonGroup.css index f36e007..4b46732 100644 --- a/app/assets/styles/buttonGroup.css +++ b/app/assets/styles/buttonGroup.css @@ -1,7 +1,6 @@ .ButtonGroup { display: flex; background: var(--color-main); - box-shadow: var(--box-shadow-z2); & button { --color: var(--color-light); diff --git a/app/assets/styles/fonts.css b/app/assets/styles/fonts.css new file mode 100755 index 0000000..e4a4fec --- /dev/null +++ b/app/assets/styles/fonts.css @@ -0,0 +1,24 @@ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + font-display: swap; + src: url('/fonts/opensans.woff2') format('woff2'); +} + +@font-face { + font-family: 'Roboto Condensed'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url('/fonts/roboto_con_reg.woff2') format('woff2'); +} + +@font-face { + font-family: 'Roboto Condensed'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url('/fonts/roboto_con_bold.woff2') format('woff2'); +} diff --git a/app/assets/styles/formInput.css b/app/assets/styles/form/input.css similarity index 100% rename from app/assets/styles/formInput.css rename to app/assets/styles/form/input.css diff --git a/app/assets/styles/form/search.css b/app/assets/styles/form/search.css new file mode 100644 index 0000000..5a30772 --- /dev/null +++ b/app/assets/styles/form/search.css @@ -0,0 +1,15 @@ +.Search { + border-radius: 9999px; + background: var(--color-lightest); + padding: 0 1rem; + display: flex; + align-items: center; + justify-content: space-between; + gap: 1rem; + + & > input { + all: unset; + flex-grow: 1; + padding: .5rem 0; + } +} \ No newline at end of file diff --git a/app/assets/styles/general.css b/app/assets/styles/general.css index 5b917b1..5c77913 100755 --- a/app/assets/styles/general.css +++ b/app/assets/styles/general.css @@ -58,6 +58,7 @@ body { height: 100%; overflow-x: hidden; font-family: sans-serif; + background: var(--color-main-darkest); } .dot { @@ -103,10 +104,6 @@ body { box-shadow: var(--box-shadow-z2); } -.content { - min-height: 100dvh; -} - .flex-col { display: flex; flex-direction: column; diff --git a/app/assets/styles/header.css b/app/assets/styles/header.css index a59130e..43b0c3f 100755 --- a/app/assets/styles/header.css +++ b/app/assets/styles/header.css @@ -1,57 +1,67 @@ .Header { - display: flex; - align-items: center; - justify-content: space-between; - padding: var(--padding-default); - background-color: rgba(255 255 255 / .8); - backdrop-filter: blur(10px); - box-shadow: var(--box-shadow-z2); - color: var(--color-darkest); position: sticky; top: 0; z-index: 100; + background: var(--color-main-darkest); + display: flex; + align-items: center; + gap: 1rem; + padding: var(--padding-default); - & strong { - font-size: 2em; - - & span { - color: var(--color-main-dark); - } + & .logo { + height: 40px; } - & input[type="checkbox"] { - display: none; - } - - & input[type="checkbox"]:checked + nav { - translate: 0; - } - - & nav, - & ul { - gap: 1em; - } - - & nav { - position: fixed; - padding: var(--padding-default); - translate: 100% 0; - width: 100vw; - right: 0; - top: 0; - height: 100dvh; - transition: 150ms ease-in-out; - background: var(--color-lightest); - font-size: 2em; - align-items: end; - z-index: 100; - } - - & ul { - width: 100%; + & header { + display: flex; align-items: center; - & li { - list-style: none; + justify-content: space-between; + font-family: 'Roboto', sans-serif; + font-weight: bold; + + & a { + text-decoration: none; + color: var(--color-lightest); + } + + & .header-text { + font-size: 1.5em; + } + + & input[type="checkbox"] { + display: none; + } + + & input[type="checkbox"]:checked + nav { + translate: 0; + } + + & nav, + & ul { + gap: 1em; + } + + & nav { + position: fixed; + padding: var(--padding-default); + translate: 100% 0; + width: 100vw; + right: 0; + top: 0; + height: 100dvh; + transition: 150ms ease-in-out; + background: var(--color-lightest); + font-size: 2em; + align-items: end; + z-index: 100; + } + + & ul { + width: 100%; + align-items: center; + & li { + list-style: none; + } } } } \ No newline at end of file diff --git a/app/assets/styles/page.css b/app/assets/styles/page.css new file mode 100644 index 0000000..eb9426d --- /dev/null +++ b/app/assets/styles/page.css @@ -0,0 +1,40 @@ +.filter-bar { + background: var(--color-lightest); + display: flex; + justify-content: space-between; + padding: 1rem; + + & > button { + all: unset; + cursor: pointer; + color: var(--color-main-darkest); + font-weight: bolder; + font-family: 'Roboto', sans-serif; + + &.active { + color: var(--color-main-darkest); + } + + &:not(.active) { + opacity: .5; + } + } +} + +.search-bar { + z-index: 100; + + & p { + font-family: 'Roboto Condensed', sans-serif; + font-weight: lighter; + color: var(--color-lightest); + } +} + +.content { + min-height: 100dvh; + border-top-left-radius: 15px; + border-top-right-radius: 15px; + overflow: hidden; + background: var(--color-lightest); +} \ No newline at end of file diff --git a/app/assets/styles/priceCard.css b/app/assets/styles/priceCard.css index b108971..a922b25 100755 --- a/app/assets/styles/priceCard.css +++ b/app/assets/styles/priceCard.css @@ -3,6 +3,7 @@ width: 100%; color: var(--color-darkest); border-bottom: 1px solid var(--color-light); + font-family: 'Roboto', sans-serif; .bottom { position: absolute; @@ -78,6 +79,10 @@ margin-right: .5rem; color: var(--color-middle); } + + & > span:nth-child(2) { + font-family: 'Roboto Condensed', sans-serif; + } } & .wrapper { @@ -86,6 +91,7 @@ width: 100%; gap: 1rem; justify-content: space-between; + font-family: 'Roboto Condensed', sans-serif; & > .info { flex-grow: 0; @@ -104,7 +110,7 @@ } & > .pro { - font-size: .6rem; + font-size: .5rem; color: var(--color-middle); font-weight: lighter; } diff --git a/app/components/Pp/FormInput.vue b/app/components/Pp/Form/Input.vue similarity index 100% rename from app/components/Pp/FormInput.vue rename to app/components/Pp/Form/Input.vue diff --git a/app/components/Pp/Form/Search.vue b/app/components/Pp/Form/Search.vue new file mode 100755 index 0000000..db72ba8 --- /dev/null +++ b/app/components/Pp/Form/Search.vue @@ -0,0 +1,25 @@ + + + + + + + + + + diff --git a/app/components/Pp/Header.vue b/app/components/Pp/Header.vue index 63018c4..e64430a 100755 --- a/app/components/Pp/Header.vue +++ b/app/components/Pp/Header.vue @@ -1,31 +1,30 @@ - - - ProPapier - - - - - - - - - - - Home - Übersicht - - - + + + + + + ProPapier + + + + + + + + + + + Home + Übersicht + + + + + + - - \ No newline at end of file diff --git a/app/pages/index.vue b/app/pages/index.vue index 4e386fc..1424bee 100755 --- a/app/pages/index.vue +++ b/app/pages/index.vue @@ -1,51 +1,48 @@ - - - - - - + + + + + + + Preisvergleich. Schnell. Unkompliziert. + + + + + - - - - - - Neu sortieren - - - - - Hinzufügen - - - + + + + + + Hinzufügen + + + + diff --git a/app/pages/other.vue b/app/pages/other.vue new file mode 100644 index 0000000..bd60632 --- /dev/null +++ b/app/pages/other.vue @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + Neu sortieren + + + + + Hinzufügen + + + + + + + diff --git a/nuxt.config.ts b/nuxt.config.ts index 68c0d99..846366a 100755 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -16,6 +16,23 @@ export default defineNuxtConfig({ } }, + app: { + pageTransition: { + name: 'page', + mode: 'out-in', + }, + head: { + htmlAttrs: { lang: 'de' }, + link: [ + { rel: 'preload', as: 'image', href: '/img/propapier.svg', type: 'image/svg+xml' }, + { rel: 'icon', type: 'image/x-icon', href: '/favicon.svg' }, + { rel: 'preload', crossorigin: 'anonymous', as: 'font', href: '/fonts/opensans.woff2', type: 'font/woff2' }, + { rel: 'preload', crossorigin: 'anonymous', as: 'font', href: '/fonts/roboto_con_bold.woff2', type: 'font/woff2' }, + { rel: 'preload', crossorigin: 'anonymous', as: 'font', href: '/fonts/roboto_con_reg.woff2', type: 'font/woff2' }, + ], + } + }, + routeRules: { '/': { prerender: true }, '/imprint': { prerender: true }, @@ -31,7 +48,9 @@ export default defineNuxtConfig({ './app/assets/styles/button.css', './app/assets/styles/buttonGroup.css', './app/assets/styles/priceCard.css', - './app/assets/styles/formInput.css', + './app/assets/styles/form/input.css', + './app/assets/styles/form/search.css', './app/assets/styles/toolbar.css', + './app/assets/styles/page.css', ] }) \ No newline at end of file diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100755 index 18993ad..0000000 Binary files a/public/favicon.ico and /dev/null differ diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100755 index 0000000..1446740 --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/fonts/opensans.woff2 b/public/fonts/opensans.woff2 new file mode 100755 index 0000000..f143cd4 Binary files /dev/null and b/public/fonts/opensans.woff2 differ diff --git a/public/fonts/roboto_con_bold.woff2 b/public/fonts/roboto_con_bold.woff2 new file mode 100755 index 0000000..a5ab9d8 Binary files /dev/null and b/public/fonts/roboto_con_bold.woff2 differ diff --git a/public/fonts/roboto_con_reg.woff2 b/public/fonts/roboto_con_reg.woff2 new file mode 100755 index 0000000..e4c259c Binary files /dev/null and b/public/fonts/roboto_con_reg.woff2 differ diff --git a/public/img/propapier.svg b/public/img/propapier.svg new file mode 100755 index 0000000..1446740 --- /dev/null +++ b/public/img/propapier.svg @@ -0,0 +1 @@ + \ No newline at end of file
Preisvergleich. Schnell. Unkompliziert.