summaryrefslogtreecommitdiff
path: root/src/components/ProductPageArcadeBanner.svelte
diff options
context:
space:
mode:
authorrxliuli <rxliuli@gmail.com>2025-11-04 05:03:50 +0800
committerrxliuli <rxliuli@gmail.com>2025-11-04 05:03:50 +0800
commitbce557cc2dc767628bed6aac87301a1be7c5431b (patch)
treeb51a051228d01fe3306cd7626d4a96768aadb944 /src/components/ProductPageArcadeBanner.svelte
init commit
Diffstat (limited to 'src/components/ProductPageArcadeBanner.svelte')
-rw-r--r--src/components/ProductPageArcadeBanner.svelte188
1 files changed, 188 insertions, 0 deletions
diff --git a/src/components/ProductPageArcadeBanner.svelte b/src/components/ProductPageArcadeBanner.svelte
new file mode 100644
index 0000000..154c115
--- /dev/null
+++ b/src/components/ProductPageArcadeBanner.svelte
@@ -0,0 +1,188 @@
+<script lang="ts">
+ import AppleArcadeLogo from '~/components/icons/AppleArcadeLogo.svg';
+ import { getI18n } from '~/stores/i18n';
+
+ const i18n = getI18n();
+</script>
+
+<aside>
+ <div class="arcade-banner">
+ <div class="metadata-container">
+ <div class="logo-container">
+ <AppleArcadeLogo />
+ </div>
+
+ <h2>
+ {$i18n.t('ASE.Web.AppStore.Arcade.UpsellFooter.LineOne')}
+ <br />
+ {$i18n.t('ASE.Web.AppStore.Arcade.UpsellFooter.LineTwo')}
+ {$i18n.t('ASE.Web.AppStore.Arcade.UpsellFooter.LineThree')}
+ </h2>
+
+ <a href="https://www.apple.com/apple-arcade/" target="_blank">
+ <span>
+ {$i18n.t(
+ 'ASE.Web.AppStore.Arcade.UpsellFooter.CallToActionText',
+ )}
+ </span>
+ {$i18n.t(
+ 'ASE.Web.AppStore.Arcade.UpsellFooter.CallToActionDisclaimerMark',
+ )}
+ </a>
+ </div>
+ </div>
+</aside>
+
+<style lang="scss">
+ @use '@amp/web-shared-styles/app/core/globalvars' as *;
+ @use '@amp/web-shared-styles/sasskit-stylekit/ac-sasskit-config';
+ @use 'ac-sasskit/core/locale' as *;
+ @use 'ac-sasskit/modules/viewportcontent/core' as *;
+ @use 'amp/stylekit/core/viewports' as *;
+
+ .logo-container {
+ width: 62px;
+ margin-bottom: 10px;
+ line-height: 0;
+
+ @media (--range-xsmall-only) {
+ width: 48px;
+ margin-bottom: 8px;
+ }
+ }
+
+ .logo-container :global(path) {
+ color: var(--systemPrimary-onDark);
+ }
+
+ .metadata-container {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ width: 60%;
+ height: 100%;
+ padding: 0 20px;
+
+ @media (--range-xsmall-only) {
+ align-items: flex-start;
+ justify-content: center;
+ }
+ }
+
+ h2 {
+ margin-bottom: 10px;
+ font: var(--title-1-emphasized);
+
+ @media (--range-xsmall-only) {
+ margin-bottom: 8px;
+ font: var(--title-3-emphasized);
+ }
+ }
+
+ a {
+ display: flex;
+ font: var(--title-3-emphasized);
+
+ @media (--range-xsmall-only) {
+ font: var(--body-emphasized);
+ }
+ }
+
+ a::after {
+ content: '↗';
+ font-weight: normal;
+ margin-inline-start: 4px;
+ }
+
+ a:hover {
+ text-decoration: none;
+ }
+
+ a:hover span {
+ text-decoration: underline;
+ }
+
+ aside {
+ width: 100%;
+ max-width: calc(viewport-content-for(xlarge));
+ height: 152px;
+ margin: 0 auto 32px;
+ padding: 0 var(--bodyGutter);
+
+ @media (--range-xsmall-only) {
+ max-width: 100%;
+ padding: 0;
+ }
+ }
+
+ .arcade-banner {
+ width: 100%;
+ height: 100%;
+ color: var(--systemPrimary-onDark);
+ border-radius: var(--global-border-radius-medium);
+ background: #000;
+ background-repeat: no-repeat;
+ background-position: right;
+ background-size: contain;
+
+ @media (prefers-color-scheme: dark) {
+ border: 1px solid var(--systemQuaternary-onDark);
+ }
+
+ @media (--range-xsmall-only) {
+ border-radius: 0;
+ background-image: url('/assets/images/arcade/upsell/banner-692@1x_LTR.png');
+ background-size: cover;
+
+ @include rtl {
+ background-image: url('/assets/images/arcade/upsell/banner-692@1x_RTL.png');
+ background-position: left;
+ }
+
+ @media (resolution >= 192dpi) {
+ background-image: url('/assets/images/arcade/upsell/banner-692@2x_LTR.png');
+
+ @include rtl {
+ background-image: url('/assets/images/arcade/upsell/banner-692@2x_RTL.png');
+ background-position: left;
+ }
+ }
+ }
+
+ @media (--range-small-only) {
+ background-image: url('/assets/images/arcade/upsell/banner-692@1x_LTR.png');
+
+ @include rtl {
+ background-image: url('/assets/images/arcade/upsell/banner-692@1x_RTL.png');
+ background-position: left;
+ }
+
+ @media (resolution >= 192dpi) {
+ background-image: url('/assets/images/arcade/upsell/banner-692@2x_LTR.png');
+
+ @include rtl {
+ background-image: url('/assets/images/arcade/upsell/banner-692@2x_RTL.png');
+ background-position: left;
+ }
+ }
+ }
+
+ @media (--range-medium-up) {
+ background-image: url('/assets/images/arcade/upsell/banner-980@1x_LTR.png');
+
+ @include rtl {
+ background-image: url('/assets/images/arcade/upsell/banner-980@1x_RTL.png');
+ background-position: left;
+ }
+
+ @media (resolution >= 192dpi) {
+ background-image: url('/assets/images/arcade/upsell/banner-980@2x_LTR.png');
+
+ @include rtl {
+ background-image: url('/assets/images/arcade/upsell/banner-980@2x_RTL.png');
+ background-position: left;
+ }
+ }
+ }
+ }
+</style>