Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ We build software that feels more human without becoming less powerful.
- **[Liminal Notes](https://github.com/ScottMorris/liminal-notes)** – Local-first, Markdown-based note-taking.
- **[Flow](https://github.com/liminal-hq/flow)** – Calm, local-first focus sessions for intentional deep work.
- **[City Sim 1000](https://github.com/ScottMorris/city-sim-1000)** – Low-poly city simulation in the browser.
- **[Emoji Nook](https://github.com/liminal-hq/emoji-nook)** – Native Linux emoji picker for GNOME, KDE, and other desktop environments.
- **[SMDU](https://github.com/ScottMorris/smdu)** – Terminal disk usage analyser.
- **[Coherence Chat Exporter](https://github.com/liminal-hq/coherence-chat-exporter)** – CLI for archiving AI conversations into organised, tagged Markdown across providers.
- **[Keep Note Converter](https://github.com/ScottMorris/keep-note-converter)** – Installable Next.js PWA that converts pasted rich text into Google Keep-compatible markup.
Expand Down
44 changes: 43 additions & 1 deletion src/components/WorkSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ export default function WorkSection() {
const [flagship, ...supportingSelectedWork] = selectedWork;
const flagshipAccent = getProjectAccentStyles(flagship.accentColour);
const flagshipPrimaryUrl = getPrimaryProjectUrl(flagship);
const [leadExperiment, ...supportingExperiments] = experiments;
const leadExperimentAccent = getProjectAccentStyles(leadExperiment.accentColour);
const leadExperimentPrimaryUrl = getPrimaryProjectUrl(leadExperiment);

return (
<section id="work" className="py-16 md:py-20">
Expand Down Expand Up @@ -107,8 +110,47 @@ export default function WorkSection() {
</div>

<h3 className="mb-6 text-[1.15rem] font-semibold text-white md:text-[1.35rem]">Experiments &amp; Tools</h3>
<article className={`${styles.projectCard} group relative cursor-pointer`}>
<a
href={leadExperimentPrimaryUrl}
className="absolute inset-0 z-10 rounded-[20px] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--accent-purple)] focus-visible:outline-offset-[-3px]"
aria-label={`Open ${leadExperiment.title}`}
target="_blank"
rel="noreferrer"
></a>

<div className="relative z-0">
<span
className="mb-4 inline-block rounded border px-[10px] py-1 text-xs font-bold uppercase tracking-[0.1em]"
style={leadExperimentAccent.badge}
>
{leadExperiment.label}
</span>
<h4 className="mb-4 text-[2rem] text-white md:text-[2.5rem]">{leadExperiment.title}</h4>
<p className="mb-10 max-w-[650px] text-base text-[var(--text-muted)] md:text-[1.15rem]">
{leadExperiment.description}
</p>

<div className="flex flex-wrap items-center gap-5">
<span className="inline-flex items-center gap-[10px] rounded-[30px] bg-[rgba(255,255,255,0.1)] px-6 py-3 font-semibold text-white transition-all duration-300 group-hover:translate-x-[5px] group-hover:bg-[var(--accent-purple)] group-hover:text-black">
{leadExperiment.siteUrl ? "Visit Site" : "View Source"}
</span>
{leadExperiment.siteUrl ? (
<a
href={leadExperiment.repositoryUrl}
className="relative z-20 border-b border-[var(--accent-purple)] pb-[2px] text-[0.9rem] text-white"
target="_blank"
rel="noreferrer"
>
GitHub
</a>
) : null}
</div>
</div>
</article>

<div className="grid grid-cols-1 gap-6 md:grid-cols-[repeat(auto-fit,minmax(280px,1fr))] md:gap-8">
{experiments.map((project) => {
{supportingExperiments.map((project) => {
const accent = getProjectAccentStyles(project.accentColour);
const primaryUrl = getPrimaryProjectUrl(project);

Expand Down
8 changes: 8 additions & 0 deletions src/components/work-section-data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,14 @@ export const experiments: ProjectCard[] = [
repositoryUrl: "https://github.com/ScottMorris/smdu",
siteUrl: "https://smdu.liminalhq.ca/",
},
{
label: "Linux Utility",
accentColour: "var(--accent-blue)",
title: "Emoji Nook",
description:
"Native Linux emoji picker built with Tauri and React. Launch it from a shortcut, search fast, and drop emoji into the app you were already using.",
repositoryUrl: "https://github.com/liminal-hq/emoji-nook",
},
{
label: "Knowledge Tooling",
accentColour: "var(--accent-orange)",
Expand Down