swap friend SVGs for wizard emoji, 2-up shorter project cards on phones
This commit is contained in:
parent
dbf193fde9
commit
6827ca6ed1
9 changed files with 41 additions and 19815 deletions
|
|
@ -76,8 +76,7 @@ const FRIEND_SHORTCUTS: Shortcut[] = friends.map((f, i) => ({
|
|||
: f.url,
|
||||
embed: f.iframe,
|
||||
color: "#c0392b",
|
||||
icon: "🫂",
|
||||
image: f.img,
|
||||
icon: "🧙",
|
||||
desc: f.desc,
|
||||
}));
|
||||
|
||||
|
|
@ -363,8 +362,7 @@ export default function WindowsDesktop() {
|
|||
id: f.id,
|
||||
label: f.label,
|
||||
title: f.label,
|
||||
glyph: "🫂",
|
||||
image: f.image,
|
||||
glyph: "🧙",
|
||||
onOpen: () => openShortcut(f),
|
||||
}));
|
||||
const allEntries = [...leftEntries, ...serviceEntries, ...friendEntries];
|
||||
|
|
@ -505,17 +503,7 @@ export default function WindowsDesktop() {
|
|||
className="kickoff-item"
|
||||
onClick={() => openShortcut(f)}
|
||||
>
|
||||
<span className="kickoff-icon">
|
||||
{f.image && (
|
||||
<Image
|
||||
src={f.image}
|
||||
alt={f.label}
|
||||
width={20}
|
||||
height={20}
|
||||
className="kickoff-icon-img"
|
||||
/>
|
||||
)}
|
||||
</span>
|
||||
<span className="kickoff-icon">{f.icon}</span>
|
||||
<span className="kickoff-label">{f.label}</span>
|
||||
</button>
|
||||
))}
|
||||
|
|
|
|||
|
|
@ -255,20 +255,7 @@ function FriendsApp() {
|
|||
key={idx}
|
||||
url={friend.realUrl || friend.url}
|
||||
className="friend"
|
||||
icon={
|
||||
friend.img ? (
|
||||
<Image
|
||||
src={friend.img}
|
||||
alt={friend.name}
|
||||
width={68}
|
||||
height={68}
|
||||
className="friend-icon"
|
||||
style={{ borderRadius: "50%" }}
|
||||
/>
|
||||
) : (
|
||||
"🫂"
|
||||
)
|
||||
}
|
||||
icon="🧙"
|
||||
name={friend.name}
|
||||
desc={friend.desc}
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -23,12 +23,6 @@ export interface Friend {
|
|||
url: string;
|
||||
/** The live site: the window's `www` button and the status check use this. */
|
||||
realUrl: string;
|
||||
/**
|
||||
* Desktop-icon avatar. Optional: the web theme's friends section is
|
||||
* text-only (no SVG avatars), and a friend without one falls back to the
|
||||
* generic glyph on the desktop.
|
||||
*/
|
||||
img?: string;
|
||||
desc: string;
|
||||
/** Render in an iframe in a desktop window. */
|
||||
iframe: boolean;
|
||||
|
|
@ -250,7 +244,6 @@ export const friends: Friend[] = [
|
|||
// window loads the live site through /api/frame (see `proxy` below).
|
||||
url: "https://skopec.dev/",
|
||||
realUrl: "https://skopec.dev/",
|
||||
img: "/skopec.svg",
|
||||
desc: "skopec.dev",
|
||||
iframe: true,
|
||||
proxy: true,
|
||||
|
|
@ -259,7 +252,6 @@ export const friends: Friend[] = [
|
|||
name: "Filip Bukovina",
|
||||
url: "https://bukovinafilip.com/",
|
||||
realUrl: "https://bukovinafilip.com/",
|
||||
img: "/bukovina.svg",
|
||||
desc: "bukovinafilip.com",
|
||||
iframe: true,
|
||||
},
|
||||
|
|
@ -267,7 +259,6 @@ export const friends: Friend[] = [
|
|||
name: "Tomáš Vlk",
|
||||
url: "https://vlcak.me",
|
||||
realUrl: "https://vlcak.me",
|
||||
img: "/vlcak.svg",
|
||||
desc: "vlcak.me",
|
||||
iframe: true,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -82,8 +82,8 @@ html[data-theme="skeuo"] body {
|
|||
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.95);
|
||||
transition: background-color 0.12s ease, border-color 0.12s ease;
|
||||
/* Icons are dragged by our own pointer handlers. Without this, the browser's
|
||||
native image/link drag hijacks the gesture (it fires pointercancel), which
|
||||
broke dragging for icons whose glyph is an <img> - the friend shortcuts. */
|
||||
native image/link drag hijacks the gesture (it fires pointercancel) for any
|
||||
icon whose glyph is an <img>; kept in case one is reintroduced. */
|
||||
-webkit-user-drag: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
|
@ -1182,10 +1182,6 @@ a.win-icon {
|
|||
.win-body .service-button:hover .service-desc {
|
||||
color: #d3dae3;
|
||||
}
|
||||
.win-body .friend-icon {
|
||||
filter: invert(1) brightness(1.5);
|
||||
}
|
||||
|
||||
.win-body .project-card {
|
||||
border-color: #1b1e20;
|
||||
background: linear-gradient(to bottom, #31363b, #2a2e32);
|
||||
|
|
|
|||
|
|
@ -562,7 +562,8 @@ html[data-theme="web"] body {
|
|||
color: var(--fg);
|
||||
}
|
||||
|
||||
/* Friend cards stack their round avatar above the name. */
|
||||
/* Friend cards centre their text (the web theme has no icon; the desktop
|
||||
Friends app shows the wizard emoji above the name). */
|
||||
.service-button.friend {
|
||||
flex-direction: column;
|
||||
text-align: center;
|
||||
|
|
@ -592,23 +593,13 @@ html[data-theme="web"] body {
|
|||
transform: none;
|
||||
filter: none;
|
||||
}
|
||||
/* The desktop Friends app shows a big wizard emoji in place of the old avatars. */
|
||||
.service-button.friend .service-icon {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
font-size: 2.6rem;
|
||||
filter: none;
|
||||
}
|
||||
.friend-icon {
|
||||
display: block;
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
border-radius: 50%;
|
||||
object-fit: cover;
|
||||
}
|
||||
html[data-theme="web"][data-scheme="dark"] .friend-icon {
|
||||
filter: invert(1) brightness(1.5);
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
PROJECTS / HARDWARE
|
||||
|
|
@ -1129,8 +1120,25 @@ html[data-theme="web"][data-scheme="dark"] .heatmap-legend-cell[data-level="4"]
|
|||
font-size: 0.82rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
/* Projects/hardware gallery: 2-up on phones instead of one full-width card
|
||||
per row, with a shorter image + tighter card so a row is compact. */
|
||||
.project-grid {
|
||||
columns: 1;
|
||||
columns: 2;
|
||||
column-gap: 10px;
|
||||
}
|
||||
.project-card {
|
||||
margin-bottom: 10px;
|
||||
padding: 10px;
|
||||
}
|
||||
.project-image {
|
||||
height: 90px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.project-title {
|
||||
font-size: 0.88rem;
|
||||
}
|
||||
.project-desc {
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
.services-buttons,
|
||||
.services-buttons.services-main {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue