summaryrefslogtreecommitdiff
path: root/css/navBar.scss
blob: 737eb1877105fd3dead27396a836617131fc2303 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#navBar {
	align-items:     center;
	display:         flex;
	height:          calc(2rem + var(--hamburgerHeight));
	justify-content: space-between;
	padding:         1rem;
	position:        absolute;
	top:             0;
	width:           100%;

	body[data-page = "achernar"] & {
		a, #home, #hamburger {
			mix-blend-mode: difference;
		}
	}

	section {
		display:         flex;
		flex:            1;
		gap:             1rem;
		justify-content: center;

		&:first-of-type {
			justify-content: start;
		}

		&:last-of-type {
			justify-content: end;
		}

		a {
			position:              relative;
			text-decoration-color: #00000000;

			&[aria-current = "page"]:not(#home)::after {
				background-color: var(--textColour);
				border-radius:    $separatorWidth;
				content:          "";
				display:          block;
				height:           $separatorWidth;
				left:             50%;
				position:         absolute;
				top:              calc(100% + $separatorWidth);
				transform:        translateX(-50%);
				width:            100%;
			}

			@media not (prefers-reduced-motion) {
				transition: opacity $slideDuration, text-decoration-color 0.125s;
			}

			@media (orientation: portrait) or (pointer: coarse) {
				&:not(#home, #hamburger) {
					display: none;
				}
			}

			&:hover {
				text-decoration-color: var(--textColour);
			}
		}

		#home, #hamburger {
			aspect-ratio:     1;
			background-color: var(--textColour);
			cursor:           pointer;
			height:           var(--hamburgerHeight);
			mask-size:        cover;
			z-index:          255;
		}

		#home {
			mask-image: url("/svg/home.svg");
		}

		#hamburger {
			mask-image: url("/svg/hamburger.svg");
		}
	}
}