Skip to content

Commit 10b18ac

Browse files
committed
feat(apps): introduce Atelier app-chrome design language
Refactors the GitHub Thumbnail Generator into a gallery-studio aesthetic distinct from brutalist / luxe / terracotta: mauve walls, cream matted cards with gilt hairline borders, jade jewel accent, EB Garamond italic display + Nunito body, no monospace. Adds sticky matted-print preview, searchable 68-surface catalogue, palette shuffler, Cmd/Ctrl+E export, and a custom HSV color picker with curated house palette. Surfaces the new Atelier card on /design alongside Galley (letterpress reader) and Atlas (phosphor-amber catalog) under a new 'Inner Design Languages' section.
1 parent 36de23c commit 10b18ac

2 files changed

Lines changed: 1190 additions & 323 deletions

File tree

src/pages/DesignSelectionPage.jsx

Lines changed: 279 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ import {
99
LayoutIcon,
1010
ArrowLeftIcon,
1111
LineSegmentsIcon,
12+
PaintBrushBroadIcon,
13+
ScrollIcon,
14+
TerminalWindowIcon,
1215
} from '@phosphor-icons/react';
1316
import Seo from '../components/Seo';
1417
import GenerativeArt from '../components/GenerativeArt';
@@ -173,6 +176,282 @@ const DesignSelectionPage = () => {
173176
</Link>
174177
</div>
175178

179+
{/* ── INNER DESIGN LANGUAGES ───────────────────────────────── */}
180+
<div className="mt-32">
181+
<div className="flex items-end justify-between mb-12 pb-6 border-b border-black/10">
182+
<div>
183+
<div className="font-outfit text-[10px] uppercase tracking-[0.3em] text-[#1A1A1A]/40 mb-2">
184+
Part II
185+
</div>
186+
<h2 className="font-playfairDisplay text-4xl md:text-5xl text-[#1A1A1A] leading-none">
187+
Inner Design Languages
188+
</h2>
189+
</div>
190+
<p className="font-outfit text-xs text-[#1A1A1A]/50 max-w-sm leading-relaxed hidden md:block">
191+
Sub-systems used inside specific surfaces — apps, readers, and
192+
project catalogues — each with its own vocabulary.
193+
</p>
194+
</div>
195+
196+
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-12 lg:gap-16">
197+
198+
{/* ── ATELIER ── */}
199+
<Link to="/apps/github-thumbnail-generator" className="group block relative">
200+
<motion.div
201+
whileHover={{ y: -10 }}
202+
className="h-full p-12 flex flex-col justify-between overflow-hidden transition-all duration-500 relative"
203+
style={{
204+
background: '#F5EFEC',
205+
borderRadius: 8,
206+
boxShadow:
207+
'0 0 0 1px #B89968 inset, 0 1px 0 rgba(255,255,255,0.5) inset, 0 30px 60px -30px rgba(45,31,46,0.25)',
208+
}}
209+
>
210+
<div
211+
className="absolute inset-0 pointer-events-none opacity-60"
212+
style={{
213+
background:
214+
'radial-gradient(500px 300px at 85% -10%, #E4D9D6 0%, transparent 55%), radial-gradient(400px 400px at -10% 110%, #EDE4E1 0%, transparent 55%)',
215+
}}
216+
/>
217+
<div className="space-y-8 relative z-10">
218+
<div
219+
className="w-16 h-16 flex items-center justify-center transition-all duration-500"
220+
style={{
221+
background: '#3F7D6B14',
222+
color: '#3F7D6B',
223+
borderRadius: 8,
224+
boxShadow: '0 0 0 1px #B89968 inset',
225+
}}
226+
>
227+
<PaintBrushBroadIcon size={32} weight="regular" />
228+
</div>
229+
<div className="space-y-4">
230+
<div
231+
className="text-[10px] uppercase tracking-[0.28em]"
232+
style={{ color: '#6B5A65' }}
233+
>
234+
App Chrome
235+
</div>
236+
<h3
237+
className="text-5xl leading-none tracking-tight"
238+
style={{
239+
fontFamily: "'EB Garamond', serif",
240+
color: '#2D1F2E',
241+
}}
242+
>
243+
Atelier
244+
<span style={{ color: '#3F7D6B' }}>.</span>
245+
</h3>
246+
<p
247+
className="text-sm italic leading-relaxed"
248+
style={{
249+
fontFamily: "'EB Garamond', serif",
250+
color: '#6B5A65',
251+
}}
252+
>
253+
Gallery-studio contemporary. Dusty mauve walls, cream
254+
matted cards, jade as the single jewel accent. Garamond
255+
italic plates.
256+
</p>
257+
</div>
258+
</div>
259+
<div
260+
className="mt-12 pt-8 flex justify-between items-center relative z-10 border-t"
261+
style={{ borderColor: '#C7B8B4' }}
262+
>
263+
<span
264+
className="text-[10px] uppercase tracking-[0.3em] transition-colors"
265+
style={{ color: '#6B5A65' }}
266+
>
267+
Enter_Studio
268+
</span>
269+
<ArrowRightIcon
270+
className="group-hover:translate-x-2 transition-all"
271+
size={24}
272+
style={{ color: '#3F7D6B' }}
273+
/>
274+
</div>
275+
</motion.div>
276+
</Link>
277+
278+
{/* ── GALLEY (terracotta inner reader) ── */}
279+
<Link to="/blog" className="group block relative">
280+
<motion.div
281+
whileHover={{ y: -10 }}
282+
className="h-full p-12 flex flex-col justify-between overflow-hidden transition-all duration-500 relative"
283+
style={{
284+
background: '#F3ECE0',
285+
borderRadius: 4,
286+
boxShadow:
287+
'0 0 0 1px #1A161320 inset, 0 30px 60px -30px #1A161330',
288+
}}
289+
>
290+
<div
291+
className="absolute inset-0 pointer-events-none"
292+
style={{
293+
backgroundImage:
294+
'repeating-linear-gradient(0deg, #1A161308 0 1px, transparent 1px 4px)',
295+
opacity: 0.4,
296+
}}
297+
/>
298+
<div className="space-y-8 relative z-10">
299+
<div
300+
className="w-16 h-16 flex items-center justify-center transition-all duration-500"
301+
style={{
302+
background: '#C9644215',
303+
color: '#9E4A2F',
304+
borderRadius: 2,
305+
border: '1px solid #C9644240',
306+
}}
307+
>
308+
<ScrollIcon size={32} weight="light" />
309+
</div>
310+
<div className="space-y-4">
311+
<div
312+
className="text-[10px] uppercase tracking-[0.28em]"
313+
style={{
314+
color: '#2E2620',
315+
fontFamily: "'IBM Plex Mono', monospace",
316+
}}
317+
>
318+
Terracotta · Reader
319+
</div>
320+
<h3
321+
className="text-5xl italic leading-none tracking-tight"
322+
style={{
323+
fontFamily: "'Fraunces', serif",
324+
color: '#1A1613',
325+
}}
326+
>
327+
Galley
328+
</h3>
329+
<p
330+
className="text-xs uppercase tracking-widest leading-relaxed"
331+
style={{
332+
color: '#2E2620',
333+
fontFamily: "'IBM Plex Mono', monospace",
334+
opacity: 0.7,
335+
}}
336+
>
337+
A letterpress galley-proof for long reading. Registration
338+
marks, drop-caps, and 38em measure — enable from settings.
339+
</p>
340+
</div>
341+
</div>
342+
<div
343+
className="mt-12 pt-8 flex justify-between items-center relative z-10 border-t"
344+
style={{ borderColor: '#1A161320' }}
345+
>
346+
<span
347+
className="text-[10px] uppercase tracking-[0.3em]"
348+
style={{
349+
color: '#2E2620',
350+
fontFamily: "'IBM Plex Mono', monospace",
351+
opacity: 0.6,
352+
}}
353+
>
354+
Open_Proof
355+
</span>
356+
<ArrowRightIcon
357+
className="group-hover:translate-x-2 transition-all"
358+
size={24}
359+
style={{ color: '#C96442' }}
360+
/>
361+
</div>
362+
</motion.div>
363+
</Link>
364+
365+
{/* ── ATLAS (terracotta inner catalog) ── */}
366+
<Link to="/projects/atlas-projects" className="group block relative">
367+
<motion.div
368+
whileHover={{ y: -10 }}
369+
className="h-full p-12 flex flex-col justify-between overflow-hidden transition-all duration-500 relative"
370+
style={{
371+
background: '#0A0906',
372+
borderRadius: 4,
373+
boxShadow:
374+
'inset 0 0 0 1px #FFB00020, 0 30px 60px -30px rgba(0,0,0,0.5)',
375+
}}
376+
>
377+
<div
378+
className="absolute inset-0 pointer-events-none opacity-30"
379+
style={{
380+
backgroundImage:
381+
'linear-gradient(#FFB00012 1px, transparent 1px), linear-gradient(90deg, #FFB00012 1px, transparent 1px)',
382+
backgroundSize: '24px 24px',
383+
}}
384+
/>
385+
<div className="space-y-8 relative z-10">
386+
<div
387+
className="w-16 h-16 flex items-center justify-center transition-all duration-500"
388+
style={{
389+
background: '#FFB00010',
390+
color: '#FFB000',
391+
borderRadius: 2,
392+
border: '1px solid #FFB00040',
393+
}}
394+
>
395+
<TerminalWindowIcon size={32} weight="regular" />
396+
</div>
397+
<div className="space-y-4">
398+
<div
399+
className="text-[10px] uppercase tracking-[0.28em]"
400+
style={{
401+
color: '#9AAF4F',
402+
fontFamily: "'JetBrains Mono', monospace",
403+
}}
404+
>
405+
Terracotta · Catalog
406+
</div>
407+
<h3
408+
className="text-5xl leading-none tracking-tight uppercase font-bold"
409+
style={{
410+
fontFamily: "'JetBrains Mono', monospace",
411+
color: '#FFB000',
412+
}}
413+
>
414+
Atlas
415+
</h3>
416+
<p
417+
className="text-xs uppercase tracking-widest leading-relaxed"
418+
style={{
419+
color: '#E8DBB7',
420+
fontFamily: "'JetBrains Mono', monospace",
421+
opacity: 0.8,
422+
}}
423+
>
424+
Phosphor-amber CRT tool-catalog. 38 entries, 9 categories,
425+
boot sequence, clipboard installers — pure terminal
426+
instrument.
427+
</p>
428+
</div>
429+
</div>
430+
<div
431+
className="mt-12 pt-8 flex justify-between items-center relative z-10 border-t"
432+
style={{ borderColor: '#FFB00020' }}
433+
>
434+
<span
435+
className="text-[10px] uppercase tracking-[0.3em]"
436+
style={{
437+
color: '#9AAF4F',
438+
fontFamily: "'JetBrains Mono', monospace",
439+
}}
440+
>
441+
$ ./boot.sh
442+
</span>
443+
<ArrowRightIcon
444+
className="group-hover:translate-x-2 transition-all"
445+
size={24}
446+
style={{ color: '#FFB000' }}
447+
/>
448+
</div>
449+
</motion.div>
450+
</Link>
451+
452+
</div>
453+
</div>
454+
176455
<footer className="mt-24 pt-12 border-t border-black/10 flex flex-col md:flex-row justify-between items-center gap-6 text-black/30 font-outfit text-[10px] uppercase tracking-[0.3em]">
177456
<div className="flex items-center gap-2">
178457
<LayoutIcon size={14} />

0 commit comments

Comments
 (0)