Merged in fix/SW-1655-tripadvisor-icon-map (pull request #2695)

fix(SW-1655): update design tripadvisor on hotel map card

* fix(SW-1655): update design tripadvisor on hotel map card

* fix(SW-1655): update radius

* fix(SW-1655): use tripadvisor chip, create different variants

* fix(SW-1655): update variants, storybook, and global css


Approved-by: Joakim Jäderberg
This commit is contained in:
Bianca Widstam
2025-08-26 13:08:28 +00:00
parent 4d4c90b800
commit 5f8d77e54a
15 changed files with 98 additions and 72 deletions

View File

@@ -1,5 +1,6 @@
import "@scandic-hotels/design-system/fonts.css" import "@scandic-hotels/design-system/fonts.css"
import "@scandic-hotels/design-system/style.css" import "@scandic-hotels/design-system/style.css"
import "@scandic-hotels/design-system/normalize.css"
import "@scandic-hotels/design-system/design-system-new-deprecated.css" import "@scandic-hotels/design-system/design-system-new-deprecated.css"
import "../../globals.css" import "../../globals.css"

View File

@@ -43,15 +43,8 @@
} }
} }
* {
margin: 0;
box-sizing: border-box;
}
html, html,
body { body {
margin: 0;
padding: 0;
scroll-behavior: smooth; scroll-behavior: smooth;
} }
@@ -67,10 +60,6 @@ body.overflow-hidden {
overflow: hidden; overflow: hidden;
} }
.root {
isolation: isolate;
}
/* From Tailwind */ /* From Tailwind */
.sr-only { .sr-only {
position: absolute; position: absolute;
@@ -84,12 +73,6 @@ body.overflow-hidden {
border-width: 0; border-width: 0;
} }
ul {
padding-inline-start: 0;
margin-block-start: 0;
margin-block-end: 0;
}
@media screen and (min-width: 768px) { @media screen and (min-width: 768px) {
:root { :root {
--max-width-single-spacing: var(--Layout-Tablet-Margin-Margin-min); --max-width-single-spacing: var(--Layout-Tablet-Margin-Margin-min);

View File

@@ -1,4 +1,5 @@
import "@scandic-hotels/design-system/fonts.css" import "@scandic-hotels/design-system/fonts.css"
import "@scandic-hotels/design-system/normalize.css"
import "@/app/globals.css" import "@/app/globals.css"
import "@scandic-hotels/design-system/design-system-new-deprecated.css" import "@scandic-hotels/design-system/design-system-new-deprecated.css"
import "@scandic-hotels/design-system/style.css" import "@scandic-hotels/design-system/style.css"

View File

@@ -1,4 +1,5 @@
import "@scandic-hotels/design-system/fonts.css" import "@scandic-hotels/design-system/fonts.css"
import "@scandic-hotels/design-system/normalize.css"
import "@/app/globals.css" import "@/app/globals.css"
import "@scandic-hotels/design-system/design-system-new-deprecated.css" import "@scandic-hotels/design-system/design-system-new-deprecated.css"
import "@scandic-hotels/design-system/style.css" import "@scandic-hotels/design-system/style.css"

View File

@@ -1,4 +1,5 @@
import "@scandic-hotels/design-system/fonts.css" import "@scandic-hotels/design-system/fonts.css"
import "@scandic-hotels/design-system/normalize.css"
import "@/app/globals.css" import "@/app/globals.css"
import "@scandic-hotels/design-system/design-system-new-deprecated.css" import "@scandic-hotels/design-system/design-system-new-deprecated.css"
import "@scandic-hotels/design-system/style.css" import "@scandic-hotels/design-system/style.css"

View File

@@ -1,4 +1,5 @@
import "@scandic-hotels/design-system/fonts.css" import "@scandic-hotels/design-system/fonts.css"
import "@scandic-hotels/design-system/normalize.css"
import "@/app/globals.css" import "@/app/globals.css"
import "@scandic-hotels/design-system/style.css" import "@scandic-hotels/design-system/style.css"
import "@scandic-hotels/design-system/design-system-new-deprecated.css" import "@scandic-hotels/design-system/design-system-new-deprecated.css"

View File

@@ -43,15 +43,8 @@
} }
} }
* {
margin: 0;
box-sizing: border-box;
}
html, html,
body { body {
margin: 0;
padding: 0;
scroll-behavior: smooth; scroll-behavior: smooth;
} }
@@ -67,10 +60,6 @@ body.overflow-hidden {
overflow: hidden; overflow: hidden;
} }
.root {
isolation: isolate;
}
/* From Tailwind */ /* From Tailwind */
.sr-only { .sr-only {
position: absolute; position: absolute;
@@ -84,12 +73,6 @@ body.overflow-hidden {
border-width: 0; border-width: 0;
} }
ul {
padding-inline-start: 0;
margin-block-start: 0;
margin-block-end: 0;
}
@media screen and (min-width: 768px) { @media screen and (min-width: 768px) {
:root { :root {
--max-width-single-spacing: var(--Layout-Tablet-Margin-Margin-min); --max-width-single-spacing: var(--Layout-Tablet-Margin-Margin-min);

View File

@@ -4,6 +4,7 @@ import type { Preview, ReactRenderer } from '@storybook/nextjs-vite'
import { reactIntl } from './reactIntl' import { reactIntl } from './reactIntl'
import '../lib/fonts.css' import '../lib/fonts.css'
import '../lib/normalize.css'
import '../lib/style.css' import '../lib/style.css'
import '../lib/design-system-new-deprecated.css' import '../lib/design-system-new-deprecated.css'

View File

@@ -32,15 +32,3 @@
.imageContainer img { .imageContainer img {
object-fit: cover; object-fit: cover;
} }
.imageContainer .tripAdvisor {
position: absolute;
left: 7px;
top: 7px;
border-radius: 2px;
}
.imageContainer.top .tripAdvisor {
left: 4px;
top: 4px;
}

View File

@@ -1,9 +1,7 @@
import TripadvisorIcon from '@scandic-hotels/design-system/Icons/TripadvisorIcon'
import Image from '@scandic-hotels/design-system/Image' import Image from '@scandic-hotels/design-system/Image'
import Chip from '@scandic-hotels/design-system/Chip'
import { hotelCardDialogImageVariants } from './variants' import { hotelCardDialogImageVariants } from './variants'
import { TripAdvisorChip } from '@scandic-hotels/design-system/TripAdvisorChip'
import styles from './hotelCardDialogImage.module.css' import styles from './hotelCardDialogImage.module.css'
@@ -39,12 +37,10 @@ export function HotelCardDialogImage({
/> />
)} )}
{rating?.tripAdvisor && ( {rating?.tripAdvisor && (
<div className={styles.tripAdvisor}> <TripAdvisorChip
<Chip className={styles.tripAdvisor}> rating={rating.tripAdvisor}
<TripadvisorIcon color="Icon/Interactive/Default" /> variant={position === 'top' ? 'small' : 'default'}
{rating.tripAdvisor} />
</Chip>
</div>
)} )}
</div> </div>
) )

View File

@@ -14,6 +14,12 @@ const meta: Meta<typeof TripAdvisorChip> = {
step: 0.1, step: 0.1,
}, },
}, },
variant: {
control: {
type: 'select',
},
options: ['default', 'small'],
},
}, },
} }
@@ -24,5 +30,13 @@ type Story = StoryObj<typeof TripAdvisorChip>
export const PrimaryDefault: Story = { export const PrimaryDefault: Story = {
args: { args: {
rating: 4.5, rating: 4.5,
variant: 'default',
},
}
export const Small: Story = {
args: {
rating: 4.5,
variant: 'small',
}, },
} }

View File

@@ -1,19 +1,45 @@
import Caption from '@scandic-hotels/design-system/Caption' import { cva, type VariantProps } from 'class-variance-authority'
import TripadvisorIcon from '@scandic-hotels/design-system/Icons/TripadvisorIcon' import TripadvisorIcon from '@scandic-hotels/design-system/Icons/TripadvisorIcon'
import styles from './tripAdvisorChip.module.css' import styles from './tripAdvisorChip.module.css'
import { Typography } from '@scandic-hotels/design-system/Typography'
const container = cva(styles.container, {
variants: {
variant: {
default: null,
small: styles.containerSmall,
},
},
defaultVariants: {
variant: 'default',
},
})
const chip = cva(styles.tripAdvisor, {
variants: {
variant: {
default: null,
small: styles.tripAdvisorSmall,
},
},
defaultVariants: {
variant: 'default',
},
})
type TripAdvisorProps = { type TripAdvisorProps = {
rating: number rating: number
} } & VariantProps<typeof container>
export function TripAdvisorChip({ rating }: TripAdvisorProps) { export function TripAdvisorChip({ rating, variant }: TripAdvisorProps) {
return ( return (
// Wrapping the chip in a transparent container with some padding to increase the touch target // Wrapping the chip in a transparent container with some padding to increase the touch target
<div className={styles.container}> <div className={container({ variant })}>
<div className={styles.tripAdvisor}> <div className={chip({ variant })}>
<TripadvisorIcon color="Icon/Interactive/Default" /> <TripadvisorIcon size={16} color="Icon/Interactive/Default" />
<Caption color="burgundy">{rating}</Caption> <Typography variant="Tag/sm">
<p>{rating}</p>
</Typography>
</div> </div>
</div> </div>
) )

View File

@@ -2,14 +2,23 @@
position: absolute; position: absolute;
left: 0; left: 0;
top: 0; top: 0;
padding: var(--Spacing-x2); padding: var(--Space-x2);
}
.containerSmall {
padding: var(--Space-x05);
} }
.tripAdvisor { .tripAdvisor {
display: flex; display: flex;
align-items: center; align-items: center;
gap: var(--Spacing-x-half); gap: var(--Space-x05);
background-color: var(--Base-Surface-Primary-light-Normal); background-color: var(--Base-Surface-Primary-light-Normal);
padding: var(--Spacing-x-quarter) var(--Spacing-x1); padding: var(--Space-x05) var(--Space-x1);
border-radius: var(--Corner-radius-sm); border-radius: var(--Corner-radius-sm);
} }
.tripAdvisorSmall {
padding: 0 var(--Space-x05) 0 3px;
border-radius: 2px;
}

View File

@@ -0,0 +1,20 @@
* {
margin: 0;
box-sizing: border-box;
}
html,
body {
margin: 0;
padding: 0;
}
.root {
isolation: isolate;
}
ul {
padding-inline-start: 0;
margin-block-start: 0;
margin-block-end: 0;
}

View File

@@ -155,19 +155,20 @@
"./TripAdvisorChip": "./lib/components/TripAdvisorChip/index.tsx", "./TripAdvisorChip": "./lib/components/TripAdvisorChip/index.tsx",
"./Typography": "./lib/components/Typography/index.tsx", "./Typography": "./lib/components/Typography/index.tsx",
"./JsonToHtml": "./lib/components/JsonToHtml/JsonToHtml.tsx", "./JsonToHtml": "./lib/components/JsonToHtml/JsonToHtml.tsx",
"./design-system-new-deprecated.css": "./lib/design-system-new-deprecated.css",
"./style.css": "./lib/style.css",
"./base.css": "./lib/base.css", "./base.css": "./lib/base.css",
"./globals.css": "./lib/globals.css", "./design-system-new-deprecated.css": "./lib/design-system-new-deprecated.css",
"./impl.css": "./lib/impl.css",
"./fonts.css": "./lib/fonts.css",
"./downtown-camper.css": "./lib/styles/downtown-camper.css", "./downtown-camper.css": "./lib/styles/downtown-camper.css",
"./fonts.css": "./lib/fonts.css",
"./globals.css": "./lib/globals.css",
"./grand-hotel.css": "./lib/styles/grand-hotel.css", "./grand-hotel.css": "./lib/styles/grand-hotel.css",
"./haymarket.css": "./lib/styles/haymarket.css", "./haymarket.css": "./lib/styles/haymarket.css",
"./hotel-norge.css": "./lib/styles/hotel-norge.css", "./hotel-norge.css": "./lib/styles/hotel-norge.css",
"./impl.css": "./lib/impl.css",
"./marski.css": "./lib/styles/marski.css", "./marski.css": "./lib/styles/marski.css",
"./normalize.css": "./lib/normalize.css",
"./scandic-go.css": "./lib/styles/scandic-go.css", "./scandic-go.css": "./lib/styles/scandic-go.css",
"./scandic.css": "./lib/styles/scandic.css" "./scandic.css": "./lib/styles/scandic.css",
"./style.css": "./lib/style.css"
}, },
"files": [ "files": [
"dist" "dist"