From f263a5574a3fe1334d75d526db5f9e3efc9f7eda Mon Sep 17 00:00:00 2001 From: webfussel Date: Wed, 19 Mar 2025 15:03:11 +0100 Subject: [PATCH] ADD: A LOT of pricing chart stuff Added new pricing chart layout --- app/assets/css/button.css | 32 +++- app/assets/css/global.css | 9 + app/assets/css/header.css | 1 - app/assets/css/pricing.css | 172 ++++++++++++++++++ app/assets/css/services.css | 39 ----- app/components/Booking.vue | 150 ++++++++++++++++ app/components/Button.vue | 2 +- app/components/Flatrate.vue | 128 ++++++++++++++ app/components/Header.vue | 26 +-- app/components/Services.vue | 224 ------------------------ app/pages/{services.vue => booking.vue} | 2 +- app/pages/contact.vue | 56 +++++- app/pages/flatrate.vue | 5 + nuxt.config.ts | 1 + 14 files changed, 563 insertions(+), 284 deletions(-) create mode 100644 app/assets/css/pricing.css create mode 100755 app/components/Booking.vue create mode 100755 app/components/Flatrate.vue delete mode 100755 app/components/Services.vue rename app/pages/{services.vue => booking.vue} (70%) create mode 100755 app/pages/flatrate.vue diff --git a/app/assets/css/button.css b/app/assets/css/button.css index 7fc1733..69b21ba 100755 --- a/app/assets/css/button.css +++ b/app/assets/css/button.css @@ -4,26 +4,44 @@ cursor: pointer; padding: 1rem 1.5rem; outline: 3px solid transparent; - box-shadow: 0 0 0 0 var(--color-orange); border-radius: 99999px; display: flex; align-items: center; justify-content: center; gap: 1rem; + font-weight: bold; &.default { background: var(--color-orange); color: var(--color-black); + box-shadow: 0 0 0 0 var(--color-orange); + + &:hover { + outline-color: var(--color-black); + box-shadow: 0 0 0 6px var(--color-orange); + } + } + + &.dark { + background: var(--color-orange-black); + color: var(--color-white); + box-shadow: 0 0 0 0 var(--color-orange-black); + + &:hover { + outline-color: var(--color-orange); + box-shadow: 0 0 0 6px var(--color-black); + } } &.white { background: var(--color-white); color: var(--color-black); - } + box-shadow: 0 0 0 0 var(--color-white); - &:hover { - outline-color: var(--color-black); - box-shadow: 0 0 0 6px var(--color-orange); + &:hover { + outline-color: var(--color-black); + box-shadow: 0 0 0 6px var(--color-white); + } } &.cta { @@ -72,4 +90,8 @@ padding-left: calc(var(--size) * 2); margin-left: calc(var(--size) * -1 - 25px); } +} + +.button-wrapper { + border-radius: 99999px; } \ No newline at end of file diff --git a/app/assets/css/global.css b/app/assets/css/global.css index 91cabad..fc616aa 100755 --- a/app/assets/css/global.css +++ b/app/assets/css/global.css @@ -46,6 +46,7 @@ --color-black-transparent: #2a2723aa; --color-orange: #ff9100; + --color-orange-dark: #945400; --color-orange-light: #ffc36f; --color-orange-black: #332b22; } @@ -235,10 +236,18 @@ span.chip { box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); } +.z-2-all { + box-shadow: 0 0 6px rgba(0, 0, 0, 0.16), 0 0 6px rgba(0, 0, 0, 0.23); +} + .z-3 { box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); } +.z-3-all { + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23), 0 -10px 20px rgba(0, 0, 0, 0.19), 0 -6px 6px rgba(0, 0, 0, 0.23); +} + .z-4 { box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22); } diff --git a/app/assets/css/header.css b/app/assets/css/header.css index f0f57ec..b3f83fd 100755 --- a/app/assets/css/header.css +++ b/app/assets/css/header.css @@ -34,7 +34,6 @@ font-family: 'Roboto Condensed', sans-serif; font-size: 1.5rem; flex: 1.5; - cursor: default; display: flex; align-items: center; gap: 1rem; diff --git a/app/assets/css/pricing.css b/app/assets/css/pricing.css new file mode 100644 index 0000000..fa2d7d1 --- /dev/null +++ b/app/assets/css/pricing.css @@ -0,0 +1,172 @@ +.Pricing { + display: grid; + grid-template-columns: max-content 1fr max-content; + border-radius: 20px; + + & article:first-child { + border-radius: 20px 20px 0 0; + + & header, + & main, + & footer { + padding-bottom: 1.5rem; + } + + & header { + background-color: var(--color-orange-dark); + color: var(--color-white); + + & .bg-icon { + top: 60%; + } + } + + & .cols { + & li .value { + font-size: 1.5rem; + font-weight: bold; + } + } + } + + & article:last-child { + border-radius: 0 0 20px 20px; + + & header, + & main, + & footer { + padding-top: 1.5rem; + } + + & header { + background-color: var(--color-orange-dark); + color: var(--color-white); + } + + & .cols { + & li .value { + font-size: 1.5rem; + font-weight: bold; + } + } + } + + & article:nth-child(2) { + width: 105%; + margin-left: -2.5%; + margin-right: -2.5%; + border-radius: 20px; + z-index: 2; + + & header { + --size-difference: 7rem; + width: calc(100% - 2rem); + padding-top: var(--size-difference); + padding-bottom: var(--size-difference); + background-color: var(--color-orange); + color: var(--color-black); + + & .bg-icon { + right: 20%; + } + } + + & ul { + & li .value { + font-size: 3rem; + font-weight: bold; + } + } + } + + & article { + display: grid; + grid-column: 1 / -1; + grid-template-columns: subgrid; + background-color: var(--color-orange-black); + overflow: hidden; + + & header, + & main, + & footer { + padding: var(--spacing-standard); + display: flex; + flex-direction: column; + justify-content: center; + } + + & footer { + align-items: center; + color: var(--color-orange); + gap: .5rem; + + & .price { + font-size: 2rem; + font-weight: bold; + } + } + + & main { + background-color: var(--color-orange-black); + z-index: 1; + } + + & header { + position: relative; + padding-right: 8rem; + width: calc(100% + 8rem); + + & strong { + font-size: 2rem; + z-index: 1; + } + + & .bg-icon { + position: absolute; + top: 50%; + right: 40%; + translate: 50% -50%; + font-size: 6rem; + opacity: 0.15; + } + } + + & li { + display: flex; + align-items: center; + gap: .5rem; + } + + & .list { + display: flex; + flex-direction: column; + gap: .5rem; + + & .point-icon { + color: var(--color-orange); + } + } + + & .list-container { + display: flex; + justify-content: center; + gap: 4rem; + } + + & .cols { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-evenly; + gap: 1rem; + + & li { + flex-direction: column; + } + + & .color-icon { + color: var(--color-orange); + } + } + } +} \ No newline at end of file diff --git a/app/assets/css/services.css b/app/assets/css/services.css index dd13f45..7db80fc 100755 --- a/app/assets/css/services.css +++ b/app/assets/css/services.css @@ -3,46 +3,7 @@ background-color: var(--color-orange-black); background-repeat: no-repeat; - .service-list { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); - grid-template-rows: repeat(4, auto); - & article { - grid-row: span 4; - display: grid; - grid-template-rows: subgrid; - position: relative; - - & .chip { - position: absolute; - right: -1rem; - top: calc(-1rem - 3px); - } - - & header { - display: flex; - } - - & ul { - gap: 1rem; - - & li { - display: flex; - align-items: center; - gap: 1rem; - } - } - - & .color-icon { - color: var(--color-orange); - } - - & .extra { - margin-top: auto; - } - } - } .network-list { width: 100%; diff --git a/app/components/Booking.vue b/app/components/Booking.vue new file mode 100755 index 0000000..b309a5b --- /dev/null +++ b/app/components/Booking.vue @@ -0,0 +1,150 @@ + + + diff --git a/app/components/Button.vue b/app/components/Button.vue index 8c9095d..25bddc0 100755 --- a/app/components/Button.vue +++ b/app/components/Button.vue @@ -9,7 +9,7 @@ type Props = { type ?: 'a' | 'button' href ?: string - design ?: string + design ?: 'default' | 'dark' | 'white' } const { diff --git a/app/components/Flatrate.vue b/app/components/Flatrate.vue new file mode 100755 index 0000000..87d03f8 --- /dev/null +++ b/app/components/Flatrate.vue @@ -0,0 +1,128 @@ + + + diff --git a/app/components/Header.vue b/app/components/Header.vue index fe2e630..71c0553 100755 --- a/app/components/Header.vue +++ b/app/components/Header.vue @@ -2,10 +2,12 @@
- - + + + +
+ + diff --git a/app/pages/flatrate.vue b/app/pages/flatrate.vue new file mode 100755 index 0000000..cf2e180 --- /dev/null +++ b/app/pages/flatrate.vue @@ -0,0 +1,5 @@ + diff --git a/nuxt.config.ts b/nuxt.config.ts index c7e2210..8e42d9b 100755 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -19,6 +19,7 @@ export default defineNuxtConfig({ '~/assets/css/header.css', '~/assets/css/intro.css', '~/assets/css/skills.css', + '~/assets/css/pricing.css', '~/assets/css/customers.css', '~/assets/css/services.css', '~/assets/css/footer.css',