<img src="https://picsum.photos/id/696/300/300" alt="Flowers">
@property --h {
  syntax: "<length>";
  initial-value: 0px;
  inherits: true;
}

img {
  --s: 200px; /* the image size */
  --b: 10px;
  --c: #8A9B0F;
  --_c: color-mix(in srgb,var(--c),#fff 25%);
  
  width: var(--s);
  aspect-ratio: 1;
  box-sizing: border-box;
  --h: calc(var(--s) - var(--b));
  padding-top: min(var(--h),var(--s) - 2*var(--b));
  border: var(--b) solid #0000;
  background:
    linear-gradient(var(--_c) 0 0)
     0 0/100% 100% no-repeat
    var(--c);
  background-origin: border-box;
  box-shadow: 0 0 0 999px var(--_c);
  clip-path: inset(0);
  object-fit: cover;
  object-position: bottom;
  cursor: pointer;
  transition: 1s linear;
  transition-property: --h,background-size,clip-path;
}

img:hover {
  --h: calc(-1*var(--b));
  clip-path: inset(-100% 0 0);
  background-size: 100% 0%;
}


body {
  margin: 0;
  min-height: 100vh;
  display: grid;
  place-content: center;
  background: #F1D4AF;
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.