Skip to content

Commit b404117

Browse files
author
Your Name
committed
Merge branch 'main' of https://github.com/maddox-214/theo
2 parents eaa5244 + 964acec commit b404117

File tree

4 files changed

+173
-68
lines changed

4 files changed

+173
-68
lines changed

backend/theo.db

0 Bytes
Binary file not shown.

frontend/src/App.tsx

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ function App() {
3636

3737

3838
return (
39-
<>
39+
<div className='starfield'>
4040
{currentScreen === 'select' && (
4141
<ExperienceSelect onGameCreated={handleGameCreated}/>
4242
)}
@@ -58,39 +58,6 @@ function App() {
5858
onNewLesson={handleBackToSelect}
5959
/>
6060
)}
61-
{currentScreen === 'pieceGuide' && (
62-
<PieceGuide />
63-
)}
64-
{currentScreen !== 'pieceGuide' && (
65-
<button
66-
style={{
67-
position: 'fixed',
68-
bottom: '24px',
69-
right: '24px',
70-
zIndex: 1000,
71-
width: '56px',
72-
height: '56px',
73-
borderRadius: '50%',
74-
background: '#2d2d2d',
75-
color: '#fff',
76-
border: 'none',
77-
boxShadow: '0 2px 8px rgba(0,0,0,0.15)',
78-
cursor: 'pointer',
79-
display: 'flex',
80-
alignItems: 'center',
81-
justifyContent: 'center',
82-
fontSize: '2rem',
83-
transition: 'background 0.2s',
84-
}}
85-
title="Chess Piece Guide"
86-
onClick={() => setCurrentScreen('pieceGuide')}
87-
>
88-
{/* Chess piece icon SVG */}
89-
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
90-
<path d="M16 4c1.1 0 2 .9 2 2v2h-4V6c0-1.1.9-2 2-2zm-4 6h8l1.5 4.5c.2.6-.2 1.3-.8 1.5l-1.7.6V22h-4v-5.4l-1.7-.6c-.6-.2-1-.9-.8-1.5L12 10zm-2 16c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v2H10v-2z" fill="currentColor"/>
91-
</svg>
92-
</button>
93-
)}
9461
</>
9562
)
9663
}

frontend/src/GameBoard.tsx

Lines changed: 37 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -503,19 +503,21 @@ const GameBoard: React.FC<GameBoardProps> = ({
503503
left: 0,
504504
right: 0,
505505
bottom: 0,
506-
background: 'rgba(0, 0, 0, 0.85)',
506+
background: 'rgba(10, 6, 18, 0.88)',
507507
display: 'flex',
508508
alignItems: 'center',
509509
justifyContent: 'center',
510510
zIndex: 1000,
511511
borderRadius: '8px'
512512
}}>
513513
<div style={{
514-
background: '#3a3a3a',
514+
background: 'rgba(43, 32, 66, 0.92)',
515515
padding: '50px 60px',
516516
borderRadius: '12px',
517517
textAlign: 'center',
518-
minWidth: '400px'
518+
minWidth: '400px',
519+
border: '1px solid rgba(180, 150, 255, 0.18)',
520+
boxShadow: '0 30px 60px rgba(20, 10, 40, 0.75)'
519521
}}>
520522
{/* Title */}
521523
<h2 style={{
@@ -535,7 +537,7 @@ const GameBoard: React.FC<GameBoardProps> = ({
535537
{/* Subtitle - outcome type */}
536538
<p style={{
537539
fontSize: '1.1rem',
538-
color: '#b0b0b0',
540+
color: 'rgba(230, 220, 255, 0.72)',
539541
marginBottom: '40px',
540542
fontWeight: '400'
541543
}}>
@@ -558,22 +560,23 @@ const GameBoard: React.FC<GameBoardProps> = ({
558560
style={{
559561
width: '100%',
560562
padding: '16px',
561-
background: '#ff8c42',
562-
border: 'none',
563+
background: 'rgba(160, 120, 255, 0.32)',
564+
border: '1px solid rgba(180, 150, 255, 0.22)',
563565
borderRadius: '8px',
564566
color: '#ffffff',
565567
cursor: 'pointer',
566568
fontSize: '1.2rem',
567569
fontWeight: '600',
568570
marginBottom: '15px',
569-
transition: 'all 0.2s'
571+
transition: 'all 0.2s',
572+
boxShadow: '0 14px 30px rgba(30, 10, 60, 0.35)'
570573
}}
571574
onMouseEnter={(e) => {
572-
e.currentTarget.style.background = '#8bc34a';
575+
e.currentTarget.style.background = 'rgba(160, 120, 255, 0.5)';
573576
e.currentTarget.style.transform = 'translateY(-2px)';
574577
}}
575578
onMouseLeave={(e) => {
576-
e.currentTarget.style.background = '#ff8c42';
579+
e.currentTarget.style.background = 'rgba(160, 120, 255, 0.32)';
577580
e.currentTarget.style.transform = 'translateY(0)';
578581
}}
579582
>
@@ -587,8 +590,8 @@ const GameBoard: React.FC<GameBoardProps> = ({
587590
style={{
588591
flex: 1,
589592
padding: '12px',
590-
background: '#5a5a5a',
591-
border: 'none',
593+
background: 'rgba(255, 255, 255, 0.08)',
594+
border: '1px solid rgba(180, 150, 255, 0.18)',
592595
borderRadius: '8px',
593596
color: '#ffffff',
594597
cursor: 'pointer',
@@ -597,10 +600,10 @@ const GameBoard: React.FC<GameBoardProps> = ({
597600
transition: 'all 0.2s'
598601
}}
599602
onMouseEnter={(e) => {
600-
e.currentTarget.style.background = '#6a6a6a';
603+
e.currentTarget.style.background = 'rgba(160, 120, 255, 0.18)';
601604
}}
602605
onMouseLeave={(e) => {
603-
e.currentTarget.style.background = '#5a5a5a';
606+
e.currentTarget.style.background = 'rgba(255, 255, 255, 0.08)';
604607
}}
605608
>
606609
Main Menu
@@ -615,8 +618,8 @@ const GameBoard: React.FC<GameBoardProps> = ({
615618
style={{
616619
flex: 1,
617620
padding: '12px',
618-
background: '#5a5a5a',
619-
border: 'none',
621+
background: 'rgba(255, 255, 255, 0.08)',
622+
border: '1px solid rgba(180, 150, 255, 0.18)',
620623
borderRadius: '8px',
621624
color: '#ffffff',
622625
cursor: 'pointer',
@@ -625,10 +628,10 @@ const GameBoard: React.FC<GameBoardProps> = ({
625628
transition: 'all 0.2s'
626629
}}
627630
onMouseEnter={(e) => {
628-
e.currentTarget.style.background = '#6a6a6a';
631+
e.currentTarget.style.background = 'rgba(160, 120, 255, 0.18)';
629632
}}
630633
onMouseLeave={(e) => {
631-
e.currentTarget.style.background = '#5a5a5a';
634+
e.currentTarget.style.background = 'rgba(255, 255, 255, 0.08)';
632635
}}
633636
>
634637
Rematch
@@ -646,22 +649,23 @@ const GameBoard: React.FC<GameBoardProps> = ({
646649
style={{
647650
width: '100%',
648651
padding: '16px',
649-
background: '#ff8c42',
650-
border: 'none',
652+
background: 'rgba(160, 120, 255, 0.32)',
653+
border: '1px solid rgba(180, 150, 255, 0.22)',
651654
borderRadius: '8px',
652655
color: '#ffffff',
653656
cursor: 'pointer',
654657
fontSize: '1.2rem',
655658
fontWeight: '600',
656659
marginBottom: '15px',
657-
transition: 'all 0.2s'
660+
transition: 'all 0.2s',
661+
boxShadow: '0 14px 30px rgba(30, 10, 60, 0.35)'
658662
}}
659663
onMouseEnter={(e) => {
660-
e.currentTarget.style.background = '#f69456';
664+
e.currentTarget.style.background = 'rgba(160, 120, 255, 0.5)';
661665
e.currentTarget.style.transform = 'translateY(-2px)';
662666
}}
663667
onMouseLeave={(e) => {
664-
e.currentTarget.style.background = '#ff8c42';
668+
e.currentTarget.style.background = 'rgba(160, 120, 255, 0.32)';
665669
e.currentTarget.style.transform = 'translateY(0)';
666670
}}
667671
>
@@ -675,8 +679,8 @@ const GameBoard: React.FC<GameBoardProps> = ({
675679
style={{
676680
flex: 1,
677681
padding: '12px',
678-
background: '#5a5a5a',
679-
border: 'none',
682+
background: 'rgba(255, 255, 255, 0.08)',
683+
border: '1px solid rgba(180, 150, 255, 0.18)',
680684
borderRadius: '8px',
681685
color: '#ffffff',
682686
cursor: 'pointer',
@@ -685,10 +689,10 @@ const GameBoard: React.FC<GameBoardProps> = ({
685689
transition: 'all 0.2s'
686690
}}
687691
onMouseEnter={(e) => {
688-
e.currentTarget.style.background = '#6a6a6a';
692+
e.currentTarget.style.background = 'rgba(160, 120, 255, 0.18)';
689693
}}
690694
onMouseLeave={(e) => {
691-
e.currentTarget.style.background = '#5a5a5a';
695+
e.currentTarget.style.background = 'rgba(255, 255, 255, 0.08)';
692696
}}
693697
>
694698
Main Menu
@@ -707,8 +711,8 @@ const GameBoard: React.FC<GameBoardProps> = ({
707711
style={{
708712
flex: 1,
709713
padding: '12px',
710-
background: '#5a5a5a',
711-
border: 'none',
714+
background: 'rgba(255, 255, 255, 0.08)',
715+
border: '1px solid rgba(180, 150, 255, 0.18)',
712716
borderRadius: '8px',
713717
color: '#ffffff',
714718
cursor: 'pointer',
@@ -717,10 +721,10 @@ const GameBoard: React.FC<GameBoardProps> = ({
717721
transition: 'all 0.2s'
718722
}}
719723
onMouseEnter={(e) => {
720-
e.currentTarget.style.background = '#6a6a6a';
724+
e.currentTarget.style.background = 'rgba(160, 120, 255, 0.18)';
721725
}}
722726
onMouseLeave={(e) => {
723-
e.currentTarget.style.background = '#5a5a5a';
727+
e.currentTarget.style.background = 'rgba(255, 255, 255, 0.08)';
724728
}}
725729
>
726730
Game Review
@@ -803,7 +807,9 @@ const GameBoard: React.FC<GameBoardProps> = ({
803807
{/* Speech / dialogue box */}
804808
<div className="speech-box">
805809
<span className="quote left"></span>
806-
<p>{dialog}</p>
810+
<div className="speech-box-content">
811+
<p>{dialog}</p>
812+
</div>
807813
<span className="quote right"></span>
808814
</div>
809815

0 commit comments

Comments
 (0)