openfree's picture
Create css.css
6bed464 verified
/* Global container - Light paper background */
.gradio-container {
background: linear-gradient(135deg, #faf8f3 0%, #f5f2e8 50%, #f0ebe0 100%);
min-height: 100vh;
font-family: 'Georgia', 'Times New Roman', serif;
}
/* Main header - Classic book cover feel */
.main-header {
background: linear-gradient(145deg, #ffffff 0%, #fdfcf8 100%);
backdrop-filter: blur(10px);
padding: 45px;
border-radius: 20px;
margin-bottom: 35px;
text-align: center;
color: #3d2914;
border: 1px solid #e8dcc6;
box-shadow: 0 10px 30px rgba(139, 69, 19, 0.08),
0 5px 15px rgba(139, 69, 19, 0.05),
inset 0 1px 2px rgba(255, 255, 255, 0.9);
position: relative;
overflow: hidden;
}
/* Book spine decoration */
.main-header::before {
content: '';
position: absolute;
left: 50px;
top: 0;
bottom: 0;
width: 3px;
background: linear-gradient(180deg, #d4a574 0%, #c19656 50%, #d4a574 100%);
box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1);
}
.header-title {
font-size: 3.2em;
margin-bottom: 20px;
font-weight: 700;
color: #2c1810;
text-shadow: 2px 2px 4px rgba(139, 69, 19, 0.1);
font-family: 'Playfair Display', 'Georgia', serif;
letter-spacing: -0.5px;
}
.header-description {
font-size: 0.95em;
color: #5a453a;
line-height: 1.7;
margin-top: 25px;
text-align: justify;
max-width: 920px;
margin-left: auto;
margin-right: auto;
font-family: 'Georgia', serif;
}
.badges-container {
display: flex;
justify-content: center;
gap: 12px;
margin-top: 25px;
margin-bottom: 25px;
}
/* Progress notes - Manuscript notes style */
.progress-note {
background: linear-gradient(135deg, #fff9e6 0%, #fff5d6 100%);
border-left: 4px solid #d4a574;
padding: 22px 30px;
margin: 25px auto;
border-radius: 12px;
color: #5a453a;
max-width: 820px;
font-weight: 500;
box-shadow: 0 4px 12px rgba(212, 165, 116, 0.15);
position: relative;
}
/* Handwritten note effect */
.progress-note::after {
content: '📌';
position: absolute;
top: -10px;
right: 20px;
font-size: 24px;
transform: rotate(15deg);
}
.warning-note {
background: #fef3e2;
border-left: 4px solid #f6b73c;
padding: 18px 25px;
margin: 20px auto;
border-radius: 10px;
color: #7a5c00;
max-width: 820px;
font-size: 0.92em;
box-shadow: 0 3px 10px rgba(246, 183, 60, 0.15);
}
/* Input section - Writing desk feel */
.input-section {
background: linear-gradient(145deg, #ffffff 0%, #fcfaf7 100%);
backdrop-filter: blur(10px);
padding: 30px;
border-radius: 16px;
margin-bottom: 28px;
border: 1px solid #e8dcc6;
box-shadow: 0 6px 20px rgba(139, 69, 19, 0.06),
inset 0 1px 3px rgba(255, 255, 255, 0.8);
}
/* Session section - File cabinet style */
.session-section {
background: linear-gradient(145deg, #f8f4ed 0%, #f3ede2 100%);
backdrop-filter: blur(8px);
padding: 22px;
border-radius: 14px;
margin-top: 28px;
color: #3d2914;
border: 1px solid #ddd0b8;
box-shadow: inset 0 2px 4px rgba(139, 69, 19, 0.08);
}
/* Display areas - Clean manuscript pages */
#stages-display {
background: linear-gradient(to bottom, #ffffff 0%, #fdfcfa 100%);
padding: 35px 40px;
border-radius: 16px;
max-height: 680px;
overflow-y: auto;
box-shadow: 0 8px 25px rgba(139, 69, 19, 0.08),
inset 0 1px 3px rgba(255, 255, 255, 0.9);
color: #3d2914;
border: 1px solid #e8dcc6;
font-family: 'Georgia', serif;
line-height: 1.8;
}
#novel-output {
background: linear-gradient(to bottom, #ffffff 0%, #fdfcfa 100%);
padding: 45px 50px;
border-radius: 16px;
max-height: 780px;
overflow-y: auto;
box-shadow: 0 10px 30px rgba(139, 69, 19, 0.1),
inset 0 1px 3px rgba(255, 255, 255, 0.9);
color: #2c1810;
line-height: 2.1;
font-size: 1.05em;
border: 1px solid #e8dcc6;
font-family: 'Georgia', serif;
}
/* Typography enhancements */
#novel-output h1, #novel-output h2, #novel-output h3 {
color: #2c1810;
font-family: 'Playfair Display', 'Georgia', serif;
margin-top: 30px;
margin-bottom: 20px;
}
#novel-output blockquote {
border-left: 3px solid #d4a574;
padding-left: 20px;
margin: 20px 0;
font-style: italic;
color: #5a453a;
}
/* Download section - Book binding style */
.download-section {
background: linear-gradient(145deg, #faf6f0 0%, #f5efe6 100%);
padding: 24px;
border-radius: 14px;
margin-top: 28px;
box-shadow: 0 5px 15px rgba(139, 69, 19, 0.08);
border: 1px solid #e8dcc6;
}
/* Progress bar - Vintage style */
.progress-bar {
background-color: #f0e6d6;
height: 28px;
border-radius: 14px;
overflow: hidden;
margin: 18px 0;
box-shadow: inset 0 3px 6px rgba(139, 69, 19, 0.15);
border: 1px solid #e0d0b8;
}
.progress-fill {
background: linear-gradient(90deg, #d4a574 0%, #c8995d 50%, #d4a574 100%);
height: 100%;
transition: width 0.6s ease;
box-shadow: 0 2px 8px rgba(212, 165, 116, 0.4);
}
/* Custom scrollbar - Antique style */
::-webkit-scrollbar {
width: 12px;
}
::-webkit-scrollbar-track {
background: #f5f0e6;
border-radius: 6px;
box-shadow: inset 0 0 3px rgba(139, 69, 19, 0.1);
}
::-webkit-scrollbar-thumb {
background: linear-gradient(180deg, #d4a574, #c19656);
border-radius: 6px;
box-shadow: 0 2px 4px rgba(139, 69, 19, 0.2);
}
::-webkit-scrollbar-thumb:hover {
background: linear-gradient(180deg, #c19656, #b08648);
}
/* Button styling - Vintage typewriter keys */
.gr-button {
background: linear-gradient(145deg, #faf8f5 0%, #f0e8dc 100%);
border: 1px solid #d4a574;
color: #3d2914;
font-weight: 600;
box-shadow: 0 3px 8px rgba(139, 69, 19, 0.15),
inset 0 1px 2px rgba(255, 255, 255, 0.8);
transition: all 0.3s ease;
font-family: 'Georgia', serif;
}
.gr-button:hover {
transform: translateY(-2px);
box-shadow: 0 5px 12px rgba(139, 69, 19, 0.2),
inset 0 1px 3px rgba(255, 255, 255, 0.9);
background: linear-gradient(145deg, #fdfbf8 0%, #f3ebe0 100%);
}
.gr-button:active {
transform: translateY(0);
box-shadow: 0 2px 5px rgba(139, 69, 19, 0.15),
inset 0 1px 2px rgba(139, 69, 19, 0.1);
}
/* Primary button - Gold accent */
.gr-button.primary, button[variant="primary"] {
background: linear-gradient(145deg, #e4c896 0%, #d4a574 100%);
border: 1px solid #c19656;
color: #2c1810;
font-weight: 700;
}
.gr-button.primary:hover, button[variant="primary"]:hover {
background: linear-gradient(145deg, #e8d0a4 0%, #ddb280 100%);
}
/* Secondary button - Deep brown */
.gr-button.secondary, button[variant="secondary"] {
background: linear-gradient(145deg, #8b6239 0%, #6d4e31 100%);
border: 1px solid #5a3e28;
color: #faf8f5;
}
.gr-button.secondary:hover, button[variant="secondary"]:hover {
background: linear-gradient(145deg, #96693f 0%, #785436 100%);
}
/* Input fields - Parchment style */
input[type="text"], textarea, .gr-textbox textarea {
background: #fffefa;
border: 1px solid #d4c4b0;
color: #3d2914;
font-family: 'Georgia', serif;
box-shadow: inset 0 2px 4px rgba(139, 69, 19, 0.05);
}
input[type="text"]:focus, textarea:focus, .gr-textbox textarea:focus {
border-color: #c19656;
box-shadow: 0 0 0 2px rgba(212, 165, 116, 0.2),
inset 0 2px 4px rgba(139, 69, 19, 0.05);
outline: none;
}
/* Tab styling - Book chapters */
.gr-tab-button {
background: #f5f0e6;
border: 1px solid #d4c4b0;
color: #5a453a;
font-weight: 600;
}
.gr-tab-button.selected {
background: linear-gradient(145deg, #ffffff 0%, #fdfcf8 100%);
border-bottom-color: transparent;
color: #2c1810;
box-shadow: 0 -2px 8px rgba(139, 69, 19, 0.1);
}
/* Dropdown styling */
select, .gr-dropdown {
background: #fffefa;
border: 1px solid #d4c4b0;
color: #3d2914;
}
/* Radio button styling */
.gr-radio-group {
background: transparent;
}
.gr-radio-group label {
color: #3d2914;
}
/* Examples section */
.gr-examples {
background: #f8f4ed;
border: 1px solid #e8dcc6;
border-radius: 12px;
padding: 20px;
margin-top: 20px;
}
/* Loading animation - Typewriter effect */
@keyframes typewriter {
from { width: 0; }
to { width: 100%; }
}
.typing-indicator {
overflow: hidden;
border-right: 3px solid #3d2914;
white-space: nowrap;
animation: typewriter 3s steps(40, end);
}
/* Markdown content styling */
.markdown-text h1, .markdown-text h2, .markdown-text h3 {
color: #2c1810;
font-family: 'Playfair Display', 'Georgia', serif;
}
.markdown-text p {
color: #3d2914;
line-height: 1.8;
}
.markdown-text code {
background: #f5f0e6;
padding: 2px 6px;
border-radius: 4px;
font-family: 'Courier New', monospace;
color: #5a453a;
}
/* File component styling */
.gr-file {
background: #faf8f5;
border: 1px solid #d4c4b0;
border-radius: 8px;
}
/* Status text special styling */
#status_text textarea {
background: linear-gradient(145deg, #fff9e6 0%, #fff5d6 100%);
border: 2px solid #d4a574;
font-weight: 600;
text-align: center;
}
/* Theme Library Styles - Simplified card design */
.library-stats {
display: flex;
justify-content: space-around;
margin-bottom: 30px;
padding: 20px;
background: linear-gradient(145deg, #f8f4ed 0%, #f3ede2 100%);
border-radius: 12px;
box-shadow: 0 4px 12px rgba(139, 69, 19, 0.08);
}
.stat-item {
text-align: center;
}
.stat-label {
display: block;
font-size: 0.9em;
color: #5a453a;
margin-bottom: 5px;
}
.stat-value {
display: block;
font-size: 2em;
font-weight: bold;
color: #2c1810;
font-family: 'Playfair Display', 'Georgia', serif;
}
.theme-cards-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
gap: 25px;
padding: 20px;
}
.theme-card {
background: linear-gradient(145deg, #ffffff 0%, #fdfcf8 100%);
border: 1px solid #e8dcc6;
border-radius: 12px;
padding: 0;
box-shadow: 0 4px 12px rgba(139, 69, 19, 0.06);
transition: all 0.3s ease;
position: relative;
overflow: hidden;
display: flex;
flex-direction: column;
height: 450px; /* Reduced height */
}
.theme-card:hover {
transform: translateY(-3px);
box-shadow: 0 6px 20px rgba(139, 69, 19, 0.12);
}
.theme-card-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 20px;
border-bottom: 1px solid #e8dcc6;
background: linear-gradient(145deg, #faf6f0 0%, #f5efe6 100%);
flex-shrink: 0;
}
.theme-id {
font-family: 'Courier New', monospace;
color: #8b6239;
font-size: 0.85em;
font-weight: bold;
}
.theme-timestamp {
font-size: 0.8em;
color: #8a7968;
}
.theme-card-content {
flex: 1;
overflow-y: auto;
padding: 20px;
background: #fffefa;
}
/* Custom scrollbar for theme content */
.theme-card-content::-webkit-scrollbar {
width: 6px;
}
.theme-card-content::-webkit-scrollbar-track {
background: #f5f0e6;
border-radius: 3px;
}
.theme-card-content::-webkit-scrollbar-thumb {
background: #d4a574;
border-radius: 3px;
}
.theme-card-content::-webkit-scrollbar-thumb:hover {
background: #c19656;
}
.theme-full-text {
font-family: 'Georgia', serif;
line-height: 1.8;
color: #3d2914;
margin-bottom: 15px;
font-size: 0.95em;
text-align: justify;
}
.theme-tags {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-top: 15px;
padding-top: 15px;
border-top: 1px solid #e8dcc6;
}
.theme-tag {
display: inline-block;
padding: 4px 12px;
background: #f0e6d6;
border-radius: 15px;
font-size: 0.75em;
color: #6d4e31;
border: 1px solid #d4c4b0;
}
.theme-card-footer {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 20px;
border-top: 1px solid #e8dcc6;
background: linear-gradient(145deg, #faf6f0 0%, #f5efe6 100%);
flex-shrink: 0;
}
.theme-stats {
display: flex;
gap: 15px;
}
.theme-stat {
font-size: 0.85em;
color: #8a7968;
}
.theme-action-btn {
padding: 8px 20px;
font-size: 0.9em;
border-radius: 6px;
border: 1px solid #d4a574;
background: linear-gradient(145deg, #e4c896 0%, #d4a574 100%);
color: #2c1810;
cursor: pointer;
transition: all 0.2s ease;
font-family: 'Georgia', serif;
font-weight: bold;
}
.theme-action-btn:hover {
background: linear-gradient(145deg, #e8d0a4 0%, #ddb280 100%);
transform: translateY(-1px);
box-shadow: 0 3px 8px rgba(212, 165, 116, 0.3);
}
.use-btn {
background: linear-gradient(145deg, #e4c896 0%, #d4a574 100%);
font-weight: bold;
}
.empty-library {
text-align: center;
padding: 60px 20px;
color: #5a453a;
font-size: 1.1em;
font-style: italic;
}
/* Responsive design */
@media (max-width: 768px) {
.theme-cards-grid {
grid-template-columns: 1fr;
}
.theme-card {
height: 400px;
}
}