diff --git a/index.html b/index.html new file mode 100644 index 0000000..b3ddd4a --- /dev/null +++ b/index.html @@ -0,0 +1,95 @@ + + + + + + Paul Niland β€” Resume + + + + + +
+

Paul Niland

+

Contact: paul@niland.tw

+ πŸ“„ Download CV +
+ +
+

About Me

+

Experienced professional across communications, analysis, project management, and teaching. Adaptable and international in scope.

+
+ +
+ 🌍 Experience +
+ + + + +
+ +
+ +
+ Gigabyte Logo +

Gigabyte Server β€” Marketing Manager (Jul 2017–Dec 2017)

+
+
+ QNAP Logo +

QNAP Inc. β€” Teaching & Technical (Feb 2014–Aug 2016)

+
+
+ D-Link Logo +

UK Government β€” Research Officer (Apr 2001–Aug 2003)

+
+
+
+ +
+ πŸ“œ Skills + +
+ +
+ πŸŽ“ Education & Certifications + +
+ +
+ πŸ“¬ Get in Touch +
+ + + + + + + + + + +
+ + +
+ + +
+
+ + + + diff --git a/script.js b/script.js new file mode 100644 index 0000000..edfa18f --- /dev/null +++ b/script.js @@ -0,0 +1,19 @@ +function filterExp(type) { + const entries = document.querySelectorAll(".entry"); + entries.forEach(entry => { + if (type === "all") { + entry.style.display = "flex"; + } else { + entry.style.display = entry.classList.contains(type) ? "flex" : "none"; + } + }); +} + +// Optional: handle form honeypot logic on submission +document.getElementById("contactForm")?.addEventListener("submit", function (e) { + const companyField = this.querySelector("input[name='company']"); + if (companyField.value) { + e.preventDefault(); // Detected spam + alert("Spam detected. Submission blocked."); + } +}); diff --git a/style.css b/style.css new file mode 100644 index 0000000..831504e --- /dev/null +++ b/style.css @@ -0,0 +1,67 @@ +body { + font-family: system-ui, sans-serif; + margin: 0; + padding: 0; + background: #f4f4f4; + color: #333; +} + +header { + background: #222; + color: #fff; + padding: 2em; + text-align: center; +} + +section, details { + padding: 1.5em; + max-width: 800px; + margin: auto; +} + +h2, summary { + border-bottom: 1px solid #aaa; + margin-bottom: 0.5em; +} + +details summary { + cursor: pointer; + font-weight: bold; +} + +.filters button { + margin-right: 0.5em; +} + +.entry { + background: #fff; + margin: 1em 0; + padding: 1em; + border-left: 5px solid #0077cc; + display: flex; + align-items: center; + gap: 1em; +} + +.entry img { + width: 40px; + height: 40px; +} + +form label { + display: block; + margin-top: 1em; +} + +form input, form textarea, form button { + width: 100%; + padding: 0.75em; + margin-top: 0.5em; + box-sizing: border-box; +} + +footer { + text-align: center; + padding: 1em; + background: #ddd; +}