<h3 class="hover-1">1. Hover Me</h3>
<h3 class="hover-2">2. Hover Me</h3>
<h3 class="hover-3">3. Hover Me</h3>
<h3 class="hover-4">4. Hover Me</h3>
.hover-1 {
  background: linear-gradient(#1095c1 0 0) var(--p,0)/var(--p,0) no-repeat;
  transition: .4s,background-position 0s;
}
.hover-1:hover {
  --p: 100%;
  color: #fff;
}

.hover-2 {
  background: 
    linear-gradient(#1095c1 0 0) no-repeat
     calc(200% - var(--p,0%)) 100% / 200% var(--p,.08em);
  transition: .3s var(--t,0s), background-position .3s calc(.3s - var(--t,0s));
}
.hover-2:hover {
  --p: 100%;
  --t: .3s;
  color: #fff;
}

.hover-3 {
  --c: no-repeat linear-gradient(#1095c1 0 0);
  background: 
    var(--c)  calc(-101% + var(--p,0%)) 100%,
    var(--c)  calc( 201% - var(--p,0%)) 0;
  background-size: 50.1% var(--p,.08em);
  transition: .3s var(--t,0s), background-position .3s calc(.3s - var(--t,0s));
}
.hover-3:hover {
  --p: 101%;
  --t: 0.3s;
  color: #fff;
}
.hover-4 {
  --c: #1095c1;
  line-height: 1.2em;
  background:
    conic-gradient(from -135deg at 100%  50%,var(--c) 90deg,#0000 0) 0    var(--p,0%),
    conic-gradient(from -135deg at 1.2em 50%,#0000 90deg,var(--c) 0) 100% var(--p,0%);
  background-size: var(--s,0%) 200%;
  background-repeat: no-repeat;
  transition: .4s ease-in, background-position 0s;
}
.hover-4:hover {
  --p: 100%;
  --s: calc(50% + .61em); /* it should be 0.6em(1.2em/2) but we use a litte bigger */
  color: #fff;
}


body {
  height: 100vh;
  margin: 0;
  display: grid;
  grid-template-columns: auto auto;
  gap: 20px;
  place-content: center;
}
h3 {
  font-family: system-ui, sans-serif;
  font-size: 3rem;
  margin:0;
  cursor: pointer;
  padding: 0 .07em;
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.