chat-with-internet / app /page.module.css
matt HOFFNER
fun style
4e2f92f
raw
history blame
No virus
9.62 kB
.main {
display: flex;
flex-direction: column;
justify-content: space-between;
}
.description {
display: inherit;
justify-content: inherit;
align-items: inherit;
font-size: 0.85rem;
max-width: var(--max-width);
width: 100%;
z-index: 2;
font-family: var(--font-mono);
}
.description a {
display: flex;
justify-content: center;
align-items: center;
gap: 0.5rem;
}
.description p {
position: relative;
margin: 0;
padding: 1rem;
background-color: rgba(var(--callout-rgb), 0.5);
border: 1px solid rgba(var(--callout-border-rgb), 0.3);
border-radius: var(--border-radius);
}
.code {
font-weight: 700;
font-family: var(--font-mono);
}
.grid {
display: grid;
grid-template-columns: repeat(4, minmax(25%, auto));
max-width: 100%;
width: var(--max-width);
}
.card {
padding: 1rem 1.2rem;
border-radius: var(--border-radius);
background: rgba(var(--card-rgb), 0);
border: 1px solid rgba(var(--card-border-rgb), 0);
transition: background 200ms, border 200ms;
}
.card span {
display: inline-block;
transition: transform 200ms;
}
.card h2 {
font-weight: 600;
margin-bottom: 0.7rem;
}
.card p {
margin: 0;
opacity: 0.6;
font-size: 0.9rem;
line-height: 1.5;
max-width: 30ch;
}
.center {
display: flex;
justify-content: center;
align-items: center;
position: relative;
padding: 4rem 0;
}
.center::before {
background: var(--secondary-glow);
border-radius: 50%;
width: 480px;
height: 360px;
margin-left: -400px;
}
.center::after {
background: var(--primary-glow);
width: 240px;
height: 180px;
z-index: -1;
}
.center::before,
.center::after {
content: '';
left: 50%;
position: absolute;
filter: blur(45px);
transform: translateZ(0);
}
.logo {
position: relative;
}
/* Enable hover only on non-touch devices */
@media (hover: hover) and (pointer: fine) {
.card:hover {
background: rgba(var(--card-rgb), 0.1);
border: 1px solid rgba(var(--card-border-rgb), 0.15);
}
.card:hover span {
transform: translateX(4px);
}
}
@media (prefers-reduced-motion) {
.card:hover span {
transform: none;
}
}
/* Mobile */
@media (max-width: 700px) {
.content {
padding: 4rem;
}
.grid {
grid-template-columns: 1fr;
margin-bottom: 120px;
max-width: 320px;
text-align: center;
}
.card {
padding: 1rem 2.5rem;
}
.card h2 {
margin-bottom: 0.5rem;
}
.center {
padding: 8rem 0 6rem;
}
.center::before {
transform: none;
height: 300px;
}
.description {
font-size: 0.8rem;
}
.description a {
padding: 1rem;
}
.description p,
.description div {
display: flex;
justify-content: center;
position: fixed;
width: 100%;
}
.description p {
align-items: center;
inset: 0 0 auto;
padding: 2rem 1rem 1.4rem;
border-radius: 0;
border: none;
border-bottom: 1px solid rgba(var(--callout-border-rgb), 0.25);
background: linear-gradient(
to bottom,
rgba(var(--background-start-rgb), 1),
rgba(var(--callout-rgb), 0.5)
);
background-clip: padding-box;
backdrop-filter: blur(24px);
}
.description div {
align-items: flex-end;
pointer-events: none;
inset: auto 0 0;
padding: 2rem;
height: 200px;
background: linear-gradient(
to bottom,
transparent 0%,
rgb(var(--background-end-rgb)) 40%
);
z-index: 1;
}
}
/* Tablet and Smaller Desktop */
@media (min-width: 701px) and (max-width: 1120px) {
.grid {
grid-template-columns: repeat(2, 50%);
}
}
@media (prefers-color-scheme: dark) {
.vercelLogo {
filter: invert(1);
}
.logo {
filter: invert(1) drop-shadow(0 0 0.3rem #ffffff70);
}
}
@keyframes rotate {
from {
transform: rotate(360deg);
}
to {
transform: rotate(0deg);
}
}
.response pre {
white-space: pre-wrap;
word-break: break-word;
overflow-wrap: break-word;
overflow-y: auto;
max-height: 500px; /* Maximum height before scrolling */
}
.input {
padding: 0.5rem 1rem; /* Adjust the padding inside the input */
margin: 0.5rem 0; /* Adds margin around the input for spacing */
border: 1px solid #ccc; /* A light border for the input */
border-radius: 4px; /* Rounded corners */
font-size: 1rem; /* Base font size */
line-height: 1.5; /* Height of the input line */
color: #333; /* Text color */
background-color: #fff; /* Background color of the input */
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Optional: Adds a subtle shadow */
width: 100%; /* Make input full width of the parent container */
box-sizing: border-box; /* Include padding and border in the element's total width and height */
transition: border-color 0.3s, box-shadow 0.3s; /* Smooth transition for focus effect */
}
.input:focus {
border-color: #007bff; /* Highlight color when input is focused */
outline: none; /* Removes the default focus outline */
box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25); /* Adds a glow effect on focus */
}
.button {
padding: 0.75rem 1.5rem; /* Adjust padding to increase the button's size */
margin-top: 1rem; /* Space above the button */
border: none; /* No border for a button */
border-radius: 25px; /* Rounded corners for a pill shape */
font-size: 1rem; /* Font size */
font-weight: bold; /* Make the text a bit bolder */
color: white; /* Text color */
background-image: linear-gradient(to right, #6ee7b7, #3b82f6); /* Gradient background */
cursor: pointer; /* Change cursor to indicate it's clickable */
transition: transform 0.2s, background-color 0.3s; /* Smooth transitions for interactions */
text-transform: uppercase; /* Optional: uppercase text */
letter-spacing: 0.05em; /* Spacing between letters */
box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08); /* Subtle shadow for depth */
}
.button:hover, .button:focus {
background-image: linear-gradient(to left, #6ee7b7, #3b82f6); /* Change the direction of gradient on hover/focus */
transform: translateY(-2px); /* Slightly raise the button */
box-shadow: 0 7px 14px rgba(50, 50, 93, 0.1), 0 3px 6px rgba(0, 0, 0, 0.08); /* Increase shadow size */
}
.button:active {
transform: translateY(0); /* Button goes back down when clicked */
box-shadow: 0 3px 6px rgba(50, 50, 93, 0.16), 0 2px 4px rgba(0, 0, 0, 0.1); /* Smaller shadow when button is pressed */
}
.button:disabled {
background-image: linear-gradient(to right, #cbd5e1, #94a3b8); /* Less vibrant gradient for disabled state */
cursor: default; /* No pointer cursor since it's not clickable */
box-shadow: none; /* No shadow for a flat appearance */
}
.main {
display: flex;
flex-direction: column;
height: 100vh;
justify-content: space-between;
padding: 2rem;
}
.title {
color: #333;
text-align: center;
margin-bottom: 2rem;
}
.messages {
flex: 1;
overflow-y: auto;
border-style: solid;
border-width: 4px;
border-image: linear-gradient(#6ee7b7, #3b82f6) 30;
padding: 25px;
border-radius: 5px;
}
.message {
background-color: #f9f9f9;
border-radius: 15px;
padding: 10px 15px;
margin: 8px 0;
max-width: 80%;
word-break: break-word; /* Ensures text breaks nicely */
}
/* Different background for messages from the 'user' role */
.message-user {
background-color: #dcf8c6 !important;
}
/* Avatar styles */
.avatar {
width: 40px;
height: 40px;
border-radius: 50%;
background-color: #ccc;
margin-right: 10px;
}
/* Style for function call messages */
.function-call {
color: #555;
font-style: italic;
}
/* Input field styles */
.input {
padding: 10px;
margin: 10px 0;
width: 100%;
box-sizing: border-box;
border: 1px solid #ddd;
border-radius: 4px;
}
/* Button styles */
.button {
padding: 10px 20px;
background-color: #5cb85c;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
width: 100%;
}
.button:disabled {
background-color: #ccc;
}
/* Form styles */
.form {
width: 100%;
}
.flex {
display: flex;
align-items: flex-start;
}
.text-gray-500 {
color: #737373;
}
.font-bold {
font-weight: bold;
}
/* Additional media query for responsive design */
@media (max-width: 640px) {
.message {
max-width: 100%;
}
}
/* In your CSS file */
.avatar-user {
width: 20px; /* Based on Tailwind's width setting */
}
.bg-white {
background-color: white;
}
.bg-black {
background-color: black;
}
.bg-gray-100 {
background-color: #f7fafc; /* Approximation of Tailwind's gray-100 */
}
.bg-green-500 {
background-color: #48bb78; /* Approximation of Tailwind's green-500 */
}
.bg-gray-200 {
background-color: #edf2f7; /* Approximation of Tailwind's gray-200 */
}
.bg-blue-500 {
background-color: #4299e1; /* Approximation of Tailwind's blue-500 */
}
.border-gradient {
/* Size of your element */
width: 200px;
height: 200px;
/* Setting up the gradient as a background image */
background-image: linear-gradient(90deg, #6ee7b7, #3b82f6);
/* Positioning and sizing the pseudo-element to match the parent */
position: relative;
display: flex;
justify-content: center;
align-items: center;
/* Adding the border */
padding: 10px;
}
.border-gradient::after {
/* Creating the pseudo-element */
content: "";
position: absolute;
top: -10px;
left: -10px;
bottom: -10px;
right: -10px;
/* Applying the gradient to the border */
background-image: inherit;
background-clip: padding-box, border-box;
background-origin: padding-box, border-box;
box-decoration-break: clone;
/* Adding a transparent border */
border: solid 10px transparent;
}