Skip to content

Settings to more closely emulate Google Photos #550

@nopoz

Description

@nopoz

I spent some time editing a custom.css to make ImmichFrame more closely emulate the look of the Nest Hub Google Photos screensaver. I thought I would share them here in case others wanted to do the same. Whether it's just for other user's reference or if they can be incorporated into the ImmichFrame code - either way that's fine with me. I assume the current default layout was made with the intention of emulating the look of the Photos Screensaver?

Example:
Image

custom.css:

/* ===========================================
   FONT IMPORT (must be at top)
   =========================================== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@200;300;400;600&display=swap');

/* ===========================================
   GLOBAL CLOCK STYLES
   =========================================== */

/* Apply Google-style font, color, and tighter letter-spacing */
#clock, #photodate {
  font-family: 'Inter', sans-serif;
  letter-spacing: -0.05em;
}

/* Align all clock elements to the left */
#clock {
  text-align: left;
}

/* ===========================================
   CLOCK DATE
   =========================================== */

#clockdate {
  text-align: left;
  margin-left: 0.3rem;            /* Align left edge with clocktime */
  opacity: 0.85;                  /* Slightly transparent like Google's style */
  font-weight: 200;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
}

/* ===========================================
   CLOCK TIME
   =========================================== */

#clocktime {
  display: inline-block;          /* Allow time and weather to sit side by side */
  margin-top: -0.25rem;           /* Reduce vertical gap between date and time */
  font-weight: 300;
  text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.4);
}

/* ===========================================
   WEATHER DISPLAY
   =========================================== */

#clockweather {
  display: inline-block;          /* Sit beside clocktime */
  vertical-align: middle;
  margin-left: -0.5rem;           /* Reduce horizontal gap between time and weather */
}

#clockweatherinfo {
  transform: scale(0.85);         /* Reduce overall scale of weather info */
  font-weight: 300;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
}

/* Hide location text (e.g., "San Francisco,") */
div.weather-location {
  display: none;
}

/* Fine-tune vertical alignment of temperature text */
.weather-temperature {
  position: relative;
  top: 1px;
}

/* Adjust weather icon position (icon has built-in whitespace) */
img.icon-weather {
  margin-right: -0.15rem;         /* Reduce gap between icon and temperature */
  position: relative;
  top: -2px;                      /* Nudge icon up for better alignment */
}

/* Replace "°C" with just "°" */
.weather-unit {
  font-size: 0;                   /* Hide original text */
}

.weather-unit::before {
  content: "°";
  font-size: 1.25rem;
}

/* Responsive font sizes for the degree symbol */
@media (min-width: 768px) {
  .weather-unit::before {
    font-size: 1.5rem;
  }
}

@media (min-width: 1024px) {
  .weather-unit::before {
    font-size: 1.875rem;
  }
}

/* ===========================================
   PHOTO DATE
   =========================================== */

#photodate {
  padding-bottom: 0.98rem;        /* Align baseline with clocktime */
  font-weight: 200;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
}

/* Hide calendar icon */
#photodate .info-icon {
  display: none;
}

settings.yml:

General:
  DownloadImages: false
  RenewImagesDuration: 30
  RefreshAlbumPeopleInterval: 12
  PhotoDateFormat: "LL-dd-yyyy"
  ImageLocationFormat: "City,State,Country"
  UnitSystem: "metric"
  Webhook: null
  Language: en
  Interval: 45
  TransitionDuration: 2
  ShowClock: true
  ClockFormat: "h:mm"
  ShowProgressBar: false
  ShowPhotoDate: true
  ShowImageDesc: false
  ShowPeopleDesc: false
  ShowAlbumName: false
  ShowImageLocation: false
  PrimaryColor: "#FFFFFF"
  SecondaryColor: "#000000"
  Style: none
  BaseFontSize: '17px'
  ShowWeatherDescription: false
  ImageZoom: true
  ImagePan: false
  ImageFill: false
  Layout: splitview

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions