From 9c329b5ff7a8f93919cfab6c1168e5ba1c5dce36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fe=CC=81lix=20Pe=CC=81ault?= Date: Sun, 11 Jun 2023 21:28:47 +0200 Subject: [PATCH] refactor: update Button to always use a size, determine tag from url --- .../src/components/atoms/Button.svelte | 13 +++++----- .../components/layouts/PosterLayout.svelte | 2 +- .../src/components/molecules/Poster.svelte | 1 - .../src/components/organisms/Cart.svelte | 2 +- .../src/components/organisms/Locations.svelte | 3 ++- .../components/organisms/ShopModule.svelte | 2 +- .../(site)/[country]/[location]/+page.svelte | 4 ++-- .../src/routes/(site)/photos/+page.svelte | 4 ++-- apps/website/src/routes/+page.svelte | 7 +++++- apps/website/src/style/atoms/_button.scss | 24 ++++++++++++------- 10 files changed, 37 insertions(+), 25 deletions(-) diff --git a/apps/website/src/components/atoms/Button.svelte b/apps/website/src/components/atoms/Button.svelte index 24f5db1..038192e 100644 --- a/apps/website/src/components/atoms/Button.svelte +++ b/apps/website/src/components/atoms/Button.svelte @@ -6,22 +6,23 @@ import { cx } from 'classix' import SplitText from '$components/SplitText.svelte' - export let tag = 'a' export let text: string export let url: string = undefined export let color: string = undefined - export let size: string = undefined + export let size: 'xsmall' | 'small' | 'medium' | 'large' export let effect = 'link-3d' export let disabled: boolean = undefined export let slotPosition = 'before' - const className = 'button' + let tag: 'a' | 'button' + $: tag = url ? 'a' : 'button' + $: classes = cx( - className, + 'button', effect ? effect : undefined, - ...[color, size].map(variant => variant && `${className}--${variant}`), + ...[color, size].map(variant => variant && `button--${variant}`), Object.keys($$slots).length !== 0 ? `has-icon-${slotPosition}` : undefined, - $$props.class + $$props.class, ) // Define external links diff --git a/apps/website/src/components/layouts/PosterLayout.svelte b/apps/website/src/components/layouts/PosterLayout.svelte index ec55c58..762a0dc 100644 --- a/apps/website/src/components/layouts/PosterLayout.svelte +++ b/apps/website/src/components/layouts/PosterLayout.svelte @@ -78,7 +78,7 @@
{shopProduct.name} – {shopProduct.price}€
{#if location.has_poster} - {/if} diff --git a/apps/website/src/routes/(site)/photos/+page.svelte b/apps/website/src/routes/(site)/photos/+page.svelte index da14a5b..95d119f 100644 --- a/apps/website/src/routes/(site)/photos/+page.svelte +++ b/apps/website/src/routes/(site)/photos/+page.svelte @@ -464,9 +464,9 @@

diff --git a/apps/website/src/style/atoms/_button.scss b/apps/website/src/style/atoms/_button.scss index e90ac19..813fa54 100644 --- a/apps/website/src/style/atoms/_button.scss +++ b/apps/website/src/style/atoms/_button.scss @@ -1,10 +1,10 @@ .button { display: inline-flex; align-items: center; - height: 40px; - padding: 0 16px; background: #fff; - font: 900 #{rem(16px)}/1 $font-sans; + font-weight: 900; + line-height: 1; + font-family: $font-sans; color: $color-text; cursor: pointer; border-radius: 100vh; @@ -12,12 +12,6 @@ text-decoration: none; transition: background-color 0.55s var(--ease-quart), color 0.55s var(--ease-quart); - @include bp (md) { - height: 48px; - padding: 1px 24px 0; - font-size: rem(18px); - } - // Icon :global(img), :global(svg) { display: block; @@ -68,6 +62,18 @@ } } + // Medium + &--medium { + height: 40px; + padding: 0 16px; + font-size: rem(16px); + + @include bp (md) { + height: 48px; + font-size: rem(18px); + } + } + // Large &--large { height: 56px;