Files
web/index.html
Noah b4ce029dd6
All checks were successful
Deploy Pages / deploy (push) Successful in 21s
fix contrast issue with learn button
2026-03-08 20:20:18 -04:00

447 lines
13 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- Ensure proper scaling on mobile devices -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<!-- Site Description & Keywords -->
<meta name="description" content="A Connecticut mesh technologies user group. Join the local community to connect, share, and explore with fellow enthusiasts.">
<meta name="keywords" content="CT Mesh, Mesh, MeshCore, Meshtastic, Connecticut, CT, community, networking, user group, Discord, map, radio">
<meta name="author" content="CT Mesh">
<link rel="shortcut icon" type="image/x-icon" href="favicon.png?4">
<!-- Open Graph / Facebook -->
<meta property="og:title" content="CT Mesh">
<meta property="og:description" content="A Connecticut mesh technologies user group. Join the local community to connect, share, and explore with fellow enthusiasts.">
<meta property="og:image" content="favicon.png?4">
<meta property="og:url" content="https://ctmesh.org">
<meta property="og:type" content="website">
<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="CT Mesh">
<meta name="twitter:description" content="A Connecticut mesh technologies user group. Join the local community to connect, share, and explore with fellow enthusiasts.">
<meta name="twitter:image" content="favicon.png?4">
<!-- Fonts and Icons -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
<link rel="icon" type="image/png" href="favicon.png?44">
<link rel="apple-touch-icon" sizes="57x57" href="favicon.png?4">
<link rel="apple-touch-icon" sizes="72x72" href="favicon.png?4">
<link rel="apple-touch-icon" sizes="114x114" href="favicon.png?4">
<link rel="apple-touch-icon" sizes="120x120" href="favicon.png?4">
<link rel="apple-touch-icon" sizes="144x144" href="favicon.png?4">
<link rel="apple-touch-icon" sizes="152x152" href="favicon.png?4">
<link rel="apple-touch-icon" sizes="180x180" href="favicon.png?4">
<meta name="msapplication-TileColor" content="#6EBEE1">
<meta name="msapplication-TileImage" content="favicon.png?4">
<meta name="theme-color" content="#6EBEE1">
<title>CT Mesh</title>
<style>
html {
margin: 0;
padding: 0;
width: 100%;
min-height: 100%;
background-color: #272727;
}
body {
margin: 0;
padding: 0;
width: 100%;
min-height: 100%;
font-family: "Roboto", sans-serif;
background-color: transparent;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
body::before {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url('background.svg') no-repeat center center;
background-size: cover;
filter: invert(1) brightness(0.85);
z-index: 0;
}
a,
a:visited {
color: #000000;
}
.overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(80, 80, 80, 0.35);
pointer-events: none;
z-index: 0;
}
.splash-box {
background-color: #EBEBEB;
border-radius: 30px;
padding: 3em 3em 2em 3em;
margin: 2.5em;
width: 90%;
max-width: 700px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
color: #000000;
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
gap: 1em;
}
.top-section {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 0.5em;
width: 100%;
background-color: #272727;
border-radius: 20px 20px 0 0;
margin: -3em -3em 0 -3em;
padding: 2.5em 3em 50px 3em;
position: relative;
}
.email-link img {
width: 35px;
filter: brightness(0) invert(0.7);
}
.wave-divider {
position: absolute;
bottom: -1px;
left: 0;
right: 0;
line-height: 0;
}
.wave-divider svg {
width: 100%;
display: block;
}
.logo {
width: 540px;
height: auto;
}
.text-content {
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
gap: 0.25em;
}
.text-content h1 {
margin: 0;
font-size: 24px;
}
.text-content p {
margin: 0.5em 0;
}
.sub-header {
font-weight: bold;
padding-bottom: 4px;
margin: 0;
color: #e0e0e0;
}
.btn {
display: flex;
align-items: center;
gap: 12px;
background-color: #67EA94;
color: #000000;
border: none;
padding: 1em 1.75em;
border-radius: 999px;
cursor: pointer;
font-weight: bold;
margin-top: 0.5em;
font-size: 17px;
text-align: left;
text-decoration: none;
box-sizing: border-box;
flex: 1 1 240px;
max-width: 260px;
}
.btn-text {
display: flex;
flex-direction: column;
line-height: 1.1;
}
.btn-text small {
font-size: 12px;
margin-top: 4px;
}
.btn img {
height: 30px;
filter: brightness(0);
}
.btn-discord,
.btn-discord:visited {
background-color: #5865F2;
color: #ffffff;
justify-content: center;
}
.btn-discord img {
filter: brightness(0) invert(1);
}
.btn-meshcore,
.btn-meshcore:visited {
background-color: #2B3A4E;
color: #ffffff;
}
.btn-learn,
.btn-learn:visited {
background-color: #6EBEE1;
color: #000;
}
.btn-learn img {
filter: brightness(1);
}
.btn-meshcore img {
filter: brightness(0) invert(1);
}
a.btn[target="_blank"]::after {
content: "";
width: 16px;
height: 16px;
margin-left: auto;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5L8.5 3.5M5 3.5h3.5V7'/%3E%3C/svg%3E") no-repeat center;
background-size: contain;
flex-shrink: 0;
opacity: 0.4;
}
a.btn:not([target="_blank"])::after {
content: "";
width: 16px;
height: 16px;
margin-left: auto;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 2.5L8.5 6L4 9.5'/%3E%3C/svg%3E") no-repeat center;
background-size: contain;
flex-shrink: 0;
opacity: 0.4;
}
.btn-discord::after {
display: none;
}
.btn-meshcore::after {
filter: invert(1) !important;
}
.btn-group {
display: flex;
gap: 1em;
flex-wrap: wrap;
justify-content: center;
width: 100%;
}
.btn-groups {
display: flex;
flex-direction: column;
gap: 1.5em;
}
.section-title {
margin: 0.5em 0 0;
padding-top: 1em;
font-size: 1rem;
text-transform: uppercase;
letter-spacing: 0.08em;
color: #2C2D3C;
text-align: center;
}
.section {
display: flex;
flex-direction: column;
gap: 0.75em;
}
.btn-small {
display: inline-block;
margin-top: 0.5em;
color: #fff;
background-color: #2C2D3C;
font-weight: bold;
text-decoration: none;
padding: 0.5em 1.25em;
border-radius: 15px;
}
.site-footer {
margin-top: 2em;
padding-top: 2em;
text-align: center;
font-size: 0.875rem;
color: #2C2D3C;
border-top: 1px solid #ccc;
}
.site-footer a {
text-decoration: none;
}
.site-footer a:hover {
text-decoration: underline;
}
/* Adjustments for devices with a viewport width of 800px or less */
@media (max-width: 800px) {
body {
align-items: flex-start;
padding-top: calc(env(safe-area-inset-top, 1em));
}
.splash-box {
padding: 2em;
margin: 1em 0;
width: calc(100% - 5em);
}
.top-section {
margin: -2em -2em 0 -2em;
padding: 2em 2em 50px 2em;
}
.logo {
width: 335px;
padding-right: 0;
}
.btn-group {
flex-direction: column;
align-items: center;
}
.section-title {
text-align: center;
}
.btn {
width: 340px;
max-width: 100%;
justify-content: flex-start;
padding: 0.8em 1em;
font-size: 16px;
text-align: left;
flex: none;
}
}
/* Further adjustments for devices with a viewport width of 480px or less */
@media (max-width: 480px) {
.splash-box {
padding: 1.5em;
}
.top-section {
margin: -1.5em -1.5em 0 -1.5em;
padding: 1.5em 1.5em 50px 1.5em;
}
.logo {
width: 300px;
}
.text-content h1 {
font-size: 20px;
}
.text-content p {
font-size: 14px;
}
.btn {
padding: 0.7em 1em;
font-size: 14px;
}
}
</style>
</head>
<body>
<div class="overlay"></div>
<div class="splash-box">
<div class="top-section">
<img src="logo_sm.png" alt="CT Mesh Logo" class="logo" />
<div class="text-content">
<p class="sub-header">A Connecticut Mesh Technologies User Group</p>
<a href="mailto:noah@ctmesh.org" class="email-link" rel="nofollow noindex"><img src="email.svg" alt="Email" /></a>
</div>
<div class="btn-group" style="margin-bottom: 1em;">
<a href="https://ctmesh.org/discord" target="_blank" class="btn btn-discord">
<img src="discord.svg" alt="Discord" />
<div class="btn-text">
Join our Discord
<small>Chat with the community</small>
</div>
</a>
<a href="why-run-a-node.html" class="btn btn-learn">
<img src="info.svg" alt="Learn about mesh networking" />
<div class="btn-text">
Why Mesh?
<small>Learn about the mesh!</small>
</div>
</a>
</div>
<div class="wave-divider">
<svg viewBox="0 0 1440 60" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0,30 C240,60 480,0 720,30 C960,60 1200,0 1440,30 L1440,60 L0,60 Z" fill="#EBEBEB"/>
</svg>
</div>
</div>
<div class="btn-groups">
<div class="section">
<p class="section-title">MeshCore</p>
<div class="btn-group">
<a href="https://meshcore.co.uk/" target="_blank" class="btn btn-meshcore">
<img src="meshcore.svg" alt="MeshCore" />
<div class="btn-text">
MeshCore
<small>About the project</small>
</div>
</a>
<a href="https://meshcore-map.ctmesh.org/" target="_blank" class="btn btn-meshcore">
<img src="map.svg" alt="Map" />
<div class="btn-text">
Node Map
<small>Live MeshCore nodes</small>
</div>
</a>
<a href="meshcore-resources.html" class="btn btn-meshcore">
<img src="info.svg" alt="Guides & Tools" />
<div class="btn-text">
Guides & Tools
<small>Wardrive, MQTT, setup</small>
</div>
</a>
</div>
</div>
</div>
<div class="section">
<p class="section-title">Meshtastic</p>
<div class="btn-group">
<a href="https://meshtastic.org/" target="_blank" class="btn">
<img src="meshtastic.svg" alt="Meshtastic" />
<div class="btn-text">
Meshtastic
<small>About the project</small>
</div>
</a>
<a href="https://map.ctmesh.org/?lat=41.734429390721&lng=287.3501586914063&zoom=10" target="_blank" class="btn">
<img src="map.svg" alt="Map" />
<div class="btn-text">
Node Map
<small>CT Mesh nodes</small>
</div>
</a>
<a href="meshtastic-resources.html" class="btn">
<img src="info.svg" alt="Guides & Tools" />
<div class="btn-text">
Guides & Tools
<small>Channels, MQTT, setup</small>
</div>
</a>
</div>
</div>
<footer class="site-footer">
<p><a href="https://ctmesh.org/">CT Mesh</a> is a volunteer-run user group for mesh technology enthusiasts in Connecticut.</p>
<p><a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank" rel="noopener">Content licensed CC BY-SA 4.0</a></p>
</footer>
</div>
</body>
</html>