kr15t3n's picture
Upload 5 files
4cd954b verified
body {
font-family: "Google Sans", sans-serif, "Noto Color Emoji", "Apple Color Emoji",
"Segoe UI Emoji", "Segoe UI Symbol";
font-optical-sizing: auto;
font-weight: 400;
font-style: normal;
font-variation-settings: "wdth" 100;
background-color: #ffffff;
color: #286aac;
display: flex;
flex-flow: column;
align-items: center;
margin: 0;
padding: 10px;
box-sizing: border-box;
}
body,
html {
width: 100%;
height: 100%;
}
.noto-color-emoji-regular {
font-family: "Noto Color Emoji", sans-serif;
font-weight: 400;
font-style: normal;
}
.google-sans-medium {
font-family: "Google Sans", sans-serif;
font-optical-sizing: auto;
font-weight: 600;
font-style: normal;
font-variation-settings: "wdth" 100;
}
.google-sans-regular {
font-family: "Google Sans", sans-serif;
font-optical-sizing: auto;
font-weight: 400;
font-style: normal;
font-variation-settings: "wdth" 100;
}
.text-cta {
width: 395px;
font-size: 16px;
line-height: 140%;
text-align: center;
margin: 0;
margin-bottom: 20px;
max-width: 100%;
}
.container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
max-width: 1000px;
box-sizing: border-box;
padding-top: 40px;
margin: auto 0;
}
h1 {
margin-top: 0;
font-size: 51px;
line-height: 100%;
text-align: center;
letter-spacing: -1.30014px;
color: #1064d3;
margin-bottom: 24px;
}
h2 {
color: #3c4043;
}
.input-container {
display: flex;
flex-direction: row;
gap: 10px;
margin-bottom: 10px;
width: 100%;
position: relative;
}
#prompt-input {
width: 100%;
height: 64px;
background: #ffffff;
box-shadow: 4px 18px 24px rgba(13, 11, 48, 0.0425185),
1px 4px 6px rgba(14, 16, 60, 0.0274815);
border-radius: 32px;
border: none;
font-family: "Google Sans", "Noto Color Emoji", sans-serif;
font-style: normal;
font-weight: 400;
font-size: 16px;
line-height: 20px;
padding: 0 74px 0 1.1rem;
color: #323232;
}
#prompt-input::placeholder {
color: #c0c0c0;
}
.output-container {
min-height: 120px;
flex-shrink: 0;
display: flex;
flex-flow: column;
align-items: center;
gap: 10px;
padding-bottom: 20px;
max-width: 100%;
}
.response-box {
display: flex;
flex-flow: row;
flex-wrap: wrap;
justify-content: center;
gap: 10px;
}
.response-box button {
background: none;
border: none;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
padding: 12px;
min-width: 98px;
box-sizing: content-box;
height: 24px;
background: #ffffff;
box-shadow: -2px 4px 3.5px rgba(0, 0, 0, 0.04);
border-radius: 37px;
cursor: pointer;
flex-shrink: 0;
font-family: "Noto Color Emoji", sans-serif;
font-weight: 400;
font-style: normal;
font-size: 18px;
transition: background-color 0.2s, border-color 0.1s;
animation: fadeInScaleUp 0.3s ease-out forwards;
border: 1px solid #ffffff;
}
.response-box button:hover {
border-color: #1064d3;
}
@keyframes fadeInScaleUp {
from {
opacity: 0;
transform: scale(0.8);
}
to {
opacity: 1;
transform: scale(1);
}
}
#status-message {
text-align: center;
}
/* Button styles for the generate button */
#generate-btn {
align-self: flex-end;
position: absolute;
width: 62px;
height: 52px;
right: 6px;
top: calc(64px / 2 - 52px / 2);
background: #2776e0;
border-radius: 99px;
border: none;
cursor: pointer;
transition: background-color 0.3s;
display: grid;
place-items: center;
}
#generate-btn svg {
width: 18px;
height: 18px;
}
#generate-btn svg.arrow {
transition: opacity 0.2s, scale 0.35s ease-out, transform 0.2s;
}
#generate-btn:hover:not(:disabled),
#generate-btn:focus:not(:disabled) {
background-color: #185abc;
}
#generate-btn:hover:not(:disabled) svg,
#generate-btn:focus:not(:disabled) svg {
transform: translateX(3px);
}
#generate-btn:disabled {
background-color: #ccc;
cursor: not-allowed;
}
/* Hide arrow only when generating */
#generate-btn.generating svg.arrow {
opacity: 0;
scale: 0.2;
}
#generate-btn svg.loader {
position: absolute;
top: calc(50% - 9px);
left: calc(50% - 9px);
opacity: 0;
scale: 0.2;
transition: opacity 0.15s, scale 0.25s ease-out;
animation: rotator 1.4s linear infinite;
}
/* Show loader only when generating */
#generate-btn.generating svg.loader {
opacity: 1;
scale: 1;
}
#generate-btn svg.loader circle {
stroke-dasharray: 50; /* 2 * PI * 8 */
transform-origin: center;
transition: opacity 0.25s, scale 0.35s ease-out;
animation: dash 1.4s ease-in-out infinite;
}
@keyframes rotator {
to {
transform: rotate(360deg);
}
}
@keyframes dash {
0% {
stroke-dashoffset: 75;
}
50% {
stroke-dashoffset: 50; /* 1/4 of circumference */
}
75% {
stroke-dashoffset: 25; /* 1/4 of circumference */
}
100% {
stroke-dashoffset: -25;
}
}
/* Background styles for the blobs and pattern, purely visuals, disable if performance is impacted */
.background {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
background-color: #fafeff;
pointer-events: none;
}
.background-blob-1 {
position: absolute;
top: 5vh;
right: -10vw;
width: 40vw;
height: 30vh;
border-radius: 50%;
background-color: #b1c5ff;
filter: blur(150px);
opacity: 0.5;
}
.background-blob-2 {
position: absolute;
bottom: -10vh;
right: -25vw;
width: 50vw;
height: 50vh;
border-radius: 50%;
background-color: #b1c5ff;
filter: blur(100px);
opacity: 0.3;
}
.background-blob-3 {
position: absolute;
top: 60vh;
left: 0;
width: 100vw;
height: 40vh;
border-radius: 50%;
background-color: #0b8bf7;
filter: blur(111px);
opacity: 0.15;
}
/* Footer styles */
.footer {
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
font-size: 14px;
font-family: "Google Sans";
font-style: normal;
font-weight: 600;
font-size: 13px;
line-height: 140%;
}
.footer a,
p {
margin: 0;
display: inline;
color: #286aac;
}
.footer a {
text-decoration: none;
transition: color 0.1s;
}
.footer a svg {
width: 7px;
height: 12px;
position: relative;
top: 1px;
margin-left: 6px;
transition: transform 0.3s;
}
.footer a:hover {
color: #075099;
}
.footer a:hover svg {
transform: translateX(3px);
}
.footer a svg path {
transition: fill 0.1s;
}
.footer a:hover svg path {
fill: #075099;
}
@media screen and (min-width: 768px) {
body {
padding: 20px;
}
.footer {
font-size: 16px;
}
.text-cta {
margin-bottom: 44px;
}
.input-container {
gap: 20px;
margin-bottom: 20px;
}
#prompt-input {
height: 74px;
border-radius: 37px;
font-size: 20px;
line-height: 25px;
padding: 0 92px 0 37px;
}
#generate-btn {
width: 74px;
height: 59px;
right: 9px;
top: calc(74px / 2 - 59px / 2);
}
.output-container {
gap: 20px;
}
.response-box button {
padding: 22px;
min-width: 128px;
height: 30px;
font-size: 24px;
}
}