diff --git a/FE/baseball/src/Components/Game/Game.jsx b/FE/baseball/src/Components/Game/Game.jsx
index dfa01ee5e..4414dbe36 100644
--- a/FE/baseball/src/Components/Game/Game.jsx
+++ b/FE/baseball/src/Components/Game/Game.jsx
@@ -2,20 +2,27 @@ import GameHeader from "./GameHeader/GameHeader";
import GamePlayground from "./GamePlayground/GamePlayground";
import GamePlayLog from "./GamePlayLog/GamePlayLog";
import SquadBoard from "./SquadBoard/SquadBoard";
+import ScoreBoard from "./ScoreBoard/ScoreBoard";
import { Game as S } from "@/Components/Game/GameStyles";
const Game = () => {
+ const backgroundUrl =
+ "https://upload.wikimedia.org/wikipedia/commons/8/80/Munhak_baseball_stadium_2012.png";
return (
-
-
-
-
-
-
-
-
-
-
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+ >
);
};
diff --git a/FE/baseball/src/Components/Game/GameHeader/GameHeader.jsx b/FE/baseball/src/Components/Game/GameHeader/GameHeader.jsx
index d28eebb16..9e73f5a05 100644
--- a/FE/baseball/src/Components/Game/GameHeader/GameHeader.jsx
+++ b/FE/baseball/src/Components/Game/GameHeader/GameHeader.jsx
@@ -1,6 +1,6 @@
-import GameTitle from "./GameTitle";
-import GameProgress from "./GameProgress/GameProgress";
-import { GameHeader as S } from "@/Components/Game/GameStyles";
+import GameTitle from './GameTitle';
+import GameProgress from './GameProgress/GameProgress';
+import { GameHeader as S } from '@/Components/Game/GameStyles';
const GameHeader = () => {
return (
diff --git a/FE/baseball/src/Components/Game/GameStyles.jsx b/FE/baseball/src/Components/Game/GameStyles.jsx
index 3cd6fd762..65b278744 100644
--- a/FE/baseball/src/Components/Game/GameStyles.jsx
+++ b/FE/baseball/src/Components/Game/GameStyles.jsx
@@ -6,10 +6,13 @@ const Game = {
Game: styled(CS.BOX.FLEX_ROW_BOX)`
position: relative;
border: 3px solid ${theme.COLOR.DEFAULT};
+ background: #111;
+ opacity: 0.8;
width: 1440px;
height: 1080px;
`,
GameLeftSection: styled(CS.BOX.FLEX_COLUMN_BOX)`
+ position: relative;
width: 80%;
height: 100%;
border-right: 3px solid gray;
@@ -18,6 +21,16 @@ const Game = {
width: 20%;
height: 100%;
`,
+
+ Background: styled.img`
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: -999;
+ opacity: 0.4;
+ `,
};
const GameHeader = {
diff --git a/FE/baseball/src/Components/Game/ScoreBoard/PopUpButton.jsx b/FE/baseball/src/Components/Game/ScoreBoard/PopUpButton.jsx
new file mode 100644
index 000000000..fc6ff978f
--- /dev/null
+++ b/FE/baseball/src/Components/Game/ScoreBoard/PopUpButton.jsx
@@ -0,0 +1,21 @@
+import { ScoreBoardStyles as S } from '@/Components/Game/ScoreBoard/ScoreBoardStyles';
+
+const PopUpButton = ({ isHover }) => {
+ return (
+
+
+
+ );
+};
+
+export default PopUpButton;
diff --git a/FE/baseball/src/Components/Game/ScoreBoard/ScoreBoard.jsx b/FE/baseball/src/Components/Game/ScoreBoard/ScoreBoard.jsx
index e69de29bb..65cf8f438 100644
--- a/FE/baseball/src/Components/Game/ScoreBoard/ScoreBoard.jsx
+++ b/FE/baseball/src/Components/Game/ScoreBoard/ScoreBoard.jsx
@@ -0,0 +1,39 @@
+import ScoreTable from './ScoreTable/ScoreTable';
+import { ScoreBoardStyles as S } from './ScoreBoardStyles';
+import { useState } from 'react';
+import PopUpButton from './PopUpButton';
+
+const ScoreBoard = () => {
+ const initialScoreBoardPosition = -196;
+ const [isHover, setIsHover] = useState(false);
+ const [scoreBoardPosition, setScoreBoardPosition] = useState(
+ initialScoreBoardPosition
+ );
+
+ const handleMouseEnter = () => {
+ setIsHover((prev) => !prev);
+ setScoreBoardPosition(-3);
+ };
+
+ const handleMouseLeave = () => {
+ setIsHover((prev) => !prev);
+ setScoreBoardPosition(initialScoreBoardPosition);
+ };
+
+ return (
+ <>
+
+
+
+
+
+ >
+ );
+};
+
+export default ScoreBoard;
diff --git a/FE/baseball/src/Components/Game/ScoreBoard/ScoreBoardStyles.jsx b/FE/baseball/src/Components/Game/ScoreBoard/ScoreBoardStyles.jsx
new file mode 100644
index 000000000..a60f70243
--- /dev/null
+++ b/FE/baseball/src/Components/Game/ScoreBoard/ScoreBoardStyles.jsx
@@ -0,0 +1,128 @@
+import styled, { keyframes } from 'styled-components';
+import * as CS from '@/Styles/CommonStyles';
+import { BLOCK, NONE } from '@/Utils/const';
+import theme from '@/Styles/theme';
+
+const ArrowFade = keyframes`
+0% {
+ top: 0px;
+ opacity: 0;
+}
+50% {
+ top: 2px;
+}
+100% {
+ top: 4px;
+}
+`;
+
+const ScoreBoardStyles = {
+ ScoreBoard: styled(CS.BOX.FLEX_CENTER_BOX)`
+ position: absolute;
+ top: ${({ scoreBoardPosition }) => `${scoreBoardPosition}px`};
+ left: 220px;
+ width: 1000px;
+ font-weight: 900;
+ font-size: 24px;
+ padding: 10px 40px;
+ border: 1px solid #fff;
+ background: #111;
+ transition: all ease-in-out 0.8s;
+ cursor: pointer;
+ z-index: 20;
+ `,
+
+ ScoreTable: styled(CS.BOX.FLEX_COLUMN_CENTER_BOX)``,
+
+ ScoreRow: styled(CS.BOX.FLEX_CENTER_BOX)``,
+
+ ScoreRowHead: styled(CS.BOX.FLEX_CENTER_BOX)`
+ width: 100%;
+ margin-top: 10px;
+ `,
+ ScoreMiddleLine: styled.div`
+ width: 100%;
+ height: 1px;
+ border: 1px solid #fff;
+ margin-bottom: 10px;
+ `,
+
+ ScoreItem: styled(CS.BOX.FLEX_CENTER_BOX)`
+ width: 50px;
+ height: 50px;
+ `,
+
+ TeamNameBox: styled.div`
+ display: flex;
+ flex-direction: column;
+ position: relative;
+ `,
+
+ TeamName: styled.div`
+ width: 120px;
+ margin: 10px;
+ box-sizing: border-box;
+ display: flex;
+ justify-content: center;
+ `,
+
+ PopUpBackground: styled.div`
+ display: ${({ isHover }) => (isHover ? BLOCK : NONE)};
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 1434px;
+ height: 1080px;
+ background: #222;
+ opacity: 0.8;
+ transition: display 1.5s;
+ z-index: 10;
+ `,
+ PopUpButton: styled.div`
+ width: 100px;
+ height: 30px;
+ border-radius: 0px 0px 50% 50%;
+ position: absolute;
+ bottom: -30px;
+ left: 750px;
+ background: gray;
+ opacity: ${({ isHover }) => (isHover ? 1 : 0.5)};
+ text-align: center;
+ padding: 3px;
+ z-index: 9999;
+ border: 1px solid #fff;
+ cursor: pointer;
+ transition: all ease-in-out 0.4s;
+
+ div {
+ position: absolute;
+ color: #fff;
+ top: 2px;
+ left: 43px;
+ animation: ${ArrowFade} 1s infinite ease-in alternate;
+ }
+ `,
+
+ AttackTeamTag: styled(CS.BOX.FLEX_CENTER_BOX)`
+ width: 50px;
+ height: 50px;
+ `,
+
+ CurrentPlayerTag: styled.div`
+ width: fit-content;
+ font-size: 6px;
+ text-align: center;
+ font-weight: 500;
+ color: red;
+ border-radius: 8px;
+ border: 1px solid red;
+ background: ${theme.COLOR.CURRENT_PLAYER_TAG};
+ padding: 3px;
+ margin: 3px;
+ position: absolute;
+ top: 33px;
+ left: 44px;
+ `,
+};
+
+export { ScoreBoardStyles };
diff --git a/FE/baseball/src/Components/Game/ScoreBoard/ScoreTable/ScoreItem.jsx b/FE/baseball/src/Components/Game/ScoreBoard/ScoreTable/ScoreItem.jsx
index e69de29bb..2662780fd 100644
--- a/FE/baseball/src/Components/Game/ScoreBoard/ScoreTable/ScoreItem.jsx
+++ b/FE/baseball/src/Components/Game/ScoreBoard/ScoreTable/ScoreItem.jsx
@@ -0,0 +1,7 @@
+import { ScoreBoardStyles as S } from '../ScoreBoardStyles';
+
+const ScoreItem = () => {
+ return 1;
+};
+
+export default ScoreItem;
diff --git a/FE/baseball/src/Components/Game/ScoreBoard/ScoreTable/ScoreRow.jsx b/FE/baseball/src/Components/Game/ScoreBoard/ScoreTable/ScoreRow.jsx
index e69de29bb..12a795817 100644
--- a/FE/baseball/src/Components/Game/ScoreBoard/ScoreTable/ScoreRow.jsx
+++ b/FE/baseball/src/Components/Game/ScoreBoard/ScoreTable/ScoreRow.jsx
@@ -0,0 +1,29 @@
+import { ScoreBoardStyles as S } from '../ScoreBoardStyles';
+import AttackTeamTag from '../Teams/AttackTeamTag';
+import TeamNameBox from '../Teams/TeamNameBox';
+import ScoreItem from './ScoreItem';
+
+const ScoreRow = ({ teamName }) => {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default ScoreRow;
diff --git a/FE/baseball/src/Components/Game/ScoreBoard/ScoreTable/ScoreRowHead.jsx b/FE/baseball/src/Components/Game/ScoreBoard/ScoreTable/ScoreRowHead.jsx
new file mode 100644
index 000000000..215952fe2
--- /dev/null
+++ b/FE/baseball/src/Components/Game/ScoreBoard/ScoreTable/ScoreRowHead.jsx
@@ -0,0 +1,31 @@
+import { BLANK } from '@/Utils/const';
+import { ScoreBoardStyles as S } from '../ScoreBoardStyles';
+import AttackTeamTag from '../Teams/AttackTeamTag';
+import TeamName from '../Teams/TeamName';
+
+import ScoreItem from './ScoreItem';
+
+const ScoreRowHead = () => {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default ScoreRowHead;
diff --git a/FE/baseball/src/Components/Game/ScoreBoard/ScoreTable/ScoreTable.jsx b/FE/baseball/src/Components/Game/ScoreBoard/ScoreTable/ScoreTable.jsx
index e69de29bb..895a2d479 100644
--- a/FE/baseball/src/Components/Game/ScoreBoard/ScoreTable/ScoreTable.jsx
+++ b/FE/baseball/src/Components/Game/ScoreBoard/ScoreTable/ScoreTable.jsx
@@ -0,0 +1,16 @@
+import { ScoreBoardStyles as S } from '../ScoreBoardStyles';
+import ScoreRow from './ScoreRow';
+import ScoreRowHead from './ScoreRowHead';
+
+const ScoreTable = () => {
+ return (
+
+
+
+
+
+
+ );
+};
+
+export default ScoreTable;
diff --git a/FE/baseball/src/Components/Game/ScoreBoard/Teams/AttackTeamTag.jsx b/FE/baseball/src/Components/Game/ScoreBoard/Teams/AttackTeamTag.jsx
index e69de29bb..90fcaa195 100644
--- a/FE/baseball/src/Components/Game/ScoreBoard/Teams/AttackTeamTag.jsx
+++ b/FE/baseball/src/Components/Game/ScoreBoard/Teams/AttackTeamTag.jsx
@@ -0,0 +1,7 @@
+import { ScoreBoardStyles as S } from '@/Components/Game/ScoreBoard/ScoreBoardStyles';
+
+const AttackTeamTag = () => {
+ return ⚾︎;
+};
+
+export default AttackTeamTag;
diff --git a/FE/baseball/src/Components/Game/ScoreBoard/Teams/CurrentPlayerTag.jsx b/FE/baseball/src/Components/Game/ScoreBoard/Teams/CurrentPlayerTag.jsx
new file mode 100644
index 000000000..9327e21f9
--- /dev/null
+++ b/FE/baseball/src/Components/Game/ScoreBoard/Teams/CurrentPlayerTag.jsx
@@ -0,0 +1,7 @@
+import { ScoreBoardStyles as S } from '@/Components/Game/ScoreBoard/ScoreBoardStyles';
+
+const CurrentPlayerTag = () => {
+ return Player;
+};
+
+export default CurrentPlayerTag;
diff --git a/FE/baseball/src/Components/Game/ScoreBoard/Teams/PlayerTag.jsx b/FE/baseball/src/Components/Game/ScoreBoard/Teams/PlayerTag.jsx
index e69de29bb..7f858d508 100644
--- a/FE/baseball/src/Components/Game/ScoreBoard/Teams/PlayerTag.jsx
+++ b/FE/baseball/src/Components/Game/ScoreBoard/Teams/PlayerTag.jsx
@@ -0,0 +1,5 @@
+const PlayerTag = () => {
+ return
PlayerTag
;
+};
+
+export default PlayerTag;
diff --git a/FE/baseball/src/Components/Game/ScoreBoard/Teams/TeamName.jsx b/FE/baseball/src/Components/Game/ScoreBoard/Teams/TeamName.jsx
index e69de29bb..18423ec97 100644
--- a/FE/baseball/src/Components/Game/ScoreBoard/Teams/TeamName.jsx
+++ b/FE/baseball/src/Components/Game/ScoreBoard/Teams/TeamName.jsx
@@ -0,0 +1,7 @@
+import { ScoreBoardStyles as S } from '../ScoreBoardStyles';
+
+const TeamName = ({ teamName }) => {
+ return {teamName};
+};
+
+export default TeamName;
diff --git a/FE/baseball/src/Components/Game/ScoreBoard/Teams/TeamNameBox.jsx b/FE/baseball/src/Components/Game/ScoreBoard/Teams/TeamNameBox.jsx
new file mode 100644
index 000000000..54a3f994d
--- /dev/null
+++ b/FE/baseball/src/Components/Game/ScoreBoard/Teams/TeamNameBox.jsx
@@ -0,0 +1,14 @@
+import { ScoreBoardStyles as S } from '../ScoreBoardStyles';
+import CurrentPlayerTag from './CurrentPlayerTag';
+import TeamName from './TeamName';
+
+const TeamNameBox = ({ teamName }) => {
+ return (
+
+
+
+
+ );
+};
+
+export default TeamNameBox;
diff --git a/FE/baseball/src/Components/Game/ScoreBoard/Teams/Teams.jsx b/FE/baseball/src/Components/Game/ScoreBoard/Teams/Teams.jsx
index e69de29bb..582456057 100644
--- a/FE/baseball/src/Components/Game/ScoreBoard/Teams/Teams.jsx
+++ b/FE/baseball/src/Components/Game/ScoreBoard/Teams/Teams.jsx
@@ -0,0 +1,5 @@
+const Teams = () => {
+ return Teams
;
+};
+
+export default Teams;
diff --git a/FE/baseball/src/Components/Home/Home.jsx b/FE/baseball/src/Components/Home/Home.jsx
index 98fff7a50..a92a682c0 100644
--- a/FE/baseball/src/Components/Home/Home.jsx
+++ b/FE/baseball/src/Components/Home/Home.jsx
@@ -3,11 +3,16 @@ import MatchInfo from './MatchInfo/MatchInfo';
import { HomeStyles as S } from '@/Components/Home/HomeStyles';
const Home = () => {
+ const backgroundUrl =
+ 'https://upload.wikimedia.org/wikipedia/commons/8/80/Munhak_baseball_stadium_2012.png';
return (
-
-
-
-
+ <>
+
+
+
+
+
+ >
);
};
diff --git a/FE/baseball/src/Components/Home/HomeStyles.jsx b/FE/baseball/src/Components/Home/HomeStyles.jsx
index 0db212194..a60b1f547 100644
--- a/FE/baseball/src/Components/Home/HomeStyles.jsx
+++ b/FE/baseball/src/Components/Home/HomeStyles.jsx
@@ -4,13 +4,25 @@ import theme from '@/Styles/theme';
const HomeStyles = {
Home: styled(CS.BOX.FLEX_COLUMN_CENTER_BOX)`
- background: #222;
width: 1440px;
height: 1080px;
color: ${theme.COLOR.DEFAULT};
+ border: 3px solid #fff;
+ background: #111;
+ opacity: 0.8;
padding-top: 40px;
`,
+ Background: styled.img`
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: -999;
+ opacity: 0.4;
+ `,
+
HomeTitle: styled.div`
font-size: 36px;
font-weight: 700;
diff --git a/FE/baseball/src/Components/Intro/GameTitle.jsx b/FE/baseball/src/Components/Intro/GameTitle.jsx
index 89159ff3e..da0e9d13f 100644
--- a/FE/baseball/src/Components/Intro/GameTitle.jsx
+++ b/FE/baseball/src/Components/Intro/GameTitle.jsx
@@ -1,12 +1,22 @@
import { IntroStyles as S } from '@/Components/Intro/IntroStyles';
const GameTitle = () => {
- return (
-
- Team illy'swing BASEBALL GAME!!!
- comming soon...
-
- );
+ // prettier-ignore
+ const title =
+ `
+ /$$$$$$$$ /$$$$$$ /$$ /$$
+ |__ $$__/ |_ $$_/| $$| $$
+ | $$ /$$$$$$ /$$$$$$ /$$$$$$/$$$$ | $$ | $$| $$ /$$ /$$
+ | $$ /$$__ $$ |____ $$| $$_ $$_ $$ | $$ | $$| $$| $$ | $$
+ | $$| $$$$$$$$ /$$$$$$$| $$ \\ $$ \\ $$ | $$ | $$| $$| $$ | $$
+ | $$| $$_____/ /$$__ $$| $$ | $$ | $$ | $$ | $$| $$| $$ | $$
+ | $$| $$$$$$$| $$$$$$$| $$ | $$ | $$ /$$$$$$| $$| $$| $$$$$$$
+ |__/ \\_______/ \\_______/|__/ |__/ |__/|______/|__/|__/ \\____ $$
+ /$$ | $$
+ | $$$$$$/
+ \\______/
+ `
+ return {title};
};
export default GameTitle;
diff --git a/FE/baseball/src/Components/Intro/Intro.jsx b/FE/baseball/src/Components/Intro/Intro.jsx
index e393faf56..2018e9bbc 100644
--- a/FE/baseball/src/Components/Intro/Intro.jsx
+++ b/FE/baseball/src/Components/Intro/Intro.jsx
@@ -2,10 +2,15 @@ import { IntroStyles as S } from '@/Components/Intro/IntroStyles';
import GameStartButton from '@/Components/Intro/GameStartButton';
const Intro = () => {
+ const backgroundUrl =
+ 'https://upload.wikimedia.org/wikipedia/commons/8/80/Munhak_baseball_stadium_2012.png';
return (
-
-
-
+ <>
+
+
+
+
+ >
);
};
diff --git a/FE/baseball/src/Components/Intro/IntroStyles.jsx b/FE/baseball/src/Components/Intro/IntroStyles.jsx
index 93b53f970..42feb62f2 100644
--- a/FE/baseball/src/Components/Intro/IntroStyles.jsx
+++ b/FE/baseball/src/Components/Intro/IntroStyles.jsx
@@ -4,19 +4,22 @@ import theme from '@/Styles/theme';
const IntroStyles = {
Intro: styled(CS.BOX.FLEX_CENTER_BOX)`
- background: #222;
width: 1440px;
height: 1080px;
color: ${theme.COLOR.DEFAULT};
+ border: 3px solid #fff;
+ background: #111;
+ opacity: 0.8;
`,
GameTitle: styled.div`
- text-align: center;
+ width: 100%;
+ font-size: 16px;
`,
GameStartButton: styled(CS.BOX.FLEX_CENTER_BOX)`
- width: 650px;
- height: 100px;
+ width: 1000px;
+ height: fit-content;
padding: 20px;
border: 1px solid #fff;
border-radius: 10px;
@@ -32,6 +35,16 @@ const IntroStyles = {
background: #111;
}
`,
+
+ Background: styled.img`
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: -999;
+ opacity: 0.4;
+ `,
};
export { IntroStyles };
diff --git a/FE/baseball/src/Styles/GlobalStyles.jsx b/FE/baseball/src/Styles/GlobalStyles.jsx
index 305e08d0c..5010aeace 100644
--- a/FE/baseball/src/Styles/GlobalStyles.jsx
+++ b/FE/baseball/src/Styles/GlobalStyles.jsx
@@ -1,5 +1,5 @@
-import { createGlobalStyle } from "styled-components";
-import reset from "styled-reset";
+import { createGlobalStyle } from 'styled-components';
+import reset from 'styled-reset';
const GlobalStyles = createGlobalStyle`
${reset};
diff --git a/FE/baseball/src/Utils/const.js b/FE/baseball/src/Utils/const.js
index e69de29bb..b2aefaf02 100644
--- a/FE/baseball/src/Utils/const.js
+++ b/FE/baseball/src/Utils/const.js
@@ -0,0 +1,7 @@
+export const BLANK = '';
+
+// style
+
+export const BLOCK = 'block';
+export const NONE = 'none';
+export const FLEX = 'flex';