diff --git a/demos/TESTING-REPORT.md b/demos/TESTING-REPORT.md deleted file mode 100644 index 585c34b..0000000 --- a/demos/TESTING-REPORT.md +++ /dev/null @@ -1,140 +0,0 @@ -# Insertr Testing Infrastructure Report - -## Overview - -Successfully established a comprehensive testing infrastructure for insertr CMS across real-world websites, moving beyond the single demo site to demonstrate insertr's versatility across different site types and frameworks. - -## Infrastructure Components - -### ✅ Directory Structure -``` -demos/ -├── simple/ # Simple vanilla CSS sites -│ └── dan-eden-portfolio/ # ✅ COMPLETE -├── framework-based/ # CSS framework sites -├── complex/ # Complex layouts -├── templates/ # Template files -├── scripts/ # Automation utilities -└── results/ # Testing documentation -``` - -### ✅ Automation Scripts -- **`download-site.js`** - wget-based site downloader with assets -- **`enhance-dan-eden.py`** - Site-specific insertr class injection -- **Server Integration** - Sites registered in insertr.yaml - -## Test Site: Dan Eden Portfolio - -### Site Characteristics -- **URL**: https://daneden.me -- **Framework**: Next.js with CSS Modules -- **Complexity**: Simple - ideal for baseline testing -- **Content**: Personal portfolio, project descriptions, bio - -### Enhancement Results -✅ **7 elements** successfully enhanced with insertr classes: -1. App descriptions (Ora, Solstice) -2. Action buttons ("Learn more →", "Read the post →") -3. Talk title ("Where We Can Go") -4. Content spans with auto-generated IDs - -### Technical Validation -- ✅ **Content ID Generation**: `index-span-4ba35c`, `index-span-7-3dcb19` -- ✅ **Content Type Detection**: All elements correctly identified as "markdown" -- ✅ **Asset Preservation**: Next.js bundles, CSS, images intact -- ✅ **Server Registration**: Site registered as "dan-eden-test" -- ✅ **Enhancement Pipeline**: `./insertr enhance` worked seamlessly - -## Key Findings - -### ✅ Zero Configuration Success -- No configuration files needed - just `class="insertr"` -- Insertr automatically detected content types and generated IDs -- Works seamlessly with CSS Modules and Next.js - -### ✅ Framework Compatibility -- CSS Modules don't interfere with insertr classes -- Complex asset paths preserved correctly -- Next.js client-side hydration unaffected - -### ✅ Developer Experience -- Simple enhancement workflow: download → add classes → enhance → serve - -- Clear feedback on enhancement results - -## Comparison with Demo Site - -| Feature | Demo Site | Dan Eden Portfolio | -|---------|-----------|-------------------| -| Framework | Vanilla HTML/CSS | Next.js + CSS Modules | -| Complexity | Designed for insertr | Real-world site | -| Content Types | All types tested | Primarily text/markdown | -| Asset Handling | Simple | Complex (fonts, images, JS bundles) | -| Enhancement | Pre-configured | Added insertr classes manually | - -## Next Steps for Expansion - -### Immediate (Simple Sites) -- [ ] Download GitHub Pages portfolio sites -- [ ] Test Bootstrap documentation pages -- [ ] Test Jekyll blog sites - -### Framework-Based Sites -- [ ] Tailwind CSS marketing pages -- [ ] Vue.js documentation -- [ ] React component library sites - -### Complex Sites -- [ ] Stripe product pages (advanced layouts) -- [ ] Corporate sites with multiple sections -- [ ] E-commerce product pages - -## Technical Insights - -### What Works Well -1. **CSS Framework Agnostic** - Insertr classes don't conflict with existing CSS -2. **Asset Preservation** - Complex build assets maintained perfectly -3. **Content Type Detection** - Smart defaults for different HTML elements -4. **ID Generation** - Deterministic, content-based IDs - -### Areas for Future Testing -1. **JavaScript Interactions** - Test sites with heavy client-side JS -2. **Dynamic Content** - Sites with client-side routing -3. **Complex Forms** - Contact forms, search interfaces -4. **Media Rich Content** - Image galleries, video embeds - -## Success Metrics - -- ✅ **Infrastructure**: Complete test site collection structure -- ✅ **Automation**: Working download and enhancement scripts -- ✅ **Real-world validation**: Successfully enhanced professional portfolio -- ✅ **Framework compatibility**: Next.js + CSS Modules working -- ✅ **Zero-config philosophy**: No configuration files needed -- ✅ **Demo system**: Easy-to-use demo commands for testing - -## Demo Commands - -### **Quick Demo Access** -```bash -# Start default insertr demo -just demo - -# Start Dan Eden portfolio demo -just demo dan-eden - -# List all available demos -just list-demos - -# Test demo infrastructure -node demos/scripts/test-demo.js -``` - -### **Demo Sites Available** -1. **Default Demo** (`just demo`) - Built-in insertr showcase -2. **Dan Eden Portfolio** (`just demo dan-eden`) - Real-world Next.js site - -## Conclusion - -The testing infrastructure is successfully established and validated. Dan Eden's portfolio demonstrates that insertr works seamlessly with real-world sites using modern frameworks. The zero-configuration approach proves effective - developers only need to add `class="insertr"` to make content editable. - -Ready to expand testing to additional site types and complexity levels. \ No newline at end of file diff --git a/demos/dan-eden-portfolio/README.md b/demos/dan-eden-portfolio/README.md deleted file mode 100644 index 4270b4d..0000000 --- a/demos/dan-eden-portfolio/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# Dan Eden Portfolio - -## Original URL -https://daneden.me - -## Downloaded -2025-09-11T15:48:33.014Z - -## Site Characteristics -- **Framework**: Next.js with CSS Modules -- **Styling**: Clean, minimal design with CSS-in-JS -- **Content**: Personal portfolio with bio, projects, and talks -- **Complexity**: Simple - good for basic insertr testing - -## Insertr Enhancement Status -- [x] Content sections identified -- [x] Insertr classes added to key elements -- [x] Enhanced version created -- [x] Insertr functionality tested -- [x] Results documented - -## Test Results -✅ **Enhancement Success**: 7 elements successfully enhanced with insertr -✅ **Server Integration**: Site registered as "dan-eden-test" in insertr.yaml -✅ **Content ID Generation**: Auto-generated IDs like "index-span-4ba35c" -✅ **Content Type Detection**: All elements correctly identified as "markdown" type -✅ **Asset Preservation**: All original Next.js assets and styling preserved - -## Enhanced Elements -1. **Main bio paragraph** (`
`) - Product designer introduction -2. **Company name** (`Meta Reality Labs`) - Current employer -3. **App descriptions** - Ora and Solstice project descriptions -4. **Talk content** - "Where We Can Go" title and description -5. **Action buttons** - "Learn more" and "Read the post" links - -## Testing Notes -- Clean HTML structure ideal for insertr compatibility -- CSS Modules shouldn't interfere with insertr classes -- Good test case for semantic content editing -- Minimal JavaScript complexity - -## Files -- `index.html.original` - Original downloaded version -- `index.html` - Enhanced version with insertr classes -- `insertr-config.json` - Configuration for testing -- `_next/` - Next.js assets and styles diff --git a/demos/dan-eden-portfolio/_next/static/css/53b634381c30ef2d.css b/demos/dan-eden-portfolio/_next/static/css/53b634381c30ef2d.css deleted file mode 100644 index 03e2521..0000000 --- a/demos/dan-eden-portfolio/_next/static/css/53b634381c30ef2d.css +++ /dev/null @@ -1 +0,0 @@ -.styles_root__WJhno{border-top:1px solid;margin-top:var(--sp-l);padding-bottom:var(--sp-l);padding-top:var(--sp-s);color:var(--meta-color);display:grid;grid-template-columns:var(--grid-spec)}.styles_wrapper__ksJQr{grid-column:var(--center-column)}.styles_root__Sngbo{display:grid;grid-template-columns:var(--grid-spec);grid-gap:var(--sp-xs);flex-wrap:wrap;margin-bottom:var(--sp-s)}.styles_root__Sngbo nav ul{display:flex;gap:var(--sp-s)}@media (max-width:64em){.styles_root__Sngbo>*{grid-column:var(--center-column)}}.styles_activeSegment__bfbQi{position:relative}.styles_activeSegment__bfbQi:after{content:"*";position:absolute;top:100%;left:50%;transform:translateX(-50%);color:var(--site-color)}.styles_skipLink__2dFX9{font-family:var(--font-sans);background-color:var(--highlight-color);color:var(--text-color);height:0;margin:0 calc(var(--sp-m) * -1);padding:var(--sp-xs) var(--sp-m);position:absolute;top:-100%}.styles_skipLink__2dFX9 a{--hover-color:var(--text-color)}.styles_skipLink__2dFX9:focus-within{height:auto;position:static}.styles_wrapper__LdFZa{display:grid;grid-gap:var(--sp-m);grid-template-columns:var(--grid-spec);flex-grow:1}.styles_wrapper__LdFZa:focus{outline:none}.styles_wrapper__LdFZa>main{grid-column:var(--center-column)}@font-face{font-family:soehne;src:url(../media/9dc95e7ce14cbd31-s.p.woff2) format("woff2");font-display:auto;font-weight:400;font-style:italic}@font-face{font-family:soehne;src:url(../media/5e542d8afa686b53-s.p.woff2) format("woff2");font-display:auto;font-weight:400;font-style:normal}@font-face{font-family:soehne;src:url(../media/a28223a0e7040579-s.p.woff2) format("woff2");font-display:auto;font-weight:700;font-style:italic}@font-face{font-family:soehne;src:url(../media/756413f36baaf8ed-s.p.woff2) format("woff2");font-display:auto;font-weight:700;font-style:normal}@font-face{font-family:soehne Fallback;src:local("Arial");ascent-override:103.70%;descent-override:23.33%;line-gap-override:0.00%;size-adjust:100.28%}.__className_14341d{font-family:soehne,soehne Fallback}.__variable_14341d{--font-sans:"soehne","soehne Fallback"}@font-face{font-family:tiemposHeadline;src:url(../media/f9cc8dba7980c072-s.p.woff2) format("woff2");font-display:auto;font-weight:200;font-style:normal}@font-face{font-family:tiemposHeadline;src:url(../media/9bee477df93eed36-s.p.woff2) format("woff2");font-display:auto;font-weight:200;font-style:italic}@font-face{font-family:tiemposHeadline Fallback;src:local("Arial");ascent-override:108.45%;descent-override:25.06%;line-gap-override:0.00%;size-adjust:96.18%}.__className_70fc6f{font-family:tiemposHeadline,tiemposHeadline Fallback}.__variable_70fc6f{--font-heading:"tiemposHeadline","tiemposHeadline Fallback"}@font-face{font-family:tiemposText;src:url(../media/35811e5ebd3eec45-s.p.woff2) format("woff2");font-display:auto;font-weight:400;font-style:normal}@font-face{font-family:tiemposText;src:url(../media/43d09daad817983a-s.p.woff2) format("woff2");font-display:auto;font-weight:400;font-style:italic}@font-face{font-family:tiemposText;src:url(../media/f65d3660df0a93a8-s.p.woff2) format("woff2");font-display:auto;font-weight:700;font-style:normal}@font-face{font-family:tiemposText;src:url(../media/6d427e2bcc2b20e6-s.p.woff2) format("woff2");font-display:auto;font-weight:700;font-style:italic}@font-face{font-family:tiemposText Fallback;src:local("Arial");ascent-override:99.80%;descent-override:23.29%;line-gap-override:0.00%;size-adjust:105.61%}.__className_1a1076{font-family:tiemposText,tiemposText Fallback}.__variable_1a1076{--font-serif:"tiemposText","tiemposText Fallback"}@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;src:url(../media/45cf6616ee386f2d-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;src:url(../media/2abeb75a5e332dc3-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Instrument Serif Fallback";src:local("Times New Roman");ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.00%;size-adjust:83.94%}.__className_1d1847{font-family:"Instrument Serif","Instrument Serif Fallback";font-weight:400;font-style:normal}.__variable_1d1847{--font-heading:"Instrument Serif","Instrument Serif Fallback"}:root{color-scheme:light dark;--gray-hue:32;--gray-sat-mult:0.2;--gray00:hsl(var(--gray-hue),calc(var(--gray-sat-mult) * 50%),98%);--gray05:hsl(var(--gray-hue),calc(var(--gray-sat-mult) * 40%),95%);--gray10:hsl(var(--gray-hue),calc(var(--gray-sat-mult) * 40%),90%);--gray20:hsl(var(--gray-hue),calc(var(--gray-sat-mult) * 40%),70%);--gray30:hsl(var(--gray-hue),calc(var(--gray-sat-mult) * 30%),30%);--gray35:hsl(var(--gray-hue),calc(var(--gray-sat-mult) * 15%),20%);--gray40:hsl(var(--gray-hue),calc(var(--gray-sat-mult) * 30%),5%);--baseline:1.6;--xxs:0.2;--xs:0.6;--s:0.8;--m:1;--l:1.25;--xl:2;--xxl:3;--sp-xxs:calc(var(--xxs) * 1rem);--sp-xs:calc(var(--xs) * 1rem);--sp-s:calc(var(--s) * 1rem);--sp-m:calc(var(--m) * 1rem);--sp-l:calc(var(--l) * 1rem);--sp-xl:calc(var(--xl) * 1rem);--sp-xxl:calc(var(--xxl) * 1rem);--container-width:33rem;--page-width:calc(var(--container-width) + (var(--baseline) * var(--m) * 2));--content-width:calc(0.25rem + (100vw - var(---page-width)) / 2);--breakpoint-narrow:50em;--breakpoint-medium:64em;--site-color:#dd425c;--text-color:var(--gray40);--meta-color:var(--gray30);--wash-color:var(--gray00);--mark-color:rgba(255,200,0,0.15);--highlight-color:#ffc800;--hover-color:var(--site-color);--code-wash:var(--gray05);--code-color:#222;--grid-spec:minmax(0,1fr) minmax(auto,var(--container-width)) minmax(0,1fr);--center-column:2/3;--font-sans:system-ui,-apple-system;--font-body:var(--font-serif);--font-caption:var(--font-sans);background-color:var(--wash-color);color:var(--text-color);font-family:var(--font-serif);font-size:clamp(100%,2.75vw,125%);line-height:var(--baseline);font-feature-settings:"ss02" 1,"cv06" 1;font-variant-alternates:stylistic(ss02)}@media (max-width:50em){:root{--grid-spec:minmax(100%,1fr);--center-column:1/-1}}@media (prefers-color-scheme:dark){:root{--text-color:var(--gray00);--meta-color:var(--gray10);--wash-color:var(--gray40);--code-wash:#222;--code-color:#eee}}*{box-sizing:border-box;margin:0;padding:0}video{display:block;max-width:100%}ol,ul,video{margin-bottom:var(--sp-m)}ol,ul{padding-left:var(--sp-l)}a{color:inherit;-webkit-text-decoration-line:underline;text-decoration-line:underline;-webkit-text-decoration-color:var(--hover-color)!important;text-decoration-color:var(--hover-color)!important;text-decoration-thickness:max(.05em,1px)}a:focus,a:hover{color:var(--hover-color)}.footnotes{font-family:var(--font-caption)}.footnotes ol{padding-left:0}.footnotes li{margin-bottom:var(--sp-xs);font-size:var(--sp-s);color:var(--meta-color);letter-spacing:"0.025em"}.footnotes li:target{background-color:var(--mark-color)}.footnote-ref{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.footnote-backref{margin-left:.25em}sup[id^=fn] a{color:var(--hover-color);text-decoration:none}.h1,h1{font-family:var(--font-heading);font-size:var(--sp-xl);font-weight:400;color:var(--font-color);-webkit-hyphens:initial;hyphens:manual;line-height:1.1;padding-bottom:var(--sp-l);padding-top:var(--sp-xl);letter-spacing:-.0125em;text-wrap:balance}.h1,blockquote,h1{margin-bottom:var(--sp-m)}blockquote{border-left:2px solid var(--meta-color);font-style:italic;padding-left:var(--sp-m)}h2{font-family:var(--font-heading);font-size:var(--sp-l);font-weight:400;-webkit-hyphens:initial;hyphens:manual;margin-bottom:var(--sp-m);padding-top:var(--sp-s)}h3{font-size:var(--sp-m);font-weight:400}h3,h4{font-family:var(--font-sans);color:var(--meta-color);-webkit-hyphens:initial;hyphens:manual}h4{font-size:var(--sp-s);font-weight:700}hr{border:0;border-top:1px solid var(--meta-color);width:50%;display:block;margin:var(--sp-xxl) auto;position:relative}hr:after{font-family:var(--font-serif);content:"∞";background-color:var(--wash-color);padding-inline:var(--sp-xs);position:absolute;left:50%;transform:translateX(-50%) translateY(-50%);line-height:.5;top:50%;height:var(--sp-s)}mark{background-color:var(--mark-color);border-radius:var(--sp-xxs);color:inherit;margin-left:calc(var(--sp-xxs) * -1);margin-right:calc(var(--sp-xxs) * -1);padding-left:var(--sp-xxs);padding-right:var(--sp-xxs)}p{margin-bottom:var(--sp-m)}code,pre{padding:.15em .25em;vertical-align:baseline;background-color:var(--code-wash);border-radius:.5em;font-family:var(--font-mono);font-size:.9em;line-height:1;letter-spacing:-.025em;color:var(--code-color)}pre{display:block;line-height:1.5;overflow:auto;padding:var(--sp-xs);margin:0 calc(var(--sp-xs) * -1);white-space:pre;margin-bottom:var(--sp-m)}pre code{padding:0;font-family:inherit;box-shadow:none;background-color:transparent}figure{display:flex;flex-direction:column;justify-content:center;writing-mode:horizontal-tb;margin-bottom:var(--sp-m)}figure img{display:block;max-width:100%;margin:0 auto;flex:1 1 auto;order:2;height:auto}figure figcaption{font-family:var(--font-caption);order:3;margin-top:var(--sp-xxs);color:var(--meta-color)}.small,figcaption,small{font-family:var(--font-caption);font-size:var(--sp-s);letter-spacing:.025em;line-height:var(--baseline)}.meta,.receded,figcaption{color:var(--meta-color)}table{-webkit-hyphens:initial;hyphens:manual;margin-bottom:var(--sp-m);border-collapse:collapse;font-family:var(--font-sans);font-size:var(--sp-s);width:100%}table :matches(th,td){vertical-align:top;padding:var(--sp-xs);padding-top:var(--sp-xxs);padding-bottom:var(--sp-xxs);border-bottom:1px solid var(--gray10)}table th{font-weight:400;font-size:var(--sp-s);border-bottom:1px solid}aside{background-color:var(--mark-color);border-left:2px solid var(--highlight-color);color:inherit;margin-bottom:var(--sp-m);padding:var(--sp-s)}aside :last-child{margin-bottom:0}.zm{margin:0}.serif{font-family:var(--font-serif)}.sans{font-family:var(--font-sans)}.plainlink{text-decoration:none}img{max-width:100%;height:auto}.plainlist{list-style:none;padding:0;margin:0}.post-list-item{margin-bottom:var(--sp-m);line-height:1.3}.sp-m{padding:var(--sp-m)}.tac{text-align:center}.br-l{border-radius:var(--sp-l);overflow:hidden}@media (prefers-color-scheme:dark){.invertInDarkMode{filter:invert(100%) hue-rotate(180deg)}} \ No newline at end of file diff --git a/demos/dan-eden-portfolio/_next/static/css/e0f28746eee6ced7.css b/demos/dan-eden-portfolio/_next/static/css/e0f28746eee6ced7.css deleted file mode 100644 index dd06ecd..0000000 --- a/demos/dan-eden-portfolio/_next/static/css/e0f28746eee6ced7.css +++ /dev/null @@ -1 +0,0 @@ -.styles_root__bf3zB{width:100%;z-index:1}@media (min-width:50em){.styles_root__bf3zB{width:40%}}@media (min-width:64em){.styles_root__bf3zB{width:50%}}.styles_left__647Tl{float:left;margin-left:-25%;margin-right:var(--sp-m)}.styles_right__Ibe_m{float:right;margin-right:-25%;margin-left:var(--sp-m)}@media (max-width:64em){.styles_left__647Tl{margin-left:0}.styles_right__Ibe_m{margin-right:0}}@media (max-width:50em){.styles_left__647Tl,.styles_right__Ibe_m{float:none;margin-left:0;margin-right:none}}.styles_root__ptn_R{align-items:start;display:grid;grid-gap:var(--sp-xs);grid-template-columns:var(--sp-xxl) 1fr;border-top:1px solid var(--meta-color);margin-bottom:var(--sp-m)}.styles_root__ptn_R figure{margin-bottom:0}.styles_title__Uk68P{line-height:1.4;margin:0}.styles_root__FtuUa{text-align:center;position:relative;margin-bottom:var(--sp-xxl);padding-block:3rem}.styles_title__UGdmQ{font-family:var(--font-sans);font-weight:700;font-size:clamp(5rem,8vw,6rem);margin:0;padding:0;line-height:1}.styles_iconContainer__A_Lmc{display:grid;place-items:center;position:absolute;top:0;left:0;right:0;bottom:0}.styles_icon__i2kS0{max-width:12rem;opacity:.15}.styles_tagline__kUCdp{font-family:var(--font-mono)}.styles_portfolioHeader__or8Vo{text-align:center;-webkit-margin-after:var(--sp-xl);margin-block-end:var(--sp-xl);-webkit-margin-before:var(--sp-xxl);margin-block-start:var(--sp-xxl);-webkit-padding-before:var(--sp-xl);padding-block-start:var(--sp-xl)}.styles_appScreenshot__WDZwk{display:block;position:relative;width:max(16rem,20vmax);margin:0 auto 1.5rem}.styles_title__j2FxA{margin:0!important;padding:0!important}.styles_root__rUjFN{position:relative;max-height:80vh;margin:0 auto var(--sp-m);display:grid;place-content:center;align-items:stretch}.styles_children__D9Nsi{overflow:hidden;border-radius:20%;z-index:1;position:relative}.styles_children__D9Nsi video{width:100%;height:auto;object-fit:fill}.styles_children__D9Nsi :matches(figure,video){margin-bottom:0}.styles_bezel___vGQl{position:absolute;pointer-events:none;z-index:2;max-height:100%;width:auto;inset:0;margin:auto}.home_root__o7QEV{display:grid;grid-template-columns:1fr}.home_intro__8dWW4{padding:1.5rem}.home_xxl__iX0Z1{font-size:clamp(1.4rem,7.5vmin,3.5rem);line-height:1.2;font-style:normal;font-family:var(--font-sans)}.home_intro__8dWW4 .home_xxl__iX0Z1 a{--padding-size:0.05em;font-family:var(--font-heading);letter-spacing:0;font-style:italic}.styles_root__loSke{font:inherit;width:100%;border-collapse:collapse;-webkit-border-horizontal-spacing:0}.styles_root__loSke th{font-weight:400;border:none;font-size:inherit;text-align:right;width:calc(((100vw - (var(--sp-m) * 2)) - var(--container-width)) / 2)!important}.styles_root__loSke td,.styles_root__loSke th{vertical-align:top;font-family:var(--font-sans);border:none;line-height:1.2;padding-inline:.25em}.styles_root__loSke th,.styles_root__loSke th+td{border-top:1px solid var(--meta-color)!important}.styles_root__loSke a{text-decoration:none}.styles_root__ezqfE{overflow-x:scroll;max-width:100%;display:flex;padding:.75rem;gap:.75rem;font-family:var(--font-sans);--card-count:3.5}.styles_root__ezqfE h2{font-family:var(--font-sans);margin:0;padding:0;font-variation-settings:"wdth" 132}@media screen and (max-width:1256px){.styles_root__ezqfE{--card-count:2.5}}@media screen and (max-width:800px){.styles_root__ezqfE{--card-count:1.5}}.styles_card__Zgiwg{--flex-basis:calc((100 / var(--card-count)) * 1vw);display:flex;flex-direction:column;flex:1 0 var(--flex-basis);aspect-ratio:5/8;overflow:hidden;background-color:rgba(128,128,128,.1);--highlight-color:rgba(0,0,0,0.125);--button-background:rgba(250,250,250,0.9);--border-radius:.75em;padding:.75rem;border-radius:.75em;position:relative;border:1px solid transparent}@media screen and (prefers-color-scheme:dark){.styles_wwcgImage__6T0vh>img{filter:invert()}.styles_card__Zgiwg{--highlight-color:rgba(255,255,255,0.1);--button-background:rgba(20,20,20,0.9)}}.styles_highlight__PDTTu{background-clip:padding-box}.styles_highlight__PDTTu:after{border-radius:var(--border-radius);content:"";position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none;border:1px solid var(--highlight-color);-webkit-mask-image:linear-gradient(black,rgba(0,0,0,.5));mask-image:linear-gradient(black,rgba(0,0,0,.5))}.styles_stretcher__vQB9_{display:flex;flex:1 1 auto;place-items:center}.styles_button__OAX5k{--border-radius:2em;background-color:var(--button-background);border-radius:2rem;padding:.75em 1em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:absolute;bottom:.75em;right:.75em;text-decoration:none;z-index:10;font-size:.8em;box-shadow:0 4px 8px rgba(0,0,0,.05),0 1px 1px rgba(0,0,0,.125),0 2px 4px rgba(0,0,0,.05);line-height:1}.styles_button__OAX5k:hover{background-color:var(--site-color);color:#fff}.styles_breakoutContainerHack__GixSQ{margin:0 auto;width:0}.styles_breakoutContainer__gxelM{width:calc(100vw - var(--scrollbar-width, 0px));margin-left:-50vw}.styles_withPadding__Ctfi8{padding:var(--sp-s)}.styles_gallery___mOb2{display:grid;grid-gap:var(--sp-xs);gap:var(--sp-xs);grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}.styles_gallery___mOb2 figure{margin-bottom:0}.styles_root__a0fLk{display:flex;gap:var(--sp-m);padding:var(--sp-m);overflow-x:scroll;align-items:center;margin:0 auto;width:-moz-fit-content;width:fit-content}.styles_root__a0fLk>*{flex:0 0 auto}.styles_root__a0fLk>:first-child{-webkit-margin-start:var(--sp-m);margin-inline-start:var(--sp-m)}.styles_root__a0fLk>:last-child{-webkit-margin-end:var(--sp-m);margin-inline-end:var(--sp-m)}.styles_scrollSnapping__C189m{scroll-snap-type:x mandatory}.styles_scrollSnapping__C189m>*{scroll-snap-align:center}.styles_root__a0fLk::-webkit-scrollbar{height:1em;width:1em}.styles_root__a0fLk::-webkit-scrollbar-thumb{background-color:rgba(128,128,128,.3);border:.25em solid transparent;background-clip:padding-box;border-radius:1em}.styles_root__a0fLk::-webkit-scrollbar-thumb:hover{background-color:rgba(128,128,128,.5)}.styles_root__d_zX8{border-radius:var(--sp-s);padding:var(--sp-m);background-color:var(--code-wash);font-family:var(--font-sans);overflow:hidden;position:relative}.styles_root__d_zX8 :last-child{-webkit-margin-after:0;margin-block-end:0}.styles_rating__bj__9{color:orange}.styles_reviewAverage__CwbI2{margin:0;padding:0;font-size:7rem;line-height:1}.styles_reviewAverage__CwbI2:before{content:"★";position:absolute;font-size:20rem;opacity:.05;pointer-events:none;line-height:0;top:50%;left:0;transform:translateY(-50%) translateX(-25%)}.style_container__s6iZM{position:relative}.style_root__aMC8u{display:grid;grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));grid-template-rows:masonry;grid-gap:var(--sp-m);gap:var(--sp-m);max-height:36rem;overflow:hidden}.style_container__s6iZM:has(:checked) .style_root__aMC8u{max-height:none}.style_readMore__0Q4y4{position:absolute;bottom:0;left:0;right:0;padding:calc(var(--sp-m) * 5) var(--sp-m) var(--sp-s);top:50%;text-align:center;background-image:linear-gradient(transparent,var(--wash-color) 55%);display:grid;place-items:center}.style_container__s6iZM:has(:checked) .style_readMore__0Q4y4{position:relative;-webkit-padding-before:0;padding-block-start:0}.style_readMore__0Q4y4 label{cursor:pointer;font-family:var(--font-sans);padding:var(--sp-xs) var(--sp-s);border-radius:var(--sp-s);background-color:var(--text-color);color:var(--wash-color);line-height:1;margin:var(--sp-m)}.style_readMore__0Q4y4 input{display:none}.style_readMoreLabel__xSCtp{display:inline-block}.style_readMoreLabel__xSCtp:after{content:" ↓"}.style_readLessLabel__rkJ8W:after{content:" ↑"}.style_readLessLabel__rkJ8W{display:none}.style_container__s6iZM:has(:checked) .style_readMoreLabel__xSCtp{display:none}.style_container__s6iZM:has(:checked) .style_readLessLabel__rkJ8W{display:inline-block}.styles_root__kUc_z{text-align:center;position:relative;margin-bottom:var(--sp-xxl);padding-block:3rem}.styles_title__HVnEg{font-family:var(--font-sans);font-weight:700;font-size:clamp(5rem,8vw,6rem);margin:0;padding:0;line-height:1}.styles_iconContainer__JG0J_{display:grid;place-items:center;position:absolute;top:0;left:0;right:0;bottom:0}.styles_icon__EgHZ0{max-width:12rem;opacity:.15}.styles_tagline__eeGVU{font-family:var(--font-mono)} \ No newline at end of file diff --git a/demos/dan-eden-portfolio/icon.jpeg?a235122132d5a650 b/demos/dan-eden-portfolio/icon.jpeg?a235122132d5a650 deleted file mode 100644 index 6066f45..0000000 Binary files a/demos/dan-eden-portfolio/icon.jpeg?a235122132d5a650 and /dev/null differ diff --git a/demos/dan-eden-portfolio/index.html b/demos/dan-eden-portfolio/index.html deleted file mode 100644 index 6e1c382..0000000 --- a/demos/dan-eden-portfolio/index.html +++ /dev/null @@ -1,185 +0,0 @@ - - -
- - - - -Daniel Eden is a Product Designer at Meta Reality Labs -, working on Avatars & Identity, helping people express their full selves in the Metaverse. He spends his time writing -, thinking, posting -, and talking about Design Systems: how they scale, how they break, and the people that maintain them.
-An app about time for iPhone, iPad, and Apple Watch.
-An app about daylight for iPhone, iPad, Mac, Apple Watch, and Apple Vision Pro.
-A conference talk -and essay -about design systems and design tools.
-An app for Vercel -developers for iPhone, iPad, and Mac.
-| 2025 | --Ora - - | -
|---|---|
| 2021 | --Solstice - - | -
| - | --Broadcast - - | -
| 2020 | --Eventually - - | -
| - | --Zeitgeist - - | -
| 2019 | --Clarity 2019 - - | -
| 2018 | --Lovers Magazine - - | -
| 2016 | --Design Details - - | -
| - | --One Day Out 2016 - - | -
| 2015 | --dotCSS 2015 - - | -
Founded in 2020, Acme Consulting emerged from a simple observation: small businesses needed access to the same high-quality strategic advice that large corporations receive, but in a format that was accessible, affordable, and actionable.
+Founded in 2020, Acme Consulting emerged from a simple observation: small businesses needed access to the same high-quality strategic advice that large corporations receive, but in a format that was accessible, affordable, and actionable.
-Our founders, with combined experience of over 30 years in business strategy, operations, and technology, recognized that the traditional consulting model wasn't serving the needs of growing businesses. We set out to change that.
+Our founders, with combined experience of over 30 years in business strategy, operations, and technology, recognized that the traditional consulting model wasn't serving the needs of growing businesses. We set out to change that.
-Today, we've helped over **200 businesses** streamline their operations, clarify their strategy, and achieve sustainable growth. Our approach combines proven methodologies with a deep understanding of the unique challenges facing small to medium-sized businesses.
+Today, we've helped over **200 businesses** streamline their operations, clarify their strategy, and achieve sustainable growth. Our approach combines proven methodologies with a deep understanding of the unique challenges facing small to medium-sized businesses.
This paragraph is part of a group.
-Clicking anywhere should open one markdown editor with rich formatting.
-All content should be editable together as markdown with proper HTML conversion.
-