Bharath370 commited on
Commit
86f29f3
·
verified ·
1 Parent(s): 7250e58

Upload style.css

Browse files
Files changed (1) hide show
  1. assets/style.css +352 -0
assets/style.css ADDED
@@ -0,0 +1,352 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* assets/style.css */
2
+ /* Custom CSS for TriviaVerse Enhanced */
3
+
4
+ /* Import Google Fonts */
5
+ @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600;700&display=swap');
6
+
7
+ /* Global Variables */
8
+ :root {
9
+ --primary-color: #4CAF50;
10
+ --secondary-color: #45a049;
11
+ --background-color: #ffffff;
12
+ --text-color: #262730;
13
+ --border-radius: 12px;
14
+ --transition: all 0.3s ease;
15
+ }
16
+
17
+ /* Dark mode variables */
18
+ [data-theme="dark"] {
19
+ --primary-color: #00D4FF;
20
+ --secondary-color: #00a8cc;
21
+ --background-color: #0E1117;
22
+ --text-color: #FAFAFA;
23
+ }
24
+
25
+ /* Global Styles */
26
+ * {
27
+ box-sizing: border-box;
28
+ }
29
+
30
+ body {
31
+ font-family: 'Poppins', sans-serif;
32
+ line-height: 1.6;
33
+ color: var(--text-color);
34
+ background-color: var(--background-color);
35
+ }
36
+
37
+ /* Smooth scrolling */
38
+ html {
39
+ scroll-behavior: smooth;
40
+ }
41
+
42
+ /* Custom scrollbar */
43
+ ::-webkit-scrollbar {
44
+ width: 10px;
45
+ height: 10px;
46
+ }
47
+
48
+ ::-webkit-scrollbar-track {
49
+ background: rgba(0, 0, 0, 0.1);
50
+ border-radius: 10px;
51
+ }
52
+
53
+ ::-webkit-scrollbar-thumb {
54
+ background: var(--primary-color);
55
+ border-radius: 10px;
56
+ }
57
+
58
+ ::-webkit-scrollbar-thumb:hover {
59
+ background: var(--secondary-color);
60
+ }
61
+
62
+ /* Animations */
63
+ @keyframes fadeIn {
64
+ from {
65
+ opacity: 0;
66
+ transform: translateY(20px);
67
+ }
68
+
69
+ to {
70
+ opacity: 1;
71
+ transform: translateY(0);
72
+ }
73
+ }
74
+
75
+ @keyframes slideInLeft {
76
+ from {
77
+ opacity: 0;
78
+ transform: translateX(-50px);
79
+ }
80
+
81
+ to {
82
+ opacity: 1;
83
+ transform: translateX(0);
84
+ }
85
+ }
86
+
87
+ @keyframes pulse {
88
+ 0% {
89
+ transform: scale(1);
90
+ }
91
+
92
+ 50% {
93
+ transform: scale(1.05);
94
+ }
95
+
96
+ 100% {
97
+ transform: scale(1);
98
+ }
99
+ }
100
+
101
+ @keyframes shimmer {
102
+ 0% {
103
+ background-position: -200px 0;
104
+ }
105
+
106
+ 100% {
107
+ background-position: calc(200px + 100%) 0;
108
+ }
109
+ }
110
+
111
+ /* Utility Classes */
112
+ .fade-in {
113
+ animation: fadeIn 0.5s ease-out forwards;
114
+ }
115
+
116
+ .slide-in-left {
117
+ animation: slideInLeft 0.5s ease-out forwards;
118
+ }
119
+
120
+ .pulse {
121
+ animation: pulse 2s ease-in-out infinite;
122
+ }
123
+
124
+ /* Loading skeleton */
125
+ .skeleton {
126
+ background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
127
+ background-size: 200px 100%;
128
+ animation: shimmer 1.5s ease-in-out infinite;
129
+ }
130
+
131
+ /* Card hover effects */
132
+ .hover-lift {
133
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
134
+ }
135
+
136
+ .hover-lift:hover {
137
+ transform: translateY(-5px);
138
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
139
+ }
140
+
141
+ /* Flashcard Component */
142
+ .flashcard-container {
143
+ perspective: 1000px;
144
+ min-height: 300px;
145
+ cursor: pointer;
146
+ }
147
+
148
+ .flashcard {
149
+ width: 100%;
150
+ min-height: 300px;
151
+ border-radius: 20px;
152
+ padding: 20px;
153
+ display: flex;
154
+ flex-direction: column;
155
+ align-items: center;
156
+ justify-content: center;
157
+ text-align: center;
158
+ color: white;
159
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
160
+ transition: transform 0.6s;
161
+ transform-style: preserve-3d;
162
+ }
163
+
164
+ .flashcard.front {
165
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
166
+ }
167
+
168
+ .flashcard.back {
169
+ background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
170
+ }
171
+
172
+ .flashcard p {
173
+ font-size: 1.2rem;
174
+ }
175
+
176
+ .flip-instruction {
177
+ margin-top: 30px;
178
+ opacity: 0.8;
179
+ font-style: italic;
180
+ }
181
+
182
+ /* Responsive Typography */
183
+ h1 {
184
+ font-size: clamp(1.5rem, 4vw, 2.5rem);
185
+ font-weight: 700;
186
+ }
187
+
188
+ h2 {
189
+ font-size: clamp(1.25rem, 3vw, 2rem);
190
+ font-weight: 600;
191
+ }
192
+
193
+ h3 {
194
+ font-size: clamp(1.1rem, 2.5vw, 1.5rem);
195
+ font-weight: 600;
196
+ }
197
+
198
+ p {
199
+ font-size: clamp(0.9rem, 2vw, 1.1rem);
200
+ }
201
+
202
+ /* Mobile-first responsive design */
203
+ @media (max-width: 768px) {
204
+
205
+ /* Mobile styles */
206
+ .main .block-container {
207
+ padding: 1rem 0.5rem !important;
208
+ max-width: 100% !important;
209
+ }
210
+
211
+ /* Stack columns on mobile */
212
+ .row-widget.stHorizontal {
213
+ flex-direction: column !important;
214
+ }
215
+
216
+ .row-widget.stHorizontal>div {
217
+ width: 100% !important;
218
+ margin-bottom: 1rem;
219
+ }
220
+
221
+ /* Full-width buttons on mobile */
222
+ .stButton>button {
223
+ width: 100% !important;
224
+ min-height: 50px;
225
+ font-size: 16px !important;
226
+ }
227
+
228
+ /* Larger touch targets */
229
+ .stRadio>div>label {
230
+ padding: 15px !important;
231
+ margin: 5px 0 !important;
232
+ }
233
+
234
+ /* Responsive cards */
235
+ .card {
236
+ padding: 15px !important;
237
+ margin: 10px 0 !important;
238
+ }
239
+
240
+ /* Hide sidebar by default on mobile */
241
+ section[data-testid="stSidebar"] {
242
+ transform: translateX(-100%);
243
+ transition: transform 0.3s ease;
244
+ }
245
+
246
+ section[data-testid="stSidebar"][aria-expanded="true"] {
247
+ transform: translateX(0);
248
+ }
249
+
250
+ /* Adjust font sizes for mobile */
251
+ .score-display {
252
+ font-size: 24px !important;
253
+ }
254
+
255
+ /* Responsive quiz container */
256
+ .quiz-container {
257
+ padding: 20px !important;
258
+ margin: 15px 0 !important;
259
+ }
260
+ }
261
+
262
+ /* Tablet styles */
263
+ @media (min-width: 769px) and (max-width: 1024px) {
264
+ .main .block-container {
265
+ max-width: 95%;
266
+ padding: 2rem 1rem;
267
+ }
268
+
269
+ .row-widget.stHorizontal>div {
270
+ flex: 1;
271
+ }
272
+ }
273
+
274
+ /* Desktop styles */
275
+ @media (min-width: 1025px) {
276
+ .main .block-container {
277
+ max-width: 1200px;
278
+ padding: 3rem 2rem;
279
+ }
280
+ }
281
+
282
+ /* Print styles */
283
+ @media print {
284
+
285
+ .stButton,
286
+ section[data-testid="stSidebar"],
287
+ .stRadio {
288
+ display: none !important;
289
+ }
290
+
291
+ .main {
292
+ padding: 0 !important;
293
+ }
294
+
295
+ .card {
296
+ break-inside: avoid;
297
+ page-break-inside: avoid;
298
+ }
299
+ }
300
+
301
+ /* Accessibility improvements */
302
+ .stButton>button:focus,
303
+ .stRadio>div>label:focus {
304
+ outline: 3px solid var(--primary-color);
305
+ outline-offset: 2px;
306
+ }
307
+
308
+ /* High contrast mode support */
309
+ @media (prefers-contrast: high) {
310
+ :root {
311
+ --primary-color: #00AA00;
312
+ --background-color: #000000;
313
+ --text-color: #FFFFFF;
314
+ }
315
+ }
316
+
317
+ /* Reduced motion support */
318
+ @media (prefers-reduced-motion: reduce) {
319
+ * {
320
+ animation-duration: 0.01ms !important;
321
+ animation-iteration-count: 1 !important;
322
+ transition-duration: 0.01ms !important;
323
+ }
324
+ }
325
+
326
+ /* Custom tooltip */
327
+ .tooltip {
328
+ position: relative;
329
+ display: inline-block;
330
+ }
331
+
332
+ .tooltip .tooltiptext {
333
+ visibility: hidden;
334
+ width: 200px;
335
+ background-color: #555;
336
+ color: #fff;
337
+ text-align: center;
338
+ border-radius: 6px;
339
+ padding: 5px;
340
+ position: absolute;
341
+ z-index: 1;
342
+ bottom: 125%;
343
+ left: 50%;
344
+ margin-left: -100px;
345
+ opacity: 0;
346
+ transition: opacity 0.3s;
347
+ }
348
+
349
+ .tooltip:hover .tooltiptext {
350
+ visibility: visible;
351
+ opacity: 1;
352
+ }