diff --git a/client/src/components/atoms/Button/Button.tsx b/client/src/components/atoms/Button/Button.tsx index 7abe7b7..02d9e24 100644 --- a/client/src/components/atoms/Button/Button.tsx +++ b/client/src/components/atoms/Button/Button.tsx @@ -25,6 +25,10 @@ const StyledButton = styled.button` cursor: not-allowed; opacity: 0.5; } + &:hover { + background-color: ${color.BORDER}; + box-shadow: 0 0 10px 8px rgba(255, 255, 255, 0.2); + } `; interface Props { diff --git a/client/src/components/atoms/Button/index.ts b/client/src/components/atoms/Button/index.ts index a6c4581..612f586 100644 --- a/client/src/components/atoms/Button/index.ts +++ b/client/src/components/atoms/Button/index.ts @@ -1,3 +1,3 @@ export { default } from './Button'; -export type ButtonType = 'default' | 'transparent'; +export type ButtonType = 'default' | 'transparent' | 'selected'; diff --git a/client/src/components/atoms/Button/style.ts b/client/src/components/atoms/Button/style.ts index dde6063..3b52c96 100644 --- a/client/src/components/atoms/Button/style.ts +++ b/client/src/components/atoms/Button/style.ts @@ -13,6 +13,11 @@ export default (type: ButtonType) => { return ` background : transparent; `; + case 'selected': + return ` + background : transparent; + color: ${color.PALE_PURPLE}; + `; default: return ``; } diff --git a/client/src/components/atoms/VideoList/VideoItem.tsx b/client/src/components/atoms/VideoList/VideoItem.tsx index 8619b58..f59e7b3 100644 --- a/client/src/components/atoms/VideoList/VideoItem.tsx +++ b/client/src/components/atoms/VideoList/VideoItem.tsx @@ -8,8 +8,9 @@ import { parseDateString } from '@/utils/time'; const StyledDiv = styled.div` display: flex; align-items: center; - justify-content: space-around; + justify-content: space-between; border-bottom: 1px solid ${color.BORDER}; + font-size: 13px; ${({ isChecked }) => `background-color: ${ isChecked ? `${color.DARK_PURPLE}` : `${color.MODAL}` @@ -20,14 +21,31 @@ const StyledDiv = styled.div` } `; +const WrapperDiv = styled.div` + display: flex; + width: 100%; + align-items: center; + justify-content: space-between; + margin: 0 1rem; +`; + const Image = styled.img` width: 2.5rem; height: 2rem; `; +const NameDiv = styled.div` + width: 70%; + margin-left: 1rem; +`; -const Name = styled.p``; +const Name = styled.p` + white-space: nowrap; +`; -const Timestamp = styled.p``; +const Timestamp = styled.p` + font-size: 12px; + white-space: nowrap; +`; interface Props { video: Video; @@ -41,9 +59,13 @@ const VideoItem: React.FC = ({ video, handleCheck, selected }) => { onClick={() => handleCheck(video)} isChecked={selected === video} > - - {video.name} - {parseDateString(new Date(), video.updatedAt)} + + + + {video.name} + + {parseDateString(new Date(), video.updatedAt)} + ); }; diff --git a/client/src/components/molecules/ButtonGroup/ButtonGroup.tsx b/client/src/components/molecules/ButtonGroup/ButtonGroup.tsx index 26452a3..e03cd6f 100644 --- a/client/src/components/molecules/ButtonGroup/ButtonGroup.tsx +++ b/client/src/components/molecules/ButtonGroup/ButtonGroup.tsx @@ -14,7 +14,7 @@ const StyledDiv = styled.div` interface button { onClick: () => void; message: string; - type: 'default' | 'transparent'; + type: 'default' | 'transparent' | 'selected'; children: React.ReactChild; disabled: boolean; } diff --git a/client/src/components/molecules/FileInput/FileInput.tsx b/client/src/components/molecules/FileInput/FileInput.tsx index 9da3cb6..fb0bc47 100644 --- a/client/src/components/molecules/FileInput/FileInput.tsx +++ b/client/src/components/molecules/FileInput/FileInput.tsx @@ -7,7 +7,7 @@ import color from '@/theme/colors'; const slide = keyframes` from { - transform: translate(0, -50px) rotate(90deg); + transform: translate(0, -2rem) rotate(90deg); opacity: 0; } to { @@ -22,7 +22,7 @@ const StyledDiv = styled.div` flex-direction: column; justify-content: center; border-radius: 5px; - top: 2rem; + top: 3rem; right: 0; border: 1px solid ${color.BORDER}; background-color: ${color.BLACK}; diff --git a/client/src/components/molecules/Modal/Modal.tsx b/client/src/components/molecules/Modal/Modal.tsx index 5ba0e4d..6a5483b 100644 --- a/client/src/components/molecules/Modal/Modal.tsx +++ b/client/src/components/molecules/Modal/Modal.tsx @@ -33,17 +33,27 @@ const StyledModalSection = styled.div` box-shadow: 0 0 10px 8px rgba(255, 255, 255, 0.2); color: ${color.WHITE}; z-index: 3; + margin-bottom: 1rem; `; const StyledModalButtonRow = styled.div` position: absolute; width: 100%; - bottom: 1rem; - margin-top: 1rem; - text-align: center; + bottom: 0.5rem; + padding-top: 0.5rem; + display: flex; + justify-content: space-around; + align-items: center; + border-top: 1px solid ${color.BORDER}; button { color: ${color.WHITE}; + padding: 0.5rem 2rem; + border-radius: 40%; + &:hover { + background-color: ${color.BORDER}; + box-shadow: 0 0 10px 8px rgba(255, 255, 255, 0.2); + } } `; diff --git a/client/src/components/molecules/UploadArea/UploadArea.tsx b/client/src/components/molecules/UploadArea/UploadArea.tsx index 8726bd1..b769042 100644 --- a/client/src/components/molecules/UploadArea/UploadArea.tsx +++ b/client/src/components/molecules/UploadArea/UploadArea.tsx @@ -8,7 +8,12 @@ import { setVideo } from '@/store/originalVideo/actions'; import { getName } from '@/store/selectors'; const StyledDiv = styled.div` + height: 100%; +`; + +const WrapperDiv = styled.div` display: flex; + height: 100%; align-items: center; position: relative; `; @@ -36,14 +41,16 @@ const UploadArea: React.FC = () => { return ( - {name} -