Subscribe form logic
This commit is contained in:
parent
4b9039d2a3
commit
ebfed886c1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -242,8 +242,12 @@ a:hover {
|
||||
transition: background-color 0.2s ease;
|
||||
}
|
||||
|
||||
.gh-form.error {
|
||||
box-shadow: 0 0 0 1px red;
|
||||
}
|
||||
|
||||
.gh-form:hover {
|
||||
background-color: rgb(0 0 0 / 0.05);
|
||||
background-color: rgb(0 0 0 / 0.065);
|
||||
}
|
||||
|
||||
.gh-footer.has-accent-color .gh-form:hover {
|
||||
@ -253,7 +257,7 @@ a:hover {
|
||||
.gh-form-input {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
padding-inline: 28px;
|
||||
padding-inline: 26px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
font-size: inherit;
|
||||
@ -263,6 +267,14 @@ a:hover {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
:is(.has-serif-title, .has-slab-title) .gh-form-input {
|
||||
padding-inline: 20px;
|
||||
}
|
||||
|
||||
.gh-footer.has-accent-color .gh-form-input {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.gh-footer.has-accent-color .gh-form-input::placeholder {
|
||||
color: rgb(255 255 255 / 0.55);
|
||||
}
|
||||
@ -280,10 +292,9 @@ button.gh-form-input {
|
||||
padding-inline: 32px;
|
||||
height: 44px;
|
||||
font-size: inherit;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.gh-form svg {
|
||||
.gh-form > svg {
|
||||
position: relative;
|
||||
left: 22px;
|
||||
width: 24px;
|
||||
@ -291,6 +302,24 @@ button.gh-form-input {
|
||||
color: var(--color-secondary-text);
|
||||
}
|
||||
|
||||
.gh-form .gh-button svg {
|
||||
display: none;
|
||||
position: absolute;
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
.gh-form:is(.loading, .success) .gh-button span {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.gh-form.loading .gh-button svg:first-of-type {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.gh-form.success .gh-button svg:last-of-type {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* 5. Layout
|
||||
/* ---------------------------------------------------------- */
|
||||
|
||||
@ -1341,14 +1370,14 @@ Search LOGO Login Subscribe
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 28px;
|
||||
padding: 80px 64px;
|
||||
gap: 36px;
|
||||
padding: 80px 64px 72px;
|
||||
text-align: center;
|
||||
background-color: var(--color-lighter-gray);
|
||||
}
|
||||
|
||||
.gh-cta-content {
|
||||
max-width: 560px;
|
||||
max-width: 640px;
|
||||
}
|
||||
|
||||
.gh-cta-title {
|
||||
@ -1359,7 +1388,7 @@ Search LOGO Login Subscribe
|
||||
}
|
||||
|
||||
.gh-cta-description {
|
||||
margin-top: 16px;
|
||||
margin-top: 12px;
|
||||
font-size: 1.8rem;
|
||||
line-height: 1.4;
|
||||
letter-spacing: -0.015em;
|
||||
|
@ -1,4 +1,8 @@
|
||||
<form class="gh-form">
|
||||
<input class="gh-form-input" type="email" placeholder="jamie@example.com">
|
||||
<button class="gh-button" type="submit">Subscribe</button>
|
||||
<form class="gh-form" data-members-form>
|
||||
<input class="gh-form-input" type="email" placeholder="jamie@example.com" required data-members-email>
|
||||
<button class="gh-button" type="submit">
|
||||
<span>Subscribe</span>
|
||||
{{> "icons/loader"}}
|
||||
{{> "icons/checkmark"}}
|
||||
</button>
|
||||
</form>
|
24
partials/icons/checkmark.hbs
Normal file
24
partials/icons/checkmark.hbs
Normal file
@ -0,0 +1,24 @@
|
||||
<svg class="checkmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">
|
||||
<path class="checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"/>
|
||||
<style>
|
||||
.checkmark {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
display: block;
|
||||
stroke-width: 2.5;
|
||||
stroke: currentColor;
|
||||
stroke-miterlimit: 10;
|
||||
}
|
||||
|
||||
.checkmark__check {
|
||||
transform-origin: 50% 50%;
|
||||
stroke-dasharray: 48;
|
||||
stroke-dashoffset: 48;
|
||||
animation: stroke .3s cubic-bezier(0.650, 0.000, 0.450, 1.000) .8s forwards;
|
||||
}
|
||||
|
||||
@keyframes stroke {
|
||||
100% { stroke-dashoffset: 0; }
|
||||
}
|
||||
</style>
|
||||
</svg>
|
After Width: | Height: | Size: 720 B |
@ -1,11 +1,17 @@
|
||||
<svg version="1.1" id="loader-1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
||||
y="0px" width="40px" height="40px" viewBox="0 0 40 40" enable-background="new 0 0 40 40" xml:space="preserve">
|
||||
<path opacity="0.2" fill="#000" d="M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946,14.946,14.946
|
||||
s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634
|
||||
c0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z" />
|
||||
<path fill="#000" d="M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0
|
||||
C22.32,8.481,24.301,9.057,26.013,10.047z">
|
||||
<animateTransform attributeType="xml" attributeName="transform" type="rotate" from="0 20 20" to="360 20 20"
|
||||
dur="0.5s" repeatCount="indefinite" />
|
||||
</path>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
|
||||
<g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
|
||||
<g class="nc-loop-dots-4-24-icon-o">
|
||||
<circle cx="4" cy="12" r="3"></circle>
|
||||
<circle cx="12" cy="12" r="3"></circle>
|
||||
<circle cx="20" cy="12" r="3"></circle>
|
||||
</g>
|
||||
<style data-cap="butt">
|
||||
.nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
|
||||
.nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
|
||||
.nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
|
||||
.nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
|
||||
.nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
|
||||
@keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
|
||||
</style>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 923 B After Width: | Height: | Size: 1.2 KiB |
Loading…
Reference in New Issue
Block a user