본문 바로가기

Electron에서 타이틀 바 숨기기 및 창 이동 문제

기술적인 이야기/웹 개발 2022. 2. 6.
반응형

최근의 macOS 앱들은 전통적인 타이틀 바 대신 타이틀 바 영역까지 툴바나 콘텐츠로 꽉꽉 채우는 것이 유행인 것 같다. 개인적으로도 이런 디자인이 유려하고 쓸모가 많은 것 같아 선호하기도 한다. 물론 이런 형태를 Electron에서도 구현할 수 있다.

타이틀바가 안 보이니 확실히 미려한 것 같다

macOS에 어울리는 타이틀바 숨기기

아주 간단하다. 아래와 같이 BrowserWindow 생성 시 titleBarStylehiddenInset으로 설정하면 타이틀 컨트롤만 남고 타이틀바 자체는 사라진다.

window = new BrowserWindow({
    ...
    titleBarStyle: 'hiddenInset',
    ...
});

타이틀 바에 있던 닫기나 풀스크린 버튼 등의 컨트롤과 기능은 그대로 남기 때문에 타이틀바 영역을 원하는 대로 꾸밀 수 있다.

참고로 hiddenInset 대신 hidden을 쓸 수도 있는데 이렇게 하면 윈도우 컨트롤 버튼들이 조금 작게 표시된다. 다르게 말해서 hidden은 기본적인 타이틀 바 사이즈가 적용되고 hiddenInset은 최근 유행하는 툴바 통합형 타이틀 바 사이즈로 적용된다.

이걸로 완전히 끝 이라고 할 수도 있겠지만 불행히도(?) 한 단계 할 일이 더 남아있다.

타이틀바가 없을 때 윈도우를 드래그로 옮길 수 있게 하기

타이틀바를 숨기면 미려해지긴 하는데 큰 문제가 생긴다. 타이틀 바 만이 드래그로 윈도를 옮길 수 있는 유일한 영역인데 이게 사라지니 창을 옮길 방법이 사라져 버린다. 정말 치명적인 문제다.

다행히도 이 경우 아래와 같은 스타일을 이용해 드래그 영역을 지정해서 해결할 수 있다.

-webkit-app-region: drag;

상단 툴바의 여백이나 터치나 클릭 이벤트를 받지 않는 넓은 영역에 지정하면 괜찮을 것 같다.

그나저나 크로미움이 웹킷을 버린 지는 꽤 오래 되었을 텐데 왜 웹킷(-webkit) 머릿글자를 달고 있는 스타일 이름을 아직도 쓰는지는 궁금하긴 하지만 더 깊이 파고드는 것은 귀찮아서 그냥 잊어버리기로 했다.

관련된 글들

 

Electron + Svelte로 데스크톱 앱 개발 시작해보기

개인 프로젝트를 여러 방식으로 해보다 Electron을 이용해볼까 하는 약간의 욕심이 생겼다. 그래서 공부를 하던 중 웹 UI 프레임워크를 알아두면 좋을 것 같아서 찾아보다 Svlete의 평이 좋을 것을

seorenn.tistory.com

 

Electron에서 iframe 사용하기(?)

Electron에서 iframe 태그를 사용할...수 없다. 이 무슨 시작부터 글 제목이랑 반대되는 이야기를 하는 건가 싶을 텐데, 사실 Electron이 보안상의 문제로 iframe 을 이용한 외부 사이트 접근을 기본적으

seorenn.tistory.com

 

Electron의 app 정보를 얻기 위한 삽질기

개인적으로 Electron으로 공부 겸 사이드 프로젝트를 시작하고 있었다. 그 과정에서 앱의 데이터를 데이터베이스에 저장하기 위해 몇 가지 정보를 찾아보다 데이터베이스 파일을 저장할 위치에

seorenn.tistory.com

728x90
반응형

댓글