diff --git a/.idea/steffoweb.iml b/.idea/steffoweb.iml index d6ebd48..45bab78 100644 --- a/.idea/steffoweb.iml +++ b/.idea/steffoweb.iml @@ -2,7 +2,11 @@ - + + + + + diff --git a/components/LinkPanel.module.css b/components/LinkPanel.module.css new file mode 100644 index 0000000..8a2adec --- /dev/null +++ b/components/LinkPanel.module.css @@ -0,0 +1,11 @@ +.linkPanel { + text-decoration: none; +} + +.linkPanel:hover, .linkPanel:focus { + --bhsl-current-lightness: calc(var(--bhsl-link-lightness) + 20%); +} + +.linkPanel:active { + --bhsl-current-lightness: calc(var(--bhsl-link-lightness) + 40%); +} diff --git a/components/LinkPanel.tsx b/components/LinkPanel.tsx index 8ac820d..5696178 100644 --- a/components/LinkPanel.tsx +++ b/components/LinkPanel.tsx @@ -2,13 +2,14 @@ import {IconProp} from "@fortawesome/fontawesome-svg-core" import {FontAwesomeIcon} from "@fortawesome/react-fontawesome" import {default as Link} from "next/link" import {default as cn} from "classnames" +import {default as style} from "./LinkPanel.module.css" import React from "react" export type LinkPanelProps = { href?: string, icon: IconProp, - text: string, + text: React.ReactNode, me?: boolean, fade?: boolean, } @@ -16,19 +17,17 @@ export type LinkPanelProps = { export const LinkPanel = ({href, icon, text, me, fade}: LinkPanelProps) => { const panel = ( -
+  {text} -
+ ) if(href) { return ( - - {panel} - + {panel} ) } diff --git a/components/ProjectPanel.module.css b/components/ProjectPanel.module.css new file mode 100644 index 0000000..850d12c --- /dev/null +++ b/components/ProjectPanel.module.css @@ -0,0 +1,43 @@ +.projectPanel { + flex-basis: 232px !important; + flex-grow: 0 !important; + padding: 0 !important; + overflow: hidden; +} + +.projectImage { + border-radius: var(--b-border-radius); +} + +.projectPanel:hover .projectImage, .projectPanel:focus .projectImage { + filter: brightness(80%) blur(16px); +} + +.projectDescription { + visibility: hidden; + position: absolute; + + width: 232px; + height: 116px; + + display: flex; + flex-direction: column; + justify-content: center; + align-content: center; + + text-align: center; + text-shadow: 1px 1px 0 hsl(var(--bhsl-background-hue) var(--bhsl-background-saturation) var(--bhsl-background-lightness)) !important; + + background-color: hsl(var(--bhsl-current-hue) var(--bhsl-current-saturation) var(--bhsl-current-lightness) / 0.075); + + border-width: 2px; + border-radius: var(--b-border-radius); +} + +.projectDescription h4 { + text-shadow: 1px 1px 0 hsl(var(--bhsl-background-hue) var(--bhsl-background-saturation) var(--bhsl-background-lightness)) !important; +} + +.projectPanel:hover .projectDescription, .projectPanel:focus .projectDescription { + visibility: visible; +} \ No newline at end of file diff --git a/components/ProjectPanel.tsx b/components/ProjectPanel.tsx new file mode 100644 index 0000000..6e9e7f1 --- /dev/null +++ b/components/ProjectPanel.tsx @@ -0,0 +1,38 @@ +import {default as Link} from "next/link" +import React from "react" +import {default as cn} from "classnames" +import {default as Image, ImageProps} from "next/future/image" +import {default as style} from "./ProjectPanel.module.css" + + +export type ProjectPanelProps = Pick & { + href?: string, + name: string + description: React.ReactNode, +} + + +export const ProjectPanel = ({src, href, name, description}: ProjectPanelProps) => { + const panel = ( + + {name} +
+

{name}

+

+ {description} +

+
+
+ ) + + if(href) { + return ( + + {panel} + + ) + } + else { + return panel + } +} \ No newline at end of file diff --git a/next.config.js b/next.config.js new file mode 100644 index 0000000..e4014e1 --- /dev/null +++ b/next.config.js @@ -0,0 +1,5 @@ +module.exports = { + images: { + domains: [], + }, +} \ No newline at end of file diff --git a/pages/_app.css b/pages/_app.css index b3c7c06..dc383f3 100644 --- a/pages/_app.css +++ b/pages/_app.css @@ -4,20 +4,20 @@ body { background-size: cover; } +footer { + text-shadow: 2px 2px 4px hsl(var(--bhsl-background-hue) var(--bhsl-background-saturation) var(--bhsl-background-lightness)); +} + +.panel { + min-width: 288px; +} + +.panel .panel { + min-width: 0; +} + #__next { margin: 0 auto; min-height: 100vh; max-width: 1000px; } - -#panel-internet a { - text-decoration: none; -} - -#panel-internet a:hover, #panel-internet a:focus { - --bhsl-current-lightness: calc(var(--bhsl-link-lightness) + 20%); -} - -#panel-internet a:active { - --bhsl-current-lightness: calc(var(--bhsl-link-lightness) + 40%); -} \ No newline at end of file diff --git a/pages/_app.tsx b/pages/_app.tsx index f2dcdef..02c5bef 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -1,4 +1,5 @@ -import Link from "next/link" +import {default as Link} from "next/link" +import {default as Image} from "next/future/image" import React from 'react' import "@steffo/bluelib/dist/base.root.css" @@ -9,13 +10,15 @@ import "@steffo/bluelib/dist/glass.root.css" import "@steffo/bluelib/dist/fun.root.css" import "./_app.css" +import {default as imgSRound} from "../public/s-round.png" + import type {AppProps} from "next/app" const App = ({Component, pageProps}: AppProps) => { return <>

- Steffo's website + {""} Steffo's website