botdocs 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,720 @@
1
+ /* Minimal Theme - Centered, no sidebar, academic paper/essay style */
2
+
3
+ * {
4
+ margin: 0;
5
+ padding: 0;
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ :root {
10
+ /* Clean, readable colors */
11
+ --bg-primary: #fefefe;
12
+ --bg-secondary: #f9f9f9;
13
+ --bg-tertiary: #efefef;
14
+ --text-primary: #1a1a1a;
15
+ --text-secondary: #666666;
16
+ --border-color: #e0e0e0;
17
+ --link-color: #0066cc;
18
+ --link-hover: #0052a3;
19
+ --code-bg: #f5f5f5;
20
+ --content-max-width: 680px;
21
+ --accent-color: #0066cc;
22
+ }
23
+
24
+ body {
25
+ font-family: 'Charter', 'Georgia', 'Times New Roman', serif;
26
+ line-height: 1.75;
27
+ color: var(--text-primary);
28
+ background: var(--bg-primary);
29
+ font-size: 18px;
30
+ }
31
+
32
+ .layout {
33
+ display: block;
34
+ min-height: 100vh;
35
+ }
36
+
37
+ /* Hide sidebar - create centered single column */
38
+ .sidebar {
39
+ position: static;
40
+ width: 100%;
41
+ max-width: var(--content-max-width);
42
+ margin: 0 auto;
43
+ padding: 3rem 2rem 2rem;
44
+ background: transparent;
45
+ border: none;
46
+ height: auto;
47
+ }
48
+
49
+ .sidebar-header {
50
+ text-align: center;
51
+ margin-bottom: 2.5rem;
52
+ padding-bottom: 2rem;
53
+ border-bottom: 3px double var(--border-color);
54
+ }
55
+
56
+ .site-title {
57
+ font-size: 2rem;
58
+ font-weight: 400;
59
+ color: var(--text-primary);
60
+ margin-bottom: 0.5rem;
61
+ letter-spacing: 0.5px;
62
+ }
63
+
64
+ .site-description {
65
+ font-size: 1rem;
66
+ color: var(--text-secondary);
67
+ font-style: italic;
68
+ }
69
+
70
+ /* Minimal inline navigation */
71
+ .sidebar-nav {
72
+ margin-top: 0;
73
+ text-align: center;
74
+ font-size: 0.875rem;
75
+ }
76
+
77
+ .nav-list {
78
+ list-style: none;
79
+ display: flex;
80
+ flex-wrap: wrap;
81
+ justify-content: center;
82
+ gap: 0.5rem 1.5rem;
83
+ margin-bottom: 2rem;
84
+ }
85
+
86
+ .nav-list li {
87
+ margin-bottom: 0;
88
+ display: inline;
89
+ }
90
+
91
+ .nav-list a {
92
+ color: var(--text-secondary);
93
+ text-decoration: none;
94
+ padding: 0.25rem 0;
95
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
96
+ font-size: 0.875rem;
97
+ border-bottom: 2px solid transparent;
98
+ transition: all 0.2s;
99
+ }
100
+
101
+ .nav-list a:hover {
102
+ color: var(--link-color);
103
+ border-bottom-color: var(--link-color);
104
+ }
105
+
106
+ .nav-list a.active {
107
+ color: var(--text-primary);
108
+ font-weight: 600;
109
+ border-bottom-color: var(--text-primary);
110
+ }
111
+
112
+ /* Main Content - centered, no sidebar offset */
113
+ .main-content {
114
+ margin-left: 0;
115
+ flex: 1;
116
+ padding: 0 2rem 4rem;
117
+ }
118
+
119
+ .content-wrapper {
120
+ max-width: var(--content-max-width);
121
+ margin: 0 auto;
122
+ }
123
+
124
+ /* Typography - elegant serif, essay-like */
125
+ h1, h2, h3, h4, h5, h6 {
126
+ margin-top: 2.5rem;
127
+ margin-bottom: 1rem;
128
+ font-weight: 400;
129
+ line-height: 1.2;
130
+ color: var(--text-primary);
131
+ text-align: left;
132
+ }
133
+
134
+ h1 {
135
+ font-size: 2.75rem;
136
+ margin-top: 0;
137
+ margin-bottom: 1rem;
138
+ font-weight: 400;
139
+ text-align: center;
140
+ letter-spacing: -0.5px;
141
+ }
142
+
143
+ h2 {
144
+ font-size: 1.875rem;
145
+ margin-top: 3rem;
146
+ margin-bottom: 1.25rem;
147
+ font-weight: 500;
148
+ text-align: center;
149
+ }
150
+
151
+ h2::before {
152
+ content: '◆';
153
+ display: block;
154
+ text-align: center;
155
+ font-size: 0.75rem;
156
+ margin-bottom: 1rem;
157
+ color: var(--border-color);
158
+ }
159
+
160
+ h3 {
161
+ font-size: 1.375rem;
162
+ margin-top: 2rem;
163
+ font-weight: 600;
164
+ font-style: italic;
165
+ }
166
+
167
+ h4 {
168
+ font-size: 1.125rem;
169
+ font-weight: 600;
170
+ }
171
+
172
+ p {
173
+ margin-bottom: 1.5rem;
174
+ text-align: left;
175
+ hyphens: auto;
176
+ }
177
+
178
+ a {
179
+ color: var(--link-color);
180
+ text-decoration: underline;
181
+ }
182
+
183
+ a:hover {
184
+ color: var(--link-hover);
185
+ }
186
+
187
+ /* Code - monospace classic */
188
+ code {
189
+ font-family: 'Courier New', 'Courier', monospace;
190
+ font-size: 0.875rem;
191
+ background: var(--code-bg);
192
+ padding: 0.15rem 0.4rem;
193
+ border: 1px solid var(--border-color);
194
+ border-radius: 3px;
195
+ }
196
+
197
+ pre {
198
+ background: var(--code-bg);
199
+ padding: 1rem;
200
+ border: 1px solid var(--border-color);
201
+ border-left: 4px solid var(--link-color);
202
+ overflow-x: auto;
203
+ margin: 1.5rem 0;
204
+ }
205
+
206
+ pre code {
207
+ background: none;
208
+ padding: 0;
209
+ border: none;
210
+ }
211
+
212
+ /* Simple blockquotes */
213
+ blockquote {
214
+ border-left: 3px solid var(--border-color);
215
+ padding-left: 1.25rem;
216
+ margin: 1.5rem 0;
217
+ color: var(--text-secondary);
218
+ font-style: italic;
219
+ }
220
+
221
+ /* Simple, traditional callouts */
222
+ .markdown-alert {
223
+ padding: 1rem 1.25rem;
224
+ margin: 1.5rem 0;
225
+ border: 1px solid;
226
+ border-left-width: 4px;
227
+ background: var(--bg-secondary);
228
+ }
229
+
230
+ .markdown-alert-title {
231
+ font-weight: 700;
232
+ margin-bottom: 0.5rem;
233
+ display: flex;
234
+ align-items: center;
235
+ gap: 0.5rem;
236
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
237
+ }
238
+
239
+ .markdown-alert-title svg {
240
+ display: none;
241
+ }
242
+
243
+ .markdown-alert-title::before {
244
+ font-style: normal;
245
+ }
246
+
247
+ .markdown-alert > *:last-child {
248
+ margin-bottom: 0;
249
+ }
250
+
251
+ .markdown-alert-note {
252
+ border-color: #2980b9;
253
+ background: #e7f2fa;
254
+ }
255
+
256
+ .markdown-alert-note .markdown-alert-title {
257
+ color: #2980b9;
258
+ }
259
+
260
+ .markdown-alert-note .markdown-alert-title::before {
261
+ content: 'Note: ';
262
+ font-weight: 700;
263
+ }
264
+
265
+ .markdown-alert-tip {
266
+ border-color: #27ae60;
267
+ background: #e8f8f0;
268
+ }
269
+
270
+ .markdown-alert-tip .markdown-alert-title {
271
+ color: #27ae60;
272
+ }
273
+
274
+ .markdown-alert-tip .markdown-alert-title::before {
275
+ content: 'Tip: ';
276
+ font-weight: 700;
277
+ }
278
+
279
+ .markdown-alert-important {
280
+ border-color: #8e44ad;
281
+ background: #f4ecf7;
282
+ }
283
+
284
+ .markdown-alert-important .markdown-alert-title {
285
+ color: #8e44ad;
286
+ }
287
+
288
+ .markdown-alert-important .markdown-alert-title::before {
289
+ content: 'Important: ';
290
+ font-weight: 700;
291
+ }
292
+
293
+ .markdown-alert-warning {
294
+ border-color: #f39c12;
295
+ background: #fef5e7;
296
+ }
297
+
298
+ .markdown-alert-warning .markdown-alert-title {
299
+ color: #f39c12;
300
+ }
301
+
302
+ .markdown-alert-warning .markdown-alert-title::before {
303
+ content: 'Warning: ';
304
+ font-weight: 700;
305
+ }
306
+
307
+ .markdown-alert-caution {
308
+ border-color: #e74c3c;
309
+ background: #fadbd8;
310
+ }
311
+
312
+ .markdown-alert-caution .markdown-alert-title {
313
+ color: #e74c3c;
314
+ }
315
+
316
+ .markdown-alert-caution .markdown-alert-title::before {
317
+ content: 'Caution: ';
318
+ font-weight: 700;
319
+ }
320
+
321
+ /* Traditional lists */
322
+ ul, ol {
323
+ margin-left: 2rem;
324
+ margin-bottom: 1.25rem;
325
+ }
326
+
327
+ li {
328
+ margin-bottom: 0.5rem;
329
+ }
330
+
331
+ /* Task Lists */
332
+ .task-list-item {
333
+ list-style: none;
334
+ margin-left: -2rem;
335
+ }
336
+
337
+ .task-list-item-checkbox {
338
+ margin-right: 0.5rem;
339
+ margin-left: 0.25rem;
340
+ cursor: pointer;
341
+ }
342
+
343
+ .task-list-item-checkbox[checked] {
344
+ accent-color: var(--link-color);
345
+ }
346
+
347
+ /* Footnotes */
348
+ .footnotes {
349
+ margin-top: 3rem;
350
+ padding-top: 1.5rem;
351
+ border-top: 2px solid var(--border-color);
352
+ font-size: 0.875rem;
353
+ color: var(--text-secondary);
354
+ }
355
+
356
+ .footnotes-sep {
357
+ display: none;
358
+ }
359
+
360
+ .footnotes ol {
361
+ padding-left: 1.5rem;
362
+ }
363
+
364
+ .footnote-ref {
365
+ text-decoration: none;
366
+ font-weight: 600;
367
+ }
368
+
369
+ .footnote-ref a {
370
+ color: var(--link-color);
371
+ text-decoration: none;
372
+ }
373
+
374
+ .footnote-ref a:hover {
375
+ text-decoration: underline;
376
+ }
377
+
378
+ .footnote-backref {
379
+ text-decoration: none;
380
+ margin-left: 0.25rem;
381
+ }
382
+
383
+ sup.footnote-ref {
384
+ margin-left: 0.125rem;
385
+ }
386
+
387
+ /* Classic table style */
388
+ table {
389
+ width: 100%;
390
+ border-collapse: collapse;
391
+ margin: 1.5rem 0;
392
+ border: 1px solid var(--border-color);
393
+ }
394
+
395
+ th, td {
396
+ padding: 0.75rem;
397
+ text-align: left;
398
+ border: 1px solid var(--border-color);
399
+ }
400
+
401
+ th {
402
+ background: var(--bg-secondary);
403
+ font-weight: 700;
404
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
405
+ }
406
+
407
+ tr:nth-child(even) {
408
+ background: var(--bg-secondary);
409
+ }
410
+
411
+ /* Images - simple, no fancy effects */
412
+ img {
413
+ max-width: 100%;
414
+ height: auto;
415
+ margin: 1.5rem 0;
416
+ border: 1px solid var(--border-color);
417
+ }
418
+
419
+ /* Table of Contents */
420
+ .toc {
421
+ background: var(--bg-secondary);
422
+ padding: 1.5rem;
423
+ border: 1px solid var(--border-color);
424
+ margin: 2rem 0;
425
+ }
426
+
427
+ .toc ul {
428
+ margin-left: 1rem;
429
+ }
430
+
431
+ /* Simple theme toggle */
432
+ .theme-toggle {
433
+ position: fixed;
434
+ top: 1rem;
435
+ right: 1rem;
436
+ width: 2.5rem;
437
+ height: 2.5rem;
438
+ background: var(--bg-secondary);
439
+ border: 1px solid var(--border-color);
440
+ cursor: pointer;
441
+ display: flex;
442
+ align-items: center;
443
+ justify-content: center;
444
+ transition: background-color 0.2s;
445
+ z-index: 100;
446
+ }
447
+
448
+ .theme-toggle:hover {
449
+ background: var(--bg-tertiary);
450
+ }
451
+
452
+ .theme-icon::before {
453
+ content: '☀';
454
+ font-size: 1.25rem;
455
+ }
456
+
457
+ [data-theme='dark'] .theme-icon::before {
458
+ content: '☾';
459
+ }
460
+
461
+ /* Doc metadata */
462
+ .doc-meta {
463
+ color: var(--text-secondary);
464
+ font-size: 0.875rem;
465
+ margin-bottom: 2rem;
466
+ padding-bottom: 1rem;
467
+ border-bottom: 1px solid var(--border-color);
468
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
469
+ }
470
+
471
+ .doc-author {
472
+ margin-left: 1rem;
473
+ }
474
+
475
+ /* Doc navigation */
476
+ .doc-navigation {
477
+ display: flex;
478
+ justify-content: space-between;
479
+ margin-top: 3rem;
480
+ padding-top: 2rem;
481
+ border-top: 1px solid var(--border-color);
482
+ }
483
+
484
+ .nav-prev,
485
+ .nav-next {
486
+ padding: 0.75rem 1rem;
487
+ background: var(--bg-secondary);
488
+ border: 1px solid var(--border-color);
489
+ text-decoration: none;
490
+ color: var(--text-primary);
491
+ transition: background-color 0.2s;
492
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
493
+ }
494
+
495
+ .nav-prev:hover,
496
+ .nav-next:hover {
497
+ background: var(--bg-tertiary);
498
+ }
499
+
500
+ .nav-next {
501
+ margin-left: auto;
502
+ }
503
+
504
+ /* Home page */
505
+ .home-header {
506
+ margin-bottom: 2.5rem;
507
+ }
508
+
509
+ .lead {
510
+ font-size: 1.25rem;
511
+ color: var(--text-secondary);
512
+ margin-top: 1rem;
513
+ font-style: italic;
514
+ }
515
+
516
+ .link-grid {
517
+ display: grid;
518
+ grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
519
+ gap: 1.5rem;
520
+ margin-top: 2rem;
521
+ }
522
+
523
+ .link-card {
524
+ padding: 1.5rem;
525
+ background: var(--bg-secondary);
526
+ border: 1px solid var(--border-color);
527
+ text-decoration: none;
528
+ transition: background-color 0.2s;
529
+ }
530
+
531
+ .link-card:hover {
532
+ background: var(--bg-tertiary);
533
+ }
534
+
535
+ .link-card h3 {
536
+ margin: 0 0 0.5rem 0;
537
+ color: var(--text-primary);
538
+ font-size: 1.25rem;
539
+ }
540
+
541
+ .link-card p {
542
+ margin: 0;
543
+ color: var(--text-secondary);
544
+ font-size: 0.875rem;
545
+ text-align: left;
546
+ }
547
+
548
+ /* Drop caps for first paragraph */
549
+ .content-wrapper > p:first-of-type::first-letter {
550
+ font-size: 3.5em;
551
+ line-height: 0.9;
552
+ float: left;
553
+ margin: 0.1em 0.1em 0 0;
554
+ font-weight: 400;
555
+ }
556
+
557
+ /* Minimal theme toggle */
558
+ .theme-toggle {
559
+ position: fixed;
560
+ top: 1.5rem;
561
+ right: 1.5rem;
562
+ width: 2.5rem;
563
+ height: 2.5rem;
564
+ background: transparent;
565
+ border: 1px solid var(--border-color);
566
+ border-radius: 50%;
567
+ cursor: pointer;
568
+ display: flex;
569
+ align-items: center;
570
+ justify-content: center;
571
+ transition: all 0.2s;
572
+ z-index: 100;
573
+ }
574
+
575
+ .theme-toggle:hover {
576
+ background: var(--bg-secondary);
577
+ border-color: var(--text-primary);
578
+ }
579
+
580
+ .theme-icon::before {
581
+ content: '☀';
582
+ font-size: 1rem;
583
+ color: var(--text-primary);
584
+ }
585
+
586
+ [data-theme='dark'] .theme-icon::before {
587
+ content: '☾';
588
+ }
589
+
590
+ /* Footnotes styled as endnotes */
591
+ .footnotes {
592
+ margin-top: 4rem;
593
+ padding-top: 2rem;
594
+ border-top: 3px double var(--border-color);
595
+ font-size: 0.875rem;
596
+ }
597
+
598
+ .footnotes::before {
599
+ content: 'Notes';
600
+ display: block;
601
+ font-size: 1.25rem;
602
+ font-weight: 600;
603
+ margin-bottom: 1rem;
604
+ text-align: center;
605
+ }
606
+
607
+ /* Chat Widget - Minimal Academic Style */
608
+ .chat-toggle {
609
+ background: var(--accent-color);
610
+ border: 2px solid var(--border-color);
611
+ border-radius: 50%;
612
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
613
+ width: 3.5rem;
614
+ height: 3.5rem;
615
+ }
616
+
617
+ .chat-toggle:hover {
618
+ background: var(--link-hover);
619
+ border-color: var(--accent-color);
620
+ box-shadow: 0 4px 12px rgba(0, 102, 204, 0.2);
621
+ }
622
+
623
+ .chat-container {
624
+ border: 2px solid var(--border-color);
625
+ border-radius: 0.5rem;
626
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
627
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
628
+ }
629
+
630
+ .chat-header {
631
+ background: var(--text-primary);
632
+ border-radius: 0;
633
+ border-bottom: 2px solid var(--border-color);
634
+ }
635
+
636
+ .chat-header h3 {
637
+ font-family: Georgia, serif;
638
+ font-weight: 400;
639
+ letter-spacing: 0.5px;
640
+ }
641
+
642
+ .chat-message.user .message-content {
643
+ background: var(--accent-color);
644
+ border-radius: 0.5rem;
645
+ border-bottom-right-radius: 0.125rem;
646
+ }
647
+
648
+ .chat-message.assistant .message-content {
649
+ border: 1px solid var(--border-color);
650
+ border-radius: 0.5rem;
651
+ border-bottom-left-radius: 0.125rem;
652
+ }
653
+
654
+ .chat-send {
655
+ background: var(--accent-color);
656
+ border-radius: 0.25rem;
657
+ }
658
+
659
+ .chat-send:hover:not(:disabled) {
660
+ background: var(--link-hover);
661
+ }
662
+
663
+ /* Dark mode chat styling */
664
+ [data-theme='dark'] .chat-container {
665
+ background: #1a1a1a;
666
+ border-color: #3a3a3a;
667
+ }
668
+
669
+ [data-theme='dark'] .chat-header {
670
+ background: #0f0f0f;
671
+ border-bottom-color: #3a3a3a;
672
+ }
673
+
674
+ [data-theme='dark'] .chat-messages {
675
+ background: #1a1a1a;
676
+ }
677
+
678
+ [data-theme='dark'] .chat-message.assistant .message-content {
679
+ background: #2a2a2a;
680
+ border-color: #3a3a3a;
681
+ color: #e5e5e5;
682
+ }
683
+
684
+ [data-theme='dark'] .chat-input-container {
685
+ background: #0f0f0f;
686
+ border-top-color: #3a3a3a;
687
+ }
688
+
689
+ [data-theme='dark'] .chat-input {
690
+ background: #2a2a2a;
691
+ border-color: #3a3a3a;
692
+ color: #e5e5e5;
693
+ }
694
+
695
+ /* Responsive */
696
+ @media (max-width: 768px) {
697
+ body {
698
+ font-size: 16px;
699
+ }
700
+
701
+ .sidebar {
702
+ padding: 2rem 1.5rem 1.5rem;
703
+ }
704
+
705
+ .main-content {
706
+ padding: 0 1.5rem 3rem;
707
+ }
708
+
709
+ h1 {
710
+ font-size: 2rem;
711
+ }
712
+
713
+ h2 {
714
+ font-size: 1.5rem;
715
+ }
716
+
717
+ .content-wrapper > p:first-of-type::first-letter {
718
+ font-size: 2.5em;
719
+ }
720
+ }