hunk.code_window: .slidev-vclick-hidden {
     transform: scale(0);
   }
   ```
   Learn more about [customizing styles](/custom/directory-structure#style).
   ## Pages Transitions
   The built-in support for slides is NOT YET provided in the current version. We are planning to add support for them in the next major version. Before that, you can still use your custom styles and libraries to do that.
hunk.labels: keep keep keep keep add keep keep keep keep keep
hunk.after_edit: To specify animations for only certain slide or layout
   ```scss
   .slidev-page-7,
   .slidev-layout.my-custom-layout {
     .slidev-vclick-target {
       transition: all 500ms ease;
     }
     .slidev-vclick-hidden {
       transform: scale(0);
     }
   }
   ```
  
hunk.file_path: docs/guide/animations.md
hunk.type: add
file: import { getCurrentInstance, onMounted } from 'vue'
  import * as monaco from 'monaco-editor'
  import { createSingletonPromise } from '@antfu/utils'
  /* __imports__ */
  
  const setup = createSingletonPromise(async() => {
    monaco.languages.typescript.typescriptDefaults.setCompilerOptions({
      ...monaco.languages.typescript.typescriptDefaults.getCompilerOptions(),
      noUnusedLocals: false,
      noUnusedParameters: false,
      allowUnreachableCode: true,
      allowUnusedLabels: true,
      strict: true,
    })
  
    await Promise.all([
      // load workers
      (async() => {
        const [
          { default: EditorWorker },
          { default: JsonWorker },
          { default: CssWorker },
          { default: HtmlWorker },
          { default: TsWorker },
        ] = await Promise.all([
          import('monaco-editor/esm/vs/editor/editor.worker?worker'),
          import('monaco-editor/esm/vs/language/json/json.worker?worker'),
          import('monaco-editor/esm/vs/language/css/css.worker?worker'),
          import('monaco-editor/esm/vs/language/html/html.worker?worker'),
          import('monaco-editor/esm/vs/language/typescript/ts.worker?worker'),
        ])
  
        // @ts-expect-error
        window.MonacoEnvironment = {
          getWorker(_: any, label: string) {
            if (label === 'json')
              return new JsonWorker()
            if (label === 'css' || label === 'scss' || label === 'less')
              return new CssWorker()
            if (label === 'html' || label === 'handlebars' || label === 'razor')
              return new HtmlWorker()
            if (label === 'typescript' || label === 'javascript')
              return new TsWorker()
            return new EditorWorker()
          },
        }
      })(),
    ])
  
    // @ts-expect-error
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    const injection_arg = monaco
  
    /* __async_injections__ */
  
    if (getCurrentInstance())
      await new Promise<void>(resolve => onMounted(resolve))
  
    return { monaco }
  })
  
  export default setup
  
  setup()
  