initial echo project website (rust + axum + askama)
This commit is contained in:
commit
899040a319
11 changed files with 1480 additions and 0 deletions
5
static/favicon.svg
Normal file
5
static/favicon.svg
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
|
||||
<rect width="64" height="64" rx="14" fill="#0b0e14"/>
|
||||
<text x="50%" y="55%" font-family="ui-monospace,monospace" font-size="34" font-weight="700"
|
||||
fill="#e6edf3" text-anchor="middle" dominant-baseline="middle">e<tspan fill="#3fb950">.</tspan></text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 329 B |
124
static/style.css
Normal file
124
static/style.css
Normal file
|
|
@ -0,0 +1,124 @@
|
|||
:root{
|
||||
--bg:#0b0e14; --bg2:#11161f; --bg3:#161c27;
|
||||
--line:#222b38; --line2:#2b3646;
|
||||
--fg:#c8d3e0; --fg2:#7d8896; --hi:#e6edf3;
|
||||
--accent:#3fb950; --accent2:#2ea043; --link:#58a6ff;
|
||||
--radius:12px; --wrap:1040px;
|
||||
color-scheme:dark;
|
||||
}
|
||||
*{box-sizing:border-box}
|
||||
html{scroll-behavior:smooth}
|
||||
body{
|
||||
margin:0; background:var(--bg); color:var(--fg);
|
||||
font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
|
||||
-webkit-font-smoothing:antialiased;
|
||||
}
|
||||
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
|
||||
a{color:var(--link);text-decoration:none}
|
||||
a:hover{text-decoration:underline}
|
||||
h1,h2,h3,h4{color:var(--hi);line-height:1.2}
|
||||
.accent{color:var(--accent)}
|
||||
main{min-height:60vh}
|
||||
.wrap,.hero,.split,.page-head,.cs-in{max-width:var(--wrap);margin:0 auto;padding-left:1.25rem;padding-right:1.25rem}
|
||||
|
||||
/* nav */
|
||||
.nav{
|
||||
display:flex;align-items:center;justify-content:space-between;gap:1rem;
|
||||
max-width:var(--wrap);margin:0 auto;padding:1.1rem 1.25rem;
|
||||
}
|
||||
.brand{font-family:ui-monospace,monospace;font-weight:700;font-size:1.25rem;color:var(--hi)}
|
||||
.brand:hover{text-decoration:none}
|
||||
.brand .dot{color:var(--accent)}
|
||||
.navlinks{display:flex;gap:1.4rem;align-items:center;flex-wrap:wrap}
|
||||
.navlinks a{color:var(--fg2);font-size:.95rem}
|
||||
.navlinks a:hover{color:var(--hi);text-decoration:none}
|
||||
.navlinks a.on{color:var(--hi)}
|
||||
.navlinks a.ext{color:var(--fg2)}
|
||||
|
||||
/* hero */
|
||||
.hero{padding:3.5rem 1.25rem 2rem;text-align:center}
|
||||
.badge-row{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.6rem}
|
||||
.badge{
|
||||
font-size:.78rem;color:var(--accent);background:rgba(63,185,80,.08);
|
||||
border:1px solid rgba(63,185,80,.28);border-radius:999px;padding:.25rem .7rem;
|
||||
}
|
||||
.hero h1{font-size:clamp(2.1rem,5vw,3.4rem);letter-spacing:-1.5px;margin:.2rem 0 1rem}
|
||||
.lede{color:var(--fg2);font-size:1.12rem;max-width:640px;margin:0 auto 1.8rem}
|
||||
.cta{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}
|
||||
.btn{
|
||||
display:inline-block;padding:.65rem 1.2rem;border-radius:8px;font-weight:600;
|
||||
border:1px solid var(--line2);color:var(--hi);background:var(--bg2);
|
||||
}
|
||||
.btn:hover{border-color:#3a475a;text-decoration:none}
|
||||
.btn.primary{background:var(--accent2);border-color:var(--accent);color:#04120a}
|
||||
.btn.primary:hover{background:var(--accent)}
|
||||
.connectline{
|
||||
margin:1.8rem auto 0;max-width:max-content;color:var(--accent);
|
||||
background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:.55rem 1rem;font-size:.95rem;
|
||||
}
|
||||
|
||||
/* split cards */
|
||||
.split{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.5rem}
|
||||
.card{background:var(--bg2);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem 1.5rem}
|
||||
.card h3{margin:0 0 .5rem;font-size:1.25rem}
|
||||
.card p{margin:0;color:var(--fg2)}
|
||||
.tag{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--fg2);
|
||||
border:1px solid var(--line2);border-radius:6px;padding:.1rem .45rem;margin-left:.4rem;vertical-align:middle}
|
||||
|
||||
/* feature grid */
|
||||
.wrap{padding-top:3.5rem;padding-bottom:1rem}
|
||||
.section-title{text-align:center;font-size:1.6rem;margin:0 0 2rem}
|
||||
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
|
||||
.feat{background:var(--bg2);border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem 1.4rem}
|
||||
.feat .ico{font-size:1.5rem;margin-bottom:.5rem}
|
||||
.feat h4{margin:.1rem 0 .5rem;font-size:1.08rem}
|
||||
.feat p{margin:0;color:var(--fg2);font-size:.95rem}
|
||||
.feat em{color:var(--fg);font-style:normal;font-weight:600}
|
||||
|
||||
/* connect strip */
|
||||
.connect-strip{margin:4rem 0 0;background:linear-gradient(180deg,var(--bg2),var(--bg3));border-top:1px solid var(--line)}
|
||||
.cs-in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:2.4rem 1.25rem;flex-wrap:wrap}
|
||||
.cs-in h2{margin:0 0 .2rem;font-size:1.5rem}
|
||||
.cs-in p{margin:0;color:var(--fg2)}
|
||||
.mini{border-collapse:collapse;font-size:.95rem}
|
||||
.mini td{padding:.28rem .9rem;border-bottom:1px solid var(--line)}
|
||||
.mini td:first-child{color:var(--fg2)}
|
||||
|
||||
/* pages */
|
||||
.page-head{padding:3rem 1.25rem 1rem;text-align:center}
|
||||
.page-head h1{font-size:2.4rem;letter-spacing:-1px;margin:0 0 .6rem}
|
||||
.prose .block{margin:0 0 2.2rem}
|
||||
.block h2{font-size:1.35rem;border-bottom:1px solid var(--line);padding-bottom:.5rem;margin:0 0 .9rem}
|
||||
.block ul{margin:.4rem 0 0;padding-left:1.1rem}
|
||||
.block li{margin:.35rem 0;color:var(--fg2)}
|
||||
.block li strong{color:var(--fg)}
|
||||
|
||||
/* chips */
|
||||
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}
|
||||
.chips span{
|
||||
font-family:ui-monospace,monospace;font-size:.8rem;color:var(--fg);
|
||||
background:var(--bg3);border:1px solid var(--line);border-radius:6px;padding:.2rem .5rem;
|
||||
}
|
||||
|
||||
/* tables + code on connect page */
|
||||
.detail{width:100%;border-collapse:collapse;margin:.5rem 0 1rem}
|
||||
.detail th{text-align:left;color:var(--fg2);font-weight:500;padding:.5rem .9rem;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:top}
|
||||
.detail td{padding:.5rem .9rem;border-bottom:1px solid var(--line);color:var(--fg)}
|
||||
.code{
|
||||
background:var(--bg2);border:1px solid var(--line);border-radius:8px;
|
||||
padding:1rem 1.1rem;overflow-x:auto;color:var(--accent);
|
||||
font-family:ui-monospace,monospace;font-size:.9rem;line-height:1.7;white-space:pre;
|
||||
}
|
||||
.hint{color:var(--fg2);font-size:.92rem}
|
||||
.webchat{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:1.5rem 0 0;color:var(--fg2)}
|
||||
|
||||
/* footer */
|
||||
.foot{border-top:1px solid var(--line);margin-top:4rem}
|
||||
.foot-in{max-width:var(--wrap);margin:0 auto;padding:1.6rem 1.25rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--fg2);font-size:.9rem}
|
||||
.foot .mono{color:var(--fg)}
|
||||
.foot-links{display:flex;gap:1.1rem}
|
||||
|
||||
@media(max-width:760px){
|
||||
.split{grid-template-columns:1fr}
|
||||
.grid{grid-template-columns:1fr}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue