edge-pdf-chat / src /app /page.module.css
matt HOFFNER
init
872630d
.main {
display: flex;
flex-direction: column;
justify-content: flex-start; /* changed from space-between to start to ensure content is at the top */
align-items: center;
padding: 4%; /* reduced from 6rem and changed to a percentage */
min-height: 100vh;
width: 100%; /* ensure it takes full width */
}
@media (max-width: 768px) {
.main {
padding: 2%; /* even less padding on small screens */
}
}
.description {
display: inherit;
justify-content: inherit;
align-items: inherit;
font-size: 0.85rem;
max-width: var(--max-width);
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: 1.5rem;
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);
}
}
.spinner {
display: flex;
justify-content: center;
align-items: center;
/* Add more styles as needed */
}
.spinner div {
border: 4px solid #f3f3f3;
border-top: 4px solid #3498db;
border-radius: 50%;
width: 40px;
height: 40px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.chatContainer {
display: flex;
flex-direction: column;
width: 90%; /* Responsive width */
margin-bottom: 2px;
margin-top: 100px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
background-color: white;
min-height: 60vh; /* Minimum height */
max-height: 80vh; /* Maximum height relative to the viewport */
overflow: hidden; /* Hide overflow */
}
.messagesContainer {
flex-grow: 1; /* Take up available space */
overflow-y: auto; /* Make only this part scrollable */
padding: 10px;
background-color: #f9f9f9;
}
.userMessage, .aiMessage {
margin: 5px 0;
}
.userMessage {
text-align: right;
}
.aiMessage {
text-align: left;
}
.messageRole {
font-weight: bold;
}
.messageContent {
display: block;
margin-top: 2px;
}
.chatForm {
display: flex;
padding: 10px;
background-color: white; /* Light background for form */
border-top: 1px solid #ddd;
}
.chatInput {
flex-grow: 1;
padding: 10px;
margin-right: 10px;
border: 1px solid #ddd;
border-radius: 4px;
background-color: white; /* Light background for input */
color: black; /* Dark text for input */
}
.sendButton {
padding: 10px 20px;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
}
.sendButton:hover {
background-color: #45a049;
}
/* Dark mode styles */
@media (prefers-color-scheme: dark) {
.chatContainer {
background-color: black; /* Dark background for dark mode */
color: white; /* Light text for dark mode */
}
.messagesContainer {
background-color: #333; /* Darker shade for the message container */
}
.chatForm {
background-color: #222; /* Darker background for form in dark mode */
border-top: 1px solid #555; /* Darker border for form */
}
.chatInput {
background-color: #222; /* Darker input field */
color: white; /* Light text for input field */
border: 1px solid #555; /* Darker border for input */
}
.sendButton {
background-color: #555; /* Darker button color */
color: white; /* Light text for button */
}
.sendButton:hover {
background-color: #666; /* Slightly lighter on hover */
}
/* Add more dark mode specific styles as needed */
}