Skip to content

Commit 00042bb

Browse files
committed
Support dark mode
1 parent f7e04d5 commit 00042bb

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
lines changed

src/components/Header/Header.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ const section = frontmatter?.section ?? ""
7171
)
7272
}
7373

74-
<LanguageSelector class="language-selector" />
74+
<LanguageSelector class="language-selector" dark={dark} />
7575
<a href="https://github.com/scroll-tech/scroll-documentation" class="github-url" target="_blank" rel="nofollow">
7676
<img src={dark ? "/assets/github-white.svg" : "/assets/github.svg"} />
7777
</a>

src/components/Header/LanguageSelector/LanguageSelector.astro

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ import i18next from "i18next"
33
import { localizePath } from "astro-i18next"
44
import localeEmoji from "locale-emoji"
55
import ISO6991 from "iso-639-1"
6+
import { clsx } from "~/lib"
67
78
const supportedLanguages = i18next.languages
89
910
const { pathname } = Astro.url
1011
1112
const { showFlag = false, languageMapping, ...attributes } = Astro.props
13+
const { dark } = Astro.props
1214
1315
const getLabel = (language) => {
1416
const flag = showFlag ? localeEmoji(language) + " " : ""
@@ -23,12 +25,12 @@ const getLabel = (language) => {
2325
}
2426
---
2527

26-
<div class="language-selector">
28+
<div class={clsx("language-selector", dark && "dark")}>
2729
<div class="current-language">
2830
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="none">
2931
<path
3032
d="M12.0886 2.19173C11.899 1.99095 11.5825 1.98187 11.3817 2.17145C11.181 2.36103 11.1719 2.67748 11.3615 2.87827L12.0886 2.19173ZM9.82896 1.70578C10.0724 1.83614 10.3754 1.74448 10.5058 1.50104C10.6361 1.25761 10.5445 0.954588 10.301 0.824224L9.82896 1.70578ZM6.475 0.71L6.83644 1.05549L6.83781 1.05405L6.475 0.71ZM6.51 13.325L6.84218 12.9513L6.84158 12.9508L6.51 13.325ZM7.43 13.27L7.8006 13.6056L7.80182 13.6043L7.43 13.27ZM11.3615 2.87827C12.3774 3.95429 13 5.40282 13 7H14C14 5.13718 13.2726 3.44571 12.0886 2.19173L11.3615 2.87827ZM13 7C13 10.3139 10.3139 13 7 13V14C10.8661 14 14 10.8661 14 7H13ZM7 13C3.68614 13 1 10.3139 1 7H0C0 10.8661 3.13386 14 7 14V13ZM1 7C1 3.68614 3.68614 1 7 1V0C3.13386 0 0 3.13386 0 7H1ZM7 1C8.02607 1 8.98516 1.25391 9.82896 1.70578L10.301 0.824224C9.31484 0.296094 8.19393 0 7 0V1ZM1.50005 4.99H12.965V3.99H1.50005V4.99ZM1.49999 9.995H12.97V8.995H1.49999V9.995ZM7.81355 0.406447C7.39863 -0.00847185 6.63779 -0.188318 6.11219 0.365954L6.83781 1.05405C6.86485 1.02554 6.89025 1.0169 6.92687 1.01975C6.97276 1.02331 7.04172 1.04883 7.10645 1.11355L7.81355 0.406447ZM6.11356 0.364509C5.02397 1.5044 4 3.93397 4 7.225H5C5 4.10603 5.97603 1.9556 6.83644 1.05549L6.11356 0.364509ZM4 7.225C4 10.5231 5.07388 12.7206 6.17842 13.6992L6.84158 12.9508C6.01612 12.2194 5 10.3369 5 7.225H4ZM6.17782 13.6987C6.65963 14.127 7.3826 14.0672 7.8006 13.6056L7.0594 12.9344C6.9974 13.0028 6.90037 13.003 6.84218 12.9513L6.17782 13.6987ZM7.80182 13.6043C8.80675 12.4865 10 10.6511 10 7.23H9C9 10.3689 7.92325 11.9735 7.05818 12.9357L7.80182 13.6043ZM10 7.23C10 3.85511 8.90599 1.49888 7.81355 0.406447L7.10645 1.11355C7.96401 1.97112 9 4.04489 9 7.23H10Z"
31-
fill="#101010"></path>
33+
fill="currentColor"></path>
3234
</svg>
3335
<span>{getLabel(supportedLanguages[0])}</span>
3436
</div>
@@ -43,12 +45,12 @@ const getLabel = (language) => {
4345
<li value={value} onclick={`if ("${value}" !== window.location.pathname) location.href = "${value}";`}>
4446
{idx === 0 ? (
4547
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
46-
<rect x="0.5" y="0.5" width="15" height="15" rx="7.5" stroke="#101010" />
47-
<circle cx="7.99989" cy="8.00007" r="4.8" fill="#101010" />
48+
<rect x="0.5" y="0.5" width="15" height="15" rx="7.5" stroke="currentColor" />
49+
<circle cx="7.99989" cy="8.00007" r="4.8" fill="currentColor" />
4850
</svg>
4951
) : (
5052
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
51-
<rect x="0.5" y="0.5" width="15" height="15" rx="7.5" stroke="#101010" />
53+
<rect x="0.5" y="0.5" width="15" height="15" rx="7.5" stroke="currentColor" />
5254
</svg>
5355
)}
5456
<span>{label}</span>
@@ -65,6 +67,10 @@ const getLabel = (language) => {
6567
position: relative;
6668
}
6769

70+
.language-selector.dark {
71+
--black-100: #fff;
72+
--orange-500: #fff;
73+
}
6874
.language-selector:hover .options-modal {
6975
display: flex;
7076
}
@@ -78,13 +84,14 @@ const getLabel = (language) => {
7884
.current-language {
7985
width: 100px;
8086
border-radius: 5px;
81-
border: 1px solid #101010;
87+
border: 1px solid var(--black-100);
8288
display: flex;
8389
height: 36px;
8490
padding: 0 12px;
8591
justify-content: space-between;
8692
align-items: center;
8793
cursor: pointer;
94+
color: var(--black-100);
8895
}
8996

9097
.options-list {
@@ -102,7 +109,7 @@ const getLabel = (language) => {
102109
justify-content: center;
103110
align-items: center;
104111
flex-direction: column;
105-
background: #fff;
112+
background: var(--white-100);
106113
}
107114

108115
.options-list li {
@@ -112,26 +119,22 @@ const getLabel = (language) => {
112119
align-items: center;
113120
flex-direction: row;
114121
padding: 8px 0px;
122+
color: var(--black-100);
115123
}
116124

117125
.options-list li svg,
118126
.current-language svg {
119127
flex-shrink: 0;
120128
width: 16px;
121129
height: 16px;
130+
color: inherit;
122131
}
123132

124133
.options-list li span,
125134
.current-language span {
126135
flex: 1;
127136
text-align: left;
128137
margin-left: 8px;
129-
}
130-
131-
.options-list li:hover {
132-
color: var(--orange-500);
133-
}
134-
135-
@media (min-width: 50em) {
138+
color: inherit;
136139
}
137140
</style>

0 commit comments

Comments
 (0)