- 누군가가 내 웹사이트를 더 멋지게 만들 수 있었겠지만, 그러면 내 것이 아니었을 것
- 웹사이트의 개성은 만든 사람의 취향, 집착, 직접적인 손길에서 비롯됨
- 단순함과 친근함을 추구해 CSS와 JS를 최소화하고, 직접적인 CSS 변형 규칙을 적용해 혼돈과 반복, 서점 같은 감성을 연출함
- 사이트는 사용자 상호작용에 CSS만으로 반응하도록 설계되어, 꾸밈없는 질감과 예상치 못한 변화가 특징임
- 웹사이트는 계속해서 변화하며, 소유자와 함께 성장·변신하고, 각자만의 '못생긴 것'이 살아 움직이게 됨
내가 만든 웹사이트, 그리고 그 못생김의 의미
- 만약 엄마가 냉장고에 멋진 그림을 붙이고 싶었다면, Vermeer, Lichtenstein, Wyeth 같은 유명한 작가의 그림을 복제해서 붙였을 것임
- 하지만 엄마는 그런 예술이 아니라, 내가 그린 그림을 원했음
- 감각 있는 디자이너가 내 사이트를 멋지게 만들 수도 있었겠지만, 그렇게 되면 더 이상 내 것이 아니게 됨
- 빵을 굽기 위해 어떤 사람들은 밀을 키우고, 소금을 캐고, 효모를 배양하려 하는데, 나는 그렇지 않음
- 내 미숙한 입맛은 Olive Garden의 브레드스틱을 대량으로 먹는 것에 만족함
- 이런 취향은 개개인의 소유감에서 비롯되는 차이임
- 자기만의 이유로, 각자 자신만의 인터넷 공간을 꾸미고 있음
다양한 개인 웹의 존재
- 어떤 사람들은 태양광으로 구동되는 자가호스팅 웹사이트를 운영함
- 또 누군가는 Substack을 통해 지혜를 공유하고
- YouTube에서 제조 현장을 깊이 파는 사람이 있음
- Gwern은 독특한 무언가를 하고 있음
- 이 모든 행동은 "내가 아니면 할 수 없다"는 내적인 동기와 욕구에서 비롯됨
- 나는 빵이나 서버, 칩을 만들 동기는 없지만, 그 욕구는 유머, 시스템, 소프트웨어, 구조 같은 것으로 표출됨
- 감정이 너무 강해지면 픽션, HTML/CSS, 허접한 로봇, 슬픈 노래 등으로 터져 나옴
- 그래서 내 웹사이트는 내 것임
단순함과 개성의 공존
- 과거에는 단순함과 친근함만을 원했음
- 노이즈 제거
- 명암 강조
- 메뉴 깊이 축소
- 지루한 HTML
- CSS 최소화
- JS 회피 등
- 2023년 내 사이트는 이랬음 (원글의 이미지 참고)
혼돈의 디자인, 그리고 CSS 이야기
- 어느 순간 더 넓은 가로 공간을 쓰기로 하면서 문제가 시작됨
- 초기 계획은 간단했음: ul에
flex-wrap을 적용 - 그런데 텍스트도 감싸지니 각 링크 구분이 불분명해짐
- inline으로 읽는 사람도, inline-block으로 느끼는 사람도 있었음
- 더 많은 공백을 늘려보거나, 각 링크에 테두리를 두르거나, 링크 사이에 도트를 집어넣는 것도 시도했지만 마음에 들지 않았음
-
그래서 링크에 변주를 주는 방법을 선택함
-
홈페이지의 혼돈은 사실 몇 가지 단순 규칙에서 나오고 있음
li:nth-child(4n + 0) { transform: rotate(1deg); } li:nth-child(4n + 1) { transform: rotate(-0.6deg); } li:nth-child(4n + 2) { transform: rotate(0.5deg); } li:nth-child(4n + 3) { transform: rotate(-0.75deg); } li:nth-child(6n + 0) { font-family: Times; } li:nth-child(6n + 1) { font-family: Helvetica; } li:nth-child(6n + 2) { font-family: Georgia; } li:nth-child(6n + 3) { font-family: Times; } li:nth-child(6n + 4) { font-family: Arial; } li:nth-child(6n + 5) { font-family: "Trebuchet MS"; } -
원래는 더 많은 변화를 위해 서로소 정수(coprime integer) 를 썼으나, 반복 패턴의 미묘함이 오히려 마음에 들었음
- 나는 미니멀리즘을 사랑하지만 차가운 느낌은 싫어함
- "중고서점" 같은 따뜻한 감성을 표현하기 위해 몇 가지 CSS 놀라움 요소를 더함
li:nth-child(5n + 2) { font-weight: 100; } li:nth-child(7n + 2) { letter-spacing: -1px; } li:nth-child(41n + 31) { transform: rotate(181deg); }
- 웹은 여전히 인터랙티브 미디어이기에 JS 없이도 커서 움직임에 반응하길 원함
- 아래 CSS 덕분에 "잔디를 만지는 감각"을 연출함
li:nth-child(2n + 0):hover { transform: rotate(-2deg); } li:nth-child(2n + 1):hover { transform: rotate(2deg); } - 이로써 커서 움직임에 실시간 반응을 구현
- 그리고 스크롤잭킹 없이 스크롤의 느낌을 강조하고 싶어서, 텍스처 배경으로 페이지를 '종이'처럼 보이게 만듦
- css-doodle을 써서 텍스처를 합성
svg { viewBox: .5 .5 10 10; fill: #000; circle*1000 { cx, cy: @r(10), @r(10); r: @r(.005, .01); } } - 라이트 모드에서는 종이의 먼지, 다크 모드에서는 밤하늘의 별 느낌을 표현
- 2024년 내 사이트는 이렇게 바뀌었음 (원글의 이미지 참고)
변화하는 나, 변화하는 웹사이트
- 머지않아 내 웹사이트는 아예 다른 모습으로 바뀔 예정
- 왜냐하면 내가 내 웹사이트의 주인이고, 나 자신도 계속 변화하기 때문임
- 당신도 변화하게 될 것임
- 당신의 열정과 가치관은 다른 무언가로 확산될 것임
- 못생겨 보여도 당신만의 창작물은 계속 살아 움직일 것임
글쓴이 Taylor Troesh는 taylor.town의 시장이며, scrapscript 저자이자, 허접한 것들을 음미하는 사람임