Begin building top of homepage

This commit is contained in:
Matthew Holt 2023-09-19 09:30:32 -06:00 committed by Francis Lavoie
parent bc49a79d00
commit 23e904381c
No known key found for this signature in database
GPG key ID: C5204D4F28147FC8
5 changed files with 3149 additions and 8 deletions

View file

@ -3,14 +3,58 @@
<head>
<title>Caddy - The Ultimate Server with Automatic HTTPS</title>
{{include "/includes/head.html"}}
<link rel="stylesheet" href="/resources/css/vendor/asciinema-player-3.6.1.css">
<script src="/resources/js/vendor/asciinema-player-3.6.1.min.js"></script>
<link rel="stylesheet" href="/resources/css/home.css">
<!-- <meta property="og:title" content="Caddy 2 - The Ultimate Server with Automatic HTTPS">
<meta name="twitter:title" value="Caddy 2 - The Ultimate Server with Automatic HTTPS"> -->
</head>
<body>
<div class="hero">
{{include "/includes/header.html" "dark-header"}}
<div class="wrapper">
<div class="vertical-padding">
<div class="asides">
<div>
<h1>
<div class="color-dodge">
<div class="the">The</div>
Ultimate Server
</div>
<div class="sub-h1">
makes your sites more <b>secure</b>, more <b>reliable</b>, and more <b>scalable</b> more <b>easily</b>.
</div>
</h1>
</div>
<div>
<div class="display right">
<div class="caption">
<div id="demo"></div>
Play screencast to see Caddy serve HTTPS in &lt; 1 minute.
</div>
</div>
</div>
</div>
<div class="action-buttons">
<a href="/download" class="button primary">Download</a>
<a href="/docs/" class="button cool">Docs<sh></sh></a>
</div>
</div>
</div>
</div>
<script>
AsciinemaPlayer.create('/resources/321140.cast', $('#demo'), {
preload: true,
autoPlay: true,
controls: true
});
</script>
</body>
</html>

View file

@ -38,8 +38,8 @@
--link-hover-color: rgb(42, 228, 98);
--heading-color: #dee8ee;
--code-bg: #1f3237;
--dropdown-bg: #34414b;
--dropdown-linkbox: #202b2f;
--dropdown-bg: #152125; /* #34414b; */
--dropdown-linkbox: #1d2c32;
--dropdown-link-title-color: #f0f3f5;
--dropdown-link-color: #9ebeca;
--dropdown-link-hover-color: white;
@ -250,11 +250,13 @@ header nav ul {
/* necessary for hoversplash: */
position: relative;
overflow: hidden;
display: inline-block;
}
.button.primary {
background: linear-gradient(135deg, white 25%, rgba(167, 183, 193) 80%);
color: #222;
font-weight: bold;
}
.button.primary:hover {
@ -370,7 +372,7 @@ header nav ul {
font-family: Poppins, ui-rounded;
font-weight: 600;
color: var(--dropdown-link-title-color);
font-size: 20px;
font-size: 18px;
margin-bottom: 5px;
}

View file

@ -3,10 +3,12 @@
background-image:
radial-gradient(at 50% 96%, hsla(0,100%,20%,0.35) 0px, transparent 50%),
radial-gradient(at 5% 30%, hsla(136,95%,15%,1) 0px, transparent 50%),
radial-gradient(at 91% 0%, hsla(214,83%,25%,1) 0px, transparent 50%),
radial-gradient(at 91% 35%, hsla(214,83%,25%,1) 0px, transparent 75%),
radial-gradient(at 82% 73%, hsla(265,72%,20%,1) 0px, transparent 50%);
}
min-height: 800px;
.hero .vertical-padding {
padding: 100px 0;
}
.button.secondary {
@ -18,3 +20,259 @@
color: white;
border-color: white;
}
.button.cool {
position: relative;
color: rgb(226 254 214);
/* necessary for gradient dropshadow: */
transform-style: preserve-3d;
overflow: unset;
}
.button.cool::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border-radius: 8px;
border: 2px solid transparent;
background: linear-gradient(to right, #65E823,#D67FDB) border-box;
-webkit-mask:
linear-gradient(#fff 0 0) padding-box,
linear-gradient(#fff 0 0);
mask:
linear-gradient(#fff 0 0) padding-box,
linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
}
@property --a {
syntax: '<angle>';
inherits: false;
initial-value: 0deg;
}
@keyframes a {
from {
--a: 0deg;
}
to {
--a: 360deg;
}
}
.button.cool sh {
position: absolute;
inset: -100px;
border: 100px solid #0000;
border-radius: 110px; /* a little more than the inset+border+border-radius */
mask:
linear-gradient(#000 0 0) content-box,
linear-gradient(#000 0 0);
-webkit-mask:
linear-gradient(#000 0 0) content-box,
linear-gradient(#000 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
transform: translateZ(-1px); /* hack the z-index so as to be behind the transparent element */
pointer-events: none;
}
.button.cool sh::before {
content: "";
position: absolute;
inset: 0px;
background: conic-gradient(from var(--a), rgb(207, 19, 175) 0.42%, #ee6907 59.24%, #70d52c);
filter: blur(35px);
transform: translate(0px,0px);
--a: 0deg; /* needed for firefox to have a valid output ? */
animation: a 1s linear infinite;
opacity: 0;
transition: opacity .5s;
}
.button.cool:hover sh::before {
opacity: 1;
}
h1 {
font-family: Poppins;
font-size: 120px;
text-transform: uppercase;
color: #65D1C6;
line-height: .9;
}
h1 .color-dodge {
mix-blend-mode: color-dodge;
}
h1 .the {
font-size: 75px;
line-height: 1;
}
h1 .sub-h1 {
margin-top: 1em;
text-transform: none;
color: #b1fffe;
font-size: 32px;
font-weight: normal;
line-height: 1.3;
}
.asides {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin: 0 auto;
align-items: center;
}
.asides.top {
align-items: stretch;
}
.asides > * {
flex: 1;
margin-right: 50px;
min-width: 0; /* kind of a hack that allows proper sizing of pre children; see https://weblog.west-wind.com/posts/2016/feb/15/flexbox-containers-pre-tags-and-managing-overflow */
min-width: 300px;
}
.asides > :last-child {
margin-right: 0;
}
.asides h2 {
text-align: left;
}
.asides p {
margin-left: 0;
margin-right: 0;
}
.caption {
margin-top: 10px;
font-size: 14px;
text-align: center;
}
#demo {
display: block;
margin-bottom: 2em;
}
div.ap-wrapper div.ap-player {
box-shadow: 10px 10px 15px rgba(0, 0, 0, 0.25);
transform: scale(1.1);
border-radius: 10px;
}
div.ap-wrapper:fullscreen div.ap-player {
transform: none;
}
.ap-player pre.ap-terminal {
border-color: transparent;
background-color: transparent;
}
.display {
perspective: 1500px;
}
.display code {
border-radius: 10px;
width: 100%;
}
.display code {
max-width: 800px;
font-size: 110%;
display: block;
position: relative;
padding: 20px 40px;
white-space: pre;
font-weight: bold;
overflow-x: auto;
box-shadow: 10px 10px 25px rgba(0, 0, 0, 0.1);
}
.display.right > * {
transform: rotateY(-25deg);
}
.display.left > * {
transform: rotateY(25deg);
}
.display code.light {
background: #fff linear-gradient(135deg, rgba(255,255,255,0) 0%,rgba(241,241,241,0.5) 46%,rgba(225,225,225,0.5) 46.25%,rgba(246,246,246,0) 100%);
}
.display code.dark,
.ap-player {
/* background: #333 linear-gradient(135deg, rgba(0, 0, 0, 0) 0%,rgba(125, 125, 125, 0.3) 46%,rgba(45, 45, 45, 0.8) 46.8%,rgba(0, 0, 0, 0) 100%); */
background: rgb(0 0 0 / .6) linear-gradient(135deg, transparent 0%, rgb(200 200 200 / 0.25) 46%, rgb(200 200 200 / .15) 46.5%, transparent 100%);
color: #fff;
}
.blinking {
animation: blinking 1s infinite;
background-color: #fff;
width: .5em;
height: 1.2em;
position: relative;
top: 5px;
display: inline-block;
}
@keyframes blinking {
0% { background-color: #fff; }
45% { background-color: #fff; }
60% { background-color: transparent; }
99% { background-color: transparent; }
100% { background-color: #fff; }
}
.action-buttons {
display: flex;
gap: 1.5em;
margin-top: 55px;
}
@media (max-width: 720px) {
.display {
margin-top: 50px;
margin-bottom: 50px;
}
.display.right > * {
transform: none;
}
.display.left > * {
transform: none;
}
.asides > * {
margin-right: 0;
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long