diff --git a/frontend/src/lib/components/link.svelte b/frontend/src/lib/components/link.svelte
index 7ab0782..f9dbd13 100644
--- a/frontend/src/lib/components/link.svelte
+++ b/frontend/src/lib/components/link.svelte
@@ -1,11 +1,72 @@
-
-
Link
-
+
+
+
+
+

+

+
+
Link
+
+
diff --git a/frontend/src/lib/css/base.css b/frontend/src/lib/css/base.css
index 16dcd69..99a19b9 100644
--- a/frontend/src/lib/css/base.css
+++ b/frontend/src/lib/css/base.css
@@ -64,6 +64,7 @@ h2 {
--2-rem: clamp(1.4rem, -0.834rem + 4.0851vw, 2rem);
--navbar-height: 6rem;
+ --transition: all .4s ease 0s;
}
.base {
diff --git a/frontend/src/lib/css/footer/page.css b/frontend/src/lib/css/footer/page.css
index 5f1b965..4b5bb1a 100644
--- a/frontend/src/lib/css/footer/page.css
+++ b/frontend/src/lib/css/footer/page.css
@@ -2,7 +2,7 @@
text-decoration: none;
position: relative;
font-size: var(--1-2-rem);
- transition: all .3s ease 0s;
+ transition: var(--transition);
}
.page-icon-text h1 {
@@ -20,7 +20,7 @@
height: 0.2rem;
background-color: var(--palette-pink);
width: 0%;
- transition: all .3s ease 0s;
+ transition: var(--transition);
}
.page-icon-text > a:hover::after {
diff --git a/frontend/src/lib/css/link.css b/frontend/src/lib/css/link.css
index 3abbdb2..bd51cfa 100644
--- a/frontend/src/lib/css/link.css
+++ b/frontend/src/lib/css/link.css
@@ -1,5 +1,4 @@
:root {
- --link-color: #0174BE;
--line-size: 5px;
}
@@ -7,46 +6,78 @@
width: 60rem;
height: 20rem;
margin-bottom: 2rem;
- margin-left: 1rem;
- margin-right: 1rem;
- box-shadow: rgba(79, 50, 93, 0.25) 0px 30px 60px -12px, rgba(0, 0, 0, 0.3) 0px 18px 36px -18px;
+ cursor: pointer;
+ transition: var(--transition);
+ display: grid;
+ border-radius: 1rem;
+ grid-template-areas:
+ "overlay";
+}
+
+.link-container:hover {
+ box-shadow: var(--shadow);
}
.link-container svg {
margin-left: 1rem;
+ color: var(--color-text);
+ transition: var(--transition);
+}
+
+.link-img {
+ display: grid;
+ grid-template-areas:
+ "overlay";
+ max-width: 30rem;
+ height: 20rem;
+}
+
+.link-img img {
+ grid-area: overlay;
+ height: 100%;
+ width: auto;
+}
+
+.link-img-hover {
+ opacity: 0;
+}
+
+.link-content {
+ grid-area: overlay;
+ width: 60rem;
+ height: 20rem;
+ border-radius: 1rem;
+}
+
+.link-background {
+ grid-area: overlay;
+ width: 60rem;
+ height: 20rem;
+ border-radius: 1rem;
+ opacity: 0;
+ background-image: var(--gradient);
}
/* Link Underlined */
-.link-container > span {
+.link-content>span {
font-family: 'JetBrains Mono';
font-weight: 500;
font-size: 2.5rem;
text-decoration: none;
position: relative;
- transition: all .3s ease 0s;
+ color: var(--color-text);
+ transition: var(--transition);
}
-.link-container > span:hover {
- cursor: pointer;
- color: var(--link-color);
-}
-
-.link-container > span::after {
+.link-content>span::after {
content: "";
position: absolute;
- width: 0;
- background-color: var(--link-color);
- transition: all .3s ease 0s;
+ background-color: var(--color-background);
height: var(--line-size);
-}
-
-.link-container > span::after {
bottom: calc(0px - var(--line-size));
height: var(--line-size);
left: 0;
-}
-
-.link-container > span:hover::after {
- width: 100%;
+ transition: var(--transition);
+ width: var(--span-width);
}
\ No newline at end of file
diff --git a/frontend/src/lib/css/navbar.css b/frontend/src/lib/css/navbar.css
index 45bd890..0243626 100644
--- a/frontend/src/lib/css/navbar.css
+++ b/frontend/src/lib/css/navbar.css
@@ -1,5 +1,4 @@
:root {
- --transition: all .4s ease 0s;
--navbar-dark: #261C2CFF;
--navbar-darker: #261C2CFF;
--navbar-light: #413543FF;
@@ -89,7 +88,7 @@ a {
font-family: JetBrains Mono;
font-weight: 500;
font-size: 1rem;
- transition: all .3s ease 0s;
+ transition: var(--transition);
color: var(--color-background);
transition: var(--transition);
}
@@ -106,7 +105,7 @@ a {
position: absolute;
width: 0;
background-color: var(--palette-pink);
- transition: all .3s ease 0s;
+ transition: var(--transition);
height: 3px;
}
diff --git a/frontend/src/lib/css/social.css b/frontend/src/lib/css/social.css
index d037641..42d6795 100644
--- a/frontend/src/lib/css/social.css
+++ b/frontend/src/lib/css/social.css
@@ -58,13 +58,13 @@
margin-top: 1.2rem;
margin-bottom: 1.2rem;
cursor: pointer;
- transition: all .3s ease 0s;
+ transition: var(--transition);
}
.social-link img {
height: 2rem;
width: 2rem;
- transition: all .3s ease 0s;
+ transition: var(--transition);
}
.social-link img:hover {
@@ -72,7 +72,7 @@
}
.social-link svg {
- transition: all .3s ease 0s;
+ transition: var(--transition);
}
.social-link svg:hover {
@@ -90,7 +90,7 @@
position: absolute;
width: 0;
background-color: var(--social-color);
- transition: all .3s ease 0s;
+ transition: var(--transition);
height: 3px;
}
diff --git a/frontend/src/lib/js/color.js b/frontend/src/lib/js/color.js
new file mode 100644
index 0000000..34d748d
--- /dev/null
+++ b/frontend/src/lib/js/color.js
@@ -0,0 +1,22 @@
+export function hexTorgb(hex) {
+ return {
+ r: parseInt(hex.substring(0, 2), 16),
+ g: parseInt(hex.substring(2, 4), 16),
+ b: parseInt(hex.substring(4, 6), 16),
+ }
+}
+
+/* should be type {r,g,b} */
+export function rgbTohex(rgb) {
+ return (rgb.r.toString(16) + rgb.g.toString(16) + rgb.b.toString(16));
+}
+
+export function darkenHexTorgb(hex, darken) {
+ let rgb = hexTorgb(hex);
+ console.log(hex);
+ console.log(rgb);
+ rgb.r = Math.floor(Math.round(rgb.r * darken));
+ rgb.g = Math.floor(Math.round(rgb.g * darken));
+ rgb.b = Math.floor(Math.round(rgb.b * darken));
+ return rgb;
+}
\ No newline at end of file
diff --git a/frontend/static/placeholder_link_hover.png b/frontend/static/placeholder_link_hover.png
new file mode 100755
index 0000000..d925a38
Binary files /dev/null and b/frontend/static/placeholder_link_hover.png differ