Skip to main content

Mobiscroll 6 upgrade guide

Overview

This guide outlines all the major changes, deprecations, and removals introduced in Mobiscroll version 6. It includes detailed explanations and practical migration examples to help you upgrade from v5.

Browser Support

Starting with Mobiscroll 6.0, we dropped support for IE11. Additionally, we updated the minimum supported browser versions:

  • Chrome 56
  • Firefox 32
  • iOS/Safari 13
  • Edge 79

Frameworks

Starting with Mobiscroll 6.0 we updated the minimum supported framework and language versions. Please upgrade to Vue 3+ to continue using Mobiscroll. Additionally, if you're using TypeScript, please make sure you're on version 4 or newer.

General

Theme updates

Mobiscroll 6.0 introduces redesigned themes based on the latest Fluent, Material, and iOS design systems. These updated themes are used by default and are exposed primarily through CSS variables.
For a complete list of theme-level variables and guidance on how to override them, see the CSS variables overview.

If you prefer the previous (v5) appearance, you can continue using the legacy themes. Legacy themes are not part of the default styles, so you need to load an extra legacy stylesheet bundle.

The legacy package contains:

  • mobiscroll-legacy.min.css
  • mobiscroll-legacy.scss

Using legacy themes

Regardless of whether Mobiscroll was installed from NPM or from a downloaded package, import the legacy styles from the Vue package:

Using CSS:

import '@mobiscroll/vue/dist/css/mobiscroll-legacy.min.css';

Using SCSS:

@import '@mobiscroll/vue/dist/css/mobiscroll-legacy.scss';

Then set the legacy theme:

After loading the styles, reference one of the legacy themes:

mobiscroll.setOptions({
theme: 'ios-legacy',
// theme: 'material-legacy'
// theme: 'windows-legacy'
});

Sass updates

Starting with Mobiscroll 6.0, we updated our Sass code to remove deprecated functions. The minimum supported Sass version is now 1.80.0., and we no longer support node-sass. If you're currently using node-sass, we recommend switching to the sass package, which is now the primary implementation. For help with the migration, refer to the official Sass upgrade guide.

HTML support in strings

We dropped support for HTML markup in strings for improved security. It is only supported in jQuery and JavaScript render functions.

Datepicker

Changed

We changed the default refDate from 1970/01/01 to today.

Removed

We removed the weeks option. Use calendarSize instead.

<script setup>
import { MbscDatepicker } from '@mobiscroll/vue';
import '@mobiscroll/vue/dist/css/mobiscroll.min.css';
</script>

<template>
<MbscDatepicker
:weeks="6"
/>
</template>

Agenda

We performed a cleanup and standardization of slot names. This improves consistency across components. Deprecated names are still supported for now but will be removed in a future release.

Changed

We changed the default refDate from 1970/01/01 to today.

We renamed the #event slot to #agendaEvent.
We renamed the #eventContent slot to #agendaEventContent.
We renamed the #day slot to #agendaDay.

<template>
<MbscEventcalendar>
<template #event="data">
<!-- Template content -->
</template>
</ MbscEventcalendar>
</template>

Eventcalendar

We performed a cleanup and standardization of slot names. This improves consistency across components. Deprecated names are still supported for now but will be removed in a future release.

Changed

We changed the default refDate from 1970/01/01 to today.

We renamed the #label slot to #calendarEvent.
We renamed the #labelContent slot to #calendarEventContent.
We renamed the #event slot to #popoverEvent.
We renamed the #eventContent slot to #popoverEventContent.
We renamed the #day slot to #calendarDay.
We renamed the #dayContent slot to #calendarDayContent.

<template>
<MbscEventcalendar>
<template #label="data">
<!-- Template content -->
</template>
</ MbscEventcalendar>
</template>

Scheduler

Header consistency

We unified the Scheduler header layout across different view configurations. The single-day view with resources now uses the same header structure as multi-day (e.g., weekly, monthly or daily) views. This ensures a consistent look and feel regardless of the selected view type.

Changed

We performed a cleanup and standardization of slot names. This improves consistency across components. Deprecated names are still supported for now but will be removed in a future release.

We renamed the #event slot to #schedulerEvent.
We renamed the #eventContent slot to #schedulerEventContent.
We renamed the #day slot to #schedulerDay.
We renamed the #dayContent slot to #schedulerDayContent.

<template>
<MbscEventcalendar>
<template #scheduleEvent="data">
<!-- Template content -->
</template>
</ MbscEventcalendar>
</template>

We also renamed the schedule view to scheduler:

<template>
<MbscEventcalendar :view="{ schedule: { type: 'day' } }" />
</template>

Timeline

We performed a cleanup and standardization of slot names. This improves consistency across components. Deprecated names are still supported for now but will be removed in a future release.

Changed

We renamed the #event slot to #timelineEvent.
We renamed the #eventContent slot to #timelineEventContent.
We renamed the #day slot to #timelineDay.

<template>
<MbscEventcalendar>
<template #scheduleEvent="data">
<!-- Template content -->
</template>
</ MbscEventcalendar>
</template>

We added a new eventDisplay property to the view option that takes 'exact' or 'fill' as values, and deprecated the eventList boolean property.

<template>
<MbscEventcalendar :view="{ timeline: { type: 'day', eventList: true } }" />
</template>

Removed

We removed the deprecated resolution property from the view option. Use the resolutionHorizontal property instead.

<template>
<MbscEventcalendar :view="{ timeline: { type: 'day', resolutiuon: 'hour' } }" />
</template>