csslearn/styles/style.css

197 lines
3.7 KiB
CSS

body {
display: grid;
height: 100vh;
place-items: center;
}
a {
font-family: 'Courier New', Courier, monospace;
font-size: 27px;
font-weight: 700;
}
/* sliding effect */
.slidinglink {
line-height: 1.5;
box-shadow: inset 0 0 0 0 #3282dd;
color: #3282dd;
padding: 0 .25rem;
margin: 0 -.25rem;
transition: color .3s ease-in-out, box-shadow .3s ease-in-out;
text-decoration: none;
}
.slidinglink:hover {
color: rgb(255, 255, 255);
box-shadow: inset 200px 0 0 0 #3282dd;
text-decoration: none;
}
/*swappin effect*/
.swappinlink {
overflow: hidden;
position: relative;
display: inline-block;
}
.swappinlink::before,
.swappinlink::after {
content: '';
position: absolute;
width: 100%;
left: 0;
}
.swappinlink::before {
background-color: #54b3d6;
height: 2px;
bottom: 0;
transform-origin: 100% 50%;
transform: scaleX(0);
transition: transform .3s cubic-bezier(0.76, 0, 0.24, 1);
}
.swappinlink::after {
content: attr(data-replace);
height: 100%;
top: 0;
transform-origin: 100% 50%;
transform: translate3d(200%, 0, 0);
transition: transform .3s cubic-bezier(0.76, 0, 0.24, 1);
color: #54b3d6;
}
.swappinlink:hover::before {
transform-origin: 0% 50%;
transform: scaleX(1);
}
.swappinlink:hover::after {
transform: translate3d(0, 0, 0);
}
.swappinlink span {
display: inline-block;
transition: transform .3s cubic-bezier(0.76, 0, 0.24, 1);
}
.swappinlink:hover span {
transform: translate3d(-200%, 0, 0);
}
/**/
.growinglink {
text-decoration: none;
position: relative;
}
.growinglink::before {
content: '';
background-color: hsla(196, 61%, 58%, .75);
position: absolute;
left: 0;
bottom: 3px;
width: 100%;
height: 4px;
z-index: -1;
transition: all .3s ease-in-out;
}
.growinglink:hover::before {
bottom: 0;
height: 100%;
}
/* r2l color swapping link */
.colorswapping {
background-image: linear-gradient(
to right,
#54b3d6,
#54b3d6 50%,
#000 50%
);
background-size: 200% 100%;
background-clip: text;
background-position: -100%;
display: inline-block;
padding: 5px 0;
position: relative;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
transition: all 0.3s ease-in-out;
}
.colorswapping:before {
content: '';
background: #54b3d6;
display: block;
position: absolute;
bottom: 0px;
left: 0;
width: 0;
height: 2px;
transition: all 0.3s ease-in-out;
}
.colorswapping:hover {
background-position: 0;
}
.colorswapping:hover::before {
width: 100%;
}
/* the rainbow link */
.rainbowlink {
color: inherit;
text-decoration: none;
}
.rainbowlink {
background:
linear-gradient(
to right,
rgba(100, 200, 200, 1),
rgba(100, 200, 200, 1)
),
linear-gradient(
to right,
rgba(255, 0, 0, 1),
rgba(255, 0, 180, 1),
rgba(0, 100, 200, 1)
);
background-size: 100% 3px, 0 3px;
background-position: 100% 100%, 0 100%;
background-repeat: no-repeat;
transition: background-size 400ms;
}
.rainbowlink:hover {
background-size: 0 3px, 100% 3px;
}
/* passing underline */
.passinglink {
position: relative;
}
.passinglink::before {
content: '';
position: absolute;
width: 100%;
height: 4px;
border-radius: 4px;
background-color: aqua;
bottom: 0;
left: 0;
transform-origin: right;
transform: scaleX(0);
transition: transform .3s ease-in-out;
}
.passinglink:hover::before {
transform-origin: left;
transform: scaleX(1);
}