From c99c243dfc1eb0b65fbcd56522830ddd5cf54c8e Mon Sep 17 00:00:00 2001 From: webfussel Date: Mon, 17 Feb 2025 20:38:18 +0100 Subject: [PATCH] add: bottom toolbar, remove button for cards Implemented bottom toolbar for adding and calculating, added remove button for Price Cards --- app/assets/styles/button.css | 33 ++++++++++++++++++++++++++++-- app/assets/styles/general.css | 21 +++++++++++++++++++ app/assets/styles/header.css | 4 ++++ app/assets/styles/priceCard.css | 18 +++++++++++++++++ app/assets/styles/toolbar.css | 12 +++++++++++ app/components/Pp/FormInput.vue | 2 +- app/components/Pp/PriceCard.vue | 21 +++++++++++++++---- app/components/Pp/Toolbar.vue | 9 +++++++++ app/pages/index.vue | 36 ++++++++++++++++++++++++++------- nuxt.config.ts | 3 ++- 10 files changed, 144 insertions(+), 15 deletions(-) create mode 100644 app/assets/styles/toolbar.css create mode 100644 app/components/Pp/Toolbar.vue diff --git a/app/assets/styles/button.css b/app/assets/styles/button.css index 83b8a24..ee545bd 100644 --- a/app/assets/styles/button.css +++ b/app/assets/styles/button.css @@ -1,9 +1,14 @@ .Button { - all: unset; + --padding: .2rem; display: flex; justify-content: center; align-items: center; gap: 1rem; + cursor: pointer; + transition: var(--transition-default); + outline: none; + border: none; + background: transparent; &.cta { background: var(--color-main); @@ -11,10 +16,34 @@ padding: .5rem 1.5rem; border-radius: var(--radius-default); box-shadow: var(--box-shadow-z2); - transition: var(--transition-default); &:hover { background: var(--color-main-dark); } } + + &.icon-button { + display: flex; + padding: var(--padding); + border-radius: 100%; + + &:hover { + scale: 1.2; + } + } + + &.mini-button { + padding: .5rem 1.5rem; + display: flex; + flex-direction: column; + gap: .5rem; + + & > .icon { + font-size: 1.5rem; + } + + & > span { + font-size: .8rem; + } + } } \ No newline at end of file diff --git a/app/assets/styles/general.css b/app/assets/styles/general.css index db67a02..2d68fc6 100644 --- a/app/assets/styles/general.css +++ b/app/assets/styles/general.css @@ -39,6 +39,7 @@ body { .content { padding: 1rem; + min-height: 100dvh; } .pc-wrapper { @@ -49,4 +50,24 @@ body { .flex-col { display: flex; flex-direction: column; +} + +.text-white { + color: var(--color-white); +} + +.bg-main { + background-color: var(--color-main); +} + +.bg-main-hover:hover { + background-color: var(--color-main); +} + +.bg-main-dark { + background-color: var(--color-main-dark); +} + +.bg-main-dark-hover:hover { + background-color: var(--color-main-dark); } \ No newline at end of file diff --git a/app/assets/styles/header.css b/app/assets/styles/header.css index ad61b10..f89db28 100644 --- a/app/assets/styles/header.css +++ b/app/assets/styles/header.css @@ -3,7 +3,11 @@ align-items: center; justify-content: space-between; padding: var(--padding-default); + background-color: var(--color-white); box-shadow: var(--box-shadow-z2); + position: sticky; + top: 0; + z-index: 1; & strong { font-size: 2em; diff --git a/app/assets/styles/priceCard.css b/app/assets/styles/priceCard.css index 9831c48..ff44c5b 100644 --- a/app/assets/styles/priceCard.css +++ b/app/assets/styles/priceCard.css @@ -1,6 +1,24 @@ .PriceCard { width: 100%; + & > header { + color: white; + display: flex; + justify-content: space-between; + align-items: center; + font-size: 1.3em; + + & > .Button { + scale: 0; + color: var(--color-white); + border: 2px solid var(--color-white); + } + + & > .Button.deletable { + scale: 1; + } + } + & > .padding { gap: 1rem; padding: var(--padding-default); diff --git a/app/assets/styles/toolbar.css b/app/assets/styles/toolbar.css new file mode 100644 index 0000000..fdb3a25 --- /dev/null +++ b/app/assets/styles/toolbar.css @@ -0,0 +1,12 @@ +.Toolbar { + display: flex; + justify-content: space-evenly; + background: var(--color-main); + position: sticky; + bottom: 0; + + & > .Button { + --padding: 1rem; + font-size: 1rem; + } +} \ No newline at end of file diff --git a/app/components/Pp/FormInput.vue b/app/components/Pp/FormInput.vue index cc7743f..66c8a94 100644 --- a/app/components/Pp/FormInput.vue +++ b/app/components/Pp/FormInput.vue @@ -24,7 +24,7 @@ type Props = { required ?: boolean label : string id : string - uid : number + uid : string } const { diff --git a/app/components/Pp/PriceCard.vue b/app/components/Pp/PriceCard.vue index e682ba5..21fc886 100644 --- a/app/components/Pp/PriceCard.vue +++ b/app/components/Pp/PriceCard.vue @@ -1,8 +1,18 @@