Skip to content

Commit 3cd0276

Browse files
committed
wip: new home page and view system
1 parent 93f70e9 commit 3cd0276

File tree

8 files changed

+386
-266
lines changed

8 files changed

+386
-266
lines changed

package-lock.json

Lines changed: 284 additions & 200 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/heads/default.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@
55
66
<link rel="preconnect" href="https://fonts.googleapis.com">
77
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
8-
<link href="https://fonts.googleapis.com/css2?family=Cabin:ital,wght@0,400..700;1,400..700&family=Handjet:[email protected]&display=swap" rel="stylesheet">
8+
<link href="https://fonts.googleapis.com/css2?family=Cabin:ital,wght@0,400..700;1,400..700&family=Handjet:[email protected]&display=swap&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap" rel="stylesheet">
99
`

src/index.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,9 @@
11
import { router } from "./core/router";
2-
import {buildVerticalNav} from "./components/vertical-nav";
3-
import {buildProjectPage} from "./content/projects";
4-
import {homeView, aboutView, contactView, buildViewBase, projectCollectionView, renderView} from "./views";
2+
import {homeView, buildViewBase, renderView} from "./views";
53

64

75
const routes = [
86
{ path: '', handler: () => renderView(homeView()) },
9-
{ path: '/projects', handler: () => renderView(projectCollectionView()) },
10-
{ path: '/projects/:id', handler: (params) => buildProjectPage(params?.id) },
11-
{ path: '/about', handler: () => renderView(aboutView()) },
12-
{ path: '/contact', handler: () => renderView(contactView()) },
137
];
148

159
routes.forEach(route => router.registerRoute(route.path, route.handler));
@@ -19,10 +13,8 @@ routes.forEach(route => router.registerRoute(route.path, route.handler));
1913
function init() {
2014
const body = document.getElementsByTagName("body")[0];
2115
const contentPage = buildViewBase();
22-
const verticalNav = buildVerticalNav();
2316

2417
body.appendChild(contentPage);
25-
contentPage.appendChild(verticalNav);
2618

2719
router.handleRoute(window.location.pathname);
2820
}

src/views/home.ts

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
import {createThreeBackground, writeParagraph, writeTitle} from "./utils";
2-
import {BackgroundChoice} from "../components/three-background";
3-
import {cdCover} from "../components/cd-cover";
1+
import {createWrapper, writeParagraph, writeTitle} from "./utils";
42

53
export type HomePageContent = {
64
readonly title: string;
@@ -10,37 +8,38 @@ export type HomePageContent = {
108
// --------------------------------------------------------------------------------
119

1210
export function homeView() {
13-
const article = document.createElement('article');
14-
const introBlock = document.createElement('div');
15-
const pageTitle = writeTitle("h1", "pick a track");
16-
const pageText = writeParagraph("Welcome to my hub! I’m CD-BASH, a creative developer based in Montreal.");
11+
const page = document.createElement('div');
12+
page.id = 'home-page';
13+
14+
page.appendChild(hookSection());
1715

18-
article.id = 'home-page';
19-
introBlock.className = 'intro-block';
2016

21-
createThreeBackground(BackgroundChoice.Home);
22-
introBlock.appendChild(pageTitle);
23-
introBlock.appendChild(pageText);
24-
article.appendChild(introBlock);
25-
article.appendChild(cdCoverSelection());
2617

27-
return article;
18+
return page;
2819
}
2920

3021
// --------------------------------------------------------------------------------
3122

32-
function cdCoverSelection() {
33-
const cdCovers = document.createElement('div');
34-
cdCovers.className = 'cd-covers-selection';
23+
function hookSection() {
24+
const hook = document.createElement('section');
25+
const wrapper = createWrapper();
26+
const article = document.createElement('article');
27+
const hookTitle = writeTitle("h1", "When was the last time you finished a game?");
28+
const hookText = writeParagraph("CD-Labs’ initiative is to design complete gaming experiences for busy lives.");
29+
const arrowDownBtn = document.createElement('button');
3530

36-
const projectCover = cdCover();
37-
const aboutCover = cdCover();
38-
const logsCover = cdCover();
31+
hook.className = 'hook';
32+
hookTitle.className = "hook-title";
33+
hookText.className = "hook-text";
3934

40-
cdCovers.appendChild(projectCover);
41-
cdCovers.appendChild(aboutCover);
42-
cdCovers.appendChild(logsCover);
35+
article.appendChild(hookTitle);
36+
article.appendChild(hookText);
37+
article.appendChild(arrowDownBtn);
38+
wrapper.appendChild(article);
39+
hook.appendChild(wrapper);
4340

44-
return cdCovers;
41+
return hook;
4542
}
4643

44+
45+

src/views/index.ts

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,23 @@ export * from "./contact.ts";
1010
// --------------------------------------------------------------------------------
1111

1212
export function buildViewBase() {
13-
const viewBox = document.createElement('div');
14-
const viewWrapper = document.createElement('div');
15-
viewBox.id = 'view-box';
16-
viewWrapper.id = 'view-wrapper';
17-
18-
viewBox.appendChild(viewWrapper);
19-
return viewBox;
13+
const view = document.createElement('div');
14+
view.id = 'view';
15+
return view;
2016
}
2117

22-
export function renderView(view: HTMLElement) {
23-
const viewWrapper = clearView();
24-
viewWrapper.appendChild(view);
18+
export function renderView(newView: HTMLElement) {
19+
const cleanView = clearView();
20+
cleanView.appendChild(newView);
2521
}
2622

2723
// --------------------------------------------------------------------------------
2824

2925
function clearView() {
30-
const cleanViewWrapper = document.getElementById('view-wrapper')!;
31-
cleanViewWrapper?.childNodes.forEach((childNode) => {
32-
cleanViewWrapper.removeChild(childNode);
33-
});
26+
const view = document.getElementById('view')!;
27+
while (view.firstChild) {
28+
view.removeChild(view.firstChild);
29+
}
3430

35-
return cleanViewWrapper;
31+
return view;
3632
}

src/views/styles.css

Lines changed: 51 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,14 @@
11
body {
22
background-color: black;
3+
margin: 0;
34
}
45

5-
h1 {
6+
h1, h2 {
67
margin: 0;
7-
max-width: 75%;
8+
font-family: "Inter", sans-serif;
89
font-size: 6em;
9-
line-height: 75%;
10-
color: white;
11-
text-transform: lowercase;
12-
}
13-
14-
h2 {
15-
margin: 0 0 20px 0;
16-
font-size: 1.2em;
10+
line-height: 100%;
1711
color: white;
18-
text-transform: uppercase;
1912
}
2013

2114
h3 {
@@ -43,10 +36,10 @@ h6 {
4336
}
4437

4538
p {
46-
font-size: 2em;
39+
font-size: 1.5em;
4740
font-weight: normal;
48-
color: #828282;
49-
line-height: 150%;
41+
color: white;
42+
line-height: 110%;
5043
margin: 0;
5144
}
5245

@@ -60,14 +53,56 @@ p.description {
6053
font-size: 0.9em;
6154
}
6255

56+
#view {
57+
height: 100%;
58+
font-family: 'Inter', sans-serif;
59+
60+
#wrapper {
61+
width: 95%;
62+
margin: 0 auto;
63+
}
64+
65+
#home-page {
66+
67+
section {
68+
width: 100vw;
69+
min-height: 100vh;
70+
height: 100vh;
71+
margin: 0;
72+
padding: 0;
73+
box-sizing: border-box;
74+
}
75+
76+
.hook {
77+
78+
article {
79+
margin: 0 15%;
80+
display: flex;
81+
text-align: center;
82+
flex-direction: column; /* Stack children vertically */
83+
justify-content: center;
84+
align-items: center;
85+
height: 100vh;
86+
87+
.hook-text {
88+
margin-top: 75px;
89+
margin-bottom: 20px;
90+
max-width: 630px;
91+
}
92+
}
93+
}
94+
95+
96+
}
97+
}
98+
6399
#view-box {
64-
padding-left: 280px;
65100
height: 100%;
66101
font-family: "Cabin", sans-serif;
67102

68103

69104
#view-wrapper {
70-
width: 720px;
105+
width: 95%;
71106
margin: 0 auto;
72107
padding-top: 60px;
73108

src/views/utils/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,10 @@ export * from "./backgrounds-utils.ts";
44

55
export function scrollTop() {
66
window.scrollTo(0, 0);
7+
}
8+
9+
export function createWrapper() {
10+
const wrapper = document.createElement('div');
11+
wrapper.id = 'wrapper';
12+
return wrapper;
713
}

webhub.code-workspace

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"folders": [
3+
{
4+
"path": "."
5+
}
6+
],
7+
"settings": {}
8+
}

0 commit comments

Comments
 (0)