Skip to content

Commit b80bb12

Browse files
committed
반응형 스타일 개선 및 모바일 환경 Header 항상 표시 Fixed cotes2020#37
- Header 및 Index Page 반응형 스타일 개선 - install mobile-detect package - 모바일 환경에서 Header를 숨기지 않고 항상 표시하도록 구현
1 parent 35c0295 commit b80bb12

File tree

6 files changed

+45
-7
lines changed

6 files changed

+45
-7
lines changed

package-lock.json

+5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"gatsby-source-filesystem": "^2.1.43",
3232
"gatsby-transformer-remark": "^2.6.45",
3333
"gatsby-transformer-sharp": "^2.3.7",
34+
"mobile-detect": "^1.4.4",
3435
"node-sass": "^4.13.0",
3536
"prism-themes": "^1.3.0",
3637
"prismjs": "^1.17.1",

src/components/Header/header.scss

+29-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
width: 100%;
99
align-items: flex-end;
1010
justify-content: space-between;
11-
padding: 0.5rem 2rem 1rem 2rem;
11+
padding: 0 2rem 1rem 2rem;
1212
height: $header-height;
1313
max-height: $header-height;
1414
transition: top 0.3s;
@@ -18,14 +18,19 @@
1818

1919
@media screen and (max-width: $break-l) {
2020
background-color: #fff;
21-
padding: 0.5rem 1.25rem 1rem 1rem;
21+
padding: 0 1.5rem 1rem 1.5rem;
2222
}
2323
@media screen and (max-width: $break-m) {
24+
padding: 0 1rem 0.5rem 1rem;
2425
height: $header-height-m;
2526
}
2627
@media screen and (max-width: $break-s) {
2728
height: $header-height-s;
28-
padding: 0 1.25rem 0.25rem 1rem;
29+
padding: 0 1rem 0.25rem 1rem;
30+
}
31+
32+
&.mobile {
33+
top: 0 !important;
2934
}
3035

3136
&.show {
@@ -39,15 +44,22 @@
3944
display: flex;
4045
align-items: flex-end;
4146

47+
@media screen and (max-width: $break-s) {
48+
align-items: center;
49+
}
50+
4251
.header-profile-image-wrap {
4352
display: flex;
4453
align-items: center;
4554
border: 1px solid #aaa;
4655
padding: 2px;
47-
4856
border-radius: 100%;
4957
margin-right: 0.25rem;
5058

59+
@media screen and (max-width: $break-s) {
60+
padding: 1px;
61+
}
62+
5163
img {
5264
border-radius: 100%;
5365
margin: 0;
@@ -60,6 +72,11 @@
6072
height: 25px !important;
6173
}
6274

75+
@media screen and (max-width: $break-s) {
76+
width: 15px !important;
77+
height: 15px !important;
78+
}
79+
6380
&:hover {
6481
opacity: 1;
6582
}
@@ -87,6 +104,10 @@
87104
&:hover {
88105
opacity: 1;
89106
}
107+
108+
@media screen and (max-width: $break-s) {
109+
font-size: 1.1rem;
110+
}
90111
}
91112
}
92113
}
@@ -110,6 +131,10 @@
110131
&:hover {
111132
opacity: 0.8;
112133
}
134+
135+
@media screen and (max-width: $break-s) {
136+
font-size: 1rem;
137+
}
113138
}
114139

115140
span {

src/components/Header/index.tsx

+8-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { Link } from 'gatsby';
44
import { FontAwesomeIcon as Fa } from '@fortawesome/react-fontawesome';
55
import { faTags, faSearch } from '@fortawesome/free-solid-svg-icons';
66
import { connect } from 'react-redux';
7+
import MobileDetect from 'mobile-detect';
78

89
import './header.scss';
910
const config = require('../../../config');
@@ -19,6 +20,7 @@ const Header = (props: headerPropsType) => {
1920
const { siteTitle, path, setPath, size } = props;
2021
const [, setYPos] = useState(0);
2122
const [isHide, setIsHide] = useState(false);
23+
const [isMobile, setIsMobile] = useState(false);
2224

2325
useEffect(() => {
2426
const bio: HTMLDivElement | null = document.querySelector('.bio');
@@ -34,6 +36,11 @@ const Header = (props: headerPropsType) => {
3436
}, [isHide]);
3537

3638
useEffect(() => {
39+
const md = new MobileDetect(window.navigator.userAgent);
40+
if (md.mobile()) {
41+
setIsMobile(true);
42+
}
43+
3744
const profile: HTMLImageElement | null = document.querySelector('.header-profile-image-wrap>img');
3845

3946
const prevPath = path;
@@ -80,7 +87,7 @@ const Header = (props: headerPropsType) => {
8087
};
8188

8289
return (
83-
<header id="Header" className={isHide ? 'hide' : 'show'}>
90+
<header id="Header" className={`${isHide ? 'hide' : 'show'} ${isMobile ? 'mobile' : ''}`}>
8491
<div className="header-title">
8592
<Link to="/">
8693
<div className="header-profile-image-wrap">

src/pages/styles/index.scss

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
display: flex;
55

66
@media screen and (max-width: $break-m) {
7-
margin-top: 1.5rem;
7+
margin-top: 1rem;
88
}
99

1010
.bio {

src/utils/variables.scss

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ $font-color-0: #24292e;
44
// header
55
$header-height: 6rem;
66
$header-height-m: 4rem;
7-
$header-height-s: 3rem;
7+
$header-height-s: 2.5rem;
88

99
// media query
1010
$break-l: 1119px;

0 commit comments

Comments
 (0)