- Reviews and forum posts/replies now use a modern comment layout: avatar + username/meta on the left, content/actions on the right.

Added sanitized Markdown rendering for reviews, forum topics, and 
replies.
Added a local Markdown editor with toolbar and live visual preview 
for:Review body on 
[business.php](/Users/tyemeclifford/Documents/GH/MyKeyser/business.php)
Forum topic body and reply body on 
[forum.php](/Users/tyemeclifford/Documents/GH/MyKeyser/forum.php)

Added editor/comment styling in 
[assets/css/style.css](/Users/tyemeclifford/Documents/GH/MyKeyser/assets/css/style.css).
Added the editor script at 
[assets/js/markdown-editor.js](/Users/tyemeclifford/Documents/GH/MyKeyser/assets/js/markdown-editor.js), 
included globally through 
[includes/footer.php](/Users/tyemeclifford/Documents/GH/MyKeyser/includes/footer.php).
This commit is contained in:
Ty Clifford
2026-06-19 11:07:43 -04:00
parent 25327e3302
commit ed932a6cd6
6 changed files with 305 additions and 37 deletions
+34 -10
View File
@@ -233,13 +233,16 @@ address{font-style:normal}
.mi-desc{font-size:.78rem;color:var(--text-d);margin-top:.12rem}
.mi-price{font-family:'Oswald',sans-serif;font-size:.95rem;color:var(--gold);flex-shrink:0}
/* ── Reviews ────────────────────────────────────────────── */
.rev-card{background:var(--bg3);border:1px solid var(--bdr);border-radius:var(--r);padding:1.2rem;margin-bottom:.9rem}
.rev-hdr{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.65rem}
.rev-author{font-family:'Oswald',sans-serif;font-size:.88rem;letter-spacing:.05em;color:var(--text)}
.rev-date{font-size:.73rem;color:var(--text-d)}
.rev-title{font-size:.9rem;font-weight:600;color:var(--text);margin:.4rem 0 .3rem}
.rev-body{font-size:.88rem;color:var(--text-m);line-height:1.62}
/* ── Reviews / Comments ─────────────────────────────────── */
.rev-card{margin-bottom:1rem}
.comment-card{display:grid;grid-template-columns:150px minmax(0,1fr);gap:1.2rem;background:linear-gradient(180deg,rgba(14,23,43,.96),rgba(8,13,27,.96));border:1px solid rgba(38,244,255,.16);border-radius:var(--r);padding:1.15rem;box-shadow:0 0 0 1px rgba(255,209,102,.03)}
.comment-author{display:grid;justify-items:center;align-content:start;gap:.45rem;text-align:center;padding:.65rem .5rem;border-right:1px solid rgba(38,244,255,.14);min-width:0}
.comment-name{font-family:'Oswald',sans-serif;font-size:.86rem;letter-spacing:.08em;color:var(--text);max-width:100%;overflow:hidden;text-overflow:ellipsis}
.comment-meta{font-size:.74rem;color:var(--text-d)}
.comment-content{min-width:0;padding:.2rem 0}
.comment-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.55rem}
.rev-title{font-size:1rem;font-weight:700;color:var(--text);line-height:1.3}
.rev-body{font-size:.92rem;color:var(--text-m);line-height:1.68}
/* ── Forms ──────────────────────────────────────────────── */
.form-box{background:var(--bg3);border:1px solid var(--bdr);border-radius:var(--r-lg);padding:2.25rem;max-width:480px;margin:4rem auto}
@@ -255,6 +258,26 @@ address{font-style:normal}
.fhint{font-size:.75rem;color:var(--text-d);margin-top:.3rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.err-box{padding:.65rem 1rem;border-radius:4px;margin-bottom:1rem;font-size:.88rem;background:rgba(143,45,45,.28);border:1px solid var(--red-l);color:#ff9a9a}
.md-editor{border:1px solid rgba(38,244,255,.2);border-radius:var(--r);background:rgba(0,0,0,.18);overflow:hidden}
.md-toolbar{display:flex;gap:.3rem;flex-wrap:wrap;padding:.45rem;background:rgba(18,31,56,.9);border-bottom:1px solid rgba(38,244,255,.14)}
.md-tool{width:32px;height:30px;display:grid;place-items:center;border:1px solid rgba(38,244,255,.2);border-radius:4px;background:rgba(3,5,11,.48);color:var(--cyan-l);font-family:'Oswald',sans-serif;font-size:.74rem;letter-spacing:.04em;transition:all var(--t)}
.md-tool:hover{border-color:var(--cyan);background:var(--cyan-dim);color:var(--text)}
.md-panes{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:220px}
.md-write{min-width:0;border-right:1px solid rgba(38,244,255,.14)}
.md-source{border:none!important;border-radius:0!important;background:rgba(0,0,0,.32)!important;min-height:220px;height:100%;resize:vertical}
.md-preview{min-height:220px;padding:.85rem 1rem;background:rgba(10,16,32,.58);overflow:auto}
.md-empty{color:var(--text-d)!important;font-style:italic}
.markdown-body{color:var(--text-m);line-height:1.72;overflow-wrap:anywhere}
.markdown-body p{margin:0 0 .8rem}
.markdown-body p:last-child{margin-bottom:0}
.markdown-body h3,.markdown-body h4,.markdown-body h5{font-family:'Oswald',sans-serif;letter-spacing:.08em;color:var(--text);margin:.9rem 0 .45rem}
.markdown-body ul,.markdown-body ol{list-style:revert;margin:.45rem 0 .85rem 1.25rem}
.markdown-body li{margin:.2rem 0}
.markdown-body blockquote{border-left:3px solid var(--cyan);padding:.45rem .75rem;margin:.7rem 0;background:rgba(38,244,255,.07);color:var(--text)}
.markdown-body code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;background:rgba(255,209,102,.12);border:1px solid rgba(255,209,102,.18);border-radius:3px;padding:.05rem .25rem;color:var(--gold-l)}
.markdown-body pre{background:rgba(0,0,0,.46);border:1px solid rgba(38,244,255,.18);border-radius:var(--r);padding:.75rem;overflow:auto;margin:.8rem 0}
.markdown-body pre code{background:none;border:none;padding:0;color:var(--text-m)}
.markdown-body a{color:var(--cyan-l);text-decoration:underline;text-underline-offset:2px}
.hp-field{position:absolute;left:-9999px;top:-9999px;opacity:0;height:0;width:0;overflow:hidden;pointer-events:none}
.tos-check{display:flex;align-items:flex-start;gap:.65rem;background:rgba(18,31,56,.78);border:1px solid rgba(38,244,255,.18);border-radius:var(--r);padding:1rem 1.15rem;cursor:pointer;transition:border-color var(--t);margin:1.4rem 0}
.tos-check:has(input:checked){border-color:rgba(77,255,155,.5)}
@@ -446,7 +469,7 @@ address{font-style:normal}
.forum-topic-count{font-family:'Oswald',sans-serif;letter-spacing:.08em;font-size:.74rem;color:var(--cyan-l);white-space:nowrap}
.forum-byline{display:flex;align-items:center;gap:.45rem;color:var(--text-d);font-size:.86rem;flex-wrap:wrap}
.forum-thread{max-width:980px}
.forum-post,.forum-reply{background:var(--bg3);border:1px solid var(--bdr);border-radius:var(--r);padding:1.25rem;margin-bottom:1rem}
.forum-post,.forum-reply{background:linear-gradient(180deg,rgba(14,23,43,.96),rgba(8,13,27,.96));border:1px solid rgba(38,244,255,.16);border-radius:var(--r);padding:1.25rem;margin-bottom:1rem}
.forum-post-body{color:var(--text-m);line-height:1.75;overflow-wrap:anywhere}
.forum-attachments{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;margin-top:1rem}
.forum-attachment-image{display:block;overflow:hidden;border-radius:var(--r);border:1px solid rgba(38,244,255,.2);background:var(--bg4);aspect-ratio:4/3}
@@ -468,13 +491,14 @@ address{font-style:normal}
/* ── Responsive ─────────────────────────────────────────── */
@media(max-width:1100px){.footer-grid{grid-template-columns:1fr 1fr}.home-hero-grid{grid-template-columns:1fr}.hero-signal{grid-template-columns:1fr 1fr}.signal-card-main{min-height:auto}.about-split{grid-template-columns:1fr}}
@media(max-width:900px){.detail-body{grid-template-columns:1fr}.admin-wrap{grid-template-columns:1fr}.admin-side{position:static;max-height:none;border-right:none;border-bottom:1px solid var(--bdr)}.form-row{grid-template-columns:1fr}.section-head{align-items:flex-start;flex-direction:column}.random-list{grid-template-columns:1fr}.signup-grid,.tier-grid{grid-template-columns:1fr}.home-facts{grid-template-columns:1fr}.forum-layout{grid-template-columns:1fr}.avatar-upload-grid{grid-template-columns:1fr}.evt-image-wrap{width:140px;flex-basis:140px}}
@media(max-width:900px){.detail-body{grid-template-columns:1fr}.admin-wrap{grid-template-columns:1fr}.admin-side{position:static;max-height:none;border-right:none;border-bottom:1px solid var(--bdr)}.form-row{grid-template-columns:1fr}.section-head{align-items:flex-start;flex-direction:column}.random-list{grid-template-columns:1fr}.signup-grid,.tier-grid{grid-template-columns:1fr}.home-facts{grid-template-columns:1fr}.forum-layout{grid-template-columns:1fr}.avatar-upload-grid{grid-template-columns:1fr}.evt-image-wrap{width:140px;flex-basis:140px}.md-panes{grid-template-columns:1fr}.md-write{border-right:none;border-bottom:1px solid rgba(38,244,255,.14)}}
@media(max-width:768px){
.nav-links{display:none;position:absolute;top:64px;left:0;right:0;background:var(--bg0);border-bottom:1px solid var(--bdr-l);flex-direction:column;padding:.75rem 1rem;gap:.1rem;box-shadow:var(--sh)}
.nav-links.open{display:flex}.hamburger{display:flex}
.user-wrap{width:100%}.user-btn{width:100%;text-align:left}
.user-dd{position:static;box-shadow:none;border:none;background:var(--bg2)}
.hero{min-height:80vh}.g3,.g4{grid-template-columns:1fr}.evt-card{flex-direction:column}.evt-image-wrap{width:100%;height:190px;flex-basis:auto}.event-strip .evt-card{display:flex}.event-strip .evt-image-wrap{height:190px}
.comment-card{grid-template-columns:1fr;gap:.85rem}.comment-author{border-right:none;border-bottom:1px solid rgba(38,244,255,.14);display:flex;text-align:left;justify-content:flex-start;align-items:center}.comment-author .stars{margin-left:auto}.comment-content{padding:0}.comment-topline{align-items:center}
.home-hero{min-height:auto;padding:4rem 1rem 3rem}.home-hero .hero-h1{font-size:clamp(3rem,17vw,4.6rem)}.hero-search{flex-direction:column}.hero-search .s-icon{top:1.35rem}.hero-search .btn{justify-content:center}.hero-signal,.signal-mini-grid{grid-template-columns:1fr}.join-band{align-items:flex-start;flex-direction:column;margin-bottom:2.5rem}.signup-shell{padding:3rem 1rem}.signup-card{padding:1rem}.tier-card{min-height:auto}
}
@media(max-width:560px){.hero-h1{font-size:3rem}.footer-grid{grid-template-columns:1fr}.hrs-grid{grid-template-columns:1fr}.form-box{margin:2rem 1rem}.random-row{grid-template-columns:36px 1fr}.random-arrow{display:none}.home-hero .hero-eyebrow{letter-spacing:.18em}.btn{white-space:normal;text-align:center}.signal-number{font-size:3.6rem}}
@media(max-width:560px){.hero-h1{font-size:3rem}.footer-grid{grid-template-columns:1fr}.hrs-grid{grid-template-columns:1fr}.form-box{margin:2rem 1rem}.random-row{grid-template-columns:36px 1fr}.random-arrow{display:none}.home-hero .hero-eyebrow{letter-spacing:.18em}.btn{white-space:normal;text-align:center}.signal-number{font-size:3.6rem}.comment-author{display:grid;justify-items:start}.comment-author .stars{margin-left:0}.md-tool{width:30px}.forum-topic-row{grid-template-columns:38px minmax(0,1fr)}.forum-topic-count{grid-column:2}}