Compare commits
No commits in common. "28455cc0d70e4ff639e18ee047436a57989611f0" and "0bffc2092e8c50d0adff2c0238bd840d6b20b169" have entirely different histories.
28455cc0d7
...
0bffc2092e
12 changed files with 64 additions and 137 deletions
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"m.homeserver": {
|
||||
"base_url": "https://matrix.henryhiles.com",
|
||||
"org.matrix.msc3575.proxy": {
|
||||
"url": "https://matrix.henryhiles.com"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"m.server": "matrix.henryhiles.com:443"
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"contacts": [
|
||||
{
|
||||
"matrix_id": "@quadradical:henryhiles.com",
|
||||
"email_address": "henry@henryhiles.com",
|
||||
"role": "m.role.admin"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -24,10 +24,11 @@ const sections: Array<Page> = [
|
|||
|
||||
<script is:inline define:vars={{ sections }}>
|
||||
document.addEventListener("scroll", () =>
|
||||
sections.forEach(({ id }) => {
|
||||
const rect = document.getElementById(id).getBoundingClientRect()
|
||||
if (rect.bottom < window.innerHeight || rect.top < 200)
|
||||
document.querySelector("mdui-navigation-bar").value = id
|
||||
})
|
||||
sections.forEach(
|
||||
({ id }) =>
|
||||
document.getElementById(id).getBoundingClientRect().bottom <
|
||||
window.innerHeight &&
|
||||
(document.querySelector("mdui-navigation-bar").value = id)
|
||||
)
|
||||
)
|
||||
</script>
|
||||
|
|
|
@ -1,17 +1,12 @@
|
|||
---
|
||||
import "mdui/mdui.css"
|
||||
import TopBar from "../components/TopBar.astro"
|
||||
import BottomBar from "../components/BottomBar.astro"
|
||||
import "../styles/global.css"
|
||||
|
||||
interface Props {
|
||||
title: string
|
||||
}
|
||||
|
||||
const { title } = Astro.props
|
||||
---
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en" class="mdui-theme-dark" data-scroll="0">
|
||||
<html lang="en" class="mdui-theme-auto" data-scroll="0">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
|
@ -21,12 +16,12 @@ const { title } = Astro.props
|
|||
rel="stylesheet"
|
||||
/>
|
||||
<meta name="generator" content={Astro.generator} />
|
||||
<title>Henry Hiles - {title}</title>
|
||||
<title>Henry Hiles - Home</title>
|
||||
</head>
|
||||
<body>
|
||||
<TopBar />
|
||||
<main><slot /></main>
|
||||
<slot name="navbar" />
|
||||
<BottomBar />
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
---
|
||||
import Layout from "../layouts/Layout.astro"
|
||||
import "../styles/404.css"
|
||||
---
|
||||
|
||||
<Layout title="Not Found">
|
||||
<mdui-card variant="outlined">
|
||||
<section>
|
||||
<h2>404 - Not Found</h2>
|
||||
<mdui-divider></mdui-divider>
|
||||
<p>
|
||||
We couldn't find that page. Please return to our <a href="/"
|
||||
>home page</a
|
||||
>.
|
||||
</p>
|
||||
</section>
|
||||
</mdui-card>
|
||||
</Layout>
|
|
@ -12,13 +12,12 @@ import helpdesk from "../images/projects/helpdesk.jpg"
|
|||
import googleCS from "../images/certificates/googleCS.png"
|
||||
import metaFrontEnd from "../images/certificates/metaFrontEnd.png"
|
||||
import ButtonLink from "../components/ButtonLink.astro"
|
||||
import BottomBar from "../components/BottomBar.astro"
|
||||
---
|
||||
|
||||
<Layout title="Home">
|
||||
<Layout>
|
||||
<header id="home">
|
||||
<Image src={logoLong} alt="Henry Hiles" />
|
||||
<span>Multiplatform Flutter Developer & Front-End Web Developer</span>
|
||||
<span>Multiplatform Flutter Developer and Front-End Web Developer</span>
|
||||
</header>
|
||||
<mdui-card variant="outlined">
|
||||
<section id="about">
|
||||
|
@ -26,23 +25,14 @@ import BottomBar from "../components/BottomBar.astro"
|
|||
<mdui-divider></mdui-divider>
|
||||
<article>
|
||||
<p>
|
||||
Hello, I'm Henry Hiles, a developer specialising in Flutter
|
||||
and Web development. I'm proficient with Dart, Astro,
|
||||
Node.JS, and TypeScript.
|
||||
</p>
|
||||
<p>
|
||||
I build high-performance, intuitive applications with clean,
|
||||
efficient code and modern design principles.
|
||||
</p>
|
||||
<p>
|
||||
Always eager to learn, I’ve earned certifications from
|
||||
Microsoft, Google, and Meta in cloud computing, AI, and
|
||||
cybersecurity.
|
||||
</p>
|
||||
<p>
|
||||
Whether I'm optimising mobile apps or designing websites,
|
||||
I’m passionate about delivering innovative digital
|
||||
solutions.
|
||||
Hello, my name is Henry Hiles, a developer specializing in
|
||||
Flutter, Astro, TypeScript, and Node.js. I build
|
||||
high-performance, intuitive applications with clean,
|
||||
efficient code and modern design principles. Always eager to
|
||||
learn, I’ve earned certifications from Microsoft, Google,
|
||||
and Meta in cloud computing, AI, and cybersecurity. Whether
|
||||
I'm optimizing mobile apps or designing websites, I’m
|
||||
passionate about delivering innovative digital solutions.
|
||||
</p>
|
||||
</article>
|
||||
|
||||
|
@ -79,7 +69,7 @@ import BottomBar from "../components/BottomBar.astro"
|
|||
<h3>The new Quantarc website</h3>
|
||||
<p>
|
||||
I developed the new website for Quantarc, a
|
||||
UK firm that specialises in providing
|
||||
UK firm that specializes in providing
|
||||
management solutions to both private and
|
||||
public entities.
|
||||
</p>
|
||||
|
@ -107,7 +97,7 @@ import BottomBar from "../components/BottomBar.astro"
|
|||
development.
|
||||
</p>
|
||||
</article>
|
||||
<aside class="double">
|
||||
<aside>
|
||||
<Image
|
||||
src={jobProcessor}
|
||||
alt="The QJobProcessor mobile app"
|
||||
|
@ -132,7 +122,7 @@ import BottomBar from "../components/BottomBar.astro"
|
|||
|
||||
<article>
|
||||
<p>
|
||||
I have obtained certifications from renowned organisations
|
||||
I have obtained certifications from renowned organizations
|
||||
such as Google, Meta, and Microsoft, spanning various
|
||||
fields, including cybersecurity, artificial intelligence,
|
||||
Microsoft Azure cloud services, and front-end development:
|
||||
|
@ -188,17 +178,18 @@ import BottomBar from "../components/BottomBar.astro"
|
|||
|
||||
<article>
|
||||
<p>
|
||||
Hire me to design and develop high-performance static
|
||||
websites and versatile multiplatform applications. With a
|
||||
focus on clean, efficient code and intuitive user
|
||||
experiences, I create solutions that are not only visually
|
||||
appealing but also optimized for speed, accessibility, and
|
||||
seamless functionality across all devices.
|
||||
I am available for hire to design and develop
|
||||
high-performance static websites and versatile multiplatform
|
||||
applications. With a focus on clean, efficient code and
|
||||
intuitive user experiences, I create solutions that are not
|
||||
only visually appealing but also optimized for speed,
|
||||
accessibility, and seamless functionality across all
|
||||
devices.
|
||||
</p>
|
||||
</article>
|
||||
|
||||
<ButtonLink
|
||||
href={"mai" + "lto:" + "contact@henr" + "yhiles." + "com"}
|
||||
href={"mai" + "lto:" + "henry@henr" + "yhiles." + "com"}
|
||||
>
|
||||
<mdui-icon>
|
||||
<svg
|
||||
|
@ -216,9 +207,8 @@ import BottomBar from "../components/BottomBar.astro"
|
|||
></path></svg
|
||||
></mdui-icon
|
||||
>
|
||||
Contact me for a quote
|
||||
Contact me to receive a quote
|
||||
</ButtonLink>
|
||||
</section>
|
||||
</mdui-card>
|
||||
<BottomBar slot="navbar" />
|
||||
</Layout>
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
body {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
|
@ -3,7 +3,7 @@ button,
|
|||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 0.6em;
|
||||
gap: 0.3em;
|
||||
border: 2px solid rgb(var(--primary));
|
||||
color: white;
|
||||
border-radius: 50px;
|
||||
|
|
|
@ -31,7 +31,7 @@ body {
|
|||
margin: 0;
|
||||
|
||||
background: radial-gradient(
|
||||
circle 80vw at -25vw -20vh,
|
||||
circle 75vw at -25vw -20vh,
|
||||
var(--circle-color),
|
||||
transparent
|
||||
),
|
||||
|
@ -43,7 +43,7 @@ body {
|
|||
}
|
||||
|
||||
mdui-navigation-bar {
|
||||
background: rgba(0, 0, 0, 60%);
|
||||
background: transparent;
|
||||
backdrop-filter: blur(5px);
|
||||
}
|
||||
|
||||
|
@ -54,30 +54,6 @@ main {
|
|||
gap: 2em;
|
||||
|
||||
padding: 1em;
|
||||
|
||||
& > * > section {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
scroll-margin-top: 1em;
|
||||
|
||||
& div,
|
||||
mdui-card {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 1em;
|
||||
}
|
||||
|
||||
gap: 0.5em;
|
||||
padding: 1em 2em;
|
||||
|
||||
& h2 {
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
& p {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mdui-divider {
|
||||
|
|
|
@ -23,14 +23,31 @@ mdui-card {
|
|||
}
|
||||
|
||||
main > * > section {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
& div,
|
||||
mdui-card {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 1em;
|
||||
}
|
||||
|
||||
gap: 0.5em;
|
||||
padding: 1em 2em;
|
||||
|
||||
& h2 {
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
& p {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
&#certificates mdui-card {
|
||||
padding: 1em;
|
||||
flex-wrap: wrap;
|
||||
|
||||
@media (max-width: 500px) {
|
||||
border: none;
|
||||
}
|
||||
|
||||
& a {
|
||||
min-width: 150px;
|
||||
width: 15%;
|
||||
|
@ -42,14 +59,6 @@ main > * > section {
|
|||
flex-direction: column;
|
||||
gap: 1em;
|
||||
& mdui-card {
|
||||
@media (max-width: 500px) {
|
||||
border: none;
|
||||
|
||||
& section {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
& section {
|
||||
margin: 1em;
|
||||
padding: 1em;
|
||||
|
@ -75,16 +84,20 @@ main > * > section {
|
|||
& img {
|
||||
border-radius: var(--mdui-shape-corner-medium);
|
||||
border: 2px solid rgb(var(--primary));
|
||||
|
||||
.double > & {
|
||||
width: 45%;
|
||||
}
|
||||
}
|
||||
}
|
||||
:nth-child(2) > & {
|
||||
flex-direction: row-reverse;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 500px) {
|
||||
border: none;
|
||||
|
||||
& section {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -95,8 +108,4 @@ main > * > section {
|
|||
min-width: 300px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1500px) {
|
||||
scroll-margin-top: 5em;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,6 @@ mdui-top-app-bar {
|
|||
box-shadow: none;
|
||||
|
||||
@media (max-width: 1500px) {
|
||||
background: rgba(0, 0, 0, 60%);
|
||||
backdrop-filter: blur(5px);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue