Skip to content

Background Wallpaper

The background wallpaper configuration controls the site's background image display mode and related effects.

Config File

src/config/backgroundWallpaper.ts

Wallpaper Mode

PropertyTypeDefaultDescription
modestring"banner"Mode: "banner" banner, "fullscreen" full-screen, "overlay" full-screen transparent, "none" solid color
switchablebooleantrueAllow users to switch wallpaper mode via navbar

TIP

Set to false to improve performance (only renders the current mode). It's recommended to pick your preferred mode and disable switching.

Image Configuration

The src property supports multiple formats:

Separate Desktop and Mobile

ts
src: {
  desktop: "assets/images/DesktopWallpaper/d1.avif",
  mobile: "assets/images/MobileWallpaper/m1.avif",
},

Multiple Images (Random)

ts
src: {
  desktop: [
    "assets/images/DesktopWallpaper/d1.avif",
    "assets/images/DesktopWallpaper/d2.avif",
  ],
  mobile: [
    "assets/images/MobileWallpaper/m1.avif",
    "assets/images/MobileWallpaper/m2.avif",
  ],
},

Random Image API

ts
src: {
  desktop: "https://t.alcy.cc/pc",
  mobile: "https://t.alcy.cc/mp",
},

TIP

Image path formats:

  1. public directory (starts with /): not optimized
  2. src directory (no leading /): auto-optimized (recommended)
  3. Remote URL: not optimized, ensure small file size

Avoid renaming your custom images to d1-d6 or m1-m6, as these default sample image names may be overwritten during updates.

Background Video Player

PropertyTypeDefaultDescription
playerEnablebooleanfalseEnable background video player. When enabled, a play button will appear in the navbar
src.playerUrlstring | string[]-Video URL(s). Supports a single path or an array for multi-video cycling
common.playerMode"order" | "random""order"Multi-video playback mode: "order" sequential loop, "random" random shuffle
ts
export const backgroundWallpaper = {
  playerEnable: true,
  src: {
    desktop: [...],
    mobile: [...],
    // Single video
    // playerUrl: "/assets/videos/firefly.mp4",
    // Multiple videos
    playerUrl: [
      "/assets/videos/video1.mp4",
      "/assets/videos/video2.mp4",
    ],
  },
  common: {
    playerMode: "random",
  },
};

TIP

  • Place local videos in the public/assets/videos/ directory
  • The play button is automatically hidden in solid color mode (mode: "none")
  • In multi-video mode, if a video fails to load, the player automatically tries the next one. A failure toast is shown when all videos fail

Common Configuration (Shared by Banner and Fullscreen)

Settings under common are shared between banner wallpaper and fullscreen wallpaper modes.

Text Overlay Dim

PropertyTypeDefaultDescription
common.dimOpacitynumber0.2Banner text overlay darkness, 0-1, higher values = darker

Home Banner Text

PropertyTypeDefaultDescription
common.homeText.enablebooleantrueEnable banner text
common.homeText.switchablebooleantrueAllow user toggle via control panel
common.homeText.titlestring"Lovely firefly!"Main title
common.homeText.titleSizestring"3.8rem"Title font size
common.homeText.subtitlestring | string[]-Subtitle(s)
common.homeText.subtitleSizestring"1.5rem"Subtitle font size

Typewriter Effect

PropertyTypeDefaultDescription
common.homeText.typewriter.enablebooleantrueEnable typewriter effect
common.homeText.typewriter.speednumber100Typing speed (ms)
common.homeText.typewriter.deleteSpeednumber50Delete speed (ms)
common.homeText.typewriter.pauseTimenumber2000Pause time after completion (ms)

INFO

  • Typewriter enabled — cycles through all subtitles
  • Typewriter disabled — randomly shows one subtitle on each refresh
PropertyTypeDefaultDescription
common.navbar.transparentModestring"semi"Mode: "semi" semi-transparent, "full" fully transparent, "semifull" dynamic
common.navbar.enableBlurbooleantrueEnable frosted glass blur
common.navbar.blurnumber5Blur intensity

Wave Animation

PropertyTypeDefaultDescription
common.waves.enableboolean | { desktop, mobile }{ desktop: true, mobile: true }Enable wave animation
common.waves.switchablebooleantrueAllow user toggle

WARNING

Wave animation affects page performance. Enable based on your needs.

Gradient Transition

Automatically enabled when waves are disabled, providing a smooth gradient fade from the wallpaper bottom to the background color.

PropertyTypeDefaultDescription
common.gradient.enableboolean | { desktop, mobile }{ desktop: true, mobile: true }Enable gradient transition
common.gradient.heightstring"15vh"Gradient height
common.gradient.switchablebooleantrueAllow user toggle

INFO

Gradient and waves are mutually exclusive: when waves are enabled, the gradient is automatically hidden; when waves are disabled, the gradient is automatically shown. Both can be independently toggled via the control panel.

Shared carousel configuration for both banner and fullscreen modes. Only works when multiple images are configured.

PropertyTypeDefaultDescription
common.carousel.enablebooleanfalseEnable wallpaper carousel. If disabled, one image is randomly chosen on page refresh
common.carousel.intervalnumber5000Carousel interval in milliseconds
common.carousel.transitionEffectstring"fade"Transition effect: "fade", "zoom", "slide", "kenburns"
common.carousel.switchablebooleanfalseAllow users to toggle carousel in the control panel
ts
common: {
  carousel: {
    enable: true,
    interval: 5000,
    transitionEffect: "kenburns", // "fade" | "zoom" | "slide" | "kenburns"
    switchable: true,
  },
},

Transition effects:

EffectDescription
fadeCross-fade between images
zoomNew image scales up from small to full size
slideNew image slides in from the right
kenburnsKen Burns (recommended) — image slowly zooms in while transitioning via LQIP blurred preview bridge for the smoothest effect

Image Position

PropertyTypeDefaultDescription
banner.positionstring"0% 20%"CSS object-position value. Supports 'center', 'top', 'bottom', 'left', 'right', percentages, etc.

Fullscreen Mode

Fullscreen wallpaper mode fills the entire screen with the background image.

PropertyTypeDefaultDescription
fullscreen.positionstring"center"CSS object-position value

Overlay Mode

PropertyTypeDefaultDescription
overlay.switchableboolean | { opacity, blur, cardOpacity }-Whether users can adjust overlay settings in the display panel. Can be a single switch or per-item switches
overlay.zIndexnumber-1Z-index, ensures wallpaper stays in background layer
overlay.opacitynumber0.8Wallpaper opacity (0-1)
overlay.blurnumber10Background blur (px)
overlay.cardOpacitynumber0.5Card background opacity (0-1). Lower values make cards more transparent

You can control switching behavior in two ways:

ts
overlay: {
  // Option 1: one switch for all overlay settings
  switchable: true,

  // Option 2: per-item control
  // switchable: {
  //   opacity: true,
  //   blur: true,
  //   cardOpacity: true,
  // },
}