Compare commits

..

No commits in common. "main" and "gh-pages" have entirely different histories.

10 changed files with 101 additions and 89 deletions

View file

@ -1,46 +0,0 @@
name: Deploy to GitHub Pages
on:
push:
branches: ["main"]
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download gh
run: |
curl -sL "https://github.com/cli/cli/releases/download/v2.63.2/gh_2.63.2_linux_amd64.tar.gz" -o /tmp/gh.tar.gz
tar -xzf /tmp/gh.tar.gz -C /tmp/
- name: Enable Pages via API
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
/tmp/gh_2.63.2_linux_amd64/bin/gh api --method POST repos/${{ github.repository }}/pages \
--field source[branch]=main --field source[path]='/' || echo "Create failed, trying update..."
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: '.'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

1
CNAME Normal file
View file

@ -0,0 +1 @@
MiamiAlumniChicagolandPresident.brendan.greenlee.website

BIN
apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
favicon-16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

BIN
favicon-32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

BIN
favicon-64.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

BIN
favicon-custom.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 487 B

BIN
favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

View file

@ -9,26 +9,31 @@
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet">
<link rel="stylesheet" href="style.css"> <link rel="stylesheet" href="style.css">
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='4' fill='%23C41E3A'/%3E%3Ctext x='16' y='22' font-family='Georgia,serif' font-size='22' font-weight='bold' fill='white' text-anchor='middle'%3EM%3C/text%3E%3C/svg%3E"> <link rel="icon" type="image/png" href="favicon-custom.png">
<link rel="apple-touch-icon" href="favicon-custom.png">
</head> </head>
<body> <body>
<!-- ===== Header ===== --> <!-- ===== Header ===== -->
<header class="site-header"> <header class="site-header">
<h1>Miami Alumni<br>Chicagoland Business Directory</h1> <h1>Miami Alumni Chicagoland Business Directory</h1>
<p class="subtitle">Supporting Miami University alumniowned businesses in the greater Chicago area</p> <p class="subtitle">Supporting Miami University alumniowned businesses in the Chicagoland area</p>
<span class="miami-badge">Love &amp; Honor 🤍❤️</span>
</header> </header>
<!-- ===== Filter Bar ===== --> <!-- ===== Filter Bar ===== -->
<nav class="filter-bar" role="navigation" aria-label="Filter businesses"> <nav class="filter-bar" role="navigation" aria-label="Filter businesses">
<div class="filter-bar-inner"> <div class="filter-bar-inner">
<div class="stats"> <div class="stats">
<strong id="totalCount">11</strong> businesses <strong id="totalCount">9</strong> businesses
</div> </div>
<div class="search-wrapper"> <div class="search-wrapper">
<input type="text" id="searchInput" placeholder="Search by name, industry, or location…" aria-label="Search businesses"> <input type="text" id="searchInput" placeholder="Search by name, industry, or location…" aria-label="Search businesses">
</div> </div>
<button class="filter-toggle" id="filterToggle" aria-expanded="true" onclick="toggleFilters()">
<span class="filter-toggle-label">Industry</span>
<span class="filter-toggle-badge" id="filterBadge">All</span>
<svg class="filter-toggle-arrow" width="12" height="8" viewBox="0 0 12 8"><path d="M1 1l5 5 5-5" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round"/></svg>
</button>
<div class="industry-filters" id="industryFilters"> <div class="industry-filters" id="industryFilters">
<button class="industry-btn active" data-filter="all">All</button> <button class="industry-btn active" data-filter="all">All</button>
</div> </div>
@ -44,7 +49,6 @@
<footer class="site-footer"> <footer class="site-footer">
<div>Miami University Alumni Chicagoland Chapter</div> <div>Miami University Alumni Chicagoland Chapter</div>
<div><a href="https://www.miamialum.org" target="_blank" rel="noopener">miamialum.org</a></div> <div><a href="https://www.miamialum.org" target="_blank" rel="noopener">miamialum.org</a></div>
<div class="footer-love">Made with Love &amp; Honor for the Miami community</div>
</footer> </footer>
<!-- ===== Data & Script ===== --> <!-- ===== Data & Script ===== -->
@ -61,7 +65,7 @@
address: "1507 W. Lawrence, Chicago, IL", address: "1507 W. Lawrence, Chicago, IL",
description: "Mental health practice providing individual, couples, and family therapy services.", description: "Mental health practice providing individual, couples, and family therapy services.",
phone: "(773) 569-1426", phone: "(773) 569-1426",
email: null, email: "biankahardinpsyd@centeredtherapychicago.com",
website: null website: null
}, },
{ {
@ -73,7 +77,7 @@
address: "301 S County Farm Rd Suite H, Wheaton, IL", address: "301 S County Farm Rd Suite H, Wheaton, IL",
description: "Specialized pelvic floor physical therapy clinic dedicated to women's health and wellness.", description: "Specialized pelvic floor physical therapy clinic dedicated to women's health and wellness.",
phone: "(773) 219-2749", phone: "(773) 219-2749",
email: null, email: "jana@chicagopelvic.com",
website: null website: null
}, },
{ {
@ -82,10 +86,10 @@
role: "Owner/Founder", role: "Owner/Founder",
industry: "Human Resources", industry: "Human Resources",
location: "Chicago, IL", location: "Chicago, IL",
address: "5442 N Ashland Ave Apt 1, Chicago, IL", address: "7022 N. Paulina Street, Apt 2, Chicago, IL 60626",
description: "Leadership development consulting since the late 1980s — executive coaching, leadership training, and assessments.", description: "Leadership development consulting since the late 1980s — executive coaching, leadership training, and assessments.",
phone: "(312) 208-0636", phone: "(312) 208-0636",
email: null, email: "steve.garrett@garrettconsulting.us",
website: null website: null
}, },
{ {
@ -97,7 +101,7 @@
address: "10 S. Wacker, Chicago, IL", address: "10 S. Wacker, Chicago, IL",
description: "Global alternative asset manager specializing in logistics, self-storage, and data center assets.", description: "Global alternative asset manager specializing in logistics, self-storage, and data center assets.",
phone: null, phone: null,
email: null, email: "bleigh@gcp.com",
website: null website: null
}, },
{ {
@ -109,31 +113,7 @@
address: "829 Main St, Evanston, IL", address: "829 Main St, Evanston, IL",
description: "State Farm Agency providing insurance and financial services to the Evanston community.", description: "State Farm Agency providing insurance and financial services to the Evanston community.",
phone: "(847) 869-2336", phone: "(847) 869-2336",
email: null, email: "Agent@JohnTylerCarlson.com",
website: null
},
{
company: "The Lakefront Restaurant",
alumni: "Emily LeFevers",
role: "Owner",
industry: "Food &amp; Beverages",
location: "Chicago, IL",
address: "2401 N Lake Shore Dr, Chicago, IL (Theater on the Lake building)",
description: "Upscale tavern with indoor/outdoor seating offering a premier lakeside dining experience.",
phone: "(312) 414-1313",
email: null,
website: null
},
{
company: "Millennium Hall",
alumni: "Brendan Greenlee",
role: "Owner",
industry: "Food &amp; Beverages",
location: "Chicago, IL",
address: "11 N Michigan Ave, Chicago, IL (underneath Cloud Gate)",
description: "Collective eatery offering diverse food options in the heart of Millennium Park.",
phone: null,
email: null,
website: null website: null
}, },
{ {
@ -145,7 +125,7 @@
address: "227 W. Monroe St, Chicago, IL", address: "227 W. Monroe St, Chicago, IL",
description: "Private wealth management and financial advisory services for individuals and families.", description: "Private wealth management and financial advisory services for individuals and families.",
phone: null, phone: null,
email: null, email: "James.lamoree@ms.com",
website: null website: null
}, },
{ {
@ -157,7 +137,7 @@
address: "500 W. Madison St Suite 1725, Chicago, IL", address: "500 W. Madison St Suite 1725, Chicago, IL",
description: "Female-owned practice serving professionals and businesses with insurance and securities solutions.", description: "Female-owned practice serving professionals and businesses with insurance and securities solutions.",
phone: "(312) 493-7216", phone: "(312) 493-7216",
email: null, email: "mvelzy@ft.newyorklife.com",
website: null website: null
}, },
{ {
@ -169,11 +149,11 @@
address: "4310 Lawn Avenue, Western Springs, IL", address: "4310 Lawn Avenue, Western Springs, IL",
description: "Consulting and coaching for nonprofit leaders and fundraisers to maximize their impact.", description: "Consulting and coaching for nonprofit leaders and fundraisers to maximize their impact.",
phone: "(312) 231-9712", phone: "(312) 231-9712",
email: null, email: "renee.n.davis@gmail.com",
website: null website: null
}, },
{ {
company: "Ruggaard &amp; Associates, LLC", company: "Ruggaard & Associates, LLC",
alumni: "Ryan Ruggaard", alumni: "Ryan Ruggaard",
role: "Owner/Partner", role: "Owner/Partner",
industry: "Investment Management", industry: "Investment Management",
@ -181,7 +161,7 @@
address: "171 N Aberdeen St Suite 400, Chicago, IL", address: "171 N Aberdeen St Suite 400, Chicago, IL",
description: "Registered investment advisor serving 300+ clients across 35 states. Contact Ryan at ryan@ruggaard.net or Randy at randy@ruggaard.net.", description: "Registered investment advisor serving 300+ clients across 35 states. Contact Ryan at ryan@ruggaard.net or Randy at randy@ruggaard.net.",
phone: "(330) 487-5888", phone: "(330) 487-5888",
email: null, email: "ryan@ruggaard.net",
website: null website: null
} }
]; ];
@ -263,11 +243,24 @@
btn.classList.add('active'); btn.classList.add('active');
activeFilter = btn.dataset.filter; activeFilter = btn.dataset.filter;
render(); render();
// Update the filter toggle badge
const badge = document.getElementById('filterBadge');
if (badge) badge.textContent = btn.textContent;
}); });
// ─── Initial Render ─────────────────────────────────────────────── // ─── Initial Render ───────────────────────────────────────────────
render(); render();
</script> // Set initial badge
const initBadge = document.getElementById('filterBadge');
if (initBadge) initBadge.textContent = document.querySelector('.industry-btn.active')?.textContent || 'All';
function toggleFilters() {
const container = document.getElementById('industryFilters');
const toggle = document.getElementById('filterToggle');
const isOpen = toggle.getAttribute('aria-expanded') === 'true';
container.classList.toggle('collapsed', isOpen);
toggle.setAttribute('aria-expanded', !isOpen);
}</script>
</body> </body>
</html> </html>

View file

@ -374,3 +374,67 @@ main {
.business-card { break-inside: avoid; box-shadow: none; border: 1px solid #ccc; } .business-card { break-inside: avoid; box-shadow: none; border: 1px solid #ccc; }
.site-header { break-after: avoid; padding: 1rem; } .site-header { break-after: avoid; padding: 1rem; }
} }
/* ===== Industry Filter Toggle (Mobile) ===== */
.filter-toggle {
display: none;
align-items: center;
gap: 0.5rem;
padding: 0.5rem 0.8rem;
border: 1.5px solid var(--light-gray);
border-radius: 6px;
background: var(--white);
font-size: 0.85rem;
font-family: inherit;
font-weight: 600;
color: var(--dark-gray);
cursor: pointer;
transition: all 0.15s;
width: 100%;
justify-content: space-between;
}
.filter-toggle:hover {
border-color: var(--miami-red-light);
}
.filter-toggle-badge {
background: var(--miami-red);
color: var(--white);
font-size: 0.7rem;
padding: 0.15rem 0.5rem;
border-radius: 100px;
font-weight: 600;
}
.filter-toggle-arrow {
transition: transform 0.2s;
color: var(--medium-gray);
}
.filter-toggle[aria-expanded="true"] .filter-toggle-arrow {
transform: rotate(180deg);
}
/* Only show toggle and hide filters behind it on mobile */
@media (max-width: 768px) {
.filter-toggle {
display: flex;
}
.industry-filters {
display: flex !important;
max-height: 500px;
overflow: hidden;
transition: max-height 0.25s ease, opacity 0.2s ease, margin 0.2s ease;
opacity: 1;
margin-top: 0.5rem;
}
.industry-filters.collapsed {
max-height: 0 !important;
opacity: 0;
margin-top: 0;
padding-top: 0;
padding-bottom: 0;
overflow: hidden;
}
}