diff --git a/src/entities/projects/ui/project-insert/ProjectCategoryCard.tsx b/src/entities/projects/ui/project-insert/ProjectCategoryCard.tsx index e9f71ed..c986952 100644 --- a/src/entities/projects/ui/project-insert/ProjectCategoryCard.tsx +++ b/src/entities/projects/ui/project-insert/ProjectCategoryCard.tsx @@ -32,22 +32,42 @@ const ProjectCategoryCard = ({ diff --git a/src/entities/projects/ui/project-insert/ProjectDetailDescriptionCard.tsx b/src/entities/projects/ui/project-insert/ProjectDetailDescriptionCard.tsx index 866f9cf..0be16ec 100644 --- a/src/entities/projects/ui/project-insert/ProjectDetailDescriptionCard.tsx +++ b/src/entities/projects/ui/project-insert/ProjectDetailDescriptionCard.tsx @@ -1,5 +1,4 @@ import { TextField } from "@mui/material"; -import { useMediaQuery } from "@mui/material"; import { useTheme } from "@mui/material/styles"; import type { ChangeEvent, CSSProperties, JSX } from "react"; @@ -19,7 +18,6 @@ const ProjectDetailDescriptionCard = ({ style, }: ProjectDetailDescriptionCardProps): JSX.Element => { const theme = useTheme(); - const isMobile = useMediaQuery(theme.breakpoints.down("md")); const handleChange = (e: ChangeEvent): void => { onChange(e.target.value); @@ -47,18 +45,18 @@ AI 기술을 활용하여 개인별 학습 패턴을 분석하고, 최적화된 ## 🚀 기대 효과 - 개인화된 학습으로 학습 효율성 30% 향상 - 학습 동기 부여 및 지속성 증대`} - multiline // 여러 줄 입력 가능 + multiline minRows={large ? 12 : 8} maxRows={large ? 20 : 15} fullWidth variant="outlined" sx={{ "& .MuiOutlinedInput-root": { - fontSize: isMobile - ? theme.typography.body2.fontSize - : large - ? theme.typography.h5.fontSize - : theme.typography.body1.fontSize, + fontSize: { + xs: "15px", + sm: "16px", + md: "17px", + }, fontFamily: "monospace", lineHeight: 1.6, padding: 0, @@ -73,6 +71,19 @@ AI 기술을 활용하여 개인별 학습 패턴을 분석하고, 최적화된 "& .MuiOutlinedInput-input": { padding: large ? theme.spacing(2.5) : theme.spacing(2), resize: "vertical", + fontSize: { + xs: "15px", + sm: "16px", + md: "17px", + }, + "&::placeholder": { + fontSize: { + xs: "15px", + sm: "16px", + md: "17px", + }, + color: "#999", + }, }, }} /> diff --git a/src/entities/projects/ui/project-insert/ProjectExpectedPeriodCard.tsx b/src/entities/projects/ui/project-insert/ProjectExpectedPeriodCard.tsx index 8633851..1764db9 100644 --- a/src/entities/projects/ui/project-insert/ProjectExpectedPeriodCard.tsx +++ b/src/entities/projects/ui/project-insert/ProjectExpectedPeriodCard.tsx @@ -32,22 +32,42 @@ export default function ProjectScheduleCard({ value={value || ("" as ExpectedPeriod)} onChange={onChange} - size={large ? "medium" : "small"} + size="small" displayEmpty sx={{ - fontSize: { - xs: large ? "14px" : "14px", - sm: large ? "15px" : "15px", - md: large ? "16px" : "16px", + height: { xs: 40, sm: 48 }, + "& .MuiOutlinedInput-root": { + height: { xs: "40px !important", sm: "48px !important" }, + fontSize: { + xs: "16px", + sm: "17px", + md: "18px", + }, + fontFamily: theme.typography.fontFamily, + background: "none", + border: "none", + "&:hover .MuiOutlinedInput-notchedOutline": { + borderColor: theme.palette.text.primary, + }, + "&.Mui-focused .MuiOutlinedInput-notchedOutline": { + borderColor: theme.palette.primary.main, + borderWidth: "2px", + }, }, - fontFamily: theme.typography.fontFamily, - padding: large ? theme.spacing(2.2) : theme.spacing(1.7), - height: 40, "& .MuiSelect-select": { - height: "40px", + padding: large ? theme.spacing(2.2) : theme.spacing(1.7), + height: "auto !important", + minHeight: "unset !important", display: "flex", alignItems: "center", - padding: 0, + fontSize: { + xs: "16px", + sm: "17px", + md: "18px", + }, + "&[aria-expanded='false']": { + color: value ? "inherit" : "#999", + }, }, }} > diff --git a/src/entities/projects/ui/project-insert/ProjectOneLineCard.tsx b/src/entities/projects/ui/project-insert/ProjectOneLineCard.tsx index 9829ca5..346d587 100644 --- a/src/entities/projects/ui/project-insert/ProjectOneLineCard.tsx +++ b/src/entities/projects/ui/project-insert/ProjectOneLineCard.tsx @@ -39,18 +39,18 @@ const ProjectOneLineCard = ({ sx={{ "& .MuiOutlinedInput-root": { height: 40, - fontSize: large - ? theme.typography.h5.fontSize - : theme.typography.body1.fontSize, + fontSize: { + xs: "16px", + sm: "17px", + md: "18px", + }, fontFamily: theme.typography.fontFamily, background: "none", border: "none", - // 호버 시 테두리 검정색 "&:hover .MuiOutlinedInput-notchedOutline": { borderColor: theme.palette.text.primary, }, - // 포커스 시 테두리 primary 색상 "&.Mui-focused .MuiOutlinedInput-notchedOutline": { borderColor: theme.palette.primary.main, borderWidth: "2px", @@ -60,9 +60,9 @@ const ProjectOneLineCard = ({ padding: large ? theme.spacing(2.2) : theme.spacing(1.7), "&::placeholder": { fontSize: { - xs: "14px", - sm: "15px", - md: "16px", + xs: "16px", + sm: "17px", + md: "18px", }, color: "#999", }, diff --git a/src/entities/projects/ui/project-insert/ProjectPreferentialCard.tsx b/src/entities/projects/ui/project-insert/ProjectPreferentialCard.tsx index b82b744..81d2b98 100644 --- a/src/entities/projects/ui/project-insert/ProjectPreferentialCard.tsx +++ b/src/entities/projects/ui/project-insert/ProjectPreferentialCard.tsx @@ -1,15 +1,7 @@ import AddIcon from "@mui/icons-material/Add"; import { Box, Button } from "@mui/material"; -import { useMediaQuery } from "@mui/material"; import { useTheme } from "@mui/material/styles"; -import type { - ChangeEvent, - CSSProperties, - JSX, - FocusEvent, - MouseEvent, - KeyboardEvent, -} from "react"; +import type { ChangeEvent, CSSProperties, JSX, KeyboardEvent } from "react"; import { useState } from "react"; import SimpleFormCard from "@shared/ui/project-insert/SimpleFormCard"; @@ -28,7 +20,6 @@ const ProjectPreferentialCard = ({ style, }: ProjectPreferentialCardProps): JSX.Element => { const theme = useTheme(); - const isMobile = useMediaQuery(theme.breakpoints.down("md")); const [newPreferential, setNewPreferential] = useState(""); const addPreferential = (): void => { @@ -59,7 +50,8 @@ const ProjectPreferentialCard = ({ > {/* 입력 + 추가 버튼 */} - ) => @@ -67,40 +59,42 @@ const ProjectPreferentialCard = ({ } onKeyUp={handleKeyPress} placeholder="예: AWS, Docker, 스타트업 경험..." - style={{ + sx={{ flex: 1, - height: 40, - borderRadius: theme.shape.borderRadius, - border: `1px solid ${theme.palette.divider}`, - fontSize: isMobile - ? theme.typography.body2.fontSize - : large - ? theme.typography.h5.fontSize - : theme.typography.body1.fontSize, + height: { xs: "40px !important", sm: "48px !important" }, + borderRadius: "8px", + border: `1px solid #c9c9c9`, + fontSize: { + xs: "16px", + sm: "17px", + md: "18px", + }, fontFamily: theme.typography.fontFamily, - background: theme.palette.background.paper, - padding: large ? theme.spacing(2.2) : theme.spacing(1.7), + background: "none", + padding: large ? theme.spacing(1.5) : theme.spacing(1), boxSizing: "border-box", outline: "none", transition: "border-color 0.2s ease-in-out", - }} - onFocus={(e) => { - e.target.style.borderColor = theme.palette.primary.main; - e.target.style.borderWidth = "2px"; - }} - onBlur={(e: FocusEvent) => { - e.currentTarget.style.borderColor = theme.palette.divider; - e.currentTarget.style.borderWidth = "1px"; - }} - onMouseEnter={(e: MouseEvent) => { - if (e.currentTarget !== document.activeElement) { - e.currentTarget.style.borderColor = "#000000"; - } - }} - onMouseLeave={(e: MouseEvent) => { - if (e.currentTarget !== document.activeElement) { - e.currentTarget.style.borderColor = theme.palette.divider; - } + lineHeight: "normal", + minHeight: "unset", + + "&::placeholder": { + fontSize: { + xs: "16px", + sm: "17px", + md: "18px", + }, + color: "#999", + }, + + "&:focus": { + borderColor: theme.palette.primary.main, + borderWidth: "2px", + }, + + "&:hover:not(:focus)": { + borderColor: theme.palette.text.primary, + }, }} />