+ Vielleicht kommen wir gerade ungelegen, aber dennoch: Klicken Sie jetzt bitte nicht weg! Am heutigen + {{ currentDayName }}, den {{ currentDate }}, bitten wir Sie, die Unabhängigkeit von Wikipedia zu unterstützen. +
+
+ {{campaignDaySentence}}
+
+ Die durchschnittliche Spende beträgt {{ averageDonation }}, doch bereits 5 € helfen uns weiter. Hat Wikipedia + Ihnen in diesem Jahr Wissen im Wert einer Tasse Kaffee geschenkt? +
++ Dann entscheiden Sie sich, eine der seltenen Ausnahmen zu sein, und geben Sie etwas zurück. Vielen Dank! +
++ Vielleicht kommen wir gerade ungelegen, aber dennoch: Klicken Sie jetzt bitte nicht weg! Am heutigen + {{ currentDayName }}, den {{ currentDate }}, bitten wir Sie, die Unabhängigkeit von Wikipedia zu unterstützen. +
+
+ {{campaignDaySentence}}
+
+ Die durchschnittliche Spende beträgt {{ averageDonation }}, doch bereits 5 € helfen uns weiter. Hat Wikipedia + Ihnen in diesem Jahr Wissen im Wert einer Tasse Kaffee geschenkt? +
++ Dann entscheiden Sie sich, eine der seltenen Ausnahmen zu sein, und geben Sie etwas zurück. Falls Sie zögern, + + für eine Spende. Vielen Dank! +
++ Hat Wikipedia Ihnen Wissen im Wert einer Tasse Kaffee geschenkt? +
++ Dann entscheiden Sie sich, etwas zurückzugeben. Danke! +
+Jedes Jahr sind wir auf Menschen wie Sie angewiesen. Jährliche Spenden helfen uns besonders und ermöglichen langfristige Weiterentwicklungen.
+Sie gehen kein Risiko ein: Jederzeit formlos zu sofort kündbar.
`, + 'upgrade-to-yearly-no': 'Nein, ich spende einmalig {{amount}}', + 'upgrade-to-yearly-yes': 'Ja, ich spende {{amount}} jährlich', + 'campaign-day-only-n-days': 'Heute sind es nur noch {{days}} Tage bis zum Ende unserer Spendenkampagne.', + 'custom-amount-placeholder': 'Wahlbetrag' +}; + +export default messages; diff --git a/banners/desktop/C24_WMDE_Desktop_DE_14/messages_var.ts b/banners/desktop/C24_WMDE_Desktop_DE_14/messages_var.ts new file mode 100644 index 000000000..009333f1d --- /dev/null +++ b/banners/desktop/C24_WMDE_Desktop_DE_14/messages_var.ts @@ -0,0 +1,34 @@ +import CustomAmountFormDe from '@src/components/DonationForm/Forms/messages/CustomAmountForm.de'; +import DynamicCampaignTextDe from '@src/utils/DynamicContent/messages/DynamicCampaignText.de'; +import { TranslationMessages } from '@src/Translator'; +import UpgradeToYearlyDe from '@src/components/DonationForm/Forms/messages/UpgradeToYearly.de'; +import AddressFormDe from '@src/components/DonationForm/Forms/messages/AddressForm.de'; +import FooterDe from '@src/components/Footer/messages/Footer.de'; +import MainDonationFormDe from '@src/components/DonationForm/Forms/messages/MainDonationForm.de'; +import FallbackBanner from '@src/components/FallbackBanner/messages/FallbackBanner.de'; +import AlreadyDonatedModal from '@src/components/AlreadyDonatedModal/translations/AlreadyDonatedModal.de'; +import SoftCloseDe from '@src/components/SoftClose/messages/SoftClose.de'; +import ReasonsToDonate from '@src/components/ReasonsToDonate/messages/ReasonsToDonate.de'; + +const messages: TranslationMessages = { + ...CustomAmountFormDe, + ...DynamicCampaignTextDe, + ...UpgradeToYearlyDe, + ...AddressFormDe, + ...FooterDe, + ...MainDonationFormDe, + ...AlreadyDonatedModal, + ...FallbackBanner, + ...SoftCloseDe, + ...ReasonsToDonate, + 'already-donated-go-away-button': 'Im Moment nicht', + 'soft-close-prompt': 'Dürfen wir später nochmal fragen?', + 'upgrade-to-yearly-copy': `Jedes Jahr sind wir auf Menschen wie Sie angewiesen. Jährliche Spenden helfen uns besonders und ermöglichen langfristige Weiterentwicklungen.
+Sie gehen kein Risiko ein: Jederzeit formlos zu sofort kündbar.
`, + 'upgrade-to-yearly-no': 'Nein, ich spende einmalig {{amount}}', + 'upgrade-to-yearly-yes': 'Ja, ich spende {{amount}} jährlich', + 'campaign-day-only-n-days': 'Heute sind es nur noch {{days}} Tage bis zum Ende unserer Spendenkampagne.', + 'custom-amount-placeholder': 'Wahlbetrag' +}; + +export default messages; diff --git a/banners/desktop/C24_WMDE_Desktop_DE_14/styles/Banner.scss b/banners/desktop/C24_WMDE_Desktop_DE_14/styles/Banner.scss new file mode 100644 index 000000000..1e7d13842 --- /dev/null +++ b/banners/desktop/C24_WMDE_Desktop_DE_14/styles/Banner.scss @@ -0,0 +1,22 @@ +@use 'src/themes/Svingle/variables/fonts'; + +.wmde-banner { + &-wrapper { + font-size: 14px; + font-family: fonts.$ui; + box-shadow: 0 3px 0.6em rgba( 60 60 60 / 40% ); + background-color: var( --main-background ); + } + + &--pending { + .wmde-banner-wrapper { + box-shadow: none; + } + } + + &--closed { + .wmde-banner-wrapper { + display: none; + } + } +} diff --git a/banners/desktop/C24_WMDE_Desktop_DE_14/styles/FallbackBanner.scss b/banners/desktop/C24_WMDE_Desktop_DE_14/styles/FallbackBanner.scss new file mode 100644 index 000000000..a0d40542d --- /dev/null +++ b/banners/desktop/C24_WMDE_Desktop_DE_14/styles/FallbackBanner.scss @@ -0,0 +1,121 @@ +@use 'src/themes/Svingle/variables/fonts'; + +$breakpoint: 800px; + +.wmde-banner { + &-fallback { + width: 100%; + height: 150px; + display: flex; + flex-direction: column; + background: var( --fallback-background ); + box-shadow: 0 3px 0.6em rgba( 60 60 60 / 40% ); + + @media ( min-width: $breakpoint ) { + height: auto; + min-height: 250px; + padding: 4px; + } + + &-small, + &-large { + display: flex; + flex-direction: column; + flex: 1 1 auto; + } + + &-small { + align-items: center; + border: 4px solid var( --fallback-border ); + border-radius: 4px; + padding: 8px; + + .wmde-banner-selection-input-text, + .wmde-banner-selection-input-input { + font-family: fonts.$content; + font-size: 14px; + font-weight: normal; + } + } + + &-large { + align-items: stretch; + } + + &-usage-link { + color: var( --fallback-uof-link ); + } + + &-message { + flex: 1 1 auto; + display: flex; + flex-direction: column; + border: 4px solid var( --fallback-message-border ); + border-radius: 4px; + padding: 8px 0; + } + + &-bank-item { + display: block; + + &-label { + font-weight: bold; + } + } + + .wmde-banner-close { + height: 16px; + width: 16px; + top: 8px; + right: 8px; + + @media ( min-width: $breakpoint ) { + height: 30px; + width: 30px; + top: 12px; + right: 12px; + } + } + + .wmde-banner-message { + flex: 1 1 auto; + display: flex; + flex-direction: column; + padding: 8px 0; + color: var( --fallback-message-color ); + background-color: var( --fallback-message-background ); + margin: 15px; + + p { + margin-bottom: 0; + } + } + + .wmde-banner-slider-container { + padding: 0 0 8px; + margin: 0; + } + + .wmde-banner-slide-content { + font-size: 14px; + p { + margin-bottom: 8px; + } + } + + .wmde-banner-slider-navigation-previous, + .wmde-banner-slider-navigation-next { + align-items: end; + } + + .wmde-banner-slider-pagination-dot { + cursor: default; + } + } + + &--pending { + .wmde-banner-fallback { + box-shadow: none; + } + } +} diff --git a/banners/desktop/C24_WMDE_Desktop_DE_14/styles/MainBanner.scss b/banners/desktop/C24_WMDE_Desktop_DE_14/styles/MainBanner.scss new file mode 100644 index 000000000..a0bcd9bca --- /dev/null +++ b/banners/desktop/C24_WMDE_Desktop_DE_14/styles/MainBanner.scss @@ -0,0 +1,53 @@ +$banner-height: 357px !default; +$form-width: 300px !default; + +.wmde-banner { + + .previous { + --slider-chevron: var( --previous-button-fill ); + } + + &-main { + min-height: $banner-height; + display: flex; + flex-direction: column; + padding: 12px 24px 0; + } + + &-content { + display: flex; + flex-direction: row; + flex-grow: 1; + } + + &-message { + padding: 3px 15px; + color: var( --message-color ); + background-color: var( --message-background ); + border: none; + border-radius: 9px; + margin-bottom: 15px; + } + + &-column-left { + position: relative; + display: flex; + flex-direction: column; + justify-content: center; + flex: 1 1 auto; + margin-bottom: 0; + overflow-y: hidden; + margin-right: 30px; + padding: 0; + border: none; + } + + &-column-right { + order: 2; + flex: 0 0 $form-width; + display: flex; + flex-direction: column; + width: $form-width; + padding: 10px 0 0; + } +} diff --git a/banners/desktop/C24_WMDE_Desktop_DE_14/styles/styles.scss b/banners/desktop/C24_WMDE_Desktop_DE_14/styles/styles.scss new file mode 100644 index 000000000..ff644c870 --- /dev/null +++ b/banners/desktop/C24_WMDE_Desktop_DE_14/styles/styles.scss @@ -0,0 +1,54 @@ +// This is the file where we import the theme-specific component styles +@use '../../../../src/themes/Svingle/swatches/skin_default' with ( + $slider: true, + $select-group: true, + $upgrade-to-yearly: true, + $fallback-banner: true, + $progress-bar: true, + $soft-close: true, +); +@use 'src/components/BannerConductor/banner-transition'; +@use 'src/themes/UseOfFunds/swatches/skin_default' as uof-default; +@use 'Banner'; +@use 'src/themes/UseOfFunds/UseOfFunds'; +@use 'MainBanner' with ( + $banner-height: 357px, + $form-width: 300px +); +@use 'src/themes/Svingle/defaults'; +@use 'src/themes/Svingle/ButtonClose/ButtonClose'; +@use 'src/themes/Svingle/ProgressBar/ProgressBar'; +@use 'src/themes/Svingle/DonationForm/DonationForm'; +@use 'src/themes/Svingle/DonationForm/MultiStepDonation'; +@use 'src/themes/Svingle/DonationForm/SubComponents/SelectGroup'; +@use 'src/themes/Svingle/DonationForm/SubComponents/SelectGroupRadios' with ( + $font-size: 14px +); +@use 'src/themes/Svingle/DonationForm/SubComponents/SelectCustomAmountRadio' with ( + $font-size: 14px +); +@use 'src/themes/Svingle/DonationForm/SubComponents/SmsBox'; +@use 'src/themes/Svingle/DonationForm/Forms/MainDonationForm'; +@use 'src/themes/Svingle/DonationForm/Forms/UpgradeToYearlyButtonForm' with ( + $font-size: 14px +); +@use 'src/themes/Svingle/DonationForm/Forms/CustomAmountForm'; +@use 'src/themes/Svingle/Footer/FooterAlreadyDonated'; +@use 'src/themes/Svingle/Footer/SelectionInput'; +@use 'src/themes/Svingle/Message/Message'; +@use 'src/themes/Svingle/SoftClose/SoftClose'; +@use 'src/themes/Svingle/Slider/KeenSlider'; + +/** + * Fallback banner with "Fijitiv" theme + * All selectors in Fijitiv theme are prefixed with the ".wmde-banner-fallback" class selector, + so they override the "default" styles with the same selector + */ +@use 'FallbackBanner'; +@use 'src/themes/Fijitiv/FallbackBanner/FallbackButton'; +@use 'src/themes/Fijitiv/FallbackBanner/LargeFooter'; +@use 'src/themes/Fijitiv/FallbackBanner/SmallFooter'; +@use 'src/themes/Fijitiv/ProgressBar/ProgressBar' as FallbackProgressBar with ( + $progress-bar-margin: 0 15px +); +@use 'src/themes/Fijitiv/Slider/KeenSlider' as FallbackSlider; diff --git a/banners/desktop/C24_WMDE_Desktop_DE_14/styles/styles_var.scss b/banners/desktop/C24_WMDE_Desktop_DE_14/styles/styles_var.scss new file mode 100644 index 000000000..d0f316b14 --- /dev/null +++ b/banners/desktop/C24_WMDE_Desktop_DE_14/styles/styles_var.scss @@ -0,0 +1,56 @@ +// This is the file where we import the theme-specific component styles +@use '../../../../src/themes/Svingle/swatches/skin_default' with ( + $slider: true, + $select-group: true, + $upgrade-to-yearly: true, + $fallback-banner: true, + $progress-bar: true, + $soft-close: true, +); +@use 'src/components/BannerConductor/banner-transition'; +@use 'src/themes/UseOfFunds/swatches/skin_default' as uof-default; +@use 'Banner'; +@use 'src/themes/UseOfFunds/UseOfFunds'; +@use 'MainBanner' with ( + $banner-height: 357px, + $form-width: 300px +); +@use 'src/themes/Svingle/defaults'; +@use 'src/themes/Svingle/ButtonClose/ButtonClose'; +@use 'src/themes/Svingle/ProgressBar/ProgressBar'; +@use 'src/themes/Svingle/DonationForm/DonationForm'; +@use 'src/themes/Svingle/DonationForm/MultiStepDonation'; +@use 'src/themes/Svingle/DonationForm/SubComponents/SelectGroup'; +@use 'src/themes/Svingle/DonationForm/SubComponents/SelectGroupRadios' with ( + $font-size: 14px +); +@use 'src/themes/Svingle/DonationForm/SubComponents/SelectCustomAmountRadio' with ( + $font-size: 14px +); +@use 'src/themes/Svingle/DonationForm/SubComponents/SmsBox'; +@use 'src/themes/Svingle/DonationForm/Forms/MainDonationForm'; +@use 'src/themes/Svingle/DonationForm/Forms/UpgradeToYearlyButtonForm' with ( + $font-size: 14px +); +@use 'src/themes/Svingle/DonationForm/Forms/CustomAmountForm'; +@use 'src/themes/Svingle/Footer/FooterAlreadyDonated'; +@use 'src/themes/Svingle/Footer/SelectionInput'; +@use 'src/themes/Svingle/Message/Message'; +@use 'src/themes/Svingle/SoftClose/SoftClose'; +@use 'src/themes/Svingle/Slider/KeenSlider'; + +/** + * Fallback banner with "Fijitiv" theme + * All selectors in Fijitiv theme are prefixed with the ".wmde-banner-fallback" class selector, + so they override the "default" styles with the same selector + */ +@use 'FallbackBanner'; +@use 'src/themes/Fijitiv/FallbackBanner/FallbackButton'; +@use 'src/themes/Fijitiv/FallbackBanner/LargeFooter'; +@use 'src/themes/Fijitiv/FallbackBanner/SmallFooter'; +@use 'src/themes/Fijitiv/ProgressBar/ProgressBar' as FallbackProgressBar with ( + $progress-bar-margin: 0 15px +); +@use 'src/themes/Fijitiv/Slider/KeenSlider' as FallbackSlider; +@use 'src/components/ReasonsToDonate/styles/swatches/skin_default' as reasons-default; +@use 'src/components/ReasonsToDonate/styles/ReasonsToDonate'; diff --git a/banners/mobile/C24_WMDE_Mobile_DE_09/banner_ctrl.ts b/banners/mobile/C24_WMDE_Mobile_DE_09/banner_ctrl.ts new file mode 100644 index 000000000..9bd77f7f5 --- /dev/null +++ b/banners/mobile/C24_WMDE_Mobile_DE_09/banner_ctrl.ts @@ -0,0 +1,69 @@ +import { createVueApp } from '@src/createVueApp'; + +import './styles/styles.scss'; + +import BannerConductor from '@src/components/BannerConductor/BannerConductor.vue'; +import Banner from './components/BannerCtrl.vue'; +import { UrlRuntimeEnvironment } from '@src/utils/RuntimeEnvironment'; +import { WindowResizeHandler } from '@src/utils/ResizeHandler'; +import PageWPORG from '@src/page/PageWPORG'; +import { WindowMediaWiki } from '@src/page/MediaWiki/WindowMediaWiki'; +import { SkinFactory } from '@src/page/skin/SkinFactory'; +import { WindowSizeIssueChecker } from '@src/utils/SizeIssueChecker/WindowSizeIssueChecker'; +import TranslationPlugin from '@src/TranslationPlugin'; +import { Translator } from '@src/Translator'; +import DynamicTextPlugin from '@src/DynamicTextPlugin'; +import { LocalImpressionCount } from '@src/utils/LocalImpressionCount'; +import { WindowPageScroller } from '@src/utils/PageScroller/WindowPageScroller'; +import { LegacyTrackerWPORG } from '@src/tracking/LegacyTrackerWPORG'; +import eventMappings from './event_map'; +import messages from './messages'; +import { LocaleFactoryDe } from '@src/utils/LocaleFactory/LocaleFactoryDe'; +import { createFormItems } from './form_items'; +import { createFormActions } from '@src/createFormActions'; +import { LocalStorageCloseTracker } from '@src/utils/LocalCloseTracker'; +import { WindowTimer } from '@src/utils/Timer'; + +const localeFactory = new LocaleFactoryDe(); +const translator = new Translator( messages ); +const mediaWiki = new WindowMediaWiki(); +const page = new PageWPORG( mediaWiki, ( new SkinFactory( mediaWiki ) ).getSkin(), new WindowSizeIssueChecker() ); +const runtimeEnvironment = new UrlRuntimeEnvironment( window.location ); +const impressionCount = new LocalImpressionCount( page.getTracking().keyword, runtimeEnvironment ); +const tracker = new LegacyTrackerWPORG( mediaWiki, page.getTracking().keyword, eventMappings, runtimeEnvironment ); + +const app = createVueApp( BannerConductor, { + page, + bannerConfig: { + delay: runtimeEnvironment.getBannerDelay( 7500 ), + transitionDuration: 1000 + }, + bannerProps: { + useOfFundsContent: localeFactory.getUseOfFundsLoader().getContent(), + pageScroller: new WindowPageScroller(), + remainingImpressions: impressionCount.getRemainingImpressions( page.getMaxBannerImpressions( 'mobile' ) ), + localCloseTracker: new LocalStorageCloseTracker() + }, + resizeHandler: new WindowResizeHandler(), + banner: Banner, + impressionCount +} ); + +app.use( TranslationPlugin, translator ); +app.use( DynamicTextPlugin, { + campaignParameters: page.getCampaignParameters(), + date: new Date(), + formatters: localeFactory.getFormatters(), + impressionCount, + translator, + urgencyMessageDaysLeft: 45 +} ); +const currencyFormatter = localeFactory.getCurrencyFormatter(); + +app.provide( 'currencyFormatter', currencyFormatter ); +app.provide( 'formItems', createFormItems( translator, currencyFormatter.euroAmount.bind( currencyFormatter ) ) ); +app.provide( 'formActions', createFormActions( page.getTracking(), impressionCount, { afo: '1', ap: '0' } ) ); +app.provide( 'tracker', tracker ); +app.provide( 'timer', new WindowTimer() ); + +app.mount( page.getBannerContainer() ); diff --git a/banners/mobile/C24_WMDE_Mobile_DE_09/banner_var.ts b/banners/mobile/C24_WMDE_Mobile_DE_09/banner_var.ts new file mode 100644 index 000000000..37b018974 --- /dev/null +++ b/banners/mobile/C24_WMDE_Mobile_DE_09/banner_var.ts @@ -0,0 +1,69 @@ +import { createVueApp } from '@src/createVueApp'; + +import './styles/styles_var.scss'; + +import BannerConductor from '@src/components/BannerConductor/BannerConductor.vue'; +import Banner from './components/BannerVar.vue'; +import { UrlRuntimeEnvironment } from '@src/utils/RuntimeEnvironment'; +import { WindowResizeHandler } from '@src/utils/ResizeHandler'; +import PageWPORG from '@src/page/PageWPORG'; +import { WindowMediaWiki } from '@src/page/MediaWiki/WindowMediaWiki'; +import { SkinFactory } from '@src/page/skin/SkinFactory'; +import { WindowSizeIssueChecker } from '@src/utils/SizeIssueChecker/WindowSizeIssueChecker'; +import TranslationPlugin from '@src/TranslationPlugin'; +import { Translator } from '@src/Translator'; +import DynamicTextPlugin from '@src/DynamicTextPlugin'; +import { LocalImpressionCount } from '@src/utils/LocalImpressionCount'; +import { WindowPageScroller } from '@src/utils/PageScroller/WindowPageScroller'; +import { LegacyTrackerWPORG } from '@src/tracking/LegacyTrackerWPORG'; +import eventMappings from './event_map_var'; +import messages from './messages_var'; +import { LocaleFactoryDe } from '@src/utils/LocaleFactory/LocaleFactoryDe'; +import { createFormItems } from './form_items'; +import { createFormActions } from '@src/createFormActions'; +import { LocalStorageCloseTracker } from '@src/utils/LocalCloseTracker'; +import { WindowTimer } from '@src/utils/Timer'; + +const localeFactory = new LocaleFactoryDe(); +const translator = new Translator( messages ); +const mediaWiki = new WindowMediaWiki(); +const page = new PageWPORG( mediaWiki, ( new SkinFactory( mediaWiki ) ).getSkin(), new WindowSizeIssueChecker() ); +const runtimeEnvironment = new UrlRuntimeEnvironment( window.location ); +const impressionCount = new LocalImpressionCount( page.getTracking().keyword, runtimeEnvironment ); +const tracker = new LegacyTrackerWPORG( mediaWiki, page.getTracking().keyword, eventMappings, runtimeEnvironment ); + +const app = createVueApp( BannerConductor, { + page, + bannerConfig: { + delay: runtimeEnvironment.getBannerDelay( 7500 ), + transitionDuration: 1000 + }, + bannerProps: { + useOfFundsContent: localeFactory.getUseOfFundsLoader().getContent(), + pageScroller: new WindowPageScroller(), + remainingImpressions: impressionCount.getRemainingImpressions( page.getMaxBannerImpressions( 'mobile' ) ), + localCloseTracker: new LocalStorageCloseTracker() + }, + resizeHandler: new WindowResizeHandler(), + banner: Banner, + impressionCount +} ); + +app.use( TranslationPlugin, translator ); +app.use( DynamicTextPlugin, { + campaignParameters: page.getCampaignParameters(), + date: new Date(), + formatters: localeFactory.getFormatters(), + impressionCount, + translator, + urgencyMessageDaysLeft: 45 +} ); +const currencyFormatter = localeFactory.getCurrencyFormatter(); + +app.provide( 'currencyFormatter', currencyFormatter ); +app.provide( 'formItems', createFormItems( translator, currencyFormatter.euroAmount.bind( currencyFormatter ) ) ); +app.provide( 'formActions', createFormActions( page.getTracking(), impressionCount, { afo: '1', ap: '0' } ) ); +app.provide( 'tracker', tracker ); +app.provide( 'timer', new WindowTimer() ); + +app.mount( page.getBannerContainer() ); diff --git a/banners/mobile/C24_WMDE_Mobile_DE_09/components/BannerCtrl.vue b/banners/mobile/C24_WMDE_Mobile_DE_09/components/BannerCtrl.vue new file mode 100644 index 000000000..1191153ce --- /dev/null +++ b/banners/mobile/C24_WMDE_Mobile_DE_09/components/BannerCtrl.vue @@ -0,0 +1,224 @@ + + + + + diff --git a/banners/mobile/C24_WMDE_Mobile_DE_09/components/BannerVar.vue b/banners/mobile/C24_WMDE_Mobile_DE_09/components/BannerVar.vue new file mode 100644 index 000000000..a93181a2a --- /dev/null +++ b/banners/mobile/C24_WMDE_Mobile_DE_09/components/BannerVar.vue @@ -0,0 +1,265 @@ + + + + + diff --git a/banners/mobile/C24_WMDE_Mobile_DE_09/components/FullPageBanner.vue b/banners/mobile/C24_WMDE_Mobile_DE_09/components/FullPageBanner.vue new file mode 100644 index 000000000..d75bb5b68 --- /dev/null +++ b/banners/mobile/C24_WMDE_Mobile_DE_09/components/FullPageBanner.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/banners/mobile/C24_WMDE_Mobile_DE_09/components/MiniBanner.vue b/banners/mobile/C24_WMDE_Mobile_DE_09/components/MiniBanner.vue new file mode 100644 index 000000000..7ab1e5afd --- /dev/null +++ b/banners/mobile/C24_WMDE_Mobile_DE_09/components/MiniBanner.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/banners/mobile/C24_WMDE_Mobile_DE_09/components/MinimisedBanner.vue b/banners/mobile/C24_WMDE_Mobile_DE_09/components/MinimisedBanner.vue new file mode 100644 index 000000000..7678ce7c6 --- /dev/null +++ b/banners/mobile/C24_WMDE_Mobile_DE_09/components/MinimisedBanner.vue @@ -0,0 +1,32 @@ + + + + + diff --git a/banners/mobile/C24_WMDE_Mobile_DE_09/content/BannerSlides.vue b/banners/mobile/C24_WMDE_Mobile_DE_09/content/BannerSlides.vue new file mode 100644 index 000000000..48524e525 --- /dev/null +++ b/banners/mobile/C24_WMDE_Mobile_DE_09/content/BannerSlides.vue @@ -0,0 +1,75 @@ + + +Unser Spendenziel: {{ goalDonationSum }} Millionen €
+Hi,
++ vielleicht kommen wir gerade ungelegen, aber dennoch: Klicken Sie jetzt bitte nicht weg! Am + heutigen {{ currentDayName }}, den {{ liveDateAndTime.currentDate }}, um {{ liveDateAndTime.currentTime }} bitten wir Sie, + die Unabhängigkeit von Wikipedia zu unterstützen. +
+
+ {{ campaignDaySentence }}
+
+ Die durchschnittliche Spende beträgt {{ averageDonation }}, doch bereits 10 € helfen uns weiter. Hat Wikipedia + Ihnen in diesem Jahr Wissen im Wert einer Tasse Kaffee geschenkt? +
++ Dann entscheiden Sie sich, eine der seltenen Ausnahmen zu sein, und geben Sie etwas zurück. + Vielen Dank! +
+Unser Spendenziel: {{ goalDonationSum }} Millionen €
+Hi,
++ vielleicht kommen wir gerade ungelegen, aber dennoch: Klicken Sie jetzt bitte nicht weg! Am + heutigen {{ currentDayName }}, den {{ liveDateAndTime.currentDate }}, um {{ liveDateAndTime.currentTime }} bitten wir Sie, + die Unabhängigkeit von Wikipedia zu unterstützen. +
+
+ {{ campaignDaySentence }}
+
+ Die durchschnittliche Spende beträgt {{ averageDonation }}, doch bereits 10 € helfen uns weiter. Hat Wikipedia + Ihnen in diesem Jahr Wissen im Wert einer Tasse Kaffee geschenkt? +
++ Dann entscheiden Sie sich, eine der seltenen Ausnahmen zu sein, und geben Sie etwas zurück. + Falls Sie zögern, + + für eine Spende. + Vielen Dank! +
+Jedes Jahr sind wir auf Menschen wie Sie angewiesen. Jährliche Spenden helfen uns' + + ' besonders und ermöglichen langfristige Weiterentwicklungen.
' + + 'Sie gehen kein Risiko ein: Jederzeit formlos zu sofort kündbar.
', + 'upgrade-to-yearly-no': 'Nein, ich spende einmalig {{amount}}', + 'upgrade-to-yearly-yes': 'Ja, ich spende {{amount}} jährlich', + 'campaign-day-only-n-days': 'Heute sind es nur noch {{days}} Tage bis zum Ende unserer Spendenkampagne.', + 'soft-close-prompt': 'Wikipedia später unterstützen?', + 'soft-close-button-already-donated': 'Habe schon gespendet', + 'amount-total': '' +}; + +export default messages; diff --git a/banners/mobile/C24_WMDE_Mobile_DE_09/messages_var.ts b/banners/mobile/C24_WMDE_Mobile_DE_09/messages_var.ts new file mode 100644 index 000000000..e88a1650a --- /dev/null +++ b/banners/mobile/C24_WMDE_Mobile_DE_09/messages_var.ts @@ -0,0 +1,32 @@ +import DynamicCampaignTextDe from '@src/utils/DynamicContent/messages/DynamicCampaignText.de'; +import { TranslationMessages } from '@src/Translator'; +import UpgradeToYearlyDe from '@src/components/DonationForm/Forms/messages/UpgradeToYearly.de'; +import FooterDe from '@src/components/Footer/messages/Footer.de'; +import MainDonationFormDe from '@src/components/DonationForm/Forms/messages/MainDonationForm.de'; +import SoftCloseDe from '@src/components/SoftClose/messages/SoftClose.de'; +import ReasonsToDonate from '@src/components/ReasonsToDonate/messages/ReasonsToDonate.de'; + +const messages: TranslationMessages = { + ...DynamicCampaignTextDe, + ...FooterDe, + ...MainDonationFormDe, + ...UpgradeToYearlyDe, + ...SoftCloseDe, + ...ReasonsToDonate, + + // custom messages here + 'use-of-funds-link': 'Was Ihre Spende bewirkt', + 'payment-bank-transfer': 'Überweisung', + 'payment-sofort': 'Sofort', + 'upgrade-to-yearly-copy': 'Jedes Jahr sind wir auf Menschen wie Sie angewiesen. Jährliche Spenden helfen uns' + + ' besonders und ermöglichen langfristige Weiterentwicklungen.
' + + 'Sie gehen kein Risiko ein: Jederzeit formlos zu sofort kündbar.
', + 'upgrade-to-yearly-no': 'Nein, ich spende einmalig {{amount}}', + 'upgrade-to-yearly-yes': 'Ja, ich spende {{amount}} jährlich', + 'campaign-day-only-n-days': 'Heute sind es nur noch {{days}} Tage bis zum Ende unserer Spendenkampagne.', + 'soft-close-prompt': 'Wikipedia später unterstützen?', + 'soft-close-button-already-donated': 'Habe schon gespendet', + 'amount-total': '' +}; + +export default messages; diff --git a/banners/mobile/C24_WMDE_Mobile_DE_09/styles/Banner.scss b/banners/mobile/C24_WMDE_Mobile_DE_09/styles/Banner.scss new file mode 100644 index 000000000..ef5ca15ed --- /dev/null +++ b/banners/mobile/C24_WMDE_Mobile_DE_09/styles/Banner.scss @@ -0,0 +1,56 @@ +@use 'src/themes/Mikings/variables/globals'; +@use 'src/themes/Mikings/variables/fonts'; + +@keyframes hide-mini { + 0% { + opacity: 1; + } + 99% { + opacity: 0; + } + 100% { + display: none; + } +} + +.wmde-banner { + + &-full { + visibility: hidden; + opacity: 0; + transform: scale( 1.1 ); + transition: opacity 500ms globals.$banner-easing, transform 500ms globals.$banner-easing; + } + + &-wrapper { + font-size: 16px; + font-family: fonts.$ui; + box-shadow: 0 3px 0.6em rgba( 60 60 60 / 40% ); + background-color: var( --main-background ); + color: var( --main-color ); + + &--full-page { + .wmde-banner-mini { + animation: hide-mini 500ms; + } + .wmde-banner-full { + visibility: visible; + opacity: 1; + transform: scale( 1 ); + } + } + + &--soft-closing { + .wmde-banner-mini { + display: none; + } + } + } + + &--closed, + &--not-shown { + .wmde-banner-wrapper { + display: none; + } + } +} diff --git a/banners/mobile/C24_WMDE_Mobile_DE_09/styles/FullPageBanner.scss b/banners/mobile/C24_WMDE_Mobile_DE_09/styles/FullPageBanner.scss new file mode 100644 index 000000000..266b1a19f --- /dev/null +++ b/banners/mobile/C24_WMDE_Mobile_DE_09/styles/FullPageBanner.scss @@ -0,0 +1,99 @@ +@use '@src/themes/Mikings/variables/globals'; +@use '@src/themes/Mikings/variables/breakpoints'; + +.wmde-banner { + &-full { + border: 2px solid var( --full-border ); + background: var( --full-background ); + position: fixed; + top: 0; + z-index: 1000; + height: 100vh; + width: 100vw; + + &-content { + overflow-y: auto; + height: 100%; + width: 100%; + } + + p { + padding-bottom: 16px; + } + + &-close { + position: absolute; + top: 16px; + right: 16px; + height: 35px; + width: 35px; + padding: 5px; + background: var( --full-background ); + z-index: 99; + border: none; + border-radius: 50%; + + &:hover { + cursor: pointer; + } + + .close-button { + text-decoration: underline; + } + } + + &-info { + padding: 16px; + } + + &-call-to-action { + position: relative; + color: var( --full-cta-color ); + background: var( --full-cta-background ); + font-weight: bold; + height: 31px; + line-height: 31px; + text-align: center; + + &-optional-text { + display: none; + + @include breakpoints.tablet-portrait-up { + display: inline; + } + } + + &::after { + content: ''; + position: absolute; + bottom: -4px; + left: 50%; + margin-left: -4px; + width: 0; + height: 0; + border-style: solid; + border-width: 5px 4px 0; + border-color: var( --full-cta-background ) transparent transparent transparent; + } + } + + .banner-text-title { + margin-right: 30px; + } + + &-small-print { + text-align: center; + font-size: 12px; + margin-bottom: 16px; + + a { + color: var( --full-smallprint-color ); + + &:hover, + &:focus { + text-decoration: underline; + } + } + } + } +} diff --git a/banners/mobile/C24_WMDE_Mobile_DE_09/styles/MiniBanner.scss b/banners/mobile/C24_WMDE_Mobile_DE_09/styles/MiniBanner.scss new file mode 100644 index 000000000..2bd2f4059 --- /dev/null +++ b/banners/mobile/C24_WMDE_Mobile_DE_09/styles/MiniBanner.scss @@ -0,0 +1,157 @@ +@use '@src/themes/Mikings/variables/globals'; + +$height: 288px !default; + +.wmde-banner { + &-mini { + display: flex; + flex-direction: column; + min-height: $height; + padding: 16px 0; + position: relative; + border: 2px solid var( --mini-border ); + background: var( --mini-background ); + + &-close { + position: absolute; + height: 36px; + width: 36px; + top: 11px; + right: 16px; + text-align: center; + background: var( --mini-close-background ); + padding: 10px; + z-index: 2; + + &-button { + border: none; + margin-top: auto; + float: right; + height: 16px; + line-height: 16px; + width: 16px; + background: var( --mini-close-background ); + z-index: 2; + + svg { + height: 16px; + width: 16px; + } + + &:hover { + cursor: pointer; + } + } + } + + &-headline { + height: 25px; + text-align: center; + margin: 0 16px 16px; + + &-background { + position: relative; + text-align: left; + + @media ( min-width: 400px ) { + text-align: center; + } + + /* single line above container */ + &::before { + content: ''; + display: block; + background: var( --mini-headline-line ); + width: 100%; + height: 1px; + position: absolute; + top: 50%; + z-index: 1; + } + } + + &-content { + position: relative; + display: inline-block; + font-weight: bold; + font-size: 14px; + line-height: 25px; + color: var( --mini-headline-color ); + background: var( --mini-headline-background ); + padding: 0 5px; + z-index: 2; + white-space: nowrap; + + @media ( min-width: 330px ) { + font-size: 16px; + } + + @media ( min-width: 360px ) { + font-size: 18px; + } + } + } + + &-slideshow { + display: flex; + flex-direction: column; + flex: 1 1 auto; + } + + &-button-group { + display: flex; + justify-content: center; + } + + &-button, + &-button-preselect { + width: 50%; + height: 40px; + border: none; + border-radius: 20px; + font-weight: bold; + color: var( --mini-button-color ); + margin: 0 16px; + font-size: 14px; + white-space: nowrap; + + @media ( min-width: 370px ) { + font-size: 16px; + } + } + + &-button { + background: var( --mini-button-background ); + + &:hover, + &:focus { + background: var( --mini-button-background-hover ); + } + } + + &-button-preselect { + background: var( --mini-button-alt-background ); + + &:hover, + &:focus { + background: var( --mini-button-alt-background-hover ); + } + } + + .smallprint-mini { + text-align: center; + font-size: 11px; + margin-top: 12px; + margin-bottom: -5px; + + a { + color: var( --mini-smallprint-color ); + + &:hover, + &:focus { + text-decoration: underline; + } + } + } + } +} diff --git a/banners/mobile/C24_WMDE_Mobile_DE_09/styles/MiniBanner_var.scss b/banners/mobile/C24_WMDE_Mobile_DE_09/styles/MiniBanner_var.scss new file mode 100644 index 000000000..aafadbf3c --- /dev/null +++ b/banners/mobile/C24_WMDE_Mobile_DE_09/styles/MiniBanner_var.scss @@ -0,0 +1,161 @@ +@use '@src/themes/Mikings/variables/globals'; + +$height: 288px !default; + +.wmde-banner { + &-mini { + display: flex; + flex-direction: column; + min-height: $height; + padding: 16px 0; + position: relative; + border: 2px solid var( --mini-border ); + background: var( --mini-background ); + + &-close { + position: absolute; + height: 36px; + width: 36px; + top: 11px; + right: 16px; + text-align: center; + background: var( --mini-close-background ); + padding: 10px; + z-index: 2; + + &-button { + border: none; + margin-top: auto; + float: right; + height: 16px; + line-height: 16px; + width: 16px; + background: var( --mini-close-background ); + z-index: 2; + + svg { + height: 16px; + width: 16px; + } + + &:hover { + cursor: pointer; + } + } + } + + &-headline { + height: 25px; + text-align: center; + margin: 0 16px 16px; + + &-background { + position: relative; + text-align: left; + + @media ( min-width: 400px ) { + text-align: center; + } + + /* single line above container */ + &::before { + content: ''; + display: block; + background: var( --mini-headline-line ); + width: 100%; + height: 1px; + position: absolute; + top: 50%; + z-index: 1; + } + } + + &-content { + position: relative; + display: inline-block; + font-weight: bold; + font-size: 14px; + line-height: 25px; + color: var( --mini-headline-color ); + background: var( --mini-headline-background ); + padding: 0 5px; + z-index: 2; + white-space: nowrap; + + @media ( min-width: 330px ) { + font-size: 16px; + } + + @media ( min-width: 360px ) { + font-size: 18px; + } + } + } + + &-slideshow { + display: flex; + flex-direction: column; + flex: 1 1 auto; + } + + &-button-group { + display: flex; + justify-content: center; + } + + &-button, + &-button-preselect { + width: 50%; + height: 40px; + border: none; + border-radius: 20px; + font-weight: bold; + color: var( --mini-button-color ); + margin: 0 16px; + font-size: 14px; + white-space: nowrap; + + @media ( min-width: 370px ) { + font-size: 16px; + } + } + + &-button { + background: var( --mini-button-background ); + + &:hover, + &:focus { + background: var( --mini-button-background-hover ); + } + } + + &-button-preselect { + background: var( --mini-button-alt-background ); + + &:hover, + &:focus { + background: var( --mini-button-alt-background-hover ); + } + } + + .smallprint-mini { + text-align: center; + font-size: 11px; + margin-top: 12px; + margin-bottom: -5px; + + a { + color: var( --mini-smallprint-color ); + + &:hover, + &:focus { + text-decoration: underline; + } + } + } + + .wmde-banner-slide-reasons-to-donate-sentence { + margin-bottom: 0; + } + } +} diff --git a/banners/mobile/C24_WMDE_Mobile_DE_09/styles/MinimisedBanner.scss b/banners/mobile/C24_WMDE_Mobile_DE_09/styles/MinimisedBanner.scss new file mode 100644 index 000000000..71c9abf8d --- /dev/null +++ b/banners/mobile/C24_WMDE_Mobile_DE_09/styles/MinimisedBanner.scss @@ -0,0 +1,96 @@ +$transition-easing: cubic-bezier( 0.555, 0.155, 0.14, 0.945 ) !default; + +.wmde-banner { + &-minimised { + + height: 82px; + + &-inner { + flex: 1 0 auto; + display: flex; + flex-direction: column; + padding: 16px 0 18px; + position: relative; + border: 2px solid var( --mini-border ); + background: var( --mini-background ); + height: auto; + box-shadow: none; + } + + &-headline, + &-content { + padding: 0 16px; + margin-right: 26px; + } + + &-headline { + font-weight: bold; + } + + &-highlighted-text { + background: var( --minimise-text-highlight-background ); + font-weight: bold; + } + + &-close { + position: absolute; + height: 36px; + width: 36px; + top: 2px; + right: 6px; + text-align: center; + background: var( --mini-close-background ); + padding: 10px; + z-index: 2; + + &-button { + border: none; + margin-top: auto; + float: right; + height: 16px; + line-height: 16px; + width: 16px; + background: var( --mini-close-background ); + z-index: 2; + + svg { + height: 16px; + width: 16px; + } + + &:hover { + cursor: pointer; + } + } + } + + &-maximise { + height: 16px; + display: flex; + justify-content: center; + transition: height $transition-easing var( --wmde-banner-transition-duration ); + + &-tab { + height: 16px; + border: 2px solid var( --mini-border ); + border-top: none; + border-radius: 0 0 3px 3px; + box-shadow: var( --mini-box-shadow ); + } + + &-button { + border: none; + border-radius: 2px; + background: var( --mini-background ); + color: var( --minimise-color ); + position: relative; + height: 32px; + top: -18px; + cursor: pointer; + font-size: 14px; + font-weight: bold; + width: 175px; + } + } + } +} diff --git a/banners/mobile/C24_WMDE_Mobile_DE_09/styles/styles.scss b/banners/mobile/C24_WMDE_Mobile_DE_09/styles/styles.scss new file mode 100644 index 000000000..f6b7092a4 --- /dev/null +++ b/banners/mobile/C24_WMDE_Mobile_DE_09/styles/styles.scss @@ -0,0 +1,29 @@ +@use 'src/themes/Mikings/swatches/skin_default' with ( + $upgrade-to-yearly-button-form: true, + $progress-bar: true, + $soft-close: true, + $thank-you-box: true +); +@use 'src/components/BannerConductor/banner-transition'; +@use 'src/themes/UseOfFunds/swatches/skin_default' as uof-default; +@use 'src/themes/UseOfFunds/UseOfFunds'; +@use 'src/themes/Mikings/defaults'; +@use './Banner'; +@use './MiniBanner' with ( + $height: 306px +); +@use './FullPageBanner'; +@use 'src/themes/Mikings/Footer/Footer'; +@use 'src/themes/Mikings/ThankYouBox/ThankYouBox'; +@use 'src/themes/Mikings/Footer/SelectionInput'; +@use 'src/themes/Mikings/DonationForm/MultiStepDonation'; +@use 'src/themes/Mikings/DonationForm/Forms/UpgradeToYearlyButtonForm'; +@use 'src/themes/Mikings/DonationForm/SubComponents/SelectGroup'; +@use 'src/themes/Mikings/DonationForm/SubComponents/SelectCustomAmount'; +@use 'src/themes/Mikings/DonationForm/SubComponents/SmsBox'; +@use 'src/themes/Mikings/Slider/Slider' with ( + $pagination-padding: 10px, + $pagination-height: 40px +); +@use 'src/themes/Mikings/SoftClose/SoftClose'; +@use 'src/themes/Mikings/ProgressBar/ProgressBar'; diff --git a/banners/mobile/C24_WMDE_Mobile_DE_09/styles/styles_var.scss b/banners/mobile/C24_WMDE_Mobile_DE_09/styles/styles_var.scss new file mode 100644 index 000000000..4bf6a0dda --- /dev/null +++ b/banners/mobile/C24_WMDE_Mobile_DE_09/styles/styles_var.scss @@ -0,0 +1,32 @@ +@use 'src/themes/Mikings/swatches/skin_default' with ( + $upgrade-to-yearly-button-form: true, + $progress-bar: true, + $soft-close: true, + $thank-you-box: true +); +@use 'src/components/BannerConductor/banner-transition'; +@use 'src/themes/UseOfFunds/swatches/skin_default' as uof-default; +@use 'src/themes/UseOfFunds/UseOfFunds'; +@use 'src/themes/Mikings/defaults'; +@use './Banner'; +@use './MiniBanner_var' with ( + $height: 306px +); +@use './FullPageBanner'; +@use 'src/themes/Mikings/Footer/Footer'; +@use 'src/themes/Mikings/ThankYouBox/ThankYouBox'; +@use 'src/themes/Mikings/Footer/SelectionInput'; +@use 'src/themes/Mikings/DonationForm/MultiStepDonation'; +@use 'src/themes/Mikings/DonationForm/Forms/UpgradeToYearlyButtonForm'; +@use 'src/themes/Mikings/DonationForm/SubComponents/SelectGroup'; +@use 'src/themes/Mikings/DonationForm/SubComponents/SelectCustomAmount'; +@use 'src/themes/Mikings/DonationForm/SubComponents/SmsBox'; +@use 'src/themes/Mikings/Message/Message'; +@use 'src/themes/Mikings/Slider/Slider' with ( + $pagination-padding: 10px, + $pagination-height: 40px +); +@use 'src/themes/Mikings/SoftClose/SoftClose'; +@use 'src/themes/Mikings/ProgressBar/ProgressBar'; +@use 'src/components/ReasonsToDonate/styles/swatches/skin_default' as reasons-default; +@use 'src/components/ReasonsToDonate/styles/ReasonsToDonate'; diff --git a/campaign_info.toml b/campaign_info.toml index ccc6adb5d..72b912a28 100644 --- a/campaign_info.toml +++ b/campaign_info.toml @@ -6,9 +6,9 @@ [desktop] name = "Desktop" icon = "desktop" -campaign = "C24_WMDE_Desktop_DE_13" -description = "Based on the CTRL banner of C24_WMDE_Desktop_DE_12, VAR uses transaction fees" -campaign_tracking = "13-ba-241113" +campaign = "C24_WMDE_Desktop_DE_14" +description = "Based on the CTRL banner of C24_WMDE_Desktop_DE_13, VAR adds additional copy, displays the '10 good reasons' overlay when the link in the added copy is clicked" +campaign_tracking = "14-ba-241119" preview_link = "/wiki/Wikipedia:Hauptseite?devbanner={{banner}}&banner=B22_WMDE_local_prototype" preview_link_darkmode = "/wiki/Wikipedia:Hauptseite?devbanner={{banner}}&banner=B22_WMDE_local_prototype&vectornightmode=1" preview_url = 'https://de.wikipedia.org/wiki/Wikipedia:Hauptseite?banner={{banner}}&devMode' @@ -17,14 +17,14 @@ use_of_funds_source = "MediaWiki:WMDE_Fundraising/UseOfFunds_2024_DE" # Banners of the campaign, key after "banners" can be anything [desktop.banners.ctrl] -filename = "./banners/desktop/C24_WMDE_Desktop_DE_13/banner_ctrl.ts" -pagename = "B24_WMDE_Desktop_DE_13_ctrl" -tracking = "org-13-241113-ctrl" +filename = "./banners/desktop/C24_WMDE_Desktop_DE_14/banner_ctrl.ts" +pagename = "B24_WMDE_Desktop_DE_14_ctrl" +tracking = "org-14-241119-ctrl" [desktop.banners.var] -filename = "./banners/desktop/C24_WMDE_Desktop_DE_13/banner_var.ts" -pagename = "B24_WMDE_Desktop_DE_13_var" -tracking = "org-13-241113-var" +filename = "./banners/desktop/C24_WMDE_Desktop_DE_14/banner_var.ts" +pagename = "B24_WMDE_Desktop_DE_14_var" +tracking = "org-14-241119-var" [desktop.test_matrix] platform = ["edge", "firefox_win10", "chrome_win10", "safari", "firefox_macos", "chrome_macos", "firefox_linux", "chrome_linux"] @@ -34,9 +34,9 @@ resolution = ["800x600", "1024x768", "1280x960", "1600x1200", "1920x1200", "2560 [mobile] name = "Mobile" icon = "mobile" -campaign = "C24_WMDE_Mobile_DE_08" -description = "Based on CTRL of C24_WMDE_Mobile_DE_07, VAR has different copy." -campaign_tracking = "mob-de-08-ba-241112" +campaign = "C24_WMDE_Mobile_DE_09" +description = "Based on VAR of C24_WMDE_Mobile_DE_08, VAR has 10 reasons pop-up." +campaign_tracking = "mob-de-09-ba-241118" preview_link = "/mobile/wiki/Wikipedia:Hauptseite?devbanner={{banner}}&banner=B22_WMDE_local_prototype&useskin=minerva" preview_link_darkmode = "/mobile/wiki/Wikipedia:Hauptseite?devbanner={{banner}}&banner=B22_WMDE_local_prototype&useskin=minerva&minervanightmode=1" preview_url = 'https://de.m.wikipedia.org/wiki/Wikipedia:Hauptseite?banner={{banner}}&useskin=minerva&devMode' @@ -45,14 +45,14 @@ use_of_funds_source = "MediaWiki:WMDE_Fundraising/UseOfFunds_2024_DE" # Banners of the campaign, key after "banners" can be anything [mobile.banners.ctrl] -filename = "./banners/mobile/C24_WMDE_Mobile_DE_08/banner_ctrl.ts" -pagename = "B24_WMDE_Mobile_DE_08_ctrl" -tracking = "org-mob08-241112-ctrl" +filename = "./banners/mobile/C24_WMDE_Mobile_DE_09/banner_ctrl.ts" +pagename = "B24_WMDE_Mobile_DE_09_ctrl" +tracking = "org-mob09-241118-ctrl" [mobile.banners.var] -filename = "./banners/mobile/C24_WMDE_Mobile_DE_08/banner_var.ts" -pagename = "B24_WMDE_Mobile_DE_08_var" -tracking = "org-mob08-241112-var" +filename = "./banners/mobile/C24_WMDE_Mobile_DE_09/banner_var.ts" +pagename = "B24_WMDE_Mobile_DE_09_var" +tracking = "org-mob09-241118-var" [mobile.test_matrix] device = [ 'samsung_s10', 'iphone_xs_max', 'iphone_5s', 'iphone_se', "iphone_8", "iphone_12_mini", "iphone_7_plus", "iphone_11_pro_max"] diff --git a/src/components/ReasonsToDonate/ReasonsToDonate.vue b/src/components/ReasonsToDonate/ReasonsToDonate.vue index 37827dbc7..9994eb9fb 100644 --- a/src/components/ReasonsToDonate/ReasonsToDonate.vue +++ b/src/components/ReasonsToDonate/ReasonsToDonate.vue @@ -14,7 +14,7 @@ class="wmde-banner-10-reasons-accordion-title" tabindex="0" :class="$translate( `reasons-${index}-class` )" - @click="$emit( 'accordionItemClicked', index.toString() )" + @click="$emit( 'accordionItemClicked', { itemNumber: index.toString() } )" > {{ $translate( `reasons-${index}-title` ) }} @@ -41,7 +41,7 @@ diff --git a/src/components/ReasonsToDonate/messages/ReasonsToDonate.de.ts b/src/components/ReasonsToDonate/messages/ReasonsToDonate.de.ts index 174211cda..fa85511dd 100644 --- a/src/components/ReasonsToDonate/messages/ReasonsToDonate.de.ts +++ b/src/components/ReasonsToDonate/messages/ReasonsToDonate.de.ts @@ -3,7 +3,7 @@ import { TranslationMessages } from '@src/Translator'; const translations: TranslationMessages = { 'reasons-title': '10 Gründe, warum Sie für Wikipedia spenden sollten:', - 'reasons-1-title': 'Etwas zurückgeben.', + 'reasons-1-title': 'Etwas zurückgeben', 'reasons-1-content': 'Das kostenlose Wissen in Wikipedia hilft Ihnen regelmäßig weiter? Mit einer Spende geben Sie' + ' etwas zurück – und helfen uns damit sehr wirkungsvoll. Denn wir haben Kosten wie jede andere Top-Website der Welt.', 'reasons-1-class': 'reasons-giving-back', @@ -13,49 +13,49 @@ const translations: TranslationMessages = { ' Denn dieses gigantische Wissensprojekt entsteht nur dank dieser unermüdlichen, ehrenamtlichen Arbeit.', 'reasons-2-class': 'reasons-giving-back', - 'reasons-3-title': 'In (Ihr) Wissen investieren.', + 'reasons-3-title': 'In (Ihr) Wissen investieren', 'reasons-3-content': 'Ihre Spende stellt sicher, dass Wikipedia auch in Zukunft wachsen und gedeihen kann. Und Sie damit' + ' weiterhin 24/7 auf kostenloses und fundiertes Wissen zugreifen können.', 'reasons-3-class': 'reasons-giving-back', - 'reasons-4-title': 'Unabhängigkeit sichern.', + 'reasons-4-title': 'Unabhängigkeit sichern', 'reasons-4-content': 'Wikipedia ist und bleibt unverkäuflich! Sie wird niemals Konzernen, Milliardären oder Regierungen' + ' gehören. Ihre Spende sichert die finanzielle Unabhängigkeit der Wikipedia. So bleiben ihre Inhalte neutral und vertrauenswürdig. ', 'reasons-4-class': 'reasons-knowledge', - 'reasons-5-title': 'Freien Zugang zu Wissen ermöglichen.', + 'reasons-5-title': 'Freien Zugang zu Wissen ermöglichen', 'reasons-5-content': 'Ihre Spende ermöglicht allen Menschen weltweit kostenfreien Zugang zu zuverlässigem, vertrauenswürdigem' + ' Wissen – unabhängig von Geld, Status und Herkunft.', 'reasons-5-class': 'reasons-knowledge', - 'reasons-6-title': 'Den Fels in der Brandung stärken.', + 'reasons-6-title': 'Den Fels in der Brandung stärken', 'reasons-6-content': 'Fake News, Manipulation, Desinformation und Zensur verbreiten sich rasant. Ihre Spende ermöglicht unsere' + ' Arbeit an technischen Lösungen zur Verbesserung der “Abwehrkräfte”, damit Wikipedia auch in Zukunft mit neutralem und gesichertem Wissen Orientierung gibt.', 'reasons-6-class': 'reasons-knowledge', - 'reasons-7-title': 'Wissen bewahren.', + 'reasons-7-title': 'Wissen bewahren', 'reasons-7-content': 'Wikipedia & Co. sichern Wissen in Form von Text, Bildern, Filmen und Daten im digitalen Raum. Ihre Spende' + ' trägt dazu bei, dass dieses kulturelle Erbe auch in Zukunft erhalten und für alle zugänglich ist.', 'reasons-7-class': 'reasons-knowledge', - 'reasons-8-title': 'Die Freiwilligen unterstützen.', + 'reasons-8-title': 'Die Freiwilligen unterstützen', 'reasons-8-content': 'Wir fördern die unermüdliche Arbeit der Freiwilligen für Wikipedia mit vielen Projekten und Aktivitäten. Ihre' + ' Spende hilft uns, diese Arbeit bestmöglich zu unterstützen, damit sich Wikipedia weiterentwickelt.', 'reasons-8-class': 'reasons-technical', - 'reasons-9-title': 'Das technische Fundament finanzieren.', + 'reasons-9-title': 'Das technische Fundament finanzieren', 'reasons-9-content': 'Der technische Betrieb der Wikimedia-Projekte verursacht hohe laufende Kosten. Ihre Spende hilft' + ' sicherzustellen, dass Wikipedia überall, jederzeit und schnell erreichbar ist sowie die höchsten Sicherheitsstandards erfüllt.', 'reasons-9-class': 'reasons-technical', - 'reasons-10-title': 'Technische Innovationen ermöglichen.', + 'reasons-10-title': 'Technische Innovationen ermöglichen', 'reasons-10-content': 'Ihre Spende ermöglicht technische Verbesserungen, damit die Nutzung von Wikipedia noch einfacher und' + ' vielfältiger wird. Zudem erleichtern wir durch ständige Optimierung der Software, dass die Freiwilligen die besten Bedingungen für ihre Arbeit vorfinden.', 'reasons-10-class': 'reasons-technical', 'reasons-final-content': 'Überzeugt? Ganz gleich, ob Sie „Ihre“ Wikipedia unterstützen, die wichtige Rolle der' + ' Wikipedia für die ganze Gesellschaft stärken oder einfach nur Danke sagen wollen –', - 'reasons-final-content-highlighted': 'Ihre Spende, ganz gleich, ob 5 € oder 50 €, ist immer ein wichtiger Beitrag.', + 'reasons-final-content-highlighted': 'Jede Spende, ob 5 € oder 50 €, ist immer ein wichtiger Beitrag.', 'reasons-cta': 'Jetzt spenden' }; diff --git a/src/components/ReasonsToDonate/styles/ReasonsToDonate.scss b/src/components/ReasonsToDonate/styles/ReasonsToDonate.scss index 3666a269f..3311d6834 100644 --- a/src/components/ReasonsToDonate/styles/ReasonsToDonate.scss +++ b/src/components/ReasonsToDonate/styles/ReasonsToDonate.scss @@ -169,7 +169,7 @@ } &-accordion-content { - font-size: 14px; + font-size: 16px; padding: 0 20px 14px 60px; } diff --git a/src/themes/Mikings/Message/Message.scss b/src/themes/Mikings/Message/Message.scss new file mode 100644 index 000000000..7cf42649c --- /dev/null +++ b/src/themes/Mikings/Message/Message.scss @@ -0,0 +1,18 @@ +.wmde-banner { + &-message { + button { + all: unset; + } + + button, + a { + color: var( --content-link-color ); + cursor: pointer; + + &:hover, + &:focus { + color: var( --content-link-color-hover ); + } + } + } +} diff --git a/src/themes/Mikings/Slider/Slider.scss b/src/themes/Mikings/Slider/Slider.scss index 425961157..db7f47c1e 100644 --- a/src/themes/Mikings/Slider/Slider.scss +++ b/src/themes/Mikings/Slider/Slider.scss @@ -30,6 +30,21 @@ $pagination-height: 60px !default; margin: 13px 0 16px; padding: 0; } + + button { + all: unset; + } + + button, + a { + color: var( --content-link-color ); + cursor: pointer; + + &:hover, + &:focus { + color: var( --content-link-color-hover ); + } + } } } diff --git a/src/themes/Mikings/swatches/color_light.scss b/src/themes/Mikings/swatches/color_light.scss index 4b22b105f..e71d9ea01 100644 --- a/src/themes/Mikings/swatches/color_light.scss +++ b/src/themes/Mikings/swatches/color_light.scss @@ -40,6 +40,8 @@ $purple100: #6b4ba1; --main-background: #{$white}; --main-color: #{$grey800}; --color-error: #{$error}; + --content-link-color: #{$blue600}; + --content-link-color-hover: #{$blue400}; --mini-background: #{$white}; --mini-border: #{$blue600}; diff --git a/src/themes/Svingle/Message/Message.scss b/src/themes/Svingle/Message/Message.scss index e9c27dd1b..54f08cb75 100644 --- a/src/themes/Svingle/Message/Message.scss +++ b/src/themes/Svingle/Message/Message.scss @@ -39,5 +39,21 @@ $font-sizes: ( breakpoints.$extra-small: 18px ) !default; text-align: center; padding-bottom: 15px; } + + button { + all: unset; + } + + button, + a { + color: var( --message-link ); + text-decoration: underline; + cursor: pointer; + + &:hover, + &:focus { + color: var( --message-link-hover ); + } + } } } diff --git a/src/themes/Svingle/Slider/KeenSlider.scss b/src/themes/Svingle/Slider/KeenSlider.scss index 37368198f..6fdd0e33d 100644 --- a/src/themes/Svingle/Slider/KeenSlider.scss +++ b/src/themes/Svingle/Slider/KeenSlider.scss @@ -47,6 +47,22 @@ $margin-bottom: 15px !default; p:last-child { margin: 0; } + + button { + all: unset; + } + + button, + a { + color: var( --message-link ); + text-decoration: underline; + cursor: pointer; + + &:hover, + &:focus { + color: var( --message-link-hover ); + } + } } &-title { diff --git a/src/themes/Svingle/swatches/color_light.scss b/src/themes/Svingle/swatches/color_light.scss index 491b138da..af7c99c8d 100644 --- a/src/themes/Svingle/swatches/color_light.scss +++ b/src/themes/Svingle/swatches/color_light.scss @@ -1,3 +1,6 @@ +$yellow100: #ffee00; +$yellow200: #ffef9d; + $white: #ffffff; $black: #000000; @@ -43,6 +46,9 @@ $blue700: #2a4b8d; --message-color: #{$white}; --message-border: #{$red600}; + --message-link: #{$yellow100}; + --message-link-hover: #{$yellow200}; + --color-error: #{$red600}; --button-close-fill: #{$grey600}; --button-background: #{$red600}; diff --git a/src/tracking/events/ReasonsToDonateCTAClickedEvent.ts b/src/tracking/events/ReasonsToDonateCTAClickedEvent.ts index e8f904855..5f41421e1 100644 --- a/src/tracking/events/ReasonsToDonateCTAClickedEvent.ts +++ b/src/tracking/events/ReasonsToDonateCTAClickedEvent.ts @@ -7,8 +7,4 @@ export class ReasonsToDonateCTAClickedEvent implements TrackingEvent